Недавно редакция AIN.UA столкнулась с проблемами в работе сайта. Страницы загружались медленно, несколько дней подряд сайт “падал”. Украинские специалисты по серверам (к которым мы обращались после поисков на рынке) рекомендовали нам отказаться от “кривого” WordPress и скорее скрывали симптомы, чем устраняли проблему. После долгих поисков нам удалось познакомиться и успешно посотрудничать с программистом Константином Ковшениным, который специализируется на этой CMS. Более того – он принимает участие в ее разработке, развитии и популяризации. Мы не смогли не воспользоваться случаем и задали ему несколько вопросов про WordPress.
Большинство админов регулярно рассказывают нам, что WordPress – “кривая и тормознутая” CMS, которую нужно сменить на “нормальную”. Часто сталкиваешься с таким? Какие аргументы “за” приводишь?
Часто. Конечно, WordPress не является идеальным продуктом и ему безусловно есть куда расти, но на сегодняшний день WordPress – это почти 20% всех сайтов в мире. С такой популярностью сложно не иметь претензий со стороны пользователей и разработчиков.
Важно также учитывать, что WordPress обладает гибкой системой так называемых “хуков” и широким API, что позволяет разработчикам творить с самим движком практически всё что угодно, в том числе его “кривить и тормозить”. Ведь большинство проблем с WordPress случаются именно из-за некачественно написанных плагинов (расширений) и тем.
Можешь в общих словах рассказать, что ты сделал с нашим сайтом? И что вообще нужно делать и куда смотреть, когда сайт на WordPress начинает работать со странностями?
Основной причиной сбоев и тормозов WordPress являются, конечно же, плагины, поэтому к их выбору нужно относиться очень серьёзно, особенно когда речь идёт о средних и крупных проектах. Две недели назад главная страница сайта открывалась за 600 запросов в базу данных, при этом свежая и пустая установка WordPress делает это всего за 20-30. Пришлось отказаться от каких-то плагинов, а некоторые – подправить.
Так же для проектов с таким уровнем посещаемости немаловажным является правильное кэширование: поставить первый попавшийся плагин и забыть об этом, к сожалению, уже не сработает. Здесь нужен комплексный подход: кэширование байт-кода PHP, объектов в WordPress, страниц, запросов в базу данных. Подробнее об этом вы можете прочитать в моей статье “Основы кэширования в WordPress” и послушать в докладе с WordCamp Russia 2013.
Не стоит забывать и о настройке самих серверов: правильный подбор и настройка программных пакетов, грамотное распределение ресурсов между веб-сервером, обработчиками PHP, MySQL, хранилищами кэша и прочее. Также нужно научиться измерять результат, для чего есть масса бесплатных утилит, например ab и munin.
Если вы столкнулись со странностями при работе в WordPress или если он вдруг стал работать медленно, первым делом стоит смотреть в сторону плагинов. Отключите все плагины и включайте их по очереди, это поможет быстро выявить причину, и не забывайте, что причиной может быть и ваша активная тема. Если возможности ставить подобные эксперименты на живом сайте нет (например, если вы не хотите пугать ваших посетителей сменив тему на стандартную), то придётся работать непосредственно с кодом. Здесь вам помогут плагины серии Debug Bar, логи веб-сервера, PHP и MySQL, и внешние утилиты как Xdebug.
Ты говоришь, что нужно быть осторожными с плагинами. А как вообще понять, какой хороший, а от какого больше вреда? Например, нам ты посоветовал забыть навсегда про PHP-Exec, который в целом довольно популярный, т.е. рейтинг – не показатель?
Я думаю, это приходит с опытом и здесь важно учитывать много различных факторов. Количество скачиваний и рейтинги – это, конечно, хорошо, но они мало чего говорят о качестве, скорости и правильности исходного кода плагина.
Если говорить о самых частых проблемах, то стоит отметить неправильное использования HTTP API в WordPress, например напрямую через cURL, или без транзитного кэширования результата; неправильную работу с AJAX в WordPress, когда HTTP запрос приходит напрямую в файл плагина, а не admin-ajax.php; циклы с запросом на все записи, чтобы например посчитать количество “лайков” для каждой из них; неправильное использование планировщика задач в WordPress.
Эти проблемы не имеют никаких последствий для сайтов с небольшим количеством записей и с относительно низкой посещаемостью, поэтому люди ими пользуются, ставят высокие рейтинги и советуют друзьям, это нормально. Но как только увеличиваются посещаемость и объём данных, все эти проблемы всплывают наружу.
Плагин PHP-Exec довольно популярен, и он отлично подойдёт большинству пользователей WordPress. Им ведь не важно, что все сниппеты хранятся в базе данных, их загрузка происходит при каждом посещении для исполнения в статьях и виджетах, и что подобные сниппеты априори не могут быть закэшированы на уровне байт-кода. Альтернатива здесь довольно простая – создать специальные виджеты или шорткоды для исполнения требуемого кода в виде отдельного плагина для WordPress.
Заранее знать все проблемы со всеми плагинами невозможно – их ведь почти 30,000! Но грамотному специалисту не составит особого труда проанализировать код плагина и понять его слабые места.
Что можешь посоветовать тем, кто решил развивать свои проекты на WordPress, чтобы как можно меньше сталкиваться со сбоями и тормозами?
Три простых правила: Обновляйтесь вовремя и всегда. Не пользуйтесь дешёвым хостингом где “всё включено” за 5 копеек в год, хороший хостинг – это как хороший бензин для вашего автомобиля. Не пользуйтесь сомнительными темами и плагинами и старайтесь не ставить эксперименты на живом сайте.
В последнее время появляется все больше хостингов “заточенных под WordPress”. Что это значит? Стоит ли вообще с ними связываться?
По этому поводу я общался со многими хостинг-провайдерами как в России, так и за рубежом. Большинство в подобные слова ничего не закладывают, кроме возможности установить WordPress из панели управления хостингом, чем сегодня уже никого не удивишь. То есть на сегодняшний день это не более чем маркетинг.
Но есть и приятные исключения в области хостинга для WordPress, например, компания WP Engine – их инфраструктура целиком построена под WordPress. Они написали свои собственные модули для работы с объектным кэшем и кэшированием страниц в WordPress. Они автоматически проверяют файлы на вредоносный код при их загрузке. Они автоматически обновляют ваш сайт до последней, самой стабильной версии WordPress. Их служба технической поддержки никогда не скажет вам “это проблема в WordPress” – они всегда помогут разобраться, ведь они специалисты в этой области и даже сами участвуют в разработке и развитии проекта WordPress.
Подобные наработки есть у компаний DreamHost (которые недавно запустили платформу DreamPress), ZippyKid, Page.ly, и, если я не ошибаюсь, то в скором времени мы увидим нечто подобное от Bluehost (которые принимают активное участие в разработке ядра WordPress) и MediaTemple.
В Рунете, к сожалению, подобных компаний пока нет.
Стоит так же отметить проект WordPress.com VIP – это хостинг для крупных сайтов от компании Automattic. WordPress.com VIP построен на инфраструктуре сети WordPress.com, которая на сегодняшний день насчитывает более 50 миллионов сайтов. Цены на подобный хостинг начинаются от $4000 в месяц, а среди клиентов – такие крупные брэнды как TechCrunch, CNN, Time, NBC, Samsung, METRO.
А какой самый популярный русскоязычный сайт из работающих на WordPress?
Сложно сказать, так как WordPress в России пока не настолько популярен. Из последних крупных сайтов с которыми сталкивался пожалуй стоит выделить Блог Лаборатории Касперского, журнал Лайфхакер и портал Mail.ru API.
Расскажи, как вообще устроен “Мир WordPress”? Это бесплатная и очень популярная CMS. Кому она принадлежит и как они зарабатывают?
WordPress – это проект с открытым исходным кодом, он бесплатный и распространяется под свободной лицензией GNU GPL. Торговая марка WordPress принадлежит некоммерческому фонду WordPress Foundation в США, поэтому о заработке здесь речи быть не может.
В разработке и развитии WordPress может участвовать любой желающий, например, в версии 3.6 приняло участие более 200 дизайнеров и разработчиков. Большинство таких участников – волонтёры, но есть и те, чьё время оплачивает коммерческая компания. Хорошими примерами являются Audrey Capital, 10up, WooThemes, Bluehost, DreamHost, и, конечно же, Automattic.
Вокруг WordPress также проходят некоммерческие мероприятия при поддержки фонда. Они называются WordCamp, и в 2012 году более 60 таких конференций прошло по всему миру, а в августе 2013 года состоялся первый WordCamp в России.
А чем непосредственно ты занимаешься?
Последние два года я работаю программистом в упомянутой выше компании Automattic. Нас уже почти 200 человек и мы очень быстро растём. Я работаю в команде под названием Dot Org – мы помогаем развивать сам WordPress и ряд некоммерческих ресурсов вокруг него, в том числе WordPress.tv, WordCamp.org и сайт WordPress.org. В своё свободное время я разрабатываю бесплатные темы и плагины, а также веду онлайн журнал о WordPress – WP Magazine.
Связаться с Константином можно в Twitter и через электронную почту. Если у вас есть дополнительные вопросы по WordPress, можете задавать их в комментариях. Он постарается на них ответить.