Неправильное заполнение файла robots.txt приведёт к тому, что поисковая машина просто проигнорирует часть его содержимого или содержимое полностью. Чтобы не допустить ошибки в robots, изучите эту статью.
Порядок инструкций
Если команды написаны в неправильном порядке, робот поисковой системы проигнорирует их или выполнит неправильно. Также часто путают значения команд:
User-agent: /
Disallow: Google
Верным вариантом станет:
User-agent: Google
Disallow: /
Несколько папок в robots.txt
В заполнении robots.txt действует золотое правило: одна папка — одна инструкция. Следующая строка кода будет ошибочной:
Disallow: /folder1/ /folder2/ /folder2/
Робот может полностью проигнорировать такую строку или выполнить её частично, в некоторых случаях даже воспринять написанное правильно. В любом случае, предсказать действия каждого робота не представляется возможным, поэтому следует писать правильно:
Disallow: /folder1/
Disallow: /folder2/
Disallow: /folder3/
Название файла
Файл robots имеет в своём названии только строчные буквы, при использовании хотя бы одной заглавной он будет проигнорирован роботам. Неправильно — roboTs.txt, ROBots.txt. Правильно — robots.txt. Наименование robot.txt также будет неверным, так как пропущена согласная s.
Указание User-agent
Такие строки будут неверными:
User-agent:
Disallow:
Если вы желаете разрешить индексацию всем роботам, надо поставить звёздочку:
User-agent: *
Disallow:
Написание адресов в коде
Не применяйте лишних слешей и опускайте написание http://, код написан неверно:
User-agent: Yandex
Disallow: /cgi-bin
Host: http://www.site.ru/
Верно будет:
User-agent: Yandex
Disallow: /cgi-bin
Host: www.site.ru
Следует отметить, что инструкцию Host умеет понимать Яндекс.
Запрет на символы подстановки
Когда требуется запретить индексацию нескольких однотипных файлов (primer1, primer2, primer3 и т. д.) возникает желание написать такой код:
User-agent: *
Disallow: file*.html
К несчастью, роботы не поймут, что им хотели сказать таким образом. Придётся писать инструкцию для каждого файла или поместить все файлы в одну папку, чтобы запретить её индексацию.
Плохой код
Некоторые варианты кода вполне допустимы, но являются признаком плохого стиля. Например, к таковым относится комментарий строки:
Disallow: /folder/ #запрет директории folder
По стандартам написание возможно, но иногда такие инструкции не воспринимаются роботами. В последнее время проблема решается, но лучше отказаться от подобных комментариев.
Иногда файл отсутствует, и когда робот обращается к индексации robots.txt, он может перенестись на страницу 404 ошибки. По стандартам отсутствие файла возможно, но для уверенности в правильной работе роботов, рекомендуется перестраховаться и оставить в корневом каталоге ресурса пустой файл.
Использование заглавных букв
Это не запрещается, но иногда к регистру чувствительны сами папки. Робот может запретить не ту папку или полностью проигнорировать инструкцию. Пример не совсем правильного кода:
User-agent: Yandex
Disallow: /PRImer1/
Запрет индексации папок
Иногда вместо запрета индексации всей директории, пишут запрет на индексацию каждого файла:
User-agent: *
Disallow: /fold/primer1.html
Disallow: /fold/primer2.html
Disallow: /fold/primer3.html
Это нельзя назвать ошибкой, но гораздо проще запретить сразу директорию:
User-agent: *
Disallow: /fold/
Инструкция Allow
Настройка robots.txt предполагает запрет индексации, действует исключительно инструкция Disallow. В последнее время поисковики начинают внедрять инструкцию Allow, но всё же пока лучше отказаться от её применения или уточнить возможность использования в справочниках поисковых систем.
Использование дополнительных инструкций
У некоторых поисковых систем есть особые инструкции, для Яндекса такой инструкцией является Host. Лучше отказаться от её применения в общем блоке и написать для неё отдельным. Неверным будет:
User-agent: *
Disallow: /folder/
Host: www.example.com
Более рационально:
User-agent: *
Disallow: /folder/
User-agent: Yandex
Disallow: /folder/
Host: www.example.com
Отсутствие Disallow
Следующий код будет неверным:
User-agent: Yandex
Host: www.example.com
Если мы не желаем делать запрет индексации, то инструкцию всё же лучше использовать, просто не заполнять её:
User-agent: Yandex
Disallow:
Host: www.example.com
Использование слэшей в robots
Чтобы запретить индексацию папки, она обязательно выделяется слешами. Данная настройка robots.txt ошибочна:
User-agent: Google
Disallow: folder
Робот запретит файл с наименованием folder, для папки верно такое:
User-agent: Google
Disallow: /folder/