ТеорияФайл robots.txt – это текстовый файл, находящийся в корневой директории сайта, в котором записываются специальные инструкции для поисковых роботов. Эти инструкции могут запрещать к индексации некоторые разделы или страницы на сайте, указывать на правильное «зеркалирование» домена, рекомендовать поисковому роботу соблюдать определенный временной интервал между скачиванием документов с сервера и т.д.
Создание robotx.txtЧтобы создать файл robotx.txt, нужен простой текстовый файл. Если вы не собираетесь создавать запреты к индексации, можно сделать пустой файл robots.txt.
Для Рунета самой часто встречающейся задачей является создание файла
robots.txt для Яндекса, так как сейчас Яндекс – самая популярная поисковая система. Важно уметь правильно использовать
директиву host, которую соблюдает этот поисковик.
Используйте следующий синтаксис, чтобы исключить имя файла для определенной поисковой машины:
User-agent: {SpiderNameHere}
Disallow: {FilenameHere} Например, чтобы сообщить пауку Excite, который называется ArchitextSpider, не индексировать файлы с названиями orderform.html, product1.html, и product2.html, нужно записать в robots.txt следующее:
User-agent: ArchitextSpider
Disallow: /orderform.html
Disallow: /product1.html
Disallow: /product2.html Согласно спецификации на robots.txt, текст в нем чувствителен к регистру, так что Вы должны записать User-agent, а не User-Agent. Вызывает ли это проблему практически, я не могу говорить наверняка. Чтобы быть уверенным, соблюдайте требования спецификаций. Кроме того, убедитесь, что Вы включаете косую черту перед именем файла, если напильник находится в корневом каталоге. Строка User-agent - идентификатор робота поисковой системы, которому вы запрещаете индексировать страницу. Это подобно “кодированному названию” для паука поисковой машины, которыйиндексирует страницы в Интернете. Имя робота может быть похоже на название поисковика, или полностью отличаться. Я перечислю официальные названия User-agent осноных поисковых машин позже в этой статье. Как только Вы создали ваш robots.txt, этот текстовый файл нужно загрузить в корневому каталогу вашего сайта. Хотя robots.txt не является обязательным, большинство главных механизмов поиска выполнит его. Если Вы не имеете своего домена, а используете субдомен или директорию внутри домена, то ваш robots.txt может быть не прочитан, так как по стандарту робот проверяет наличие его только в корневом каталоге домена. Это еще одна причина вложить капитал в ваше собственное имя домена!
Вы можете добавлять дополнительные строки, чтобы исключить страницы из других поисковиков, определяя параметр User-Agent снова в том же самом файле, ставя за ним строки Disallow. Каждое вхождение Disallow будет применено к последнему User-agent, который был определен. Если Вы хотите исключить целыйкаталог, используйте синтаксис:
User-agent: ArchitextSpider
Disallow: /mydirectory/ Общая ошибка состоит в том, чтобы поставить * после директивного названия, чтобы указать, что Вы хотите исключить все файлы в этом каталоге. Однако, правильно будет НЕ включать никаких звездочек и символов умолчания в поле Disallow. Согласно технических требований, подразумевается, что запись выше отвергнет все файлы в “mydirectory”. Чтобы закрыть от индексирования файл, названный product.htm в “mydirectory” подкаталоге, сделайте так:
User-agent: ArchitextSpider
Disallow: /mydirectory/product.htm Вы можете исключать страницы для ВСЕХ пауков следующей записью:
User-agent: * В строк User-agent Вы МОЖЕТЕ использовать звездочку как групповой символ. Чтобы запретить индексацию всех страниц на сайте, запишите
Disallow: / Вы используете только косую черту, чтобы указать, что Вы хотите весь сайт. Не используйте звездочку здесь. Важно, чтобы Вы не допускали ошибок. Если Вы сделаете ошибки, это не может работать, и Вы не будете знать это, покане будет слишком поздно! Возможно, что некоторые поисковые системы могут обрабатывать общие вариации синтаксиса без проблем. Однако, это не гарантирует, что они будут все допускать расхождения в синтаксисе. Поэтому не устраивайте себе проблем. Если в некоторой точке Вы находите, что ваш синтаксис был неправилен, исправьте проблему, и затем сабмитьте повторно. Поисковая машина повторно проиндексирует ваш сайт и выполнит все указания в robots.txt. Если Вы желаете включить комментарий в robots.txt , Вы должны перед ним поставить поставить # наподобие следующего: # Here are my comments about this entry. Каждый набор Disallow должен быть отделен пустой строкой. Например, для исключения различных страниц из различных поисковых систем можно написать следующее:
User-agent: ArchitextSpider
Disallow: /mydirectory/product.htm
Disallow: /mydirectory/product2.htm User-agent: Infoseek Disallow: /mydirectory/product3.htm Disallow: /mydirectory/product4.htm Пустая строка между двумя группами записей необходима. Если, с другой стороны, Вы хотели бы исключить один и тот же набор файлов для более чем одного паука, можно написать следующее:
User-agent: ArchitextSpider
User-agent: Infoseek
Disallow: /mydirectory/product.htm
Disallow: /mydirectory/product2.htm Примечание относительно подкаталогов: вебмастера любят организовывать дорвеи в различные подкаталоги, согласно поисковой системы для которой они оптимизированы. Однако, некоторые поисковые машины подозреваются в придании более низкого ранга страницам, находящимся в подкаталогах по сравнению с корневым каталогом сайта. Если они чувствуют, что те страницы принадлежат сайту, который разделяет домен с основным сайтом, они могут считать такие страницы, как являющиеся потенциально худшего качества.
Если Вы все еще беспокоитесь относительно хранения страниц в подкаталогах и желали использовать их, Вы можете попросить хостинговую компанию предоставить вам субдомен, ведущий на подкаталог и использовать субдомен для сабмита. Таким образом, угроза со стороны поисковиков уменьшается, так как они не будут видеть подкаталог в URL. Кроме того, Вы можете включать ключевые слова в субдомен, от чего может также улучшиться положения ваших страниц. (Примечание: субдомен - обычно только ” WWW. ” Однако, в этом качестве можно использовать любое слово, лучше характеризующее ваш сайт).
Название робота не всегда соответствует названию механизма поиска. Поэтому, Вы не можете просто написать Altavista в User-agent и ожидать, что AltaVista исключит ваши обозначенные страницы.
В любом случае, дискуссии относительно правильных имен роботов имеются. Беспорядок происходит от вебмастеров, просматривающих логи сервера и видящих сложные названия типа Scooter/2.0 G.R.A.B. X2.0, Infoseek Sidewinder/0.9, или Slurp/2.0. Названия роботов, перечисленные в ваших логах - не обязательно то, что Вы, как ожидается, будете использовать в robots.txt. Причина очень проста, стоит только задуматься. Называть робота Infoseek Sidewinder/0.9 в robots.txt не очень полезно, если поисковая система модифицирует его программное обеспечение и решает использовать Infoseek Sidewinder/2.0 как их новое название в следующем месяце. Имело бы смысл, чтобы миллионы людей узнавали это и модифицировали бы robots.txt для нового названия робота? Они ожидали бы, что люди модифицируют напильник, КАЖДЫЙ РАЗ когда любая поисковая система модифицировал бы версию робота и делать это точно, когда изменение названия произошло? Это маловероятно. В действительности, название, которое должно быть в robots.txt - любое название, которое паук поисковой системы запрограммирован искать. Поэтому, лучший источник информации для этого названия - логи, а справочная информация непосредственно от самой поисковой системы. В теории, робот может искать широкое многообразие вариаций названия. Однако, вообще они будут просто искать общий наименьший знаменатель типа “Scooter” скорее чем “Scooter/2.0”. Если поисковая система гибка, они позволят Вам использовать Scooter/2.0 также, но этому не гарантируют. Поэтому, если вы имеете уже установку robots.txt на вашем сайте, проверьте синтаксис и названия роботов против списка ниже. Все названия чувствительны к регистру.
Большинство их получено напрямую от поисковых систем или от других уважаемых источников:
Search Engine: User-Agent
AltaVista: Scooter
Infoseek: Infoseek
Hotbot: Slurp
AOL: Slurp
Excite: ArchitextSpider
Google: Googlebot
Goto: Slurp:
Lycos: Lycos
MSN: Slurp
Netscape: Googlebot
NorthernLight: Gulliver
WebCrawler: ArchitextSpider
Iwon: Slurp
Fast: Fast
DirectHit: Grabber
Yahoo Web Pages: Googlebot
Looksmart Web Pages: Slurp Обратите внимание, что многие из двигателей используют “Slurp”, который является пауком Inktomi, использованным на HotBot и других системах на базе Inktomi. К сожалению, я не знаю способ, как Вы можете исключать страницы из паука HotBot и не исключать их из всех других Inktomi сайтов. Они используют того же самого паука, чтобы индексировать страницы и таким образом читают только одну строку в robots.txt . Впрочем, если вы создаете несколько страниц, ориентированных на Inltomi, то это не имеет большого значения, так как все поисковые системы на этой базе ранжируют страницы примерно одинаково.
Если все Ваши страницы имеют хорошее содержание и довольно уникальны, не волнуйтесь относительно robots.txt. Если Вы работаете только над оптимизацией существующих страниц на вашем сайте, не волнуйтесь относительно robots.txt. Если, однако, Вы решаете, что Вам нужно экспериментировать с более чем несколькими страницами, которые являются довольно похожими, используйте robots.txt, особенно с AltaVista.
Наконец, после создания вашего robots.txt, Вы можете проверить его с помощью бесплатного сервиса на:
http://www.tardis.ed.ac.uk/~sxw/robots/check/ Ошибки, часто встречающиеся в файле robots.txt1. Одна из самых распространённых ошибок в robots.txt – перепутаные между собой инструкции. Например:
User-agent: /
Disallow: YandexПравильно писать вот так:
User-agent: Yandex
Disallow: /2. Многие владельцы сайтов пытаются поместить все запрещаемые к индексации каталоги в одну инструкцию Disallow.
Disallow: /css/ /cgi-bin/ /images/Такая запись нарушает стандарт, и невозможно угадать, как ее обработают разные роботы. Некоторые могут «отбросить» пробелы и интерпретируют эту запись как «Disallow: /css/cgi-bin/images/». Некоторые могут использовать только первую или последнюю папки (/css/ или /images/ соответственно). Кто-то может просто отбросить непонятную инструкцию полностью.
Конечно, какие-то роботы могут обработать эту конструкцию именно так, как расчитывал веб-мастер, но расчитывать на это все же не стоит. Правильно надо писать так:
Disallow: /css/
Disallow: /cgi-bin/
Disallow: /images/3. Файл должен называться robots.txt, а не Robots.txt или ROBOTS.TXT.
4. Пустая строка в User-agent
Так неправильно:
User-agent:
Disallow:Так правильно:
User-agent: *
Disallow:5. Url в директиве Host
Следует писать без аббревиатуры протокола передачи гипертекста, то есть без http:// и без закрывающего слеша /
Неправильно:
User-agent: Yandex
Disallow: /cgi-bin
Host: http://www.site.ru/Правильно:
User-agent: Yandex
Disallow: /cgi-bin
Host: www.site.ruДиректива host Является корректной только для робота Яндекса
6. Использование в Disallow символов подстановки
Иногда хочется написать что-то вроде:
User-agent: *
Disallow: file*.htmlдля указания все файлов file1.html, file2.html, file3.html и т.д. Но нельзя, к сожалению (некоторые роботы поддерживают символы подстановки).
7. Еще одной ошибкой является перечисление каждого файла в директории:
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/8. Даже если мы хотим просто использовать дополнительную директиву и не хотим ничего запрещать, лучше всего указать пустой Disallow. По стандарту интрукция Disallow является обязательной, и робот может «неправильно вас понять».
Так неправильно:
User-agent: Yandex
Host: www.example.comТак правильно:
User-agent: Yandex
Disallow:
Host: www.example.com9. Отсутствие слешей при указании директории
User-agent: Yandex
Disallow: johnПо стандарту, он не будет индексировать файл с именем “john” и директорию с именем “john”. Для указания только директории надо писать так:
User-agent: Yandex
Disallow: /john/10. Сервер должен возвращать в HTTP-заголовке для robots.txt «Content-Type: text/plain» а, например, не «Content-Type: text/html». Неправильный заголовок может привести к тому, что некоторые роботы не обработают файл.