8 сентября 2011 г.

Оптимизация популярных движков

Каким бы ни был качественным движок (CMS), платный или бесплатный, он нуждается в серьезной оптимизации. Речь идет, конечно, о качественных сайтах для людей, для которых важно удобство, скорость работы, и которые продвигаются по запросам в поисковых системах.
Под оптимизацией подразумеваются две вещи:
- оптимизация с целью уменьшения нагрузки на сервер при высокой посещаемости; увы, код большинства движков далек от идеала и создает большую нагрузку, если его не дорабатывать.
- оптимизация с целью упростить продвижение в топ поисковых систем; с этим проще – большая часть cms имеет встроенные инструменты для поисковой оптимизации.


WordPress
Пожалуй, самая популярная cms среди новичков. Изначально предназначенная для создания блогов, она давно вышла за рамки блогового движка; на ее основе можно сделать как домашнюю страничку, так и большой интернет-магазин. Устанавливается в пару кликов, настройки интуитивно понятны, для нее существует множество плагинов и шаблонов. Но у нее есть главный недостаток – при существенной посещаемости сайта Вордпресс создает большую нагрузку на сервер, и из-за этого многие хостеры могут блокировать сайты или предлагать перейти на более дорогой тарифный план с большей допустимой нагрузкой.
Многие вебмастера сразу начинают устанавливать кучи плагинов, которые на первый взгляд кажутся удобными. Не стоит так делать. Безжалостно удаляйте (не просто деактивируйте) все лишнее. Нужно оставить только самое необходимое. А для оптимизации установите какой-либо кеширующий плагин - DB Cache Reloaded, WP Super Cache и т. п.
В идеале, большую часть плагинов можно заменить собственным "чистым" и легким кодом, однако для этого нужны хорошие знания php или опытный программист под рукой. Если пользуетесь советами блоггеров, обязательно делайте резервные копии редактируемых файлов; далеко не все рекомендации адекватны и работоспособны.
Следует также обратить внимание на шаблоны – зачастую в красивых шаблонах код бывает кривой, и, естественно, это тоже может вызвать тормоза, да и более серьезные проблемы. Не гонитесь за внешними красивостями. Код шаблона можно и нужно почистить от лишнего php-кода. Нет смысла вызывать функцию там, где можно напрямую прописать нужный текст или значение.
Нужно отключить автоматические проверки обновления движка и плагинов (wp-includes/update.php). Толку от них мало, а нагрузку создают приличную.
База данных также требует оптимизации. Для начала это можно сделать прямо в phpmyadmin. Также нужно установить какой-либо плагин для оптимизации, например, WP-Optimize.
SEO сайта на Вордпресс следует начать с ЧПУ. Урлы должны быть не стандартные, а содержащие заголовок страницы. Это и визуально будет красивее, и для поисковых систем эффективнее. Самый популярный плагин для оптимизации - All in One SEO Pack. В нем можно указать ключевые слова и формат заголовка для страниц блога, в частности.
Во избежание санкций со стороны яндекса нужно (в этом же плагине) закрыть от индексации ссылки на категории, теги, архивы и т. п. Это поможет избежать дублирования контента. Не будем обсуждать бредовость политики яндекса в этом отношении, но сделать это необходимо.
Для лучшего и регулярного индексирования сайта нужно создать карту сайта (плагины Sitemap Generator, Google (XML) Sitemaps).



DLE (DataLife Engine)
DLE – относительно легкий движок, но и его производительность нужно оптимизировать. Самый первый шаг – включение кеширования (права 777 на папку /engine/cache/). Это позволить минимизировать обращение движка к базе данных. Можно отключить счетчик просмотра новостей и рейтинг статей – информативность их под вопросом, а вот нагрузку на базу данных они создают существенную. В админпанели есть функция "Оптимизация базы данных" - используйте ее, но предварительно создавайте резервную копию базы.
Как и в случае с Вордпрессом, старайтесь поменьше использовать сторонних модулей – их код может быть не оптимальным, и они будут создавать лишнюю нагрузку на сервер. Уберите календарь – кроме красоты в нем нет ничего полезного. Включать Gzip-сжатие или нет – на выбор вебмастера. Когда оно включено, нагрузка на сервер увеличивается, зато уменьшается трафик.
Код шаблона, особенно если он бесплатный, следует внимательно просмотреть на предмет лишних ссылок, в том числе и скрытых. Можно удалить лишние "спецэффекты" и скрипты. Стандартный поиск по сайту можно заменить поиском от Google. Это и нагрузку снизит, и улучшит качество поиска.
DLE удобен для создания сателлитов под ссылочные биржи – в нем одним движением руки можно создать большое количество страниц второго уровня (нумерация страниц). Для серьезного сайта 500 номеров страниц внизу не нужно, конечно же.
Первый шаг в SEO сайта на DLE – дополнение стандартного файла robots.txt. В нем нужно закрыть от индексации страницы с новостями (page), статистику, служебные страницы, теги и т. п. В <noindex> закрыть стандартные повторяющиеся на каждой странице блоки. Естественно, нужно включить ЧПУ.
Для оптимальной перелинковки можно использовать модуль "Похожие новости" - к каждой записи внизу будет добавлено несколько ссылок на схожие новости.
Существует модуль DLE SEO Pack для удобной оптимизации сайта. В нем можно гибко настраивать вид заголовков, запрещать или разрешать индексацию определенных типов страниц и т. п. Хороший вариант для тех, кто не любит ручной работы или просто не разбирается в коде. Не стоит забывать о том, что никакие модули на 1005 не заменят ручной труд профессионального программиста или оптимзатора.


Joomla
Сложный для освоения и тяжелый движок, при этом обладает очень большой функциональностью и масштабируемостью. Конечно, и тут не обойтись без "обработки напильником".
Как и с любым другим движком, начать нужно с включения кеширования. Общее кеширование включается в "Сайт – Общие настройки – Система – Установки кэша". Также многие модули и компоненты имеют собственные настройки кеширования, как на уровне сервера, так и в браузере пользователя.
Также стоит отключить все лишние расширения – компоненты, модули и т. п. Оставить самое необходимое, да и то, может, стоит поискать более легкие варианты с чистым кодом. ЧПУ нужно создавать встроенным инструментом Joomla – сторонние компоненты зачастую создают ненужную нагрузку. Впрочем, стоит проверить самостоятельно.
Почему-то во многих статья написано, что gzip-сжатие уменьшает нагрузку на сервер. На самом деле оно ее только увеличивает, так что будьте внимательны. Также неверным считаю совет про установку задержки (таймаута) для поисковых роботов – это может привести к проблемам с индексацией сайта. Снижения нагрузки от посещений роботами можно достичь, закрыв от индексации в robots.txt все служебные страницы, профили, поиск по сайту и т. п.
Для каждой статьи сайта можно и нужно прописать свои заголовок (title), ключевые слова (keywords) и описание (description). Нужно сделать, чтобы заголовок статьи был включен в тег <h1>. Для этого в файле components/com_content/content.html.php код <?php echo $row->title;?> нужно заключить в этот тег.
Сразу же надо включить ЧПУ (раздел “Search Engines Optimization”) и переименовать файл htaccess.txt в .htaccess.
Внутренняя перелинковка сайта на Joomla осуществляется встроенным модулем "Похожие материалы". Похожие статьи выводятся исходя из прописанных вручную ключевых слов, так что не забывайте их прописывать для каждого добавленного материала.
Карту сайта создать необходимо. Для этого можно использовать компонент Xmap. Полученную карту для лучшей индексации сайта нужно добавить в панели вебмастера Яндекса и Гугла.

Drupal
В Drupal есть несколько уровней кеширования; для значительного уменьшения нагрузки нужно использовать самый агрессивный метод, однако это может привести к несовместимости с некоторыми плагинами. Суть кеширования сводится к тому, что неавторизованным пользователям отдается страница из кэша, а обращение к базе идет лишь тогда, когда страница обновится. Подобное кэширование не работает для зарегистрированных пользователей. Также нужно включить кеширование блоков, оно распространяется и на авторизованных посетителей. Можно использовать также сторонние модули для кеширования, которые для хранения данных могут использовать не базу данных, а файлы. В этом же разделе (admin/settings/performance) нужно включить объединение css- и js-файлов с целью уменьшения количества http-запросов. Нужно следить, чтобы все стили и скрипты были вынесены в отдельные файлы.
Слабое место в Drupal – внутренняя система поиска, которая, особенно при составлении индекса, создает большую нагрузку на сервер. Выход – заменить встроенный поиск поиском от Гугла или Яндекса. Если у вас выделенный сервер с большими объемами данных, можно использовать Sphinx – высокопроизводительный модуль поиска.
Также можно заменить в шаблонах постоянные функции фиксированными значениями, это уменьшит число обращений к базе данных. Грубо говоря, все, что можно сделать вручную в коде, так и следует делать, не прибегая к дополнительным модулям. Нужно уменьшить время хранения пользовательских сеансов, количество хранящихся в базе данных отчетов (системный журнал).
При установке модулей для формирования ЧПУ необходимо установить модуль для редиректа, чтобы не было страниц, доступных одновременно по нескольким адресам.
Можно использовать модуль Seo Checklist для детального сео-анализа сайта, установки других модулей из области оптимизации и т. п. Необходимо активировать стандартный модуль Path для возможности использования ключевых слов в адресах страниц.

vBulletin
Пожалуй, самый мощный и один из самых популярных форумных движков. Под него есть множество дополнений, он очень функционален – и при этом является довольно тяжеловесным.
Первый шаг оптимизации – снижение нагрузки на базу данных путем изменения места хранения для вложений, стилей и прочих файлов. Их нужно переместить из базы в папки на сервере. В админке Вложения - Место хранения вложений - Перемещение из базы данных, указать путь к папке, где они будут храниться. После выполнения переноса следует оптимизировать (через phpmyadmin) таблицу attachment.
Отключите Gzip. Это существенно снизит нагрузку. Гостям следует отключить возможность пользоваться поиском. Ну, или можно просто заменить стандартный поиск поисковыми средствами от Гугла или Яндекса.
Можно использовать дополнение vB Optimise. Оно позволяет гибко настраивать кеширование всего, чего только можно, без необходимости правок кода.
Все служебные участки кода можно закрыть в <noindex> и добавить к ним атрибут nofollow - ссылки на соц. закладки, присутствующих пользователей, элементы навигации в "подвале" и т. п.
В robots.txt необходимо закрыть все лишнее – профили, служебные страницы, поиск по форуму, папки с вложениями и изображениями и т. п.
phpBB
Популярный бесплатный форумный движок. Обладает не самым оптимальным кодов и большим количеством дыр в безопасности.
Для оптимизации создаваемой нагрузки в админпанели форума есть соответствующий раздел, где можно уменьшать или увеличивать функциональность форума и, соответственно, регулировать нагрузку.
Известной проблемой в phpBB является аномально высокая нагрузка при сканировании поисковыми роботами. Это исправляется закрытием для индексации всего лишнего, а также установкой задержки для роботов.
Все стили css нужно вынести в отдельные файлы – они будут кешироваться на компьютерах посетителей, и скорость загрузки страниц возрастет.
Обязательно нужно отключить сессии! Например, использовав дополнение Guest Sessions Mod. Включенные сессии приведут к появлению множества дублей страниц и, как следствие, к санкциям поисковиков.
Search Engine Optimization MOD – удобное дополнение для комплексной оптимизации форума под поисковые системы.


Комментариев нет:

Отправить комментарий