Запрет индексации страниц сайта, файл robots.txt
В данной статье описано как запретить поисковым системам индексировать некоторые части вашего сайта, описан формат файла robots.txt, мета тег robots, а также инструкция rel
Желание, чтобы сайт был максимально полно проиндексирован поисковыми системами, вполне естественно для каждого веб-мастера. Однако и в этом можно переусердствовать. Для чего же может понадобиться запретить индексацию некоторых частей сайта? В основном для того, чтобы исключить из индекса поисковых систем служебных частей сайта.
Например, если на вашем сайте есть страницы регистрации пользователя, входа в систему, подписки на рассылку и прочие подобные, то их индексация нанесет больше вреда чем пользы: эти страницы не несут никакой смысловой нагрузки и получить с них посетителей, а тем более целевых посетителей, практически невозможно. Но есть и более важная проблема: если на эти страницы установлена ссылка (а она наверняка установлена), то ей будет передана часть ПР, а значит, другие страницы будут индексироваться немного хуже. В добавок к этому робот поисковой системы, в зависимости от популярности сайта, может посетить не все, а только некоторые страницы и в итоге самые важные и удачные страницы вашего сайта могут оказаться просто незамеченными, в то время как поисковый бот будет регулярно заходить на страницы авторизации (благо он пока еще не пытается авторизироваться).
Также на сайте может находиться какой-либо специализированный сервис, который нежелательно показывать поисковым системам, но ссылку на него иметь надо. Возможен еще один случай: имеется, например, PDA версия форума. В веб-выдаче поисковиков это также пользы не принесет. Кроме того, часто сайты, написанные на основе какой-либо CMS, имеют часть страниц в области /admin. В этом случае полезно запретить индексирование всего каталога /admin.
Файл robots.txt
Теперь о том, как запретить индексацию страниц сайта. Самый наилучший способ для этого - воспользоваться специальным файлом robots.txt, в котором описаны ограничения индексации. Он был разработан еще в 1994 году и с того времени претерпел немного изменений. Представляет из себя обычный текстовый файл Windows или Unix (роботы понимают оба формата), который можно создать в любом текстовом редакторе. Суть этого файла в следующем: поисковый робот заходит на сайт, проверяет существование файла, и, если он существует, читает из него запреты на индексацию.
Стоит заметить тот факт, что поисковик, в принципе, вовсе не обязан следовать этим инструкциям и некоторые “не добропорядочные” его просто игнорируют, однако, в виду того, что большинство поисковых роботов корректно обрабатывают это файл, можно считать использование robots.txt достаточно надежным и удобным инструментом.
Для того, чтобы роботы поисковых систем смогли воспользоваться инструкциями этого файла, должны выполняться следующие условия:
- robots.txt должен быть расположен в домашней директории сайта;
- robots.txt должен быть доступен по протоколу http (например так: http://example.com/robots.txt);
- имя файла должно состоять из прописных символов (тоесть не Robots.txt и не ROBOTS.TXT);
- на одном домене должен быть только один файл robots.txt (если этого недостаточно, то можно использовать тег <meta name=”robots”>).
Теперь о формате robots.txt. Он представляет из себя список записей, а каждая запись состоит из полей, разделенных переводом строк, т.е. одна строка - одно поле. Каждая запись начинается одим или несколькими полями “User-agent” и заканчивается одним или несколькими “disallow”. Каждое поле записывается следующим образом:
<Field>:<OptionalSpace><Value>
<Field> - служебное слово “User-Agent” или “Disallow”
<Value> - значение.
<OptionSpace> - обобщающий пробел, под которым понимаются один или более пробелов, знак табуляции.
User-agent задает название поискового робота, к которому относятся последующие инструкции disallow. Если сразу же после поля “user-agent” будет встречено другое поле “User-agent”, то считается, что запреты описываются сразу для нескольких поисковых роботов. Если же между двумя полями ” User-agent” есть поля “disallow”, то считается, что поисания запретов относятся к разным роботам. Вот основные роботы, которые можно указывать в user-agent:
- Yandex
- Rambler
- Google
- Search.Mail.ru
- Metabot
- Gogo
- *
Для того, чтобы дать одинаковые запреты всем роботам используется символ “*”.
Disallow задает запрещаемый к индексации объект. Этим объектом может быть директорий на сервере или конкретная страница.
Вот пример использования robots.txt, запрещающий индексировать файлы login.php и register.php всем поисковым системам:
User-agent: *
Disallow: /login.php
Disallow: /register.php
Запрет индексации файла /edit/index.html роботу yandex и всей директории /admin всем роботам.
User-agent: Yandex
Disallow: /edit-
User-agent: *
Disallow: /admin
Директива host сообщает поисковому роботу о существовании основного зеркала сайта, например
host: example.com
сообщит поисковым системам, что example.com - это основное зеркало, а не www.example.com (не забывайте, что URL с www и без www - это разные с точки зрения поисковых система адреса). Учтите также, что после двоеточия не должно быть префикса http://, а в конце URL не должно быть слеша.
Файл robots.txt должен содержать записи, начинающиеся одним или несколькими user-agent и заканчивающимися одним или несколькими disallow (или host). Содержимое файла не чувствительно к регистру. Также можно использовать комментарии в общепринятом формате Unix, т.е. начинающиеся с # и заканчивающиеся концом строки. В одной строке disallow может находиться несколько объектов, разделенных пробелом, но, так как это можно было не всегда, рекомендуется писать все запрещения отдельно. Еще одно замечание: в поле disallow необходимо писать пути без префикса http.
Если поисковый робот не нашел файл robots.txt, то он принимает это как отсутствие запрещений на индексацию. При этом следует учитывать, что если файла robots.txt не будет найден, то ваш сервер может вернуть код ответа 200 (все нормально) и вывести 404ю страницу как обычный html-документ. В этом случае поисковому роботу придется самостоятельно разбираться в тексте страницы. Скорее всего, это не приведет к нежелательным последствиям, но все же рекомендуется создать пустой файл robots.txt и гарантировать тем самым отсутствие неожиданностей.
В большинстве случаев файла роботс достаточно, чтобы настроить правильную индексацию сайта, однако, существуют и другие методы ограничить посещения поискового бота.
Мета-тег robots
Мета тег позволяет запретить индексацию страницы поисковым роботам, причем его действие распространяется сразу на все роботы (если они, конечно придерживаются привил и обращают на него внимание). Как и любой другой мета-тег, robots необходимо указывать в секции head html-документа. Выглядит он следующим образом:
<META NAME=”ROBOTS” CONTENT=”NOINDEX, NOFOLLOW”>
В поле Content могут быть указаны следующие значения:
- INDEX, NOINDEX
- FOLLOW, NOFOLLOW
- ALL, NONE
INDEX и NOINDEX разрешают или запрещают индексация поисковыми системами данной страницы, FOOLLOW и NOFOLLOW разрешают или запрещают анализировать ссылки, расположенные на данной странице (тот же эффект достигается инструкцией rel), ALL соответствует FOLLOW и INDEX, а NONE - NOINDEX и NOFOLLOW.
Инструкция NOFOLLOW применяется в основном в тех случаях, когда ссылку размещают посетители сайта, например в гостевой книге. В этом случае бразуер будет воспринимать ссылку как самую обыкновенную, но, в то же время, поисковые системы ее не будут учитывать.
Инструкция rel
Инструкция rel позволяет запретить анализировать конкретную ссылку html-документа. Наример, ссылка
<a href=”http://example.com” rel=”nofollow”>
приведет к тому, что поисковые системы проигнорируют ее.
На самом деле это не совсем так: инструкцию rel учитывают не все поисковые роботы - это прерогатива систем google, msn, yahoo. Данный запрет имеет смысл использовать также в тех случаях, если ссылку оставляют посетители сайта.
Тем <noindex>
Позволяет запретить индексировать часть страницы, заключенной между тегами <noindex> и </noindex>.
Также как и в случае инструкции rel, данный тег поддерживают не все поисковые системы, а только Yandex и Rambler. Также следует учитывать, что ни в каких стандартах данный тег не предусмотрен, поэтому страница, его содержащая перестает проходить валидацию (проверка на правильность и корректность html-кода).