Файл robots.txt для Joomla

Разбор примеров файла robots.txt для сайтов на CMS Joomla: создание правил для исключения индексации страниц в зависимости от установленных компонентов и общих особенностей структуры URL-адресов в Joomla.

Файл robots.txt для 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-адресам:

  1. /about,
  2. /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/ # каталог с файлами шаблонов

Настройка директив для Joomla 2.5

Рассматриваемый выше пример robots.txt для Joomla 3 актуален для сайтов на Joomla 2.5.

Для более тонкой настройки robots.txt необходимо внимательно изучить его синтаксис.

Ссылки

Автор:
Категории: Joomla! CMS
Оцените материал:
5.0/5

Комментарии  

Danleri +4
Спасибо за понятное объяснение!
10.10.2020 12:57 Ответить
Anonym +2
Исправьте robots.txt для JoomShopping.
вот это неправильно:
Disallow: /*/basket/
Disallow: /*/checkout/

правильно так:
Disallow: */cart/view*
Disallow: */cart/add?*
Disallow: */cart/delete?*

у Вас лишний слэш в начале и в конце.
то есть, вот это Яндекс тестер помечает как ок:
Disallow: /*/basket/

А если сделать так:
Disallow: */basket
То тогда индексация блокируется.
10.12.2020 09:59 Ответить
Антон Майоров +1
Цитата:
Disallow: /*/basket/
В этом случае разрешается индексация [домен]/basket/, но запрещается [домен]/[что-нибудь]/basket/.

Но вы правы, чтобы исключить также и первый вариант ([домен]/basket/) нужно так:
Disallow: */basket/

Слэш в конце нужен, т. к. если его не поставить, то будет запрет на индексацию страниц, содержащих /basket, например [домен]/basketball, поэтому всегда будьте внимательны.

За комментарий спасибо, поправил в материале.
10.12.2020 17:17 Ответить

Добавить комментарий