Бортовой журнал Ктулху

Поисковая оптимизация Joomla

Никогда раньше особо не задумывался о продвижении своего сайта, но тут пришлось. Как оказалось, в этом плане Joomla - не такой уж и хороший движок, без напильника не обойтись. Но, поискав некоторе время информацию, вывел для себя несколько основных правил.

 

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

В Joomle с этим даже не беда, а настоящая катастрофа. Изначально присутствуют ссылки типа http://khtulhu.org.ua/index.php?option=com_content&view=article&id=178, но они не очень красиво смотрятся и плохи для SEO, хотя, если хочется жить спокойно и не беспокоиться о позиции в поисковых стстемах, можно и так оставить.

Для реализации ЧПУ в Joomla есть встроенные средства.

Настройки ЧПУ Joomla 2.5

Ссылки преобразуются в такой вид: http://khtulhu.org.ua/veb-programmirovanie/178-forma-dobavleniya-elementov-na-modx.html

Но остается два неприятных бага: если убрать .html и/или  поставить "/" (слеш, без кавычек) в конце, ссылка все равно работает. В итоге имеется целых три дубля страницы.

Для удаления дублей есть целый комплекс мер.

В .htaccess добавляем следующее:

1. Удаление завершающего слеша.

RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]

2. Убрать index.php на главной странице

Redirect 301 http://khtulhu.org.ua/index.php http://khtulhu.org.ua/<a href="http://khtulhu.org.ua/"> </a>

3. Все ссылки должны заканчикаться .html

RewriteCond %{REQUEST_URI} !^(.+)\.(html|php)$
 RewriteRule . %{REQUEST_URI}.html [R=301,L]

 

Убрать index.php из ссылки 

Продолжение истории с дублями. В Joomla работают ссылки типа http://khtulhu.org.ua/blog/183-rosetta-i-kometa-churyumova-gerasimenko.html и  http://khtulhu.org.ua/index.php/blog/183-rosetta-i-kometa-churyumova-gerasimenko.html 

Это недоразумение тоже нужно исправить.

# remove index.php from url
RewriteCond %{REQUEST_URI} ^/index\.php/
RewriteRule ^index.php/(.*) /$1 [R,L]

Индексация

Для быстрого оповещения Яндекса о новых статьях есть такой сервис Yandex.pinger. Это удобно, но он доставляет некоторые неудобства.

Не нашел и не придумал как это автоматизировать, поэтому будет очень много ручной работы. Дело в том, что  Yandex.pinger генерит ссылки типа index.php?option=com_content&view=article&id=178, поэтому на каждую такую ссылку в .htaccess я пишу перенаправление на правильную с ЧПУ.

Небольшое отступление.

В .htaccess есть простой способ сделать 301 Redirect

Redirect 301 http://oldsite.ru/blabla.html http://newsite.ru/blabla.html

Но в случае с Joomla проблема кроется в вопросительных знаках в ссылке, которые не обрабатываются сервером.

RewriteCond %{QUERY_STRING} ^option=com_content&view=article&id=178$
RewriteRule ^index.php$ http://khtulhu.org.ua/index.php/veb-programmirovanie/178-forma-dobavleniya-elementov-na-modx.html? [R=301,L]

(http://izgoba.com/11510.html)

Если будет какое-то решение этой проблемы, опишу в соответствующей статье.

 

Файл robots.txt

Интересное решение в борьбе с дублями нашел тут.

Что бы исключить индексацию страниц с вопросительным знаком в url, в robots.txt добавляем строчку

Disallow: /*?

Разное

Не имеет к оптимизации отношения, но принудительно исправляет путь к изображениям.

В файле .htaccess

RewriteRule ^.*/images/(.*)$ http://%{HTTP_HOST}/images/$1 [L,R=301]

 

Полезная статья на Хабре http://habrahabr.ru/post/141424/