Вебмастер может направить поисковых ботов на страницы, которые считает обязательными для индексирования, и скрыть те, которых в выдаче быть не должно. Для этого предназначен файл robots.txt. Команда сервиса для анализа сайта PR-CY составила гайд об этом файле: для чего он нужен, из каких команд состоит, как составить его по правилам и проверить.

Зачем нужен robots.txt

С помощью этого файла можно повлиять на поведение ботов Яндекса и Google. Файл robots.txt содержит указания для краулеров, предназначенных для индексирования сайта. Он состоит из списка команд, которые рекомендуют либо просканировать, либо пропустить конкретные страницы или целые разделы сайта. Если боты «прислушаются» к этим пожеланиям, то не будут посещать закрытые страницы или индексировать определенный тип контента.

Закрывают обычно дублирующие страницы, служебные, неинформативные, страницы с GET-параметрами или просто неважные для пользователей.

Зачем это нужно:

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

Как надежно закрыть страницу от ботов

Поисковики не воспринимают robots.txt как список жестких правил, это только рекомендации. Даже если в robots стоит запрет, страница может появиться в выдаче, если на нее ведет внешняя или внутренняя ссылка.

Страница, доступ к которой запретили только в robots.txt, может попасть в выдачу и будет выглядеть так:

Главная страница сайта в выдаче, но описание бот составить не смогГлавная страница сайта в выдаче, но описание бот составить не смог

Если вы точно не хотите, чтобы страница попала в индекс, недостаточно запретить сканирование в файле robots.txt. Один из вариантов, подходящий для служебных страниц, — запаролить ее. Бот не сможет просканировать содержимое страницы, если она доступна только пользователям, авторизованным через логин и пароль.

Если страницы нельзя закрыть паролем, но не хочется показывать их ботам, есть вариант применить директивы «noindex» и «nofollow». Для этого нужно добавить их в секцию <head> HTML-кода страницы:

<meta name="robots" content="noindex, nofollow"/>

Чтобы робот правильно интерпретировал «noindex» и «nofollow» и не добавил страницу в индекс, не закрывайте одновременно доступ к ней в файле robots.txt. Так бот не получит доступа к странице и не увидит запрещающих директив.

Требования поисковых систем к файлу robots.txt

Каким должен быть файл, как его оформить и куда размещать — в этом и Яндекс, и Google солидарны:

  • Формат — только txt.
  • Вес — не превышающий 32 КБ.
  • Название — строго строчными буквами «robots.txt». Никакие другие варианты, к примеру, с заглавной, боты не воспримут.
  • Наполнение — строго латиница. Все записи должны быть на латинице, включая адрес сайта: если он кириллический, его нужно переконвертировать в punycode. Например, после конвертации запись сайта «окна.рф» будет выглядеть как «xn--80atjc.xn--p1ai». Ее и нужно использовать в командах.
  • Исключение для предыдущего правила — комментарии вебмастера. Они могут быть на любом языке, поскольку специалист оставляет их для себя и коллег, а не для поисковых ботов. Для обозначения комментариев используют символ «#». Все, что указано после «#», роботы проигнорируют, поэтому следите, чтобы туда случайно не попали важные команды.
  • Количество файлов robots.txt — должен быть один общий файл на весь сайт вместе с поддоменами. 
  • Местоположение — корневой каталог. У поддоменов файл должен быть таким же, только разместить его нужно в корневом каталоге каждого поддомена.
  • Ссылка на файл — https://example.com/robots.txt (вместо https://example.com нужно указать адрес вашего сайта). 
  • Ссылка на robots.txt должна отдавать код ответа сервера 200 OK.

Подробные рекомендации для robots.txt от Яндекса читайте здесь, от Google — здесь.

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

Как правильно составить robots.txt

Файл состоит из списка команд (директив) с указанием страниц, на которые они распространяются, и адресатов — имён ботов, к которым команды относятся.

Директиву Clean-param воспринимают только боты Яндекса, а в остальном в 2021 году команды для ботов Google и Яндекса одинаковы.

Основные обозначения файла

User-agent — какой бот должен прореагировать на команду. После двоеточия указывают либо конкретного бота, либо обобщают всех с помощью символа *. 

Пример. User-agent: * — все существующие роботы, User-agent: Googlebot — только бот Google. 

Disallow — запрет сканирования. После косого слэша указывают, на что распространяется команда запрета.

Пример:

Disallow: /blog/page-2.html

Пустое поле в Disallow означает разрешение на сканирование всего сайта:

User-agent: *

Disallow:

А эта запись запрещает всем роботом сканировать весь сайт:

User-agent: *

Disallow: /

Если речь идет о новом сайте, проследите, чтобы в файле robots.txt не осталась эта запись, после того как разработчики выложат сайт на рабочий домен.

Эта запись разрешает сканирование боту Google, а всем остальным запрещает:

User-agent: Googlebot

Disallow:

User-agent: *

Disallow: /

Отдельно прописывать разрешения необязательно. Доступным считается всё, что вы не закрыли.

В записях важен закрывающий косой слэш, его наличие или отсутствие меняет смысл:

Disallow: /about/ — запись закрывает раздел «О нас», доступный по ссылке https://example.com/about/

Disallow: /about — закрывает все ссылки, которые начинаются с «/about», включая раздел https://example.com/about/, страницу https://example.com/about/company/ и другие.

Каждому запрету соответствует своя строка, нельзя перечислить несколько правил сразу. Вот неправильный вариант записи:

Disallow: /catalog/blog/photo/

Правильно оформить их раздельно, каждый с новой строки и своим Disallow:

Disallow: /catalog/

Disallow: /blog/

Disallow: /photo/



Allow означает разрешение сканирования, с помощью этой команды удобно прописывать исключения. Для примера запись запрещает всем ботам сканировать весь альбом, но делает исключение для одного фото:

User-agent: *

Allow: /album/photo1.html

Disallow: /album/

А вот и отдельная команда для Яндекса — Clean-param. Директиву используют, чтобы исключить дубли страниц, которые могут появляться из-за GET-параметров или UTM-меток. Clean-param распознают только боты Яндекса. Вместо нее можно использовать Disallow, эту команду понимают в том числе и гуглоботы. 

Допустим, на сайте есть страница page=1 и у нее могут быть такие параметры:

https://example.com/index.php?page=1&sid=2564126ebdec301c607e5df

https://example.com/index.php?page=1&sid=974017dcd170d6c4a5d76ae

Каждый образовавшийся адрес в индексе не нужен, достаточно, чтобы там была общая основная страница. В этом случае в robots нужно задать Clean-param и указать, что ссылки с дополнениями после «sid» в страницах на «/index.php» индексировать не нужно:

User-agent: Yandex

Disallow:

Clean-param: sid /index.php

Если параметров несколько, перечислите их через амперсанд:

Clean-param: sid&utm&ref /index.php

Строки не должны быть длиннее 500 символов. Такие длинные строки — редкость, но из-за перечисления параметров такое может случиться. Если указание получилось сложным и длинным, его можно разделить на несколько. Примеры найдете в Справке Яндекса.

Sitemap — ссылка на карту сайта. Если карты сайта нет, запись не нужна. Сама по себе карта не обязательна, но если сайт большой, то лучше ее создать и дать ссылку в robots, чтобы ботам было проще разобраться в структуре.

Sitemap: https://example.com/sitemap.xml

Обозначим также два важных спецсимвола, которые используются в robots:

* — предполагает любую последовательность символов после этого знака;

$ — указывает на то, что на этом элементе необходимо остановиться.

Пример. Такая запись:

Disallow: /catalog/category1$

запрещает роботу индексировать страницу site.com/catalog/category1, но не запрещает индексировать страницу site.com/catalog/category1/product1.

Лучше не заниматься сбором команд вручную, для этого есть сервисы, которые работают онлайн и бесплатно. Инструмент для генерации robots.txt бесплатно соберет нужные команды: открыть или закрыть сайт для ботов, указать путь к sitemap, настроить ограничение на посещение избранных страниц, установить задержку посещений.

Настройки файла в инструментеНастройки файла в инструменте

Есть и другие бесплатные генераторы файла, которые позволят быстро создать robots и избежать ошибок. У популярных движков есть плагины, с ними собирать файл еще проще. О них расскажем ниже.

Как проверить правильность robots.txt

После создания файла и добавления в корневой каталог будет не лишним проверить, видят ли его боты и нет ли ошибок в записи. У поисковых систем есть свои инструменты: 

  • Найти ошибки в заполнении robots — инструмент от Яндекса. Укажите сайт и введите содержимое файла в поле.
  • Проверить доступность для ботов — инструмент от Google. Введите ссылку на URL с вашим robots.txt.
  • Определить наличие файла robots.txt в корневом каталоге и доступность сайта для индексации — Анализ сайта от PR-CY. В сервисе есть еще 70+ тестов с проверкой SEO, технических параметров, ссылок и другого.

Фрагмент проверки сайта сервисом pr-cy.ru/analysisФрагмент проверки сайта сервисом pr-cy.ru/analysis

В «Важных событиях» отобразятся даты изменения файла.

Оповещения в интерфейсеОповещения в интерфейсе

Правильный robots.txt для разных CMS: примеры готового файла

Файл robots.txt находится в корневой папке сайта. Чтобы создать или редактировать его, нужно подключиться к сайту по FTP-доступу. Некоторые системы управления (например, Битрикс) предоставляют возможность редактировать файл в административной панели.

Посмотрим, какие возможности для редактирования файла есть в популярных CMS.

WordPress

У WP много бесплатных плагинов, которые формируют robots.txt. Эта опция предусмотрена в составе общих SEO-плагинов Yoast SEO и All in One SEO, но есть и отдельные, которые отвечают за создание и редактирование файла, например:

Пример robots.txt для контентного проекта на WordPress

Это вариант файла для блогов и других проектов без функции личного кабинета и корзины.

User-agent: *      # установили общие правила для роботов

Disallow: /cgi-bin      # закрыли системную папку, которая находится на хостинге

Disallow: /?      # обобщили все параметры запроса на главной странице сайта

Disallow: /wp—      # все специальные WordPress-файлы: /wp-json/, /wp-content/plugins, /wp-includes

Disallow: *?s=      # здесь и далее перечисление запросов поиска

Disallow: *&s=

Disallow: /search/

Disallow: */trackback      # закрыли трекбеки — уведомления о появлении ссылки на статью

Disallow: */feed      # новостные ленты полностью

Disallow: */rss      # rss-ленты 

Disallow: */embed      # все встраивания

Disallow: /xmlrpc.php      # файл API WP

Disallow: *utm*=      # все ссылки, у которых прописаны UTM-метки

Disallow: *openstat=      # все ссылки, у которых прописаны openstat-метки

Allow: */uploads      # открыли доступ к папке с файлами uploads

Allow: /*/*.js      # открыли доступ к js-скриптам внутри /wp-, уточнили /*/ для приоритета

Allow: /*/*.css      # доступ к css-файлам внутри /wp-, также уточнили /*/ для приоритета

Allow: /wp-*.png      # доступ к картинкам в плагинах, папке cache и других в формате png

Allow: /wp-*.jpg      # то же самое для формата jpg

Allow: /wp-*.jpeg      # для формата jpeg

Allow: /wp-*.gif      # и для анимаций в gif

Allow: /wp-admin/admin-ajax.php      # открыли доступ к этому файлу, чтобы не блокировать JS и CSS для плагинов

Sitemap: https://example.com/sitemap.xml      # указали ссылку на карту сайта (вместо https://example.com нужно подставить сой домен)

Пример robots.txt для интернет-магазина на WordPress

Похожий файл, но со спецификой интернет-магазина на платформе WooCommerce на базе WordPress. Закрываем то же самое, что в предыдущем примере, плюс страницу корзины, а также отдельные страницы добавления в корзину и оформления заказа пользователем.

User-agent: *

Disallow: /cgi-bin

Disallow: /?

Disallow: /wp-

Disallow: /wp/

Disallow: *?s=

Disallow: *&s=

Disallow: /search/

Disallow: */trackback

Disallow: */feed

Disallow: */rss

Disallow: */embed

Disallow: /xmlrpc.php

Disallow: *utm*=

Disallow: *openstat=

Disallow: /cart/

Disallow: /checkout/

Disallow: /*add-to-cart=*

Allow: */uploads

Allow: /*/*.js

Allow: /*/*.css

Allow: /wp-*.png

Allow: /wp-*.jpg

Allow: /wp-*.jpeg

Allow: /wp-*.gif

Allow: /wp-admin/admin-ajax.php

Sitemap: https://example.com/sitemap.xml

1C-Битрикс

В модуле «Поисковая оптимизация» этой CMS начиная с версии 14.0.0 можно настроить управление файлом robots из административной панели сайта. Нужный раздел находится в меню Маркетинг > Поисковая оптимизация > Настройка robots.txt.

Пример robots.txt для сайта на Битрикс

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

User-agent: *               

Disallow: /cgi-bin      # закрыли папку на хостинге

Disallow: /bitrix/      # закрыли папку с системными файлами Битрикс

Disallow: *bitrix_*=      # GET-запросы Битрикс

Disallow: /local/      # другая папка с системными файлами Битрикс

Disallow: /*index.php$      # дубли страниц с index.php

Disallow: /auth/      # страница авторизации

Disallow: *auth=

Disallow: /personal/      # личный кабинет

Disallow: *register=      # страница регистрации

Disallow: *forgot_password=      # страница с функцией восстановления пароля

Disallow: *change_password=      # страница с возможностью изменить пароль

Disallow: *login=      # вход с логином

Disallow: *logout=      # выход из кабинета

Disallow: */search/      # поиск

Disallow: *action=      # действия

Disallow: *print=      # печать

Disallow: *?new=Y      # новая страница

Disallow: *?edit=      # редактирование

Disallow: *?preview=      # предпросмотр

Disallow: *backurl=      # трекбеки 

Disallow: *back_url=

Disallow: *back_url_admin=

Disallow: *captcha      # страница с прохождением капчи

Disallow: */feed      # новостные ленты

Disallow: */rss      # rss-фиды

Disallow: *?FILTER*=      # несколько популярных параметров фильтров в каталоге

Disallow: *?ei=

Disallow: *?p=

Disallow: *?q=

Disallow: *?tags=

Disallow: *B_ORDER=

Disallow: *BRAND=

Disallow: *CLEAR_CACHE=

Disallow: *ELEMENT_ID=

Disallow: *price_from=

Disallow: *price_to=         

Disallow: *PROPERTY_TYPE=

Disallow: *PROPERTY_WIDTH=

Disallow: *PROPERTY_HEIGHT=

Disallow: *PROPERTY_DIA=

Disallow: *PROPERTY_OPENING_COUNT=

Disallow: *PROPERTY_SELL_TYPE=

Disallow: *PROPERTY_MAIN_TYPE=    

Disallow: *PROPERTY_PRICE[*]=

Disallow: *S_LAST=  

Disallow: *SECTION_ID=

Disallow: *SECTION[*]=

Disallow: *SHOWALL= 

Disallow: *SHOW_ALL=

Disallow: *SHOWBY=

Disallow: *SORT=

Disallow: *SPHRASE_ID=        

Disallow: *TYPE=

Disallow: *utm*=      # все ссылки, имеющие метки UTM 

Disallow: *openstat=      # ссылки с метками openstat 

Disallow: *from=      # ссылки с метками from

Allow: */upload/      # открыли папку, где находятся файлы uploads

Allow: /bitrix/*.js      # здесь и далее открыли скрипты js и css

Allow: /bitrix/*.css

Allow: /local/*.js

Allow: /local/*.css

Allow: /local/*.jpg      # открыли доступ к картинкам в формате jpg и далее в других форматах

Allow: /local/*.jpeg

Allow: /local/*.png

Allow: /local/*.gif

Sitemap: https://example.com/sitemap.xml

OpenCart

У этого движка есть официальный модуль Редактирование robots.txt Opencart для работы с файлом прямо из панели администратора.

Пример robots.txt для магазина на OpenCart

CMS OpenCart обычно используют в качестве базы для интернет-магазина, поэтому пример robots заточен под нужды e-commerce.

User-agent: *

Disallow: /*route=account/

Disallow: /*route=affiliate/

Disallow: /*route=checkout/

Disallow: /*route=product/search

Disallow: /index.php?route=product/product*&manufacturer_id=

Disallow: /admin

Disallow: /catalog

Disallow: /system

Disallow: /*?sort=

Disallow: /*&sort=

Disallow: /*?order=

Disallow: /*&order=

Disallow: /*?limit=

Disallow: /*&limit=

Disallow: /*?filter=

Disallow: /*&filter=

Disallow: /*?filter_name=

Disallow: /*&filter_name=

Disallow: /*?filter_sub_category=

Disallow: /*&filter_sub_category=

Disallow: /*?filter_description=

Disallow: /*&filter_description=

Disallow: /*?tracking=

Disallow: /*&tracking=

Disallow: *page=*

Disallow: *search=*

Disallow: /cart/

Disallow: /forgot-password/

Disallow: /login/

Disallow: /compare-products/

Disallow: /add-return/

Disallow: /vouchers/

Sitemap: https://example.com/sitemap.xml

Joomla

Отдельных расширений, связанных с формированием файла robots.txt для этой CMS нет, система управления автоматически генерирует файл при установке, в нем содержатся все необходимые запреты.

Пример robots.txt для сайта на Joomla

В файле закрыты плагины, шаблоны и прочие системные решения.

User-agent: *

Disallow: /administrator/

Disallow: /cache/

Disallow: /components/

Disallow: /component/

Disallow: /includes/

Disallow: /installation/

Disallow: /language/

Disallow: /libraries/

Disallow: /media/

Disallow: /modules/

Disallow: /plugins/

Disallow: /templates/

Disallow: /tmp/

Disallow: /*?start=*

Disallow: /xmlrpc/

Allow: *.css

Allow: *.js

Sitemap: https://example.com/sitemap.xml

Поисковые системы воспринимают директивы в robots.txt как рекомендации, которым можно следовать или не следовать. Тем не менее, если в файле не будет противоречий, а на закрытые страницы нет входящих ссылок — у ботов не будет причин игнорировать правила. Пользуйтесь нашими инструкциями и примерами, и пусть в выдаче появляются только действительно нужные пользователям страницы вашего сайта.

Читать далее

©