Ускоряем блог на движке WordPress

Wordpress

Все наверное слышали о том, что блоги на базе движков 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

Возможно что перестарался, но благо памяти хватает и беспокоится не о чем. Этот параметр я тронул что бы ускорить работу сайта в момент многочисленных обращений к базе. Еще одно средство оптимизации базы данных называется Optimize DB. Ставится как обычный плагин для движка. Результатом его действия является оптимизация таблиц. Сам процесс запускается вручную через стандартную панель администрирования. Оптимизацию рекомендуется делать раз в месяц. При большой посещаемости можно делать два раза в месяц.

Следующий шаг породил для меня проблему выбора. Начну с постановки задачи. Требовалось оптимизировать PHP код так, что бы процессы компиляции сократить до минимума. Помочь в этом могут eAccelerator и APC. Скажу честно, я не стал искать отличий между ними. И тот и другой проект нормально развиваются и имеет достаточное количество пользователей. Но первого не оказалось в репозитариях моего Debian. А вот APC там оказался. И с установкой не пришлось особо возиться:

apt-get install php-apc

Теперь проверим его на работоспособность. Для этого создается файл в родительском каталоге сайта:

touch /srv/www/snupt.com/info.php

И заполняется несложным содержимым:

<?php
phpinfo();
?>

Перезапускам apache и смотрим страничку http://snupt.com/info.php. Как видно на моем примере, плагин успешно установлен и функционирует.

php-apc

Что касается серверной части движка, то можно еще сильно ускорить его. Для этого можно применить кеширование динамически выполняемых страниц в статические html файлы. Хорошие результаты можно получить воспользовавшись распространенным плагином WP-Super-Cache. Он имеет массу настроек, но глубоко внедряться в их описание я не буду. Так же, следует предупредить, что у этого решения есть свои минусы. Основной, на мой взгляд, заключается в том, что некоторые динамически страницы не будут обновляться так быстро, как хотелось бы. Во-вторых, поговаривают что он создает непряности при работе с рядом плагинов. А в третьих, вам станет невозможно учитывать статистику посещений через встроенные в движок счетчики. Хотя я сам не ручаюсь за достоверность этой информации. Не проверял. У меня этот плагин стоит, но включать его я не стал. Хотя все блогеры с большой аудиторией, скорее всего, его используют.

Теперь про клиентскую часть. Тут я сильно напрягаться не стал, а лишь установил плагин CSS Compress, целью которого является минимизировать и сжимать CSS-файлы. Надеюсь, он с этим справляется. Пробовал ставить еще приложение PHP Speedy в виде отдельного плагина к движку. Но лично на меня он впечатления не произвел. Мало того, что моя фото галерея стала работать криво, так еще и тормознутости добавилось. Такое вот мое субъективное мнение.

Почитав комментарии к статьям в интернете, я осознал, что проделанная мною работа по сути мелочи. Какой-то значительной оптимизации я не добился, но считаю что время потратил не зря. Многие эксперты этого дела советуют переводить WordPress  с веб-сервера Apache на nginx. И в принципе я с ними согласен. Но делать этого пока не буду. Во-первых, не хочу трогать то, что работает нормально. Во-вторых, я уже устал от всякого рода танцев с бубном. Если есть чем дополнить статью и/или любого рода критика — оставляйте комментарии.

P.S. Кому интересно померятся письками, то есть ресурс который может сравнить общую скорость загрузки двух сайтов и показать результат. Найти его можно по адресу http://www.webslug.info/.

Похожие статьи из моего блога:

Версия для печати Версия для печати

Комментарии

  1. Snupt сказал:

    Обновил статью. До этого забыл упомянуть про плагин Optimize DB.

  2. Еще полезно все метатеги сделать динамическими, чтобы блог каждый раз не обращался к базе. Хорошо помогает)

    Также можно в 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 не то ввел

  3. Snupt сказал:

    Спасибо за рекомендации. Пошукаю на досуге.

  4. Ой точнее метатеги из динамики сделать статику. Попутал немного

  5. Snupt сказал:

    Поставил еще бесплатную версию Web Optimizer. С включенными опциями «Minify and combine CSS files» и «Cache CSS» сильно корежил дизайн. Пришлось их отключить. Знаю, такое решение не путь джедаев, но возиться откровенно лень. В остальном все по-умолчанию.

  6. stalker_m6 сказал:

    Надо все это, сделать, посмотрим, будет ли быстрее блог загружаться.

Выскажите свое мнение

*