Что такое robots.txt и для чего он нужен? Как правильно настроить robots.txt для SEO-оптимизации вашего сайта? Полный разбор структуры, правил и директив, используемых в robots.txt, который заставит поисковые системы полюбить ваш ресурс!
- Что такое robots.txt и для чего он нужен
- Как создать файл robots.txt на своем сайте?
- Правильная настройка robots.txt для сайта
- Правильная структура robots.txt
- Синтаксис и правила настройки robots.txt
- Использование спецсимволов * и $ в robots.txt
- Запрет индексации в файле robots.txt — Disallow
- Разрешить индексацию robots.txt — Allow
- Главное зеркало сайта в robots.txt — Host
- Карта сайта в robots.txt — Sitemap.xml
- Директива Clean-param в robots.txt
- Директива Crawl-delay в robots.txt
- Комментарии в robots.txt
- Как проверить robots.txt?
- Как проверить robots.txt на сайте?
- Как проверить robots.txt на наличие ошибок
- Robots.txt в Яндекс и Google
- Заключение: советы Вебмастерам
Что такое robots.txt и для чего он нужен
Robots.txt — это обычный текстовый файл с расширением .txt, который содержит директивы и инструкции индексирования сайта, его отдельных страниц или разделов для роботов поисковых систем.
Robots.txt является первым файлом, к которому обращаются поисковые системы, чтобы понять, можно ли индексировать сайт. Данный файл располагается в корневой директории сайта и должен быть доступен в браузере по ссылке вида naked-seo.ru/robots.txt.
Давайте рассмотрим самый простой пример содержимого robots.txt, которое разрешает поисковым системам индексировать все разделы сайта:
User-agent: * Allow: /
Данная инструкция дословно говорит: всем роботам, читающим данную инструкцию (User-agent: *) разрешаю индексировать весь сайт (Allow: /).
Зачем все эти сложности с инструкциями для роботов, и почему нельзя открывать сайт для индексации полностью?
Представьте, что вы поисковый робот, которому нужно просмотреть миллиарды страниц по всем интернету, потом определить для каждой страницы запросы, которым они могут соответствовать и в конце проранжировать эту массу в поисковой выдаче. Согласитесь, задача не из легких. Для работы поисковых алгоритмов используются колоссальные ресурсы, которые, разумеется, ограничены.
Если помимо страниц, которые содержат полезный контент, и которые по задумке владельца сайта должны участвовать в выдаче, роботу придется просматривать еще кучу технических страниц, которые не представляют никакой ценности для пользователей, его ресурсы будут тратиться впустую. Вы только представьте, что только один единственный сайт может генерировать тысячи страниц результатов поиска по сайту, дублирующихся страниц или страниц, не содержащих контента вообще. А если этот объем масштабировать на всю сеть, то получатся гигантские цифры и соответствующие ресурсы, которые необходимо тратить поисковикам.
Наличие огромного количества бесполезного контента на вашем сайте может негативно сказаться на его представлении в поиске. Как бы вы отнеслись к человеку, который дал вам мешок орехов, но внутри оказалась только скорлупа и всего 2-3 орешка? Не трудно представить и позицию поисковиков при аналогии данной ситуации с вашим сайтом.
Кроме того, существует такое понятие, как краулинговый бюджет. Условно, это объем страниц, который может участвовать в поисковой выдаче от одного сайта. Этот объем, естественно, ограничен, но по мере роста проекта и повышения его качества, краулинговый бюджет может увеличиваться, но сейчас не об этом. Главное идея в том, в выдаче должны участвовать только страницы, которые содержат полезный контент, а весь технический «мусор» не должен засорять выдачу поисковым спамом.
Как создать файл robots.txt на своем сайте?
Для того, чтобы создать файл robots.txt, вам нужно открыть любой текстовый редактор, например, Блокнот, MS Word, SublimeText, NotePad++ и т.п. Прописать необходимые инструкции для вашего сайта и сохранить файл в формате .txt.
Далее данный файл необходимо загрузить в корневую директорию вашего сайта. Корневая директория, это папка, как правило, с названием вашего сайта в которой находятся файлы вашей CMS и индексный файл index.html. Загрузить файл robotx.txt на сервер можно с помощью панели управления сервером (напр. ISPmanager, Cpannel), с помощью FTP-клиента (напр. FileZilla, TotalCommander), через консоль, либо через административную панель сайта, если CMS позволяет это сделать.
Некоторые системы управления сайтами имеют встроенный функционал, который позволяет создать robots.txt из админки сайта, либо с помощью дополнительных плагинов или модулей. Каким способом создавать robots.txt — нет абсолютно никакой разницы. Проверить корректность и доступность вашего файла robots вы можете с помощью сервиса в Яндекс.Вебмастере.
Правильная настройка robots.txt для сайта
Правильная настройка файла robots.txt помогает улучшить представление сайта в результатах поиска, пресекает попадание в поиск спама и частной информации. Однако стоит помнить, что robots.txt является общедоступным файлом, поэтому не следует хранить в нем пароли и другую конфиденциальную информацию, которая может использоваться как уязвимость против вашего ресурса.
Файл robots.txt является обязательной инструкцией для большинства поисковых систем. Но этот файл может игнорироваться другими роботами, которые также посещают ваш сайт в самых разных целях. Это могут быть программы различных сервисов, парсеры, роботы злоумышленников и другие. Поэтому robots.txt является не защитным механизмом, а именно SEO-инструментом, который помогает оптимизировать представление вашего сайта в поисковых системах.
Чтобы правильно настроить файл для поисковых роботов, необходимо разобраться в его синтаксисе, структуре, директивах и правилах.
Правильная структура robots.txt
Давайте рассмотрим сокращенный шаблон структуры robots.txt типичного сайта:
User-agent: Yandex Disallow: /admin Disallow: *?s= Disallow: *?p= User-agent: Googlebot Disallow: /admin Disallow: *?s= Disallow: *?p= User-agent: * Disallow: /admin Disallow: *?s= Disallow: *?p= Sitemap: https://site.ru/sitemap.xml
Как вы видите, файл robots.txt состоит из блоков с инструкциями. Начинается он с директивы User-agent, которая указывает для какого именно робота будут прописаны нижеследующие инструкции.
Примеры директив User-agent для разных поисковых роботов:
# Для всех роботов User-agent: * # Для роботов Яндекса User-agent: Yandex # Для всех роботов Google User-agent: Googlebot
Как правило, в большинстве файлов robots.txt используются 3 вышеперечисленных директивы User-agent, однако, существуют отдельные директивы, например, для роботов индексирующих изображения на сайте (YandexImages и Googlebot-Image), в которых можно прописать отдельные инструкции. Например:
#Разрешаем роботу Яндекса индексацию всего сайта User-agent: Yandex Allow: / #Разрешаем роботу Google индексацию всего сайта User-agent: Googlebot Allow: / #Запрещаем индексацию сайта всем остальным роботам User-agent: * Disallow: /
После каждой директивы User-agent идут непосредственные команды для каждого поискового робота. В большинстве случаев используются команды Disallow и Allow. Команда Disallow запрещает роботам индексирование определенных страниц, команда Allow, наоборот, разрешает.
Также в структуре присутствуют 2 обязательных директорий: Host и Sitemap. Директива Host указывает на главное зеркало сайта (УСТАРЕЛО — https://yandex.ru/blog/platon/pereezd-sayta-posle-otkaza-ot-direktivy-host), директива Sitemap указывает на xml карту сайта. Более подробно мы рассмотрим каждую директорию и возможности их применения далее. А сейчас остановимся на синтаксисе и правилах составления robots.txt.
Синтаксис и правила настройки robots.txt
Существуют определенные синтаксические и логические правила, которые влияют на корректность работы вашего robots.txt. Давайте рассмотрим их:
- По-умолчанию robots.txt разрешает индексировать все. Данное правило работает при отсутствии robots.txt на сервере, при пустом содержимом файла, при слишком большом файле размером более 32 кб, при недоступности файла (напр. код ответа 404);
- Название файла «robots.txt». Не допускается использование заглавных букв. Имя файла пишется на латинице;
- Каждая директива в файле начинается с новой строки. Не указывайте более одной инструкции в строке;
- Пробел как знак в robots.txt не имеет значения. Нет никакой разницы в количестве пробелов и их месте в файле, однако, составляйте robots.txt таким образом, чтобы вам самим было легко в нем ориентироваться;
- Инструкция не имеет закрывающих символов. В конце директивы не нужно ставить точку или точку с запятой;
- Допускается комментирование в файле. Это необходимо для удобства оптимизатора, чтоб тот мог оставлять информацию, объясняющую для чего он открыл/закрыл от индексации определенные страницы. Комментарий начинается со знака #;
- Пустой перенос строки используется только в конце директивы User-agent. В соответствие со стандартом пустой перенос строки может трактоваться как окончание инструкций по конкретному User-agent. Также использование нового User-aget без переноса строки может игнорироваться;
- В строке с директивой указывается только 1 параметр. Все последующие параметры прописываются с новой строки с указанием директивы.
- Названия директив пишутся на с заглавной буквы на латинице. Например, правильно «Dissalow», а не «DISALLOW»;
- Символ / используется при написании статических страниц. Например, «Disallow: /wp-admin» запрещает индексацию административной панели WordPress по данному адресу.
- Последовательность директив. Порядок следования директив в User-aget не влияет на их использование поисковым роботом. При конфликте инструкций Disallow и Allow предпочтение отдается директиве Allow.
Не стоит также вписывать в robots.txt запреты для каждой отдельно взятой страницы. Такая практика допустима, но это, скорее, исключения из правил. Подбирайте общие инструкции, которые будут захватывать сразу все типовые url вашего сайта. Идеальный robots.txt — это краткий по написанию, но обширный по смыслу файл.
Один и тот же robots.txt можно составить по-разному с помощью разных директив. Какие именно директивы использовать, можете решить самостоятельно. Главное не запутаться, и прописывать правила индексирования максимально емко, как минимум, для своего же удобства.
Использование спецсимволов * и $ в robots.txt
При использовании директив Allow и Disallow в их параметрах можно использовать специальные символы * и $. Спецсимвол * означает любую последовательность символов в параметре. Например:
User-agent: * Disallow: /wp-content/*.txt #Зпрещает индексирование /wp-content/test.txt и wp-conten/upload/readme.txt и т.д. Disallow: /*blog #Зпрещает индексирование /blog и /main/blog и т.д. Disallow: *?p= #Зпрещает индексирование страниц пагинации на всем сайте
По-умолчанию на конце каждого параметра используется спецсимвол *. В свою очередь спецсимвол $ позволяет уточнить параметры индексирования. Например:
User-agent: * Disallow: /blog #Зпрещает индексирование /blog и /blog/h1 и т.д. Disallow: /blog$ #Зпрещает индексирование /blog, но разрешает /blog.html и /blog/h1 и т.д.
На этом все. Не так страшен черт, как его малюют. Теперь более подробно рассмотрим основные и не затронутые директивы robots.txt.
Запрет индексации в файле robots.txt — Disallow
Disallow — наиболее часто используемая директива в robots.txt. В ней необходимо указывать:
- страницы с приватными данными, которых не должно быть в индексе;
- страницы пагинации;
- страницы с результатами поиска по сайту;
- дублирующиеся страницы;
- всевозможные логи;
- технические страницы;
- сервисные страницы с параметрами.
User-agent: * Disallow: / #запрещает обход всего сайта полностью User-agent: * Disallow: /blog #запрещает обход страниц, адрес которых начинается с /blog User-agent: * Disallow: /kupalniki? #запрещает обход URL которые содержат параметры, например, /kupalniki?color=red
Разрешить индексацию robots.txt — Allow
Allow — это директива разрешающая поисковому роботу обход страниц. Она является противоположностью директиве Disallow. В ней, как и в Disallow возможно использование спецсимволов * и $.
Давайте рассмотрим пример использования директивы Allow:
User-agent: * Disallow: / Allow: /blog
Данные инструкции разрешают обход раздела /blog, при этом весь остальной сайт остается недоступен для индексирования.
Пустой «Disallow: » = «Allow: /». Обе директивы разрешают полный обход сайта
Пустой «Allow: » = «Disallow: /». Обе директивы полностью запрещают обход сайта.
Эта информация дана для справки. Широкого практического применения она не получает.
Главное зеркало сайта в robots.txt — Host
С марта 2018 года Яндекс отказался от директивы Host. Ее функции полностью перешли на раздел «Переезд сайта в Вебмастере» и 301-редирект.
Директива Host указывала поисковому роботу Яндекса на главное зеркало сайта. Если ваш сайт был доступен по нескольким разным адресам, например, с www и без www, вам необходимо было настроить 301 редирект на главный адрес и указать его в директиве Host.
Данная директива была полезна при установке SSL-сертификата и переезде сайта с http на https. В директиве Host адрес сайта при наличии SSL-сертификата указывался с https.
Директива Host указывалась в User-agent: Yandex только 1 раз. Например для нашего сайта это выглядело вот так:
User-agent: Yandex Host: https://naked-seo.ru
В данном примере указано, что главным зеркалом сайта Naked SEO является ни naked-seo.ru, ни https://naked-seo.ru, а https://naked-seo.ru.
Для указания главного зеркала сайта в Google используются инструменты вебмастера в Google Search Console.
Карта сайта в robots.txt — Sitemap.xml
Директива Sitemap указывает поисковым роботам путь на xml карту сайта. Этот файл невероятно важен для поисковых систем, так как при обходе сайта они, в первую очередь, обращаются к нему. В данном файле представлена структура сайта со всем внутренними ссылками, датами создания страниц, приоритетами индексирования.
Пример robots.txt с указанием адреса карты сайта на нашем сайте:
User-agent: * Sitemap: https://naked-seo.ru/sitemal.xml
Наличии xml карты сайта улучшает представление вашего сайта в поисковой выдаче. Карта сайта является стандартом, который должен быть внедрен на каждом сайте. Частота обновления и актуальность поддержания sitemap.xml может серьезно ускорить индексирование страниц, особенно у молодого сайта.
Директива Clean-param в robots.txt
Директива Clean-param позволяет запретить поисковым роботом обход страниц с динамическими параметрами, контент которых не отличается от основной страницы. Например, многие интернет-магазины используют параметры в url-адресах, которые передают данные по источникам сессий, а также персональные идентификаторы пользователей.
Чтобы поисковые роботы не обходили данные страницы, и лишний раз не нагружали ваш сервер, используйте директиву Clean-param, которая позволит оставить в выдаче только исходный документ.
Давайте рассмотрим использование данной директивы на примере. Предположим, что наш сайт собирает данные по пользователям на страницах:
https://naked-seo.ru/books/get_book.pl?userID=1&source=site_1&book_id=3 https://naked-seo.ru/books/get_book.pl?userID=2&source=site_2&book_id=3 https://naked-seo.ru/books/get_book.pl?userID=3&source=site_3&book_id=3
Параметр userID, который содержится в каждом url-адресе показывает персональный идентификатор пользователя, а параметр source показывает источник, из которого посетитель попал к нам на сайт. По трем разным url-адресам пользователи видят один и тот же контент book_id=3. В данном случае нам необходимо использовать директиву Clean-param следующим образом:
User-agent: Yandex Clean-param: userID /books/get_book.pl Clean-param: source /books/get_book.pl
Данные директивы помогут поисковому роботу Яндекса свести все динамические параметры в единую страницу:
https://naked-seo.ru/books/get_book.pl?&book_id=3
Если на сайте доступна такая страница, то именно она будет индексироваться и участвовать в выдаче.
Директива Crawl-delay в robots.txt
Данная директива ограничивает количество посещений одного робота в интервал времени, другими словами создает тайм-аут сессии. Использование директивы Crawl-delay является хорошей практикой, если поисковые роботы слишком часто заходят на ваш сайт и создают ненужную нагрузку на сервер.
Пример использования директивы:
User-agent: Yandex Crawl-delay: 2 #создает тайм-аут в 2 секунды
В данном примере, мы просим поисковые системы посещать сайт не чаще чем 1 раз в 2 секунды. Некоторые поисковые роботы (напр. робот Яндекса) поддерживают дробные значения данной директивы. Для Яндекса максимально допустимое значение данной директивы составляет 2 секунды. Использование данной директивы может помочь понять причины нестабильной работы сервера. Если после добавления Crawl-delay в robots.txt проблемы с сервером не исчезли, то, как минимум, отсекается один вариант причины данной проблемы.
Комментарии в robots.txt
Комментарии в файле robots.txt пишутся после знака # и игнорируются поисковыми системами. Как правило, комментарии используются для обозначения причин открытия или закрытия для индексации определенных страниц, чтобы в будущем оптимизатору были понятны причины тех или иных правок в файле.
В данной статье вы уже встречались с комментирование, которое поясняло использование директив. Вот еще один пример:
#Это файл robots.txt. Все что написано в данной строке, роботы не прочтут User-agent: Yandex #Комментарий Disallow: /pink #закрыл от индексации, так как на странице неуникальный контент
Как проверить robots.txt?
После того как вы загрузили файл robots.txt на свой сервер, обязательно проверьте его доступность, корректность и наличие ошибок в нем.
Как проверить robots.txt на сайте?
Если вы все сделали правильно, и загрузили данный файл в корень вашего сервера, то он станет доступен по ссылке вида site.ru/robots.txt. Данный файл, как мы уже говорили, является публичным. Поэтому вы можете посмотреть и проанализировать robots.txt абсолютно у любого сайта.
Как проверить robots.txt на наличие ошибок
Вы можете проверить robots.txt на наличие ошибок:
В панели Вебмастера Яндекс — https://webmaster.yandex.ru/tools/robotstxt/
И в Google Search Console — https://www.google.com/webmasters/tools/robots-testing-tool
Сервисы покажут все ошибки данного файла, предупредят об серьезных ограничениях в ваших директивах и предложат проверить доступность ваших страниц после настройки robots.txt.
Robots.txt в Яндекс и Google
У большинства оптимизаторов, которые первый раз сталкиваются с файлом robots.txt возникает вполне закономерный вопрос: «Почему нельзя указать User-agent: * и не прописывать для каждого робота одинаковые правила?». Конечно, так сделать можно, но возникает неопределенность. Во-первых, только Яндекс поддерживает директиву Host, которая указывает на главное зеркало сайта. Использование данной директивы для всех роботов бессмысленно (УСТАРЕЛО — https://yandex.ru/blog/platon/pereezd-sayta-posle-otkaza-ot-direktivy-host). Во-вторых, существует субъективное мнение, что поисковые системы Яндекс и Google приветствуют указание именно их робота в User-agent, а не использование директивы общего плана.
Кроме того, допустимый размер файла в 32 кб позволяет практически каждому сайту уместить необходимые для индексирования директивы в отдельных User-agent для разных поисковых систем. Нет смысла экспериментировать со своим сайтом, если можно прописать для каждого поискового робота персональные директивы, уложившись в ограниченный лимит. К слову, редко, но все же случаются такие ситуации, когда оптимизаторы хотят закрыть определенные страницы для одной поисковой системы, при этом оставить их доступными для другой. В этом случае без директивы User-agent просто не обойтись.
Заключение: советы Вебмастерам
Совет #1
Если ваш сайт не индексируется поисковыми системами, или его страницы начали массово пропадать из поисковой выдачи, первым делом необходимо проверить файл robots.txt на предмет запрета индексации сайта. При необходимости снимите запрет на полезные страницы, которые должны участвовать в выдаче.
Если файл robots.txt не запрещает индексирование сайта, проверьте содержимое мета-тегов в head вашего сайта, адресованных поисковым роботам. Обратите внимание на наличие на вашем сайте следующих тегов:
<meta name="robots" content="noindex"/> — запрещает индексировать содержимое страницы <meta name="robots" content="nofollow"/> — запрещает переходить по ссылкам на странице <meta name="robots" content="none"/> — запрещает переходить по ссылкам и индексировать содержимое страницы <meta name="robots" content="noindex, nofollow"/> — аналогичен предыдущему тегу
Наличие данных тегов может негативно повлиять на представление вашего сайта в поисковых системах.
Совет #2
Хотя бы 1 раз в 2-3 недели заглядывайте в Яндекс Вебмастер в разделы «Индексирование — Статистика обхода» и «Индексирование — Страницы в поиске». Отслеживайте страницы, которые обходит поисковый робот на вашем сайте.
Если робот обходит технические страницы, или страницы, которые отвечают редиректом, их следуют запретить директивой Disallow в robots.txt. Таким образом вы сузите объем страниц, который необходимо обойти поисковому роботу и повысите эффективность индексации своего сайта.
Аналогична ситуация с разделом «Страницы в поиске». С его помощью вы можете не только отследить документы, которые больше не участвуют в поиске, но и проверить свой сайт на предмет наличия поискового спама. Если в данном разделе вы также найдете технические страниц, либо сервисные страницы с параметрами, которые не должны принимать участие в ранжировании, добавьте запрет на их обход в robots.txt.
Заключение
Файл robots.txt является одним из важнейших инструментов SEO-оптимизации. Через него можно напрямую влиять на индексирование абсолютно любых страниц и разделов сайта. Грамотно составленный robots.txt поможет вам сэкономить место в ограниченном краулинговом бюджете, избавит поисковые роботы от переобхода сотен ненужных технических страниц, избавит выдачу от поискового спама, а ваш сервер от излишней нагрузки. Создавайте robots.txt с умом!
Если у вас возникли вопросы по данной статье — задайте их в комментариях.
Не забывайте подписываться на блог и получать актуальную информацию из мира интернет-маркетинга.