- Robots.Txt по-русски - -
Ошибки, часто встречающиеся в файле robots.txt
Posted By GlebMarkov On 18.03.2010 @ 3:24 дп In | No Comments
Одна из самых распространённых ошибок в robots.txt – перепутаные между собой инструкции. Например:
User-agent: /
Disallow: Yandex
Правильно писать вот так:
User-agent: Yandex
Disallow: /
Многие владельцы сайтов пытаются поместить все запрещаемые к индексации каталоги в одну инструкцию Disallow.
Disallow: /css/ /cgi-bin/ /images/
Такая запись нарушает стандарт, и невозможно угадать, как ее обработают разные роботы. Некоторые могут «отбросить» пробелы и интерпретируют эту запись как «Disallow: /css/cgi-bin/images/». Некоторые могут использовать только первую или последнюю папки (/css/ или /images/ соответственно). Кто-то может просто отбросить непонятную инструкцию полностью.
Конечно, какие-то роботы могут обработать эту конструкцию именно так, как расчитывал веб-мастер, но расчитывать на это все же не стоит. Правильно надо писать так:
Disallow: /css/
Disallow: /cgi-bin/
Disallow: /images/
Файл должен называться robots.txt, а не Robots.txt или ROBOTS.TXT.
Еще раз – файл должен называться robots.txt.
Так неправильно:
User-agent:
Disallow:
Так правильно:
User-agent: *
Disallow:
Следует писать без аббревиатуры протокола передачи гипертекста, то есть без http:// и без закрывающего слеша /
Неправильно:
User-agent: Yandex
Disallow: /cgi-bin
Host:
Правильно:
User-agent: Yandex
Disallow: /cgi-bin
Host:
Директива host Является корректной только для робота Яндекса [19]
Иногда хочется написать что-то вроде:
User-agent: *
Disallow: file*.html
для указания все файлов file1.html, file2.html, file3.html и т.д. Но нельзя, к сожалению (некоторые роботы поддерживают символы подстановки [20]).
По стандарту, такая запись вполне возможна:
Disallow: /cgi-bin/ #запрещаем роботам индексировать cgi-bin
В прошлом некоторые роботы не обрабатывали такие строки. Вероятно, сейчас ни у одной из основных поисковых систем уже нет такой проблемы, но стоит ли рисковать? Лучше помещать комментарии отдельно.
Довольно часто, на сайтах без файла robots.txt при запросе этого файла делается переадресация на другую страницу. Иногда такая переадресация происходит без отдачи статуса 404 Not Found. Пауку самому приходится разбираться, что он получил – robots.txt или обычный html-файл. Эта ситуация вряд ли создаст какие-то проблемы, но все-таки лучше всегда класть в корень сайта пустой файл robots.txt.
USER-AGENT: GOOGLEBOT
DISALLOW:
Хотя по стандарту robots.txt и нечувствителен к регистру, часто к нему чувствительны имена файов и директорий. Кроме того, написание robots.txt сплошь заглавными буквами считается плохим стилем.
User-agent: googlebot
Disallow:
Еще одной ошибкой является перечисление каждого файла в директории:
User-agent: *
Disallow: /AL/Alabama.html
Disallow: /AL/AR.html
Disallow: /Az/AZ.html
Disallow: /Az/bali.html
Disallow: /Az/bed-breakfast.html
Вместо этого можно просто закрыть от индексации директорию целиком:
User-agent: *
Disallow: /AL/
Disallow: /Az/
Примечание: Не существовало на момент перевода данного текста, сейчас эта инструкция поддерживаетcя и Гуглом, и Яндексом. Уточняйте по использованию для других роботов.
Нет инструкции Allow, есть только Disallow. Файл robots.txt ничего не разрешает, только запрещает!
Отдельные роботы (например googlebot [20]) понимают директиву Allow
Так неправильно:
User-agent: Yandex
Disallow: /john/
Allow: /jane/
А вот так – правильно:
User-agent: Yandex
Disallow: /john/
Disallow:
Некоторые роботы могут неправильно отреагировать [21] на использование дополнительных директив. Это значит, что не стоит использовать дополнительные директивы в секции «*».
То есть рекомендуется создавать специальные секции для нестандартных директив, таких как «Host» [19].
Так неправильно:
User-agent: *
Disallow: /css/
Host:
А вот так – правильно:
User-agent: *
Disallow: /css/User-agent: Yandex
Disallow: /css/
Host:
Даже если мы хотим просто использовать дополнительную директиву и не хотим ничего запрещать, лучше всего указать пустой Disallow. По стандарту интрукция Disallow является обязательной, и робот может «неправильно вас понять».
Так неправильно:
User-agent: Yandex
Host:
Так правильно:
User-agent: Yandex
Disallow:
Host:
Обсуждение этого вопроса на [22]
Как в этом случае поступит робот?
User-agent: Yandex
Disallow: john
По стандарту, он не будет индексировать файл с именем “john” и директорию с именем “john”. Для указания только директории надо писать так:
User-agent: Yandex
Disallow: /john/
Сервер должен возвращать в HTTP-заголовке для robots.txt «Content-Type: text/plain» а, например, не «Content-Type: text/html». Неправильный заголовок может привести к тому, что некоторые роботы не обработают файл.
Article printed from Robots.Txt по-русски:
URL to article: /robotstxterrors
URLs in this post:
[1] Непосредственно ошибки: #_
[2] Перепутанные инструкции: #__1
[3] Указание нескольких каталогов в одной инструкции Disallow: #Disallow
[4] Имя файла содержит заглавные буквы: #____
[5] Использование файла robot.txt вместо robots.txt: #robot.txt__robots.txt
[6] Пустая строка в User-agent: #User-agent
[7] Url в директиве Host: #Url___Host
[8] Использование в Disallow символов подстановки: #Disallow__
[9] Плохой стиль: #__2
[10] Комментарии на одной строке с инструкциями: #_____
[11] Редирект на страницу 404-й ошибки:: #___404-_:
[12] Заглавные буквы – это плохой стиль: #______1
[13] Перечисление всех файлов: #__
[14] Инструкции Allow не существует! [перевод устаревший]: #Allow____
[15] Использование дополнительных директив в секции *: #______2
[16] Отсутствие инструкции Disallow: #Disallow_1
[17] Отсутствие слешей при указании директории: #_____1
[18] Неправильный http-заголовок: #http-
[19] робота Яндекса: /rurobots/yandex#host
[20] поддерживают символы подстановки:
[21] могут неправильно отреагировать:
[22] Обсуждение этого вопроса на :
Click here to print.
Copyright © 2026–2011 Robots.Txt по-русски (/). All rights reserved.