Сегодня будет гостевой пост:
Игорь Керимов
Эксперт по продвижению сайтов в социальных сетях.

Краткое руководство по оптимизации производительности WordPress под социальные сети типа DIGG

WordPress – один из самых распространенных движков для блога. Прост в настройке и инсталляции, удобен в использовании, легко расширяем за счет плагинов. Именно поэтому большинство standalone-блогов работают на нем. Однако, самый главный недостаток WordPress – это очевидные проблемы с производительностью даже при не самых солидных нагрузках, таких как высокая посещаемость на блоге (свыше нескольких тысяч уникальных посетителей в сутки) и, в особенности, его функционирование при внезапном наплыве большого числа пользователей на блог в одно время. Такой прирост пользователей может случиться, например, при цитировании некоторого поста на блоге другими сайтами с большой аудиторией посетителей, но особенно часто это происходит, когда один из постов на блоге выходит на главную страницу (достигает топа) социальных новостных сервисов типа DIGG. Хотелось бы заметить, что в случае достижении топа дигга WordPress не просто испытывает проблемы с производительностью, а совершенно намертво “встает” через 3-4 минуты топа.

Постараемся кратко познакомить с рекомендациями, чтобы предотвратить такие нежданные падения.

Для начала заглянем, что говорят на официальном сайте WordPress об этом. Как оказалось, там есть специальный раздел WordPress Optimization с весьма полезными ссылками на рекомендации по оптимизации WordPress. Но он далеко не полон. Перечислим здесь самые основные источники информации по нашему мнению, а затем резюмируем основные пункты наряду с дополнительными рекомендациями.

5 Golden Tips For WordPress Performance Optimization / Slashdot-Digg Protection 
How To Increase Your WordPress Site Performance (Without Losing Functionality) by 10 Times 
DiggProof your WordPress 
Guide To Optimizing WordPress Servers 
Compressing php output with wp-cache2 WordPress Plugin

Резюмируем основные моменты по оптимизации WordPress под топы социальных сетей:

1) Хостинг – выделенный сервер или VPS. Выделенному отдадим больше предпочтения.

2) Интернет-канал к хостингу – 100 мегабит. В некоторых случаях возможно использование 10-мегабитного канала (при минимальном использовании графики на сервере)

3) Подумайте о переносе картинок в наполненном графикой популярном посте на отдельный сервер или хостинг. Можно использовать мощности бесплатных сервисов – blogspot или flickr и разместить изображения там.

4) Оптимизация работы плагинов под WordPress. Для начала не стоит слишком злоупотреблять разнообразыми плагинами. Везде, где можно, пытаться использовать статическую имплементацию.

Пример: использования плагина similar posts. Если вы знаете, что некий определенный пост на блоге может заполучить топ в социальной сети, то лучше не использовать этот плагин, а частично эмулировать: прописать ссылки на similar posts (похожие посты) статически в HTML.

5) Установка кеш-плагина для WordPress – wp-cache 2.

6) Имеет смысл включить gzip компрессию (требование – не жесткое). Однако, при наличии работающего кеш-плагина встроенная компрессия работать не будет. Решение – использование Apache mod_deflate module.

7) Оптимизация работы с MySQL – один из самых важных пунктов. Включите кеширование запросов, увеличьте буфер и т.д – пропишите значения в файле настроке MySQL my.cnf так, как описано по ссылкам выше. Особенное внимание уделите параметру max_connections в файле my.cnf. Увеличьте его значение, иначе проблема “too many connections” настигнет вас очень быстро.

8 ) Можно использовать APC – тюнинг PHP. Увеличивает скорость работы PHP благодаря кешированию скомпилированных php-файлов WordPress. Альтернативным вариантом может выступить использование eAccelerator с PHP Zend Optimizer. В целом, этот пункт не выступает обязательным.

9) Небольшая оптимизация Apache (значение MaxClients в конфигурационном файле и другие). Также нестрогая рекомендация, но выброчно применять некоторые пункты вполне допустимо.

10) Имеет смысл отказаться от капчи в комментариях на момент ожидания большого потока посетителей. Здесь решение можно разнообазить, например, – использование упрощенной капчи (не графической).

11) И напоследок – неплохо иметь под рукой “священную кнопоку” “перезагрузить сервер”, если не один из пунктов не помогает или вы где-то допустили ошибку. Помните, во время топа в социальных сетях у вас есть в среднем лишь около 5-10 минут, чтобы решить внезапную проблему с загрузкой сайта; после этого времени модераторы социальных новостных сайтов обычно “снимают новость” с главной страницы.

При цитировании этого поста другими блоггерами и изданиями допускается ссылка на пост в этом блоге.

Похожие посты