Как писать robots.txt

September 20, 2018

Please reload

Недавние посты

Как писать объявления для контекстной рекламы - основы основ

June 4, 2018

1/1
Please reload

Избранные посты

Как писать robots.txt

 

Файл robots.txt - это обычный текстовый файл. Вы можете его создать, открыв Блокнот в Windows или TextEdit на Mac. Файлы роботс существуют для того, чтобы рекомендовать поисковому движку или какому-то конкретному роботу, как проходить сайт по ссылкам.
 

Что писать в файле?

 

Блоки агентов

 

Robots.txt содержит инструкции, которые должны быть написаны по определенным правилам. Большинство инструкций находится в блоке агента. Агент (поисковый робот) описывается так:

 

Для конкретного робота:
User-agent: название бота

 

Для группы роботов (например для всех роботов яндекса):
User-agent: название группы ботов

 

Для всех роботов:
User-agent: *


Все, что находится между двумя записями user-agent (или от последнего user-agent до конца файла), относится к этому боту или этой группе ботов.

 

Например:

 

User-agent: yandex
Disallow: /
User-agent: googlebot
Allow: /

 

Означает, что всем ботам Яндекса (User-agent для группы ботов Yandex) запрещено проходить по ссылкам на любые страницы сайта (инструкция Disallow: /), а ботам Гугла, наоборот, разрешено переходить по любым ссылкам (инструкция Allow: /).

 

Приоритеты блоков агентов

 

Любой робот сначала ищет блок со своим именем (инструкции именно для этого робота), если он находит такой блок - он использует инструкции из этого блока, остальные игнорирует;
если не находит - ищет блок для своей группы и использует только его инструкции;
если не находит - использует блок для всех роботов;
если и этого блока нет, робот считает, что разрешен проход по всем ссылкам на сайте.

 

Например:

User-agent: *
Disallow: /

User-agent: googlebot
Disallow: /not-for-google

User-agent: googlebot-mobile
Disallow: /not-for-google
Disallow: /not-mobile

 

Мобильный робот Гугл (googlebot-mobile) будет использовать строки:
Disallow: /not-for-google
Disallow: /not-mobile

 

Бот гугл картинок (googlebot-image) использует:
Disallow: /not-for-google

 

Бот яндекса использует:
Disallow: /


Инструкции, запрещающие переходы на страницы

 

Чтобы запретить проходить страницы на сайте, используется инструкция
Disallow: что именно запретить.

 

Например, чтобы запретить все страницы в папке https://example.com/category/,
мы пишем
Disallow: /category/,

т.е. мы пишем адрес страницы, которую надо закрыть от переходов робота. При этом закроются все страницы, адрес которых начинается с /category/.

 

Специальные символы * и $


Любые символы *


Символ * означает “любой набор символов”
Например
Disallow: *.html
Запретит переходить на все ссылки сайта, в которых встречается .htm:
https://example.com/smth.htm
https://example.com/index.html

 

Обратите внимание, что любой адрес в Disallow… начинается либо с / либо с *.

 

Символ конца строки $

 

Символ $ означает конец адреса например, если нам надо, чтобы
https://example.com/category/ не должно проходиться роботом, а все что в него вложено,


Например https://example.com/category/123 должно, 


Тогда пишем
Disallow: /category/$

 

 

Инструкции, разрешающие переходы по ссылкам

 

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

 

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

 

Например

User-agent: Somebot

Disallow: /
Allow: /cat/
Disallow: /cat/123

 

Страница https://example.com/123 будет запрещена (подходит только правило Disallow: /)
Страница https://example.com/cat/ будет разрешена (подходят Disallow: / и Allow: /cat/, но /cat/ длиннее чем /)
Страница https://example.com/cat/12345 будет запрещена, т.к. Подходят все три правила, но /cat/123 длиннее всех остальных

 

Инструкции карт сайта


Чтобы указать путь к карте сайта в стандарте sitemap.xml, используется инструкция
Sitemap: адрес карты сайта

 

Если карт сайта несколько, при этом есть файл списка sitemap - указывается только его адрес. Если карт сайта несколько, но индексного файла нет - пишется отдельная инструкция для каждой карты сайта,

 

например:
Sitemap: https://example.com/sitemap1.xml
Sitemap: https://example.com/sitemap2.xml
Sitemap: https://example.com/sitemap3.xml

 

Обратите внимание, путь к файлу указывается вместе с протоколом (http:// или https://) и адресом сайта.

 

Инструкция Sitemap не относится к спискам агентов и будет использована всеми роботами независимо от того, где она написана.

 

Инструкция задержки обхода

 

Сейчас такая инструкция почти нигде не используется, но все-таки мы её опишем. Иногда, если хостинг сайта очень слабый, и обход роботом может затормозит работу сайта, используется инструкция
Crawl-delay: время в секундах между запросами робота

 

Например:
Crawl-delay: 0.5

 

Сделает так, что робот будет запрашивать страницы сайта не чаще, чем раз в полсекунды.

 

Инструкция Crawl-delay относится к секциям агентов т.е. можно задать разный Crawl-delay для разных роботов.

 

Инструкция указания основного зеркала (только Яндекс)

 

Эта инструкция не входит в стандарт robots.txt и придумана Яндексом. Она служит для определения основного зеркала с www или без www. Для остальных поисковиков она будет отображаться как ошибка.

 

Записывается она так:
Host: адрес основного зеркала

 

Например:

Host: example.com
или
Host: www.example.com
или
Host: https://example.com

 

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

 

Инструкция склейки параметров (только Яндекс)

 

Эта инструкция также придумана Яндексом. Она используется, когда у страницы есть множество копий, отличающихся одним или несколькими GET параметрами.

 

Clean-param: название параметра ПРОБЕЛ для каких страниц применяется

 

Лучший пример - всегда некорректный, поэтому как вариант: если пользователь залогинен, мы храним его сессию в параметре GET session_ID. Например для залогиненного пользователя главной страницей будет https://example.com/?session=1231224. Но она ничем значимым от страницы https://example.com не отличается. Чтобы эти страницы воспринимались, как одна, пишем

Clean-param: session *
session - название нашего параметра

* - любая страница.


Если параметры надо склеивать только в папке /cat/,
Тогда
Clean-param: session /cat/

 

Если нам нужно склеивать, допустим параметр session и параметр sort, тогда мы можем или написать 2 инструкции Clean-param, или записать параметры через амперсанд:
Clean-param: session&sort /cat/


Как использовать готовый файл?

 

Чтобы поисковый робот нашел этот файл, он должен находиться в корне сайта: если ваш сайт https://example.com/. По адресу https://example.com/robots.txt должно отображаться содержимое файла.

Вот, собственно, и все, что хотелось рассказать про синтаксис robots.txt. Возможно, вам также будет полезно почитать примеры использования файлов роботс. Если вы не уверены, что все поняли правильно, или не знаете как правильно записать какую-то инструкцию, вы всегда можете проверить свой файл роботс в валидаторе Яндекса -  https://webmaster.yandex.ru/tools/robotstxt/

Share on Facebook
Share on Twitter
Please reload

Мы в соцсетях