Zend Framework SEO

// Сентябрь 19th, 2011 // SEO, Zend Framework

В этом посте я не буду «палить темы», а расскажу о нюансах, которые следует не забыть при создании веб-приложения на Zend Framework и его оптимизации для поисковых систем.

ЧПУ или ЧеловекоПонятные Урлы

Адреса на сайте должны быть понятны человеку, т.е. даже в том случае если пользователь ещё не зашел на ваш сайт, аолько видит ссылку на него в поисковой выдаче, сразу должно быть ясно, на какой раздел сайта она ведёт.

 

Также это очень здорово упрощает навигацию по сайту, т.к. пользователь может предугадать адрес страницы, и работать с адресной строкой сайта.

Дубли страниц

Это ещё одна большая проблема. Дубли — это страницы с одинаковым контентом (или ну очень похожим), доступным по разным ссылкам. Особенность маршрутизации Zend Framework состоит в том, что для одного и того же маршрута возможно создание нескольких таких страниц. Например, при использовании страничной навигации (пейджера или пагинатора):

$router->addRoute(
    'show_objects',
       new ZendExtra_Controller_Router_Route(
       '/objects/:page_number',
          array(
            'module' => 'mymodule',
            'controller' => 'objects',
            'action' => 'show',
            'page_number' => 1
          )
       )
 );

Таким образом при использовании url-helper’а для этого маршрута могут сформироваться несколько ссылок:

http://site.ru/objects
http://site.ru/objects/
http://site.ru/objects/1

А контент страницы на ней будет один и тот же. Таким образом вес каждой страницы уменьшается.

Политика в отношении слешей

Важно сразу определиться, будут ли слеши в конце адреса или нет. Или веб-приложение будет выдавать адреса в «старом стиле»: http://site.ru/objects/objectid.html

Редиректы и HTTP коды возврата

Важно возвращать правильный код клиенту и поисковому роботу. Если нет объекта, он удалён, или находится на модерации то надо возвращать HTTP код 404. Это необходимо для удаления из кэша поисковиков ссылки на такие объекты. Для валидной страницы отдавать код 200. Желательно не использовать редиректы, а те страницы, на которых редирект необходим закрывать от поисковиков через robots.txt

Robots.txt

Как правило веб-приложение запускается в нескольких режимах (промышленном — production, тестовом — test, локальном — development). Очень важно сделать так, чтобы тестовый сервер, если он есть и публично доступен (что тоже неочень хорошо) был бы закрыт от поисковиков. Раз есть необходимость генерировать файл robots.txt  на основе данных среды, то можно написать простенький генератор, который будет возвращать содержимое этого файла при запросе http://site.ru/robots.txt

Сайт с www и без

До сих пор многие указывают www. при наборе адреса, хотя это и не обязательно. Соответственно получается зеркало сайта site.ru на www.site.ru и…. правильно дубли страниц site.ru/page и www.site.ru/page

Для этого сайт с www либо выключаем вообще, либо делаем зеркалом, чтобы не терять клиентов. Об этом я уже писал в своей статье «Правильное зеркалирование сайта«. Если коротко, то надо добавить в конфиг nginx следующие строки:

if ($host = 'www.your_domain.com' ) {
    rewrite  ^/(.*)$  http://your_domain.com/$1  permanent;
 }

А в robots.txt дописать имя главного зеркала сайта:

Host: your_domain.com

Блоки с контентом на сайте

На страницах ZF сайта часто можно увидеть один и тот же контент. Очень часто это общий контент, который присутствует на многих страницах и не имеет непосредственного отношения к конкретной странице. Такой контент лучше всего отдавать не сразу, аз апрашивать через Ajax. оисковые роботы не умеют (пока) интерпретировать JavaScript и такой блок будет скрыт от них.

Внутренняя перелинковка

Внутренняя перелинковка очень важна, и режде чем её делать надо чтобы была единая точка генерации ссылок. В Zend Farmework такая точка — это URL helper. Если вы ещё не используете его в своём проекте — то самое время начать :-) Получается простая формула: Маршруты+URL Helper = ссылки

Карта сайта

Для ZF насколко я знаю существуют подходы, позволяющие делать карту сайта на основе объекта Zend_Navigation, но это несколко не то. Это карат для пользователя, а нам необходима карат для поисковика. По поводу этого я недавно писал статью «Карта сайта для поисковиков (Sitemap) в Zend Framework приложении«. И там тоже не всё так просто.

Вообще, если строить приложение по грамотной архитектуре то и продвигать его будет гораздо проще чем наспех написанный сайт с диким количеством спагетти-кода. Так что удачи вам в веб-разработке, поисковой оптимизации и продвижении! Если вы знаете ещё какие-нибудь особенности ZF SEO, велкам в комменты :-)

Share

Спасибо!


Если вам помогла статья, или вы хотите поддержать мои исследования и блог - вот лучший способ сделать это:


3 Responses to “Zend Framework SEO”

  1. Так как же все таки избавится от дублей страниц?

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