Joomla 3 и баг для SEO, или как вы можете убить видимость сайта, сами того не заметив

Joomla 3 — хорошая система управления контентом, удобная для создания корпоративных сайтов, визиток, новостных порталов или блогов. Правда ее портят некоторые нюансы. И одним из них является проблемы с SEO. Оптимизация движка для поисковых систем всегда вызывала нарекания — еще в версиях Джумлы 1.5, 1.7 были большие проблемы с дублями страниц, неправильным построением ЧПУ и много другого.

В Joomla 3 разработчики внедрили немало изменений (многие — действительно к лучшему): среди важных отмечу и появление тега canonical, и более «прямое» формирование человеко-понятных УРЛов, и гибкое управление основными тегами без использования сторонних плагинов (index/noindex, title, description, keywords — для всех пунктов меню или отдельных страниц данные теги управляются прямо в движке, без необходимости воротить целую гору плагинов поверх самого движка).

Сегодня же я хочу рассказать об одном интересном моменте, который может оказаться губительным для вашего ресурса если ваш сайт построен с такими-же условиями, как описано ниже. Итак, описываю проблему.

Имеем сайт на последней Джумле (3.0-3.3 — актуально), используется многоязычность, 2 языка — русский и украинский. Для корректной работы многоязычности на сайте должны быть включены плагины System — Language filter (Система — Фильтр языка) и System — Language Code (Система — Подмена кода языка)

screenshot_11

При таких настройках для основного языка — предположим, русского, языковая директория которого будет «ru» — языковая частица «ru» в урле удаляется, то есть ссылки на страницу будут такими: http://site.com/stranica.html. Для второго языка, предположим, укринского, языковая частица «ua» будет присутствовать в урле, таким образом адрес страницы будет таким — http://site.com/ua/storinka.html

При выборе языка для новых посетителей — «Настройки браузера» (сайт будет показан на том языке, предпочтение которому отдано в настройках браузера) — возникает описываемый баг. А баг заключается в следующем — все урлы в коде сайта и в ссылках в браузере будут без частицы «ru», но при парсинге страниц сканером Google (или Яндекс, ровно как и других поисковых систем) он будет парсить все ссылки с частицей «ru». Мало того, даже тег canonical будет с языковой директорией. И это в комплексе будет большим траблом. Проверить такое поведение сайта можно просто — выставив необходимые настройки, проверьте тег каноникал и ссылки сайта в коде браузера, а после запустите проверку сайта в Google Webmaster Tools или в валидаторе HTML, чтоб увидеть, как инструмент парсит ваш html-код:

joomla3-markup-validation-1024x556

При проверке в Валидаторе, убедитесь в том, что галочка «Show Source» активирована. Она отвечает за выдачу всего хтмл-кода. В нем вы и увидите ситуацию:

joomla3-validated-with-bug

Для того, чтоб избавиться от такого поведения движка, можно просто выставить настройки для языка для новых посетителей в «Язык сайта».