Приветствую вас, уважаемые читатели SEO блога Pingo. В данной статье я хочу изложить своё представление о том, как правильно составить robots.txt для сайта. В своё время меня очень раздражало, что информация в интернете по этому вопросу довольно отрывочна. Из-за этого приходилось ползать по большому количеству ресурсов, постоянно фильтруя повторяющуюся информацию и вычленяя новую.
Таким образом, здесь я постараюсь ответить на большинство вопросов, начиная с определения и заканчивая примерами реальных задач, решаемых данным инструментом. Если что-то забуду — отпишитесь в комментариях об этом — исследую вопрос и дополню материал.
Robots.txt — что это, зачем нужен и где обитает?
Итак, сперва ликбез для тех, кому данная тема незнакома совершенно.
Robots.txt — текстовый файл, содержащий инструкции по индексации сайта для роботов поисковых систем. В этом файле вебмастер может определить параметры индексации своего сайта как для всех роботов сразу, так и для каждой поисковой системы по отдельности (например, для гугла).
Где находится robots.txt? Он размещается в корневой папке FTP сайта, и, по сути, является обычным документом в формате txt, редактирование которого можно осуществлять через любой текстовый редактор (лично я предпочитаю Notepad++). Содержимое файла роботс можно увидеть, введя в адресной строке браузера http://www.ваш-сайт.ru/robots.txt. Если, конечно, он существует.
Как создать robots.txt для сайта? Достаточно сделать обычный текстовый файл с таким именем и загрузить его на сайт. О том, как его правильно настроить и составить, будет сказано ниже.
Структура и правильная настройка файла robots.txt
Как должен выглядеть правильный файл robots txt для сайта? Структуру можно описать следующим образом:
1. Директива User-agent
Что писать в данном разделе? Эта директива определяет то, для какого именно робота предназначены нижеизложенные инструкции. Например, если они предназначены для всех роботов, то достаточно следующей конструкции:
В синтаксисе файла robots.txt знак «*» равноценен словосочетанию «что угодно». Если же требуется задать инструкции для конкретной поисковой системы или робота, то на месте звездочки из предыдущего примера пишется его название, например:
У каждого поисковика существует целый набор роботов, выполняющих те или иные функции. Роботы поисковой системы Яндекс описаны тут. В общем же плане имеется следующее:
- Yandex — указание на роботов Яндекс.
- GoogleBot — основной индексирующий робот Google.
- MSNBot — основной индексирующий робот Bing.
- Aport — роботы Aport.
- Mail.Ru — роботы ПС Mail.
Если имеется директива для конкретной поисковой системы или робота, то общие игнорируются.
2. Директива Allow
Разрешает отдельные страницы раздела, если, скажем, ранее он целиком закрыт от индексации. Например:
Disallow: /
Allow: /открытая-страница.html
В данном примере мы запрещаем к индексации весь сайт, кроме страницы poni.html
Служит эта директива в какой-то степени для указания на исключения из правил, заданных директивой Disallow. В случае, если таких ситуаций нет, то директива может не использоваться совсем. Она не позволяет открыть сайт для индексации, как многие думают, так как если нет запрета вида Disallow: /, то он открыт по умолчанию.
2. Директива Disallow
Является антиподом директивы Allow и закрывает от индексации отдельные страницы, разделы или сайт целиком. Являет аналогом тега noindex. Например:
Disallow: /закрытая-страница.html
3. Директива Host
Используется только для Яндекса и указывает на основное зеркало сайта. Выглядит это так.
Основное зеркало без www:
Основное зеркало с www:
Сайт на https:
Нельзя записывать директиву host в файл дважды. Если же вследствие какой-то ошибки это произошло, то обрабатывается та директива, которая идет первой, а вторая — игнорируется.
4. Директива Sitemap
Используется для указания пути к XML-карте сайта sitemap.xml (если она есть). Синтаксис следующий:
5. Директива Clean-param
Используется для закрытия от индексации страниц с параметрами, которые могут являться дублями. Очень полезная на мой взгляд директива, которая отсекает параметрический хвост урлов, оставляя только костяк, который и является родоначальным адресом страницы.
Особенно часто встречается такая проблема при работе с каталогами и интернет-магазинами.
Скажем, у нас имеется страница:
И эта страница в процессе работы может обрастать клонами вида.
http://www.site.ru/index.php?option=com_user_view=reset
http://www.site.ru/index.php?option=com_user_view=login
Для того, чтобы избавиться от всевозможных вариантов этого спама, достаточно указать следующую конструкцию:
Синтаксис из примера, думаю, понятен:
option # указываем спамный параметр
/index.php # указываем костяк урла со спамным параметром
Если параметров несколько, то просто перечисляем их через амперсант(&):
Clean-param: option&big /index.php # указаны два параметра через амперсант
Пример взят простой, поясняющий саму суть. Особенно спасибо этому параметру хочется сказать при работе с CMS Bitrix.
Директива Crawl-Delay
Позволяет задать таймаут на загрузку страниц сайта роботом Яндекс. Используется при большой загруженности сервера, при которой он просто не успевает быстро отдавать содержимое. На мой взгляд, это анахронизм, который уже не учитывается и который можно не использовать.
Синтаксис
- # — используется для написания комментариев:
- * — означает любую последовательность символов, значение:
- $ — обрезание правила, антипод знака звездочки:
Пример файла robots.txt
С целью закрепления понимания вышеописанной структуры и правил, приведем стандартный robots txt для CMS Data Life Engine.
User-agent: * # директивы предназначены для всех поисковых систем
Disallow: /engine/go.php # запрещаем отдельные разделы и страницы
Disallow: /engine/download.php #
Disallow: /user/ #
Disallow: /newposts/ #
Disallow: /*subaction=userinfo # закрываем страницы с отдельными параметрами
Disallow: /*subaction=newposts #
Disallow: /*do=lastcomments #
Disallow: /*do=feedback #
Disallow: /*do=register #
Disallow: /*do=lostpassword #
Host: www.pingoblog.ru # указываем главное зеркало сайта
Sitemap: https://pingoblog.ru/sitemap.xml # указываем путь до карты сайта
User-agent: Aport # указываем направленность правил на ПС Aport
Disallow: / # предположим, не хотим мы с ними дружить
Проверка robots.txt
Как проверить robots txt на корректность составления? Стандартный вариант — валидатор Яндекса — http://webmaster.yandex.ru/robots.xml. Вводим путь до вашего файла роботс или сразу вставляем его содержимое в текстовое поле. Вводим список урлов, которые мы хотим проверить — закрыты или открыты они согласно заданным директивам — нажимаем «Проверить» и вуаля! Профит.
Выводится статус страницы — открыта ли она для индексации или закрыта. Если закрыта, то указывается, каким именно правилом. Чтобы разрешить индексацию такой страницы, нужно доработать правило, на которое указывает валидатор. Если в файле имеются синтаксические ошибки, то валидатор также об этом сообщит.
Генератор robots.txt — создание в режиме онлайн
Если изучать синтаксис желания или времени нет, но необходимость закрыть спамные страницы сайта присутствует, то можно воспользоваться любым бесплатным онлайн генератором, который позволит создать robots txt для сайта всего парой кликов. Затем вам останется лишь скачать файл и загрузить его к себе на сайт. При работе с ним вам лишь необходимо проставить галочки у очевидных настроек, а также указать страницы, которые вы хотите закрыть от индексации. Остальное генератор сделает за вас.