Главная / Блог / Создание и оптимизация robots.txt: контролируем индексацию сайта
Поделиться

Создание и оптимизация robots.txt: контролируем индексацию сайта

Что такое robots.txt?

Robots.txt (стандарт исключений для поисковых роботов) - один из важнейших системных файлов веб-сайта, представляет собой TXT-файл, содержащий правила индексирования для роботов поисковых систем. Был впервые представлен и принят консорциумом W3C 30 июня 1994 года. С тех пор используется большинством известных поисковых машин, хотя не является обязательным стандартом и используется на добровольной основе.  

Для чего нужен robots.txt?

Robots.txt является своего рода “маршрутной картой” для поисковых ботов и инструктирует их на этапах индексации сайта. Он объясняет роботам, какие директории или страницы индексировать, а какие нет. С его помощью можно закрыть от индексации:

  • важные системные директории и файлы на сайте, например панель администратора, личные кабинеты пользователей;
  • технические, служебные страницы (напр. страница 404, версии страниц для печати, скрипты);
  • страницы регистрации и авторизации;
  • страницы внутреннего поиска по сайту;
  • формы заказов, квитанции, данные по доставке и т.д.;
  • разные конфиденциальные файлы;
  • дублированные или пустые страницы;
  • текстовые документы, например PDF и другие части сайта, которые не должны попадать в поиск.

Как создать robots.txt?

Создается с помощью любого текстового редактора, поддерживающего веб-код, например Notepad++ (рекомендую) или AkelPad.

Название файла допускается только в нижнем регистре (lower-case) - "robots.txt", но не Robots.txt или ROBOTS.TXT.

Файл нужно сохранить в кодировке UTF-8 или ASCII.


Robots.txt должен располагаться в корневой директории сайта и открываться по адресу: https://www.вашдомен.com/robots.txt

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

http://поддомен.вашдомен.com/robots.txt
http://вашдомен.com:8181/robots.txt

Отсутствие файла или пустой robots.txt означает, что поисковики могут индексировать абсолютно весь сайт - все его папки и файлы.


Чтобы просмотреть изображение полностью, откройте его в новой вкладке.

Синтаксис robots.txt

Синтаксис файла довольно прост. Он состоит из директив, каждая начинается с новой строки, через двоеточие задается необходимое значение для директивы.

Директивы чувствительны к регистру и должны начинаться с заглавной буквы.

Основными являются три директивы, которые рекомендуется применять в такой последовательности: 

  1. User-agent: указывается название поискового робота, для которого будут применятся правила

    В одном файле можно использовать сразу несколько User-agent, обязательно разделяя их пустой строкой, к примеру:

    User-agent: Yandex
    Disallow: /administrator/
    Allow: /wp-content/uploads/

    User-agent: Google
    Disallow: /administrator/
    ​Allow: /libraries/
     
  2. Disallow: указывается относительный путь директории или файла сайта, которые нужно запретить индексировать
     
  3. Allow: указывается относительный путь директории или файла, которые нужно разрешить поисковику индексировать (не является обязательной)

Для более гибкой настройки директив можно использовать дополнительные выражения:

  • * (звездочка) - перебор всех значений, любая последовательность символов;
  • $ (доллар) - конец строки;
  • # (решетка) - позволяет вставить комментарий. Все что идет за этим символом - робот не воспринимает до конца следующей строки;

Пример:

User-agent: * # правила будут действовать для всевозможных поисковых роботов
Disallow: /script$ # заблокирован 'script', но открыт '/script_public.pl'

Примечание: Файл robots.txt не рекомендуется сильно засорять, он не должен быть слишком габаритным (Google - до 500 кб, Yandex - до 32 кб), иначе поисковик его просто проигнорирует.

Дополнительные директивы robots.txt

  • Clean-Param: указывается параметр URL (можно несколько), страницы с которым нужно исключить из индекса и не индексировать

    Данная директива используется только для User-agent: Yandex ! В Google параметр URL можно указать в Search Console или же использовать канонические ссылки (rel="canonical").
     
    Clean-Param позволит избавиться от дублей страниц, которые возникают в результате генерации динамических URL (реферальные ссылки, сессии пользователей, идентификаторы и т.д.).

    К примеру, если у вас на сайте появилось много страниц такого типа:

    www.mywebsite.com/testdir/index.php?&id=368:2014-05-14-18-59-45&catid=34&Itemid=63
    www.mywebsite.com/testdir/index.php?&id=378:2014-05-14-18-59-45&catid=34&Itemid=62
    www.mywebsite.com/testdir/index.php?&id=476:2015-04-18-16-33-18&catid=57&Itemid=1

    И вы хотите, чтобы робот индексировал только www.mywebsite.com/testdir/index.php

    Создаем правило для очистки параметров "id""catid" и "Itemid", например: 

    User-agent: Yandex
    Disallow: /administrator/
    Allow: /wp-content/uploads
    Sitemap: https://www.mywebsite.com/sitemap.xml
    Host: https://mywebsite.com
    Clean-param: id&catid&Itemid /testdir/index.php

    Можно так же создать правило очистки параметров URL не только для определенной страницы, но и для всего сайта. Например, создать правило очистки UTM-меток:

    Clean-Param: utm_source&utm_medium&utm_campaign

  • Crawl-delay: указывается время задержки в секундах между сканированием страниц

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

    Пример:

    User-agent: Yandex
    Disallow: /administrator/
    Allow: /wp-content/uploads
    Sitemap: https://www.mywebsite.com/sitemap.xml
    Host: https://mywebsite.com
    Clean-param: id&catid&Itemid /testdir/index.php
    Crawl-delay: 3

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

  • Sitemap: указываетcя полный путь к XML карте сайта

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

    Пример:

    User-agent: Yandex
    Disallow: /administrator/
    Allow: /wp-content/uploads
    Sitemap: https://www.mywebsite.com/sitemap.xml

  • Host: указывается главное "зеркало" сайта, то есть его предпочтительная версия

    Например, сайт доступен по http и https версии,  чтобы краулер не запутался в “зеркалах” при индексации и не наделал дублей, указываем главный домен в директиве Host.

    Данная директива используется только для User-agent: Yandex

    Пример:

    User-agent: Yandex
    Disallow: /administrator/
    Allow: /wp-content/uploads
    Sitemap: https://www.mywebsite.com/sitemap.xml
    Host: https://mywebsite.com


    Если сайт не на https, тогда указываем домен без протокола http: mywebsite.com

    Примечание: 20 марта 2018 года Яндекс заявил, что директива Host не обязательна, и вместо нее можно теперь использовать 301-й редирект. 

Примеры robots.txt для Wordpress и Joomla

Перейдем к конкретным примерам для двух популярных CMS, которые требуют обязательной оптимизации robots.txt

Wordpress

User-agent: *
Disallow: /cgi-bin
Disallow: /?
Disallow: /search/
Disallow: /author/
Disallow: /users/
Disallow: */trackback
Disallow: */feed
Disallow: */rss
Disallow: /wp-
Disallow: *?s=
Disallow: *&s=
Disallow: */embed
Disallow: /xmlrpc.php
Disallow: *utm=
Disallow: *openstat=
Disallow: /tag/
Allow: */uploads

User-agent: Yandex
Disallow: /cgi-bin
Disallow: /?
Disallow: /wp-
Disallow: *?s=
Disallow: *&s=
Disallow: /search/
Disallow: /author/
Disallow: /users/
Disallow: */trackback
Disallow: */feed
Disallow: */rss
Disallow: */embed
Disallow: /xmlrpc.php
Allow: /wp-*.jpg
Allow: /wp-admin/admin-ajax.php
Allow: */uploads
Allow: /wp-*.jpeg
Allow: /wp-*.gif
Allow: /*/*.js
Allow: /*/*.css
Allow: /wp-*.png
Clean-Param: utm_source&utm_medium&utm_campaign
Clean-Param: openstat
Sitemap: https://путь к вашей карте XML формата
Host: https://mywebsite.com

User-agent: GoogleBot
Disallow: /cgi-bin
Disallow: /?
Disallow: /search/
Disallow: /author/
Disallow: /users/
Disallow: /wp-
Disallow: *?s=
Disallow: *&s=
Disallow: */trackback
Disallow: */feed
Disallow: */rss
Disallow: */embed
Disallow: /xmlrpc.php
Disallow: *utm=
Disallow: *openstat=
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://путь к вашей карте XML формата

Joomla

User-agent: Yandex
Disallow: /administrator/
Disallow: /cache/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /modules/
Disallow: /plugins/
Disallow: /tmp/
Disallow: /layouts/
Disallow: /cli/
Disallow: /bin/
Disallow: /logs/
Disallow: /components/
Disallow: /component/
Disallow: /component/tags*
Disallow: /*mailto/
Disallow: /*.pdf
Disallow: /*%
Disallow: /index.php
Clean-Param: utm_source&utm_medium&utm_campaign
Clean-Param: openstat
Sitemap: https://путь к вашей карте XML формата
Host: https://mywebsite.com

User-agent: Googlebot
Allow: /*.css?*$
Allow: /*.js?*$
Allow: /*.jpg?*$
Allow: /*.png?*$
Disallow: /administrator/
Disallow: /cache/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /modules/
Disallow: /plugins/
Disallow: /tmp/
Disallow: /layouts/
Disallow: /cli/
Disallow: /bin/
Disallow: /logs/
Disallow: /components/
Disallow: /component/
Disallow: /*mailto/
Disallow: /*.pdf
Disallow: /*%
Disallow: /index.php
Sitemap: https://путь к вашей карте XML формата

Robots.txt или meta robots?

И тем не менее, не всегда поисковик строго придерживается правил, описанных в файле robots.txt  Как уже говорилось, стандарт не обязательный и используется поисковичками добровольно. Бывают случаи, когда страница закрыта в robots.txt, но в HTML-коде в теге <meta name=”robots”> она открыта для индексирования. Тогда робот может все равно проиндексировать страницу. 

Пример:

<meta name=”robots” content=”index, follow”>
Чтобы такого не произошло, страницы желательно дополнительно закрывать от индексации в meta robots:

<meta name=”robots” content=”noindex, nofollow”>

Ссылочный вес страницы можете закрывать (nofollow) или открывать (follow) на свое усмотрение, но если нужно полностью убрать страницу из поиска, то лучше применять: noindex, nofollow

Проверка и тестирование robots.txt

Созданный с нуля и оптимизированный файл robots.txt не забудьте отправить на проверку в инструменты для вебмастеров в ПС Яндекс и Google:

Эти инструменты позволяют проверить валидность robots.txt и на лету покажут ошибки, если они есть. Файл можно редактировать онлайн и сразу протестировать. Затем, если ошибок нет - просто скопируйте себе все строки и обновите файл robots.txt.


Яндекс Вебмастер


Google Search Console

Заключение

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

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

Ну и в завершение, официальные документации от самих поисковиков:
 

Официальная документация Google по robots.txt:

https://support.google.com/webmasters/answer/6062596?hl=ru

https://developers.google.com/search/reference/robots_txt?hl=ru

Официальная документация Яндекс по robots.txt:

https://yandex.ru/support/webmaster/controlling-robot/robots-txt.html#robots-txt

Официальная документация Mail.ru по robots.txt:
https://help.mail.ru/webmaster/indexing/robots.txt/rules

Официальная документация Yahoo по robots.txt:
https://help.yahoo.com/kb/learn-submit-website-yahoo-robotstxt-directive-sln2213.html
https://help.yahoo.com/kb/SLN22600.html

Официальная документация Bing по robots.txt:
https://www.bing.com/webmaster/help/how-to-create-a-robots-txt-file-cb7c31ec


Удачи!

Поделиться

Будь в курсе первым!