Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

Создание Robots.txt

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

Адрес вашего сайта: http://
Для каких поисковых систем будем создавать следующие правила:
User-agent:
Укажите директории и файлы, которые НЕ НУЖНО индексировать и посещать поисковым системам:
Disallow:
Главное зеркало сайта:
Host:
Расположение карты сайта в формате XML:
Sitemap:
Вставить:
Результат - Robots.txt:

Пометьте, скопируйте и вставьте текст в текстовый редактор. Сохраните файл как "robots.txt" в корневой директории Вашего сайта.

Описание формата файла robots.txt

Файл robots.txt состоит из записей, каждая из которых состоит из двух полей: строки с названием клиентского приложения (user-agent), и одной или нескольких строк, начинающихся с директивы Disallow:

Директива ":" значение

Robots.txt должен создаваться в текстовом формате Unix. Большинство хороших текстовых редакторов уже умеют превращать символы перевода строки Windows в Unix. Либо ваш FTP-клиент должен уметь это делать. Для редактирования не пытайтесь пользоваться HTML-редактором, особенно таким, который не имеет текстового режима отображения кода.

Директива User-agent:

Для Рамблера:
User-agent: StackRambler
Для Яндекса:
User-agent: Yandex
Для Гугла:
User-Agent: googlebot

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

User-agent:   *

Директива Disallow:

Вторая часть записи состоит из строк Disallow. Эти строки - директивы (указания, команды) для данного робота. В каждой группе, вводимой строкой User-agent, должна быть хотя бы одна инструкция Disallow. Количество инструкций Disallow не ограничено.Они сообщают роботу какие файлы и/или каталоги роботу неразрешено индексировать. Вы можете запретить индексацию файла или каталога.

Следующая директива запрещает индексацию каталога /cgi-bin/:

Disallow: /cgi-bin/
Обратите внимание на / в конце названия директории! Чтобы запрещать посещение именно каталога "/dir", инструкция должна иметь вид: "Disallow: /dir/". А строка "Disallow: /dir" запрещает посещение всех страниц сервера, полное имя которых (от корня сервера) начинается с "/dir". Например: "/dir.html", "/dir/index.html", "/directory.html".

Записанная следующим образом директива запрещает индексацию файла index.htm находящегося в корне:

Disallow: /index.htm

Директиву Allow понимает только Яндекс.

User-agent: Yandex
Allow: /cgi-bin
Disallow: /
# запрещает скачивать все, кроме страниц начинающихся с '/cgi-bin'
Для остальных поисковиков вам придется перечислять все закрытые документы. Продумайте структуру сайта, чтобы закрытые для индексирования документы были собраны по возможности в одном месте.

Если директива Disallow будет пустой, это значит, что робот может индексировать ВСЕ файлы. Как минимум одна директива Disallow должна присутствовать для каждого поля User-agent, чтобы robots.txt считался верным. Полностью пустой robots.txt означает то же самое, как если бы его не было вообще.

Робот Рамблера понимает * как любой символ, поэтому инструкция Disallow: * означает запрещение индексации всего сайта.

Директивы Allow, Disallow без параметров. Отсутствие параметров у директив Allow, Disallow трактуется следующим образом:
User-agent: Yandex
Disallow: # тоже что и Allow: /

User-agent: Yandex
Allow: # тоже что и Disallow: /

Использование спецсимволов "*" и "$".
При указании путей директив Allow-Disallow можно использовать спецсимволы '*' и '$', задавая, таким образом, определенные регулярные выражения. Спецсимвол '*' означает любую (в том числе пустую) последовательность символов. Примеры:

User-agent: Yandex
Disallow: /cgi-bin/*.aspx # запрещает '/cgi-bin/example.aspx'
				 и '/cgi-bin/private/test.aspx'
Disallow: /*private # запрещает не только '/private',
			 но и '/cgi-bin/private'
Спецсимвол '$'.
По умолчанию к концу каждого правила, описанного в robots.txt, приписывается '*', например:
User-agent: Yandex
Disallow: /cgi-bin* # блокирует доступ к страницам начинающимся с '/cgi-bin'
Disallow: /cgi-bin # то же самое
чтобы отменить '*' на конце правила, можно использовать спецсимвол '$', например:
User-agent: Yandex
Disallow: /example$ # запрещает '/example', но не запрещает '/example.html'
User-agent: Yandex
Disallow: /example # запрещает и '/example', и '/example.html'
User-agent: Yandex
Disallow: /example$ # запрещает только '/example'
Disallow: /example*$ # так же, как 'Disallow: /example'
		       запрещает и /example.html и /example

Директива Host.

Если ваш сайт имеет зеркала, специальный робот зеркальщик определит их и сформирует группу зеркал вашего сайта. В поиске будет участвовать только главное зеркало. Вы можете указать его при помощи robots.txt, используя директиву 'Host', определив в качестве ее параметра имя главного зеркала. Директива 'Host' не гарантирует выбор указанного главного зеркала, тем не менее, алгоритм при принятии решения учитывает ее с высоким приоритетом. Пример:
#Если www.glavnoye-zerkalo.ru главное зеркало сайта, то robots.txt для
#www.neglavnoye-zerkalo.ru выглядит так
User-Agent: *
Disallow: /forum
Disallow: /cgi-bin
Host: www.glavnoye-zerkalo.ru
В целях совместимости с роботами, которые не полностью следуют стандарту при обработке robots.txt, директиву 'Host' необходимо добавлять в группе, начинающейся с записи 'User-Agent', непосредственно после директив 'Disallow'('Allow'). Аргументом директивы 'Host' является доменное имя с номером порта (80 по умолчанию), отделенным двоеточием. Параметр директивы Host обязан состоять из одного корректного имени хоста (т.е. соответствующего RFC 952 и не являющегося IP-адресом) и допустимого номера порта. Некорректно составленные строчки 'Host:' игнорируются.

Примеры игнорируемых директив Host:

Host: www.myhost-.ru
Host: www.-myhost.ru
Host: www.myhost.ru:100000
Host: www.my_host.ru
Host: .my-host.ru:8000
Host: my-host.ru.
Host: my..host.ru
Host: www.myhost.ru/
Host: www.myhost.ru:8080/
Host: 213.180.194.129
Host: www.firsthost.ru,www.secondhost.ru	# в одной строке - один домен!
Host: www.firsthost.ru www.secondhost.ru	# в одной строке - один домен!
Host: http://htmlweb.ru	# http - удалить!
Host: экипаж-связь.рф		# нужно использовать punycode

Директива Crawl-delay

Задает таймаут в секундах, с которым поисковый робот закачивает страницы с вашего сервера (Crawl-delay).

Если сервер сильно нагружен и не успевает отрабатывать запросы на закачку, воспользуйтесь директивой "Crawl-delay". Она позволяет задать поисковому роботу минимальный период времени (в секундах) между концом закачки одной страницы и началом закачки следующей. В целях совместимости с роботами, которые не полностью следуют стандарту при обработке robots.txt, директиву "Crawl-delay" необходимо добавлять в группе, начинающейся с записи "User-Agent", непосредственно после директив "Disallow" ("Allow").

Поисковый робот Яндекса поддерживает дробные значения Crawl-Delay, например, 0.5. Это не гарантирует, что поисковый робот будет заходить на ваш сайт каждые полсекунды, но дает роботу больше свободы и позволяет ускорить обход сайта.

Пример:

    User-agent: Yandex
    Crawl-delay: 2 # задает таймаут в 2 секунды

    User-agent: *
    Disallow: /search
    Crawl-delay: 4.5 # задает таймаут в 4.5 секунды

Директива Clean-param

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

Пустые строки и комментарии

Пустые строки допускаются между группами инструкций, вводимыми User-agent.

Инструкция Disallow учитывается, только если она подчинена какой-либо строке User-agent - то есть если выше нее есть строка User-agent.

Любой текст от знака решетки "#" до конца строки считается комментарием и игнорируется.

Пример:

Следующий простой файл robots.txt запрещает индексацию всех страниц сайта всем роботам, кроме робота Рамблера, которому, наоборот, разрешена индексация всех страниц сайта.

# Инструкции для всех роботов
User-agent:   *
Disallow:	/

# Инструкции для робота Рамблера
User-agent:	StackRambler
Disallow:

Распространенные ошибки:

Перевернутый синтаксис:
User-agent: /
Disallow: StackRambler
А должно быть так:
User-agent: StackRambler
Disallow:  /
Несколько директив Disallow в одной строке:
Disallow: /css/ /cgi-bin/ /images/
Правильно так:
Disallow: /css/
Disallow: /cgi-bin/
Disallow: /images/
    Примечания:
  1. Недопустимо наличие пустых переводов строки между директивами 'User-agent' и 'Disallow' ('Allow'), а также между самими 'Disallow' ('Allow') директивами.
  2. В соответствии со стандартом перед каждой директивой 'User-agent' рекомендуется вставлять пустой перевод строки.
  3. Комментарии рекомендуется писать отдельной строкой, чтобы одни однозначно воспринимались поисковыми роботами
  4. Пробел в начале строки разрешается, но не рекомендуется.
  5. Не указывайте несколько директив в одной строке. Различные почтовые роботы могут понять эту директиву по-разному. Некоторые проигнорируют пробелы и поймут директиву, как запрет на индексацию каталога, состоящего из всех записей строки, либо возьмут только один каталог и проигнорируют все остальное
  6. Не редактируйте файл robots.txt в формате DOS. Всегда редактируйте свой robots.txt в режиме UNIX и закачивайте файл на сайт в режиме ASCII. Многие FTP-клиенты умеют при закачке в текстовом режиме переводить символы строки из DOS-формата в UNIX-формат.
  7. Google - первый поисковый сервер, который поддерживает в директивах регулярные выражения. Что позволяет запрещать индексацию файлов по их расширениям.
    User-agent: googlebot
    Disallow: *.cgi
    

Кроме использования файла robots.txt, Вы можете управлять индексацией с помощью МЕТА-тега robots и директив <noindex>...</noindex>

Использованы материалы с сайтов поисковых систем: Rambler, Yandex, Google.

Стандарт Robots.txt

А проверить как Яндекс "реагирует на ваш robots.txt можно на этой страничке

Пример разбора файла robots.txt на PHP

Здесь можно проверить принадлежность адреса файлу robots.txt


.