Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
15 Января 2013 в 12:52

Интерактивный тренажёр по Robots.txt

0 5246
Анастасия Марголис
SEOnews

Материал не ориентирован на аудиторию SEO-гуру


Уилл Критчлоу (Will Critchlow), основатель и владелец SEO-компании DistilledВ январе 2006 г. на заре своего существования SEOnews опубликовал подробную инструкцию по использованию файла robots.txt. И вот спустя 7 лет аудитории сайта предоставляется возможность закрепить знания или проверить усвоенность материала. Уилл Критчлоу (Will Critchlow), основатель и владелец SEO-компании Distilled, разработал и опубликовал на SEOmoz обучающий интерактивный гид по robots.txt.

Вводный инструктаж

Robots.txt — это простой текстовый файл, располагающийся в корневом каталоге домена (www.example.com/robots.txt). Являясь общепризнанным стандартом, он позволяет вебмастерам регулировать все виды автоматического использования сайта — в частности, ограничивать доступ поисковым роботам к содержимому сайта (запрещать сканирование и индексирование).

Каждый из уроков интерактивного учебника по robots.txt завершается практическим заданием. Чтобы проэкзаменовать себя, исправляйте строки команд в полях в соответствии с инструкциями. Если введённый Вами ответ окажется правильным, поле окрасится в зелёный цвет.

Урок 1. Базовое исключение

Теоретическая часть:

Наиболее распространённый сценарий использования robots.txt — это блокировка доступа роботам к определённым страницам. Самый простой вариант — применение правила для всех роботов (агентов пользователя), прописываемое в виде строки User-agent: *. Все последующие за ней строки содержат предписания на запрет сканирования и индексирования конкретных страниц, файлов, каталогов — они начинаются с Disallow: /. Так, например, нижеприведённый код блокирует роботам доступ к /secret.html.

Практическое задание:

Внесите ещё одно предписание, чтобы заблокировать доступ к /secret2.html в дополнение к /secret.html.

Урок 2: Исключение каталогов

Теоретическая часть:

Если вы заканчиваете предписание на закрытие от поисковых роботов косым слэшем («/»), например, так: Disallow: /private/, будет заблокировано всё содержимое данного каталога.

Практическое задание:

Измените правила исключения в нижеприведённой строке, чтобы заблокировать папку под названием secret, вместо страницы secret.html.

Урок 3: Разрешение отдельных траекторий

Теоретическая часть:

В дополнение к запрету доступа к конкретным траекториям (ссылкам) синтаксис robots.txt позволяет открывать доступ к отдельным файлам, страницам, каталогам. Необходимо отметить, что доступ поисковым роботам открыт по умолчанию, так что, если в файле нет никаких указаний от вебмастера, все пути для googlebot и его коллег открыты.

Основное применение директивы Allow: — это исключение отдельных страниц/элементов из общего предписания по Disallow:. Закон приоритетного правила гласит:

Наиболее конкретное правило, определяющееся по длине записи [пути], будет превалировать над менее конкретным (более коротким) правилом. Порядок приоритетности предписаний с шаблонами не определён.

Практическое задание:

Подкорректируйте исключение папки /secret/ внизу, разрешив роботам с помощью правила Allow: доступ к /secret/not-secret.html. Поскольку это правило длиннее, ему будет придаваться первостепенное значение.

Урок 4: Ограничения для отдельных Агентов пользователя

Теоретическая часть:

Каждая из вышерассмотренных директив одинаково распространялась на всех роботов. Такое предписание было заложено в строке User-agent: *, с которой начиналась каждая команда. Заменив * на название конкретного робота, можно создавать правила, касающиеся исключительно его одного.

Практическое задание:

Замените * на googlebot в нижеприведённом примере, чтобы запретить доступ к папке /secret/ одному только роботу Google и открыть для роботов остальных ПС.

Урок 5: Добавление множественной блокировки

Теоретическая часть:

Можно создавать сразу несколько блоков команд, ориентированных на различные группы роботов. Нижеприведённый пример robots.txt разрешает доступ googlebot ко всем файлам, за исключением тех, которые включены в каталог /secret/, и запрещает всем остальным роботам доступ к сайту в целом. Поскольку имеется набор директив, направленных конкретно на googlebot, googlebot полностью будет игнорировать команды, распространяющиеся на всех роботов сразу. Это свидетельствует о невозможности создания персональных исключений на базе общих предписаний. Если Вы хотите задать правила для отдельно взятых роботов, следует создавать отдельные предписания для каждого из них поимённо.

Практическое задание:

Добавьте второй блок директив, направленный на всех роботов (User-agent: *), который блокирует весь сайт (Disallow: /). Это позволит создать файл robots.txt, который запрещает доступ ко всему сайту всем веб-паукам, за исключением googlebot. Он, согласно первому — персональному — предписанию, может сканировать все страницы, кроме тех, что в папке /secret/. (Каждую директиву прописываем с новой строки!)

Урок 6: Использование более конкретных User Agents

Теоретическая часть:

Бывают случаи, когда необходимо контролировать поведение отдельных краулеров, таких как паук Google-картинок, отдельно от основного робота Google. Для того чтобы реализовать это в robots.txt, приходится прописывать для каждого из краулеров (как для отдельного User-agent) прямые предписания. К примеру, если при наличии блока инструкций для googlebot есть отдельный для googlebot-images, картиночный паук будет руководствоваться последним. Если же нет персональных указаний для googlebot-images (или других специальных роботов Google), этот краулер будет подчиняться общим директивам для googlebot.

Практическое задание:

В нижеследующем примере robots.txt googlebot-images будет подчиняться директивам для googlebot (т.е. не будет сканировать папку /secret/). Измените предписание так, чтобы инструкции для googlebot (и googlebot-news и т.д.) остались теми же, а для googlebot-images появилось отдельное предписание, запрещающее доступ к папкам /secret/ и /copyright/. (Каждую директиву прописываем с новой строки!)

Урок 7: Основные шаблоны

Теоретическая часть:

Завершающие строку шаблоны (обозначенные *) игнорируются: Disallow: /private* считывается так же, как и Disallow: /private. Тем не менее, такие шаблоны эффективны для работы с несколькими видами страниц одновременно. Символ звёздочка (*) обозначает любую (в том числе пустую) последовательность любых валидных символов (включая /, ? и т.д.).

К примеру, Disallow: news*.html блокирует:

  • news.html
  • news1.html
  • news1234.html
  • newsy.html
  • news1234.html?id=1

Однако оставляет доступным:

  • newshtml из-за отсутствия «.»
  • News.html из-за чувствительности к регистру
  • /directory/news.html

Практическое задание:

Исправьте нижеприведённую схему, чтобы заблокировать в директории blog только те страницы, которые заканчиваются на .html, вместо блокировки каталога целиком.

Урок 8: Блокировка конкретных параметров

Теоретическая часть:

В числе распространённых вариантов использования шаблонов находится и блокировка конкретных параметров. Например, один из способов обработки фасетной навигации — это блокировка комбинаций из 4-х и более фасетов (параметров). К примеру, можно добавить в своей системе такой параметр для всех комбинаций из 4+ фасетов как ?crawl=no. Это будет означать, к примеру, что URL для 3-х параметров может быть /facet1/facet2/facet3/, но, когда добавится 4-ый, он превратится в /facet1/facet2/facet3/facet4/?crawl=no.

Правило блокировки для роботов в данном случае должно выглядеть как *crawl=no (не *?crawl=no).

Практическое задание:

Добавьте правило Disallow: в robots.txt внизу, чтобы предотвратить сканирование всех страниц, которые содержат crawl=no.

Урок 9: Работа с целыми именами файлов

Теоретическая часть:

Пример исключения папок, в котором модели /private/ будут соответствовать траектории всех файлов, принадлежащих этой папке (в частности, /private/privatefile.html), показал, что по умолчанию образцы, указанные в robots.txt, соответствуют лишь части имени файла и не позволяют ничему идти после второго слэша, даже без специально заданных шаблонов.

Бывают случаи, когда необходимо закрыть от сканирования и индексации отдельные имена файлов целиком (с шаблонами или без них). Например, следующий образец robots.txt выглядит как предотвращение сканирования jpg-файлов, но на самом деле также предотвращает сканирование файла под именем explanation-of-.jpg.html, так как он тоже соответствует шаблону.

Если Вам нужен шаблон, задающий соответствие конечных символов URL-адреса (имени файла), заканчивайте командную строку знаком $. К примеру, изменение исключения с Disallow: /private.html на Disallow: /private.html$ нарушит шаблонное соответствие /private.html?sort=asc и, следовательно, позволит сканировать эту страницу.

Практическое задание:

Измените нижеприведённый шаблон, чтобы исключить действующие .jpg-файлы (т.е. те, которые заканчиваются .jpg).

Урок 10: Добавление XML Карты сайта

Теоретическая часть:

Последняя строка многих файлов robots.txt является директивой, указывающей местоположение XML Карты сайта. Существует множество причин для включения Sitemap для вашего сайта, а также для включения её в Ваш файл robots.txt. Указать местоположение вашей sitemap можно с помощью директивы Sitemap: ссылка>.

Практическое задание:

Добавьте директиву Sitemap в нижеприведённый robots.txt для карты сайта под названием my-sitemap.xml, которую можно найти по адресу http://www.distilled.net/my-sitemap.xml.

Урок 11: Добавление Sitemap для Видео

Теоретическая часть:

На самом деле Вы можете добавить несколько XML Карт сайта (каждую отдельной строкой), используя тот же синтаксис.

Практическое задание:

Измените нижеприведённый robots.txt, чтобы включить в него video sitemap под названием my-video-sitemap.xml, располагающуюся в /my-video-sitemap.xml.


0 комментариев
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.

    Отправьте отзыв!