belarusweb.net
© Петр Романовский Минск, 2016-2018.



belarusweb.net

Основы создания сайтов...
HTML >>>

Файл robots.txt

Что такое robots.txt

robots.txt - это простой текстовый файл, содержащий инструкции по индексированию сайта для роботов поисковых систем. Располагаться такой файл должен в корневой директории сайта.

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

Инструкции данного служебного файла являются всего лишь рекомендациями и подсказками для поисковых роботов, но не командами, обязательными для исполнения. Кроме того, если на страницу будут вести внутренние или внешние ссылки, то есть вероятность, что она все таки будет проиндексирована роботами и возможно появится в поисковой выдаче. Поэтому для более надежной защиты содержимого страницы следует дополнительно использовать метатеги с директивами по индексированию или даже устанавливать парольную защиту для страниц с наиболее важными конфиденциальными данными.

Как создать файл robots.txt

Для того, чтобы создать файл robots.txt, необходимо создать в любом текстовом редакторе пустой файл и сохранить его с именем robots.txt. Во избежание проблем желательно сохранять файл в кодировке UTF-8. После того, как файл будет создан, нужно заполнить его требуемыми директивами и поместить в корневой каталог сайта.

Синтаксис и основные директивы файла robots.txt

В самом простейшем случае файл robots.txt может оставаться пустым, что будет восприниматься роботами как отсутствие каких-либо ограничений на индексацию страниц сайта. Однако в большинстве случаев для создания директив в файле используются специальные ключевые слова: User-agent, Disallow и Allow. Они поддерживаются всеми основными поисковыми роботами и позволяют разрешить или запретить доступ к любым разделам и страницам сайта.

User-agent - это ключевое слово используется для указания тех поисковых роботов, которым предназначаются дальнейшие инструкции в данном файле robots.txt (см. пример 8.4.1).

Все имеющиеся на данный момент поисковые роботы перечислены в специальной базе данных роботов Интернета, которая находится на сайте http://www.robotstxt.org/db.html. Если же нужно разрешить доступ к страницам сайта всем роботам, то вместо имени робота нужно использовать символ звездочки ('*').

Disallow - это ключевое слово используется тогда, когда нужно запретить доступ поисковым роботам к сайту целиком или же к отдельным его каталогам и страницам (см. пример 8.4.1).

Allow - это ключевое слово используется тогда, когда нужно наоборот разрешить доступ поисковым роботам к отдельным его каталогам и страницам (см. пример 8.4.1).

Ключевое слово Allow обычно используется в ситуации, когда, например, при помощи Disallow была закрыта какая-нибудь директория на сайте, но при этом необходимо оставить для сканирования какие-то поддиректории или вложенные страницы.

Теперь внимательно ознакомьтесь с примером 8.4.1, в нем представлен ряд наиболее часто встречающихся практических ситуаций с использованием описанных выше ключевых слов. Обратите внимание на используемый синтаксис: наличие пробелов, двоеточий, переводов строк, комментариев.


#---- Пример №1 ------

#Разрешаем всем роботам индексировать сайт
User-agent: *
Disallow:

#---- Пример №2 ------

#Запрещаем всем роботам индексировать сайт
User-agent: *
Disallow: /

#---- Пример №3 ------

#Разрешаем индексировать сайт только 
#роботам Yandex и Googlebot
#Блоки директив отделяем пустой строкой
User-agent: Yandex
User-agent: Googlebot
Disallow:

User-agent: *
Disallow: /

#---- Пример №4 ------

#Запрещаем всем роботам индексировать 
#указанные страницы и каталоги
User-agent: *
Disallow: /catalog_1/registration.html
Disallow: /cabinet/user_data.html
Disallow: /catalog_2/catalog_3/

#---- Пример №5 ------

#Запрещаем всем роботам сканировать страницы 
#в каталоге cabinet, но разрешаем сканирование
#в нем страницы site_news.html
User-agent: *
Disallow: /cabinet/
Allow: /cabinet/site_news.html

Пример 8.4.1. Примеры директив в файле robots.txt

Следует отметить, что синтаксис robots.txt подразумевает ряд важных моментов:

Если директивы Disallow и Allow используются в одном блоке User-agent, то они сортируются роботами по длине префикса URL (от меньшего к большему) и выполняются последовательно. При этом, если для каких-то страниц подходят сразу несколько директив, робот отсортирует их по длине префикса URL в независимости от порядка следования в файле robots.txt, а затем использует последнюю из них (см. пример 8.4.2).


#---- Пример №1 ------

#Код до сортировки роботом
#Здесь длина /cabinet/site_news.html больше,
#чем длина /cabinet/, поэтому страница
#site_news.html будет доступна для сканирования
User-agent: *
Allow: /cabinet/site_news.html
Disallow: /cabinet/

#После сортировки роботом  
#User-agent: *
#Disallow: /cabinet/
#Allow: /cabinet/site_news.html


#---- Пример №2 ------

#Код до сортировки роботом
#Разрешаем сканировать страницы, которые
начинаются с /cabinet, но закрываем доступ
#к страницам в подкаталоге /cabinet/site_news/
User-agent: *
Allow: /cabinet
Disallow: /cabinet/site_news/
Disallow: /

#После сортировки роботом 
#User-agent: *
#Disallow: /
#Allow: /cabinet
#Disallow: /cabinet/site_news/

Пример 8.4.2. Нюансы совместного использования директив Allow и Disallow

В случае конфликта директив Disallow и Allow, которые используются в одном блоке User-agent и при этом имеют одинаковую длину префикса URL, роботы отдадут предпочтение директиве Allow.

Использование спецсимволов * и $ в файле robots.txt

В большинстве случаев директив Disallow и Allow вполне достаточно для того, чтобы установить запрет на индексацию роботами нужных страниц сайта. Тем не менее, синтаксис файла robots.txt допускает использование спецсимволов '*' и '$', которые используются в качестве подстановочных знаков и позволяют задавать для префиксов URL простейшие регулярные выражения. Так символ звездочки '*' заменяет любую последовательность символов, в том числе и пустую, а знак доллара '$' обозначает конец текущего префикса URL (далее никаких символов быть не должно). Наиболее важные особенности использования данных подстановочных символов представлены в таблице 8.4.3.

Префикс URL Попадают под фильтр Не попадают Комментарии
/ Любой существующий URL сайта Любой недействительный URL Одиночный слэш '/' обозначает корневой каталог сайта, поэтому для сканирования будут открыты все URL сайта
/* Любой существующий URL сайта Любой недействительный URL Тоже самое что и одиночный слэш '/', т.к. символ звездочки заменяет любую последовательность символов идущую после слэша
/news /news/minsk/
/news/minsk/1.html
/news.html
/news_2.HTML
/news3.html?day=3
/News/minsk/
/2_news.html
Не забываем про чувствительность роботов к регистру символов в URL (даже в именах каталогов!)
/news* /news/minsk/
/news/minsk/1.html
/news.html
/news_2.HTML
/news3.html?day=3
/News/minsk/
/2_news.html
Тоже самое, что и '/news', завершающий подстановочный знак '*' игнорируется
/news/ /news/2.html
/news/minsk/1.html
/news.html
/News/minsk/
/news
Доступ разрешается ко всем подкаталогам и страницам в указанной папке
news/ /news/2.html
/news/minsk/1.html
/news.html
/News/minsk/
/news
Тоже самое, что и запись '/news/'
/*.html /news/2.html
/news/minsk/1.html
/index.html?id=4
/
/news.HTML
Обратите внимание, что просто слэш '/' под фильтр не попадает
/*.html$ /news/2.html
/news/minsk/1.html
/news/2.html/
/news.HTML
/index.html?id=4
Здесь знак доллара указывает на то, что далее адрес не должен содержать никаких символов
/news*.html /news.html
/news/2.html
/news/1.html?id=1
/News/2.html
/news.HTML
Вместо символа звездочки может ничего не использоваться, т.к. он подменяет и пустую последовательность

Таблица 8.4.3. Спецсимволы * и $ в файле robots.txt

Как видно из таблицы, возможность использования в синтаксисе всего лишь двух дополнительных подстановочных символов значительно расширяет арсенал вебмастера по составлению шаблонов URL в соответствующих директивах файла robots.txt.

Директива Sitemap файла robots.txt

Как уже говорилось ранее, в настоящее время для описания структуры сайтов обычно используется специальная карта сайта, которая в большинстве случаев представлена в виде файла sitemap.xml. Чтобы роботам было легко отыскать такую карту, в файле robots.txt предусмотрена директива Sitemap, которая в качестве параметра принимает абсолютный путь к файлу sitemap.xml (см. пример 8.4.4).


#---- Пример №1 ------

User-agent: *
Disallow: /cabinet/

#Директива является межсекционной, поэтому
#может располагаться в любом месте файла
Sitemap: http://belarusweb.net/sitemap.xml


#---- Пример №2 ------

User-agent: *
Disallow: /cabinet/

#Если карт несколько, указываем все
Sitemap: http://belarusweb.net/sitemap_1.xml
Sitemap: http://belarusweb.net/sitemap_2.xml

Пример 8.4.4. Использование директивы Sitemap

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

Директива Host файла robots.txt

Директива Host используется для указания основного домена сайта, т.е. главного зеркала сайта. Все что нужно, это указать имя основного домена в качестве параметра ключевого слова Host (см. пример 8.4.5). И хотя некоторые роботы игнорируют эту директиву, таковых с каждым днем становится все меньше.


#---- Пример №1 ------

User-agent: *
Disallow: /cabinet/

#Если используется протокол HTTP, то его
#указывать необязательно, но допустимо
Host: belarusweb.net


#---- Пример №2 ------

User-agent: *
Disallow: /cabinet/

#А вот здесь с большой долей вероятности 
#в поиске имя будет начинаться с www 
Host: www.belarusweb.net


#---- Пример №3 ------

User-agent: *
Disallow: /cabinet/

#Если используется протокол HTTPS, то 
#его указывать нужно обязательно
Host: https://belarusweb.net


#---- Пример №4 ------

User-agent: *
Disallow: /cabinet/

#Разрешается указывать и порт  
Host: belarusweb.net:8080


#---- Пример №5 ------

#Будет использована роботом
Host: belarusweb.net

User-agent: *
Disallow: /cabinet/

#2-й раз директива роботом игнорируется  
Host: https://www.belarusweb.net

Пример 8.4.5. Использование директивы Host

Перечислим некоторые нюансы использования директивы Host:

Опять же, директива Host, как и остальные директивы файла robots.txt, служит ждя поисковых роботов не командой для исполнения, а всего лишь рекомендацией. Тем не менее пренебрегать директивой не стоит, т.к. она учитывается роботами при выборе главного зеркала сайта с высоким приоритетом.

Контрольные вопросы и задания

  1. Что представляет из себя файл robots.txt?
  2. Как создать файл robots.txt?
  3. Опишите основные директивы User-agent, Disallow и Allow.
  4. Для чего в синтаксисе robots.txt используются символы '*' и '$'?
  5. Каковы особенности использования директивы Sitemap?
  6. Для чего нужна директива Host?

Словарь новых английских слов

robot [ˈroʊbɑːt] – робот, автомат.
host [həʊst] – хозяин, ведущий.
allow [əˈlaʊ] – позволять, разрешать.
disallow [dɪsəˈlaʊ] – запрещать, отвергать.
Комментарии (0)
Петр Романовский
1. Приветствуются комментарии, которые содержат дополнения к материалу текущей страницы, а также ваши ответы на вопросы других пользователей.
2. Если вам что-то непонятно - спрашивайте, не забывая написать, что именно и с какого места.
Показаны все комментарии
Чтобы оставить свой комментарий, авторизуйтесь, пожалуйста!    
     
belarusweb.net © Петр Романовский, Минск, 2016-2018.
Связаться с автором
Наверх