После выкладки своего сайта на http-сервер перед владельцем встает проблема правильной и быстрой его индексации поисковыми роботами.
Упрощенно говоря, за индексацию сайта отвечают два файла: sitemap.xml и robots.txt. И если первый файл (карта сайта) помогает поисковым роботам ориентироваться в структуре сайта в процессе индексации, то robots.txt, напротив, может выборочно запрещать поисковому боту индексировать указанные разделы сайта. Одновременно с этим он может указывать роботу, что нужно проиндексировать в первую очередь.
Размещать файл robots.txt нужно в корневой директории сайта. Первым делом роботы заходят в корневую папку http://domen.ru в которой надеются найти файл robots.txt. Если в этой директории этого файла нет (или вы разместили его в другом месте) они просто согласятся с его отсутствием и приступят к индексации всего содержимого, в том числе и того, которое вам хотелось бы скрыть. Если у сайта существуют поддомены, то файл robots.txt нужно создать для каждого из них.
Структурно файл robots.txt состоит из разделов (секций) в которых располагаются строки директив (правил).
Каждый раздел должен начинаться с директивы User-agent и содержать значение User-agent того робота, к которому она относится.
User-agent: * #с символом * - относится ко всем роботам всех поисковых систем; User-agent: Yandex #- относится к ботам Yandex; User-agent: Googlebot #- к ботам Google;
и т.д.
Каждая секция обрабатывается роботом отдельно, содержание предыдущих секций не учитывается.
Секции разделяются между собой хотя бы одной пустой строкой.
Секция включает в себя директивы вида: [Имя директивы]: [пробел (необязательно)] [значение] [пробел (необязательно)].
Например:
User-agent: Googlebot Disallow:/ #Эта директива полностью запрещает боту Google индексировать весь сайт.
Запись директивы следует до конца текущей строки, переносы не допускаются. Между директивами внутри одной секции не должно быть пустых строк.
Директивы можно комментировать. От директивы комментарий отделяется знаком # и продолжается до конца строки. Если комментарий многострочный, то каждая его строка должна начинаться с символа #.
User-agent: Googlebot # это директива. Disallow:/primer #это тоже директива, запрещающая боту Google индексировать директорию /primer. #это вторая строка этого комментария, она также игнорируется поисковым ботом.
Разрывать строку директивы комментарием — не допускается.
Disallow: #так делать нельзя/primer
В директивах могут применяться специальные символы * и $. Символ «звездочка» — * подразумевает любую последовательность (в том числе пустую) любых символов. Таким образом под маску /primer* подпадает и /primer1 и /primer.html.
Символ * приписывается к концу каждой директивы по умолчанию, поэтому директивы:
Disallow: /primer* Disallow: /primer
абсолютно идентичны.
Чтобы при интерпретации директивы роботом избежать «дописывания» символа * применяют спецсимвол $, который означает завершение подстроки сравнения.
User-agent: Yandex Disallow: /primer$ # запрещает индексировать /primer, но не запрещает индексировать /primer.html.
Самая распространенная директива, которая запрещает боту индексировать весь сайт или его часть согласно прописанному в ней пути.
Директива Disallow с пустым значением параметра равнозначна директиве Allow:/ т.е. разрешает индексировать весь сайт. Точно так же пустая директива Allow соответствует директиве Disallow:/ т.е. запрещает индексировать весь сайт.
Disallow: = Allow:/ # разрешение индексации Allow: = Disallow:/ # запрет индексации
Директива Allow имеет с Disallow схожий синтаксис, но, напротив, указывает роботу какие пути можно индексировать.
User-agent: Yandex Allow: /primer Disallow: /
Роботам Yandex запрещено индексировать весь сайт, кроме путей, начинающихся с /primer.
Директивы Allow и Disallow находящиеся в пределах одного раздела User-agent сортируются роботом по длине префикса URL от меньшего к большему. И к исполнению принимаются последовательно, согласно отсортированному таким образом, списку. Поэтому не имеет значения в какой последовательности располагать директивы в разделе.
Фактически в файле записано так:
User-agent: Yandex Allow: /primer Disallow: / Робот сортирует: User-agent: Yandex Disallow: / Allow: /primer
Разрешает индексировать только пути начинающиеся с /primer
Если обе директивы имеют префикс одинаковой длины, то приоритет отдается директиве Allow.
Если структура сайта описана посредством файла sitemap.xml, то укажите роботу путь к нему в качестве параметра директивы Sitemap.
Робот запомнит путь, обработает данные и использует их в последующих загрузочных сессиях.
User-agent: Yandex Disallow: / Allow: /primer Sitemap: http://site.ru/struktura_site/sitemaps1/xml Sitemap: http://site.ru/struktura_site/sitemaps2/xml
Директива Host корректно интерпретируется только ботами Yandex. Она явно указывает поисковому роботу-«зеркальщику» на главное зеркало сайта. Дело в том, что сайт с одинаковым контентом может быть доступен как в нескольких доменных зонах, например:
site.ru
site.com,
так и либо с лидирующим префиксом WWW, либо без него:
www.site.ru
site.ru
Директиву Host рекомендуется вставлять после директив Allow и Disallow, ee значением должно быть доменное имя с номером порта (по умолчанию — 80). В каждом файле robots.txt может быть обработана только одна директива Host. Если их указано несколько, то робот исполнит только первую. Некорректно записанные директивы Host игнорируются.
C помощью этого правила можно задать поисковому боту минимальный отрезок времени (в секундах) между завершением загрузки одной страницы и началом загрузки следующей. Её применение оправданно, если роботы слишком часто индексируют сайт, что вызывает повышенную нагрузку на сервер. Прописывается она непосредственно после директив Allow, Disallow.
Рекомендации Yandex по составлению файла robots.txt
Рекомендации Google по составлению файла robots.txt
Проверить свой robots.txt на корректность можно в Yandex и в Google.