Все наверное слышали о том, что блоги на базе движков WordPress, мягко говоря, неповоротливые и медленные. Я сам загрузку блога до оптимизации не мерял, поэтому точных цифр не ждите. Но сам факт того, что мой сайт будет работать медленней, чем возможно, меня жутко доставал. И вот, я нашел время когда заняться было совсем нечем и приступил к оптимизации. Скажу сразу, никаких роковых действий по отношению к операционной системе и движку в целом я применять не хотел. Все сделано очень осторожно.
Итак, что мы имеем. Операционная система Debian Squeeze, база данных MySQL 5.1, Apache 2.2.12 и WordPress 2.8.4. Цель произвести оптимизацию как серверной, так и клиентской части. Но обо всем по порядку.
База данных. Сайт у меня достаточно молодой, пользователей не так много, скорее всего стандартной конфигурации хватило бы, но один параметр я все таки изменил. Для этого надо отредактировать файл /etc/mysql/my.cnf
Было:
query-cache-size=16M
Стало:
query-cache-size=50M
Возможно что перестарался, но благо памяти хватает и беспокоится не о чем. Этот параметр я тронул что бы ускорить работу сайта в момент многочисленных обращений к базе. Еще одно средство оптимизации базы данных называется . Ставится как обычный плагин для движка. Результатом его действия является оптимизация таблиц. Сам процесс запускается вручную через стандартную панель администрирования. Оптимизацию рекомендуется делать раз в месяц. При большой посещаемости можно делать два раза в месяц.
Следующий шаг породил для меня проблему выбора. Начну с постановки задачи. Требовалось оптимизировать PHP код так, что бы процессы компиляции сократить до минимума. Помочь в этом могут и . Скажу честно, я не стал искать отличий между ними. И тот и другой проект нормально развиваются и имеет достаточное количество пользователей. Но первого не оказалось в репозитариях моего Debian. А вот APC там оказался. И с установкой не пришлось особо возиться:
apt-get install php-apc
Теперь проверим его на работоспособность. Для этого создается файл в родительском каталоге сайта:
touch /srv/www/snupt.com/info.php
И заполняется несложным содержимым:
<?php
phpinfo();
?>
Перезапускам apache и смотрим страничку http://snupt.com/info.php. Как видно на моем примере, плагин успешно установлен и функционирует.
Что касается серверной части движка, то можно еще сильно ускорить его. Для этого можно применить кеширование динамически выполняемых страниц в статические html файлы. Хорошие результаты можно получить воспользовавшись распространенным плагином . Он имеет массу настроек, но глубоко внедряться в их описание я не буду. Так же, следует предупредить, что у этого решения есть свои минусы. Основной, на мой взгляд, заключается в том, что некоторые динамически страницы не будут обновляться так быстро, как хотелось бы. Во-вторых, поговаривают что он создает непряности при работе с рядом плагинов. А в третьих, вам станет невозможно учитывать статистику посещений через встроенные в движок счетчики. Хотя я сам не ручаюсь за достоверность этой информации. Не проверял. У меня этот плагин стоит, но включать его я не стал. Хотя все блогеры с большой аудиторией, скорее всего, его используют.
Теперь про клиентскую часть. Тут я сильно напрягаться не стал, а лишь установил плагин , целью которого является минимизировать и сжимать CSS-файлы. Надеюсь, он с этим справляется. Пробовал ставить еще приложение в виде отдельного плагина к движку. Но лично на меня он впечатления не произвел. Мало того, что моя фото галерея стала работать криво, так еще и тормознутости добавилось. Такое вот мое субъективное мнение.
Почитав комментарии к статьям в интернете, я осознал, что проделанная мною работа по сути мелочи. Какой-то значительной оптимизации я не добился, но считаю что время потратил не зря. Многие эксперты этого дела советуют переводить WordPress с веб-сервера на . И в принципе я с ними согласен. Но делать этого пока не буду. Во-первых, не хочу трогать то, что работает нормально. Во-вторых, я уже устал от всякого рода танцев с бубном. Если есть чем дополнить статью и/или любого рода критика — оставляйте комментарии.
P.S. Кому интересно померятся письками, то есть ресурс который может сравнить общую скорость загрузки двух сайтов и показать результат. Найти его можно по адресу .



Обновил статью. До этого забыл упомянуть про плагин Optimize DB.
Еще полезно все метатеги сделать динамическими, чтобы блог каждый раз не обращался к базе. Хорошо помогает)
Также можно в wp-includes/functions.php
В строке можно добавить return true;
function is_blog_installed() {
return true;
global $wpdb;
Это для того, чтобы вордпресс постоянно не проверял, установлен ли блог.
Также можно оптимизировать базу данных через Phpmyadmin.
+ Wp-optimize хороший плагин. Чистит базу, релизы записей, спам и тд и тп.
Я почему то не могу установить WP-super-cache. Версия 2,6,5. Почему то блог начинает выдавать 500 ошибку. Видимо я в .htaccess не то ввел
Спасибо за рекомендации. Пошукаю на досуге.
Ой точнее метатеги из динамики сделать статику. Попутал немного
Поставил еще бесплатную версию Web Optimizer. С включенными опциями «Minify and combine CSS files» и «Cache CSS» сильно корежил дизайн. Пришлось их отключить. Знаю, такое решение не путь джедаев, но возиться откровенно лень. В остальном все по-умолчанию.
Надо все это, сделать, посмотрим, будет ли быстрее блог загружаться.