Быстродействие WordPress
Нет, это такая бытовая техника.
Многие думают что оптимизировать WordPress не нужно. Вроде и так быстро работает. Но поверьте мне, когда на ваш блог, в сутки, посещяемость выростает до нескольких тысяч, и при этом стоит много разным плагинов, то он может просто «упасть», или сервер загнется. Ну если у вас мощный сервер, дальше не читайте ;) Но даже если у вас один маленький блог, и слабо посещается, все равно будет приятно, если он заработает быстрее.
Давайте разберем эту проблему.
Теория
Для начала предлагаю разобраться, что же такое происходит «там», что можно оптимизировать.
Мы знаем что вордпресс написан на php. При открытии посетителем страници происходит следующее:
- WordPress делает запросы в базу данных, т.е. вытаскивает из нее такую информацию как текст записи, автор, дата и время создания записи, комментарии, и т.д.
- потом эти данные с компилируются с помощью php и соответственно выводится посетителю.
Теперь представте себе, что на одну и ту же запись зашло несколько тысяч человек. Т.е. одни и те же действия с php и базой данный произошли ровно столько раз, сколько зашло человек на эту запись. Соответственно очень сильно потребляется оперативная память сервера и процессорное время.
Согласитесь, бессмысленное действие, если можно при первом посетителе сделать выборку нужной информации из базы данных, скомпилировать в php нужные данные, сохранить на диск, и при следующем посетителе, эти данные покажутся из сохраненного источника на диске. Соответственно и оперативная память и процессор меньше грузятся, в разы.
Такой процесс сохранения на диск динамической информации называется кеширование. А сама информация на диске называется кеш.
Прошу к терминам не придираться, так как старался описать все наиболее популярно.
Обоснование
Есть такой сервис, который проверяет скорость загрузки страницы, размер страницы и среднюю скорость в килобайтах. Ну есть и много других, но мне понравился этот.
Я проверил скорость загрузки сайта до оптимизации быстродействия и после. Для точности, каждый тест провел 5 раз и сделал скриншоты. Смотрите скрины и сами думайте, даром ли я потратил неделю, чтобы разобраться с этой штукой.
До:
После:
Результат как говорится «на лицо».
Практика
Итак, теорию мы знаем, теперь как же все таки это использовать в WordPress?
Для тех кто использует оптимизированную сборку от Макса, нужно просто, в файле wp-config.php закомментировать строчку:
define('DISABLE_CACHE', '');
т.е. просто перед ней поставить два слеша (//).
Кому интересно, можете почитать тут как Макс реализовал кеш в WordPress'e.
Для остальных, есть специальный плагин WP-Super-Cache.
- Сначала удостоверьтесь что у вас не установлен плагин WP-Cache. Если же установлен, дальше можете не читать.
- Качаем плагин тут.
- Разархивируем.
- Копируем папку wp-super-cache в директорию плагинов /wp-content/plugins.
- Активируем плагин в панели управления плагинами.
- Перейдите в Настройки, и там откройте WP-Super-Cache. Скорее всего там будет что-то такое:
advanced-cache.php does not exist
Create it by executing:
ln -s /home/wordat/public_html/sait/wp-content/plugins/wp-super-cache/wp-cache-phase1.php /home/wordat/public_html/sait/wp-content/advanced-cache.php
in your server
Or by copying /home/wordat/public_html/sait/wp-content/plugins/wp-super-cache/wp-cache-phase1.php to /home/wordat/public_html/sait/wp-content/advanced-cache.php.
Cannot continue... fix previous problems and retry. - Теперь из папки wp-super-cache (которая в /wp-content/plugins) копируем wp-cache-phase1.php в папку wp-content и переименовываем его в advanced-cache.php.
- Плагин может не включится, особенно если у вас версия младше 2.5. Посему в файле wp-config.php вставляем строчку
define('WP_CACHE', true);. - Поставьте права доступа для папки wp-content CHMOD 777, обновите страницу настроек планига (чтобы конфигурация сохранилась), и верните права CHMOD 755.
- Теперь в .htaccess нужно прописать:
RewriteEngine On RewriteBase / AddDefaultCharset UTF-8 RewriteCond %{REQUEST_METHOD} !=POST RewriteCond %{QUERY_STRING} !.*s=.* RewriteCond %{QUERY_STRING} !.*p=.* RewriteCond %{QUERY_STRING} !.*attachment_id=.* RewriteCond %{QUERY_STRING} !.*wp-subscription-manager=.* RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress|wp-postpass_).*$ RewriteCond %{HTTP:Accept-Encoding} gzip RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz -f RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz [L] RewriteCond %{REQUEST_METHOD} !=POST RewriteCond %{QUERY_STRING} !.*s=.* RewriteCond %{QUERY_STRING} !.*p=.* RewriteCond %{QUERY_STRING} !.*attachment_id=.* RewriteCond %{QUERY_STRING} !.*wp-subscription-manager=.* RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress|wp-postpass_).*$ RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html -f RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html [L]. Предупрежу, некоторые первые строчки в файле .htaccess уже есть, посему, делать это аккуратно!
Если вы все это осилили, то плагин этот мы вроде установили. Теперь его надо настройить.
ON — все включено.
HALF ON — супер кеш выключен, кеш включен.
OFF — все выключено
Clear all cache files when a post or page is published. — очищать вест кеш, когда публикуется страница или запись (увеличивает время публикации).
Expiry time — время жизни кеша, в секундах
How often should expired files be deleted? — как часто будут удаляться файлы кеша, в запросах.
Для начала, этого хватит с головой.

Скачать плагин с официального сайта WordPress
У вас есть много сайтов/сателлитов на CMSimple? Вы хотите их перенести на WordPress? Легко! С помощью WordPress Translator v.1.3 вы это сделаете за 5 минут, в несколько кликов, сверстаете WordPress сайт из MS Word. У этой тулзы куча возможностей, о которых вы можете прочесть тут.
Реклама → Столовый набор детский посуды серебро. Столовое серебро завод.
Отзывов (57) на «Быстродействие WordPress»
Плагин действительно полезный. Особенно после его недавнего обновления. К самой статье можно добавить: чтобы узнать, работает ли плагин нормально — проверьте в конце страниц наличие <!-- Cached page served by WP-Super-Cache -->
Результаты эксперимента поразительные :) Сразу захотелось установить плагин кэширования, только некуда, везде стоит сборка от Макса :) Спасибо за терпение в проведении такого теста.
странно, но я проверил скорость своего сайта, и он мне показывает 2 сотых секунды, врядли кэш ускорит :) :arrow:
Я тоже встречал данный плагин, но там так все не расписывалось, мол просто скопировали в плагины и активировали в админке и все! Щас попробую по вашему ману все сделать. У меня правда и так показатели не плохие, но в погоней за скоростью надо попробывать ;) Еще раз спасибо за хороший ман )
its-web.ru 36.4 KB 1.57 seconds 0.04 seconds
Теперь показатели следующие
36.47 KB 0.96 seconds 0.03 seconds
Такой вопрос, а сервак этот плагин сильно грузит? Или лучше уж пусть он, чем сотни посетителей для которых страница будет генериться...
Очень грамотный пост, раньше не задумывался над увеличением WordPress.
В самом низу настроек плагина есть блок Cache Plugins
No Adverts for Friends plugin is disabled. (requires friendsadverts.php too)
По умолчанию он отключен, как и блок настроек Super Cache Compression.
Что вы можете сказать по поводу настроек, нужно ли их включать и что они делают, как это скажется на работе сервера?
Что-то работает не так, т.к. результат стал
36.57 KB 4.43 seconds 0.12 seconds (Без кэша было лучше намного см. 2 коммента выше)
Еще вопрос как чистить кэш через админку, т.к. за пол дня он 6 Мб на хосте сожрал уже. Expiry time 3600 — это один час, ток мне кажеться он не удалился спустя час никуда... Можете осветить более подробно все эти вопросы? Буду очень рад. Спасибо!
Alexpts, на сколько я понял, No Adverts for Friends позволяет контролировать вывод рекламных блоков либо какой-то код (html, javascript), в зависимости от того от куда пришел посетитель. Т.е. если он пришел с поисковика, то одна реклама, если с какого-то сайта из белого списка, то другая реклама, либо отсутствие рекламы.
А Super Cache Compression, это включение/отключение gzip-сжатия, как я понял.
На счет того что параметры изменились, сказать ничего не могу, потому как эти параметры зависят не только от этого плагина, а и от того какие плагины установлены еще, сколько сейчас человек посещает сайт, есть ли на этом же сервере сайты, и на сколько они тяжелы, посещаются ли они сейчас, и т.д.
Поэтому я и сделал по 5 тестов с периодичностью в ~10 минут. Чтоб эксперимент был как можно более точным.
Может ты как раз попал в тот момент, когда страница кешировалась.
Теперь на счет 6 метров.
Это естественно, либо мы грузим сервер, либо мы жертвуем местом на диске для кеша.
Кеш удаляется, но создается новый — свежий кеш, вдруг ты что-то изменил на странице, чтоб посетители видели обновления.
Кстати у меня уже на 11 метров кеша набралось, но у меня лимит 10 гигов, поэтому я не беспокоюсь :wink:
кстати сам кеш находится тут /wp-content/cache
>>кстати сам кеш находится тут /wp-content/cache
Это я нашел.
Вечером случилось что-то нехорошее, все (кроме меня почему-то) кто пытался зайти на сайт не могла... Вместо этого им предлагали скачать что-то типа этого sd23esdfwe.part я долго не мог понять, что вообще такое случилось... Потом все таки решил грохнуть этот плагин... сай для всех заработал. Пока я отключил плагин, может еще как-ть потестирую. Но слишком мне это все геморойно показалось. Эффекта хорошего (и стабильного!!!) я не заметил, а вот какие-то глюки не заставили себя ждать.
Может надо попробывать все оставить астоматом (как делает сам плагин) ничего не писать в .htaccess, т.к. плагин пишет туда автоматом почти тоже самое, немного отличается и не хватает пару строчек и тд.
Пока я не в восторге остался. Не знаю может, конечно, у меня руки кривые, но доверия он мне пока не внушил...
Alexpts,
А ты уверен, что у тебя не было установлено WP-CACHE?
и какая версия wordpress?
и gzip у тебя включен?
бывают проблемы у хостеров с гзипом. а та ошибка хоторую ты назвал похожа на проблемы с гзипом.
я потому и не хотел про него рассказывать, что проблемы бывают.
Странно, у меня и без этого плагина работает так как у вас после оптимизации :)
А у меня не пошел чего то, пишет Warning! PHP safe mode enabled! А вот сэйф моде похоже отключить я не могу...
Сделал все как написано здесь после этого мой блог вообще перестал работать. Выходит такое сообщение:
Warning: Cannot modify header information — headers already sent by (output started at /home/****/*******/my-sotik.com/public_html/blog/wp-config.php:1) in /home/****/*******/my-sotik.com/public_html/blog/wp-content/plugins/wp-super-cache/wp-cache-phase2.php on line 36
Warning: Cannot modify header information — headers already sent by (output started at /home/****/*******/my-sotik.com/public_html/blog/wp-config.php:1) in /home/rola/domains/my-sotik.com/public_html/blog/wp-includes/pluggable.php on line 770
Ильмир, почти на 100% уверен что ты не правильно сохранил файл wp-config.php.
Попробуй открыть файл в блокноте, выбери «Сохранить как...», выбери кодировку «UTF-8», жми «Сохранить».
Если не получится, стучись в аську, разберемся.
Алексей,
большое спасибо, с Вашей помощью наконец-то смогла разобраться с плагином wp-super-cache, а то он у меня был активирован, но пребывал в нерабочем состоянии, застопорившись на advanced-cache.php does not exist.
Вы достойно приняли эстафету у Анастасии :yes: , по ее мануалам осваивала NextGen Gallery.
Екатерина, всегда рад :hat:
Абакумов, неделю я потратил чтобы разобраться, как настроить этот плагин. Так что у тебя на это должно уйти не больше дня.
У меня оказывается скорость загрузки вобще маленькая была 1.24sec. После установки плагина 0.18-0.21sec в среднем :sd: . Скорость после настроек не увеличилась почти (всего на 0.03). В моём случае достаточно просто активировать плагин и не совершать лишних телодвижений. Спасибо огромное :cool:
Здоровтя, Усем, но что же делать тем, кто перешел на навые пресса, у нас как бы все предустановлено Кактусовичем, а загрузон тем не менее очень плохой, воть!!! :razz:
Grabus, знаешь я чего-то не нашел там вообще настроек, сбросить кнопка есть и усе.
Владимир, честно говоря ничего не могу сказать, потому как со сборками лектактуса мало знаком.
А как ты понял что WP-Super-Cache установлен? Может плагин есть, но по умолчанию не активирован?
Дело все было так, плагин действительно в сборке шел, я его активировал, по началу он вызвал фатальную ошибку, понятно почему, у меня работал wp-cache. Его убрал, все активировал, почистил папку. Через 2 часа в папке опять стало много файлов, как как посетители приходили. Самих настроек нет, вот и весь прикол. Может действительно он не работает? :idea:
Владимир, попробуй следующее:
1. на всякий случай сделай бекап файлов wp-content/wp-cache-config.php и wp-content/advanced-cache.php.
2. теперь удали их.
3. удали wp-cache.
4. глянь нет ли чего от wp-cache в wp-config.php.
5. установи wp-super-cache.
а что тебе не нравится в wp-cache, что ты его меняешь на wp-super-cache?
я просто не знаю, wp cache не юзал никогда.
Да вот теперь и не знаю, по идее надо было измерить сначала с wp-cache. Но как всегда подумалось новое, значит лучше, а получилось как всегда. Теперь это превратилось в сплошной эксперимент. Сказать, что я доволен, нет. Это дурной опыт, думаю повторять его не стоит. :idea:
Владимир, а ты попробуй все сначала.
удали блог, поставь по новой, и проверь.
или блог не новый и ты обновлял его? в таком случае конечно печальный опыт :oops:
Да блог не новый, я его обновлял, нашел в этой версии управление версиями и обновил настройки wp-config.php, как оно повлияло страница весом в 72KB, время загрузки 2,08s, а Average Speed per KB — скорость — 0,03, думаю круче только яйца. Или я не прав??? :grin:
:razz: ничего не понимаю ... все сделал ... а результат все тот же ...
спасибо за инструкцию. я в поисках ускорения много чего читал, но все не решался. теперь решусь попробовать, а то не совсем понятно было как и что делать.
только я вот еще читал, что хорошо бы для ускорения некоторые запросы заменить в шаблоне на html. может быть об этом есть где почитать?
Кстати еще один плюс этого плагина: однажды у хостера надолго отвалился SQL сервер, но сайт на вордпрессе работал, т.к. почти весь был закеширован, получился как бы статический html сайт. Правда работал он только в эксплорере, в мозилле не грузился. Я еще долго не мог понять почему сайт в дауне, а счетчики фиксируют посетителей :yes:
Ну во первых сервис не совсем ясный.
Для моего показывает загрузку за 5 сек, хотя визуально и скрипт сайта пишет о времени 0,25
Во-вторых, не усердствовал бы с суперкешем. 6 мб в кеше это еще ерунда, может намного больше наворочать.
В- третьих. Чем не устраивает внутренний кеш? чем не устраивает кеш от версии 233, или плагины кеша от макса или Ю.Б. ? Вариант исполнения тот же, чуть меньше выигрыш по времени, зато кеш не становится безразмерным.
Да еше по поводу. Если считается, что на рувебе, с включенным кешем загрузка блога в 5 сек — то это жуть.
По поводу блога надо посмотреть его оптимизацию.
1. Поубивать лишние и ненужные плагины.
2. Зачистить базу от ненужного хлама навороченного старыми плагинами
3. Уточнить зачем вот эта фигня у блога
если он на русском
4. Проверить почему в коде страницы вот такое
іРёРЅ для быстрой рассС
Похоже база не согласована с блогом по кодировке.
Т.е. сначала оптимизируеи сам блог и его работу. Потом, если не нравится, подключаем еще кеш.
trouble2maker, у Макса.
ynas, тоже самое было )
oldvovk, ссылки на плагины Ю.Б. и Макса дай плиз.
На счет 3 и 4 пункта, не совсем понял, уточни плиз.
а у меня вот такое сообщение теперь на каждой странице сайта :cry:
Warning: Cannot modify header information — headers already sent by (output started at /.../wp-config.php:2) in /.../wp-content/plugins/wp-super-cache/wp-cache-phase2.php on line 38
это если WP Super Cache Status в «on» или «half on», ну а когда выключаю — все нормально становиться
И config.php сохранен в UTF-8 точно!
eu4ria, в wp-config.php закомментировал строчку
define ('WP_CACHE', true);
?
и как этот плагин теперь удалить? я и .htaccess вернул старый и wp-config а все равно куча сообщений об ошибках. а когда в админке что-то меняешь то вот такое сообщение выскакивает
Warning: Cannot modify header information — headers already sent by (output started at /.../wp-config.php:2) in /.../wp-includes/pluggable.php on line 694
Конфиг может и сохранен в utf но в utf с boom,
соответственно глючит вывод хедера. Используй нотепад2 или нотепад++
Мое решение
Обсуждали на
Плагины ЮБ
от макса —
По поводу 3 — был вопрос о
meta name="language" content="en, sv"
сайт то на русском
По п4 — в коде html страниц присутствуют кракозябры русского — соответственно я так понимаю что блог работает в utf а база в чем то другом, и приходится перекодировать налету — а это доп время
Извини, забыл. Объедини потом посты.
Учитывая, что у тебя нарастает число комментов,
чтобы не превращать страницу в простыню — найди
у лекактуса плагин разбиения комментов на страницы
1. Скачала плагин.
3. Разархивировала.
4. СКопировала папку wp-super-cache в директорию плагинов /wp-content/plugins.
В папке панели управления плагинами не могу активировать этот плагин, он просто там не отображается!?!?! Что делать?
:razz:
Перекопировала, все получилось. Активировала плагин. Теперь не получается выполнить след. пункт:
Теперь из папки wp-super-cache (которая в /wp-content/plugins) копируем wp-cache-phase1.php в папку wp-content и переименовываем его в advanced-cache.php
Что делать?!?
:razz:
Больно муторно все это, я использую — все намного проще и работу свою отлично делает! ))
А мой блог почему-то очень медленно стал работать? Может быть вы сможете посказать почему?
Я сам не специалист по ВП, уже не знаю че и делать — :razz:
У меня выдаёт следующую ошибку:
Warning! PHP Safe Mode Enabled!
You may experience problems running this plugin because SAFE MODE is enabled.Your server is set up to check the owner of PHP scripts before allowing them to read and write files.
You or an administrator may be able to make it work by changing the group owner of the plugin scripts to match that of the web server user. The group owner of the /www/zzl.org/b/o/n/bondarenko/htdocs/wp-content/cache/ directory must also be changed. See the safe mode manual page for further details.
Cannot continue... fix previous problems and retry.
Подозреваю что проблема в самом хостинге...другие плагины для кеширования тоже отказывались работать...Что можно сделать в данной ситуации?
Написать хостинг-провайдеру, чтобы отключили Safe Mode, если хостинг конечно предоставляет такую возможность.
Я не замечала, чтобы не хватало места из-за кешированных страниц, но вроде там есть в настройках дополнительное их сжатие.









октября 12, 2008 в 09:55
Огромное спасибо. Инструкции по Кешу видел и раньше, но почему-то ничего не получалось. Прочитав Вашу, всё сразу получилось))) Спасибо ещё раз!! :grin: