Разбор примеров файла robots.txt для сайтов на CMS Joomla: создание правил для исключения индексации страниц в зависимости от установленных компонентов и общих особенностей структуры URL-адресов в Joomla.
Содержание
Современные CMS по умолчанию предусматривают наличие файла robots.txt в корне сайта, в том числе и Joomla. Рассмотрим стандартные примеры файлов robots.txt для Joomla разных версий, а также разберем варианты их оптимизации в зависимости от необходимости.
Пример robots.txt для Joomla 3
Прогресс не стоит на месте, и Joomla 3-й серии не исключение. Относительно версии 2.5, Joomla 3 отличается улучшенным функционалом, в том числе в отношении SEO. В частности это касается файла robots.txt: его не придется переименовывать, опасаясь, что файл «обнулится» при обновлении CMS, к тому же в файле исправлены «косяки», которые наблюдались в robots.txt для Joomla 2.5 по умолчанию.
Запрет индексирования системных каталогов
Файл robots.txt в Joomla 3 по умолчанию содержит исключающие правила почти для всех системных каталогов CMS:
User-agent: * Disallow: /administrator/ Disallow: /bin/ Disallow: /cache/ Disallow: /cli/ Disallow: /components/ Disallow: /includes/ Disallow: /installation/ Disallow: /language/ Disallow: /layouts/ Disallow: /libraries/ Disallow: /logs/ Disallow: /modules/ Disallow: /plugins/ Disallow: /tmp/
Можно заметить, что в коде нет исключающего правила для каталога /media
. Учитывая, что содержание данного каталога практически не соответствует его названию (в основном он содержит системные файлы с серверным кодом для отдельных элементов Joomla), рекомендуем всё же добавлять для него исключение:
Disallow: /media/
Запрет индексирования системных дублей
Дубли страниц компонента контента Joomla 3 генерируются сами собой. Рассмотрим пример:
Категория uncategorised
применяется для материалов Joomla, не определённых в категорию. Допустим, материал с алиасом about
закреплен за пунктом меню с алиасом about
. В результате материал about
будет доступен по двум URL-адресам:
- /about,
- /uncategorised/about +id материала.
Не углубляясь в подробности процесса генерации дублей в Joomla, следует добавить в robots.txt инструкции, ограждающие поисковых роботов от них:
Disallow: /uncategorised/ # дубли материалов без категорий Disallow: /component/ # дубли и ненужные страницы различных компонентов Disallow: /*print= # версии для печати Disallow: /*index.php # дубли с index.php Disallow: /*=feed # фиды RSS и Atom Disallow: /*?tp=1 # дубли с отображением позиций для модулей
Запрет страниц пагинации
Следует отметить, что разбиения материалов на отдельные страницы лучше избегать: в индексе должна быть первая страница материала, но преградив доступ к страницам пагинации через robots.txt, роботы не станут их сканировать и учитывать при определении релевантности. Если всё же будет необходимость для исключения страниц пагинации от сканирования и индексирования, то можно воспользоваться следующими директивами:
Disallow: /*start= Disallow: /*showall=
Иногда имеет смысл исключать любые страницы с параметрами в URL-адресах, в том числе:
- страницы пагинации,
- фиды RSS и Atom,
- страницы для печати.
Делается это с помощью одной директивы:
Disallow: /*?
Если к каким-то страницам, содержащим параметры в URL, потребуется открыть доступ для роботов, то можно добавить исключение. Например:
Allow: /index.php?option=com_xmap&view=xml&tmpl=component&id=1 # для отдельной страницы Allow: /*=com_xmap # для всех страниц с параметром
Оптимизированный robots.txt для Joomla 3
Обобщим все приведённые выше доводы и соберём их к одному виду. robots.txt со следующим списком директив подойдёт для большинства сайтов на CMS Joomla 3:
User-agent: * Disallow: /administrator/ Disallow: /bin/ Disallow: /cache/ Disallow: /cli/ Disallow: /components/ Disallow: /includes/ Disallow: /installation/ Disallow: /language/ Disallow: /layouts/ Disallow: /libraries/ Disallow: /logs/ Disallow: /modules/ Disallow: /plugins/ Disallow: /tmp/ Disallow: /media/ Disallow: /uncategorised/ Disallow: /component/ Disallow: /*print= Disallow: /*index.php Disallow: /*=feed Disallow: /*?tp=1
Указанные правила robots.txt также актуальны для сайтов на Joomla 2.5.
Пример robots.txt для Joomshopping
Рассмотрим пример, как следует оптимизировать файл robots.txt для интернет-магазина, построенного на CMS Joomla с использованием компонента электронной коммерции JoomShopping.
Запрет индексирования страниц компонента
Интернет-магазины на «голом» (без сторонних расширений) JoomShopping, как правило, имеют:
- страницу виртуальной корзины URL-префикс по умолчанию: /cart/
- страницы оформления заказа URL-префикс по умолчанию: /checkout/
- страницы профиля клиента URL-префикс по умолчанию: /user/
- страницу поиска по сайту URL-префикс по умолчанию: /search/
Все эти страницы не нужны в индексной базе поисковых систем, поэтому их следует исключить через robots.txt.
URL-префиксы для данных страниц можно кастомизировать через алиасы, создавая пункты меню. Если этого не делать, то для их исключения достаточно добавить в robots.txt следующие строки:
Disallow: */cart/ Disallow: */checkout/ Disallow: */user/ Disallow: */search/
Следует отметить, что вариант с директивами без слеша в конце:
Disallow: */cart Disallow: */checkout Disallow: */user Disallow: */searchможет запретить индексирование страниц, которые в этом не будут нуждаться. Например, могут появиться страницы
/carts
или /articles/user-catalog
, которые будут попадать под правила запрета индексирования. Поэтому следует использовать более конкретные директивны.
Запрет индексирования дублей
Если при создании товаров и категорий JoomShopping не вводить алиас, то они будут иметь URL-префикс /product/view
для товаров и /category/view
для категорий. Даже если не забывать вводить алиас, все товары и категории всё равно будут иметь свои дубли с указанными префиксами. Для того, чтобы исключить попадание дублей данных страниц в индекс, необходимо добавить в robots.txt исключающие директивы для указанных URL-префиксов:
Disallow: */product/ Disallow: */category/
Индексирование изображений компонента
Компонент JoomShopping для хранения изображений использует не системный каталог /images
, размещенный в корне сайта, а свои каталоги из папки /components/com_jshopping/files
. Чтобы роботы индексировали изображения товаров и категорий, в robots.txt необходимо добавить разрешение для соответствующих каталогов:
Allow: /components/com_jshopping/files/img_products/ Allow: /components/com_jshopping/files/img_categories/
Оптимизированный robots.txt для JoomShopping
Добавив к правилам, созданным для компонента контента Joomla 3, директивы для компонента JoomShopping, получим следующий пример оптимизированного файла robots.txt, актуального для интернет-магазинов на Joomla:
User-agent: * Disallow: /administrator/ Disallow: /bin/ Disallow: /cache/ Disallow: /cli/ Disallow: /components/ Disallow: /includes/ Disallow: /installation/ Disallow: /language/ Disallow: /layouts/ Disallow: /libraries/ Disallow: /logs/ Disallow: /modules/ Disallow: /plugins/ Disallow: /tmp/ Disallow: /media/ Disallow: /uncategorised/ Disallow: /component/ Disallow: /*print= Disallow: /*index.php Disallow: /*=feed Disallow: /*?tp=1 Disallow: */basket/ Disallow: */checkout/ Disallow: */user/ Disallow: */search/ Disallow: */product/ Disallow: */category/ Allow: /components/com_jshopping/files/img_products/ Allow: /components/com_jshopping/files/img_categories/
Пример robots.txt для Joomla 2.5
Пакет Joomla 2.5.28 (последняя версия) содержит файл robots.txt
в формате .dist
. Необходимо удалить окончание .dist
, чтобы файл имел формат .txt
. Это сделано для того, чтобы файл не перезаписывался при обновлении CMS (это было актуально для Joomla 2.5).
Если не изменить формат файла, то сайт останется без robots.txt, т. е. поисковые роботы не получат инструкций по сканированию и индексированию файлов и каталогов сайта.
Файл robots.txt в Joomla 2.5 по умолчанию
После того, как файл robots.txt.dist
преобразуется в robots.txt
, можно открыть его в текстовом редакторе и увидеть следующее содержание:
User-agent: * Disallow: /administrator/ Disallow: /cache/ Disallow: /cli/ Disallow: /components/ Disallow: /images/ Disallow: /includes/ Disallow: /installation/ Disallow: /language/ Disallow: /libraries/ Disallow: /logs/ Disallow: /media/ Disallow: /modules/ Disallow: /plugins/ Disallow: /templates/ Disallow: /tmp/
Исключения для системных папок Joomla 2.5
Базовый файл содержит исключающие инструкции для абсолютно всех системных каталогов сайта, в том числе папки с изображениями и файлами шаблонов. Следует ли говорить, что в большинстве случаев роботам необходим доступ к изображениям для их индексации, а также к .css
и .js
файлам для оценки веб-страниц.
Чтобы файл был не столь воспрещающим, достаточно удалить соответствующие запреты, а именно строки:
Disallow: /images/ # каталог с изображениями Joomla Disallow: /templates/ # каталог с файлами шаблонов
Комментарии
вот это неправильно:
Disallow: /*/basket/
Disallow: /*/checkout/
правильно так:
Disallow: */cart/view*
Disallow: */cart/add?*
Disallow: */cart/delete?*
у Вас лишний слэш в начале и в конце.
то есть, вот это Яндекс тестер помечает как ок:
Disallow: /*/basket/
А если сделать так:
Disallow: */basket
То тогда индексация блокируется.
Но вы правы, чтобы исключить также и первый вариант ([домен]/basket/) нужно так:
Disallow: */basket/
Слэш в конце нужен, т. к. если его не поставить, то будет запрет на индексацию страниц, содержащих /basket, например [домен]/basketball, поэтому всегда будьте внимательны.
За комментарий спасибо, поправил в материале.