close
25 июля 2017

Правильный robots.txt для популярных CMS - особенности, примеры

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

Стоит учесть, что краулеры поисковых машин игнорируют определенные правила, например:

Директивы

Директивы - это правила для роботов. Есть спецификация W3C от 30 января 1994 года и расширенный стандарт от 1996 года

Основные - часто используемые директивы

User-agent: директива, с которой начинается Robots.txt. 

Пример:

User-agent: * # указания для всех поисковых роботов.
User-agent: Yandex # указания для робота Яндекса.
User-agent: GoogleBot # указания для робота Google.
Disallow: # запрещающая директива, запрет индексции того, что указанно после /.
Allow: # разрешающая директива, для указания на индексацию URL. 
Disallow: # не работает без спецсимвола /.  
Allow: / # игнорируются, если после / не указан URL.

Спецсимволы, которые используются в robots.txt  /, $.

Обратите внимание на символ /, можно допустить крупную ошибку прописав например:

User-agent:*
Disallow: / # таким образом можно закрыть весь сайт от индексации.

Спецсимвол означает любую, в том числе и пустую, последовательность символов, например:

Disallow: /cart/* # закрывает от индексации все страницы после URL: site.ru/cart/

Спецсимвол $ ограничивает действие символа *, дает строгое ограничение:

User-agent:*
Disallow: /catalog$ # при таком символе не будет индексироваться catalog, но в индексе будет catalog.html

Директива sitemap - указывает путь к карте сайта и выглядит так:

User-agent:* 
Allow: /  
Sitemap: http://www.site.ru/sitemap.xml # ее необходимо указывать с http:// или https://, https:// - указывается если подключён SSL сертификат

Директива Host - указывает главное зеркало сайта с www или без www.

User-agent:*
Allow: /  
Sitemap: http://www.site.ru/sitemap.xml 
Host: www.site.ru # следует писать путь к домену без http и без слэшей, убедитесь, что домен склеен. Без правильной склейки домена, одна и та же страница может попасть в индекс поисковых систем более одного раза, что может повлечь пессимизацию. 

Директива Crow-Delay - ограничивает нагрузку на сервер, задает таймаут для поисковых машин:

User-agent: * Crawl-delay: 2 # задает таймаут в 2 секунды.

User-agent: * 
Disallow: /search 
Crawl-delay: 4.5 # задает таймаут в 4.5 секунды.

Директива Clean-Param необходима, если адреса страниц сайта содержат динамические параметры, которые не влияют на содержимое, например: идентификаторы сессий, пользователей, рефереров и т. п.

Робот Яндекса, используя значения директивы Clean-Param, не будет многократно перезагружать дублирующуюся информацию. Таким образом, увеличится эффективность обхода вашего сайта, снизится нагрузка на сервер.

Например, страницы с таким адресом: 

www.site.com/some_dir/get_book.pl?ref=site_1&book_id=123
www.site.com/some_dir/get_book.pl?ref=site_2&book_id=123 
www.site.com/some_dir/get_book.pl?ref=site_3&book_id=123

Параметр ref используется только для того, чтобы отследить, с какого ресурса был сделан запрос и не меняет содержимое, по всем трем адресам будет показана одна и та же страница с книгой book_id=123. Тогда, если указать директиву следующим образом:

User-agent: Yandex
Disallow:
Clean-param: ref /some_dir/get_book.pl

робот Яндекса сведет все адреса страницы к одному:

www.site.com/some_dir/get_book.pl?ref=site_1&book_id=123,

Также стоит отметить, что для этой директивы есть несколько вариантов настройки

Кириллические символы в robots.txt

Использование символов русского алфавита запрещено в robots.txt, для этого необходимо использовать Punycode (стандартизированный метод преобразования последовательностей Unicode-символов в так называемые ACE-последовательности)

#Неверно:
User-agent: *
Disallow: /корзина
Host: интернет-магазин.рф

#Верно:
User-agent: *
Disallow: /%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B0
Host: xn----8sbalhasbh9ahbi6a2ae.xn--p1ai

Рекомендации по тому, что нужно закрывать в файле robots.txt

  • Административную панель - но при этом учтите, что путь к вашей административной панели будет известен, убедитесь в надежности пароля в панели управлением сайтом.
  • Корзину, форму заказа, и данные по доставке и заказам.
  • Страницы с параметрами фильтров, сортировки, сравнения.

Ошибки, которые могут быть в robots.txt

  • Пустая строка - недопустимо делать пустую строку в директиве user-agent, которая по правилам robots.txt считается "разделительной" (относительно блоков описаний). Это значит, что спрогнозировать применимость следующих за пустой строкой директив - нельзя. 
  • При конфликте между двумя директивами с префиксами одинаковой длины, приоритет отдается директиве Allow.
  • Для каждого файла robots.txt обрабатывается только одна директива Host. Если в файле указано несколько директив, робот использует первую.
  • Директива Clean-Param является межсекционной, поэтому может быть указана в любом месте файла robots.txt. В случае, если директив указано несколько, все они будут учтены роботом.
  • Шесть роботов Яндекса не следуют правилам Robots.txt (YaDirectFetcher, YandexCalendar, YandexDirect, YandexDirectDyn, YandexMobileBot, YandexAccessibilityBot). Чтобы запретить им индексацию на сайте, следует сделать отдельные параметры user-agent для каждого из них.
  • Директива User-agent всегда должна писаться выше запрещающей директивы.
  • Одна строка, для одной директории. Нельзя писать множество директорий на одной строке.
  • Имя файла должно быть только таким: robots.txt. Никаких Robots.txt, ROBOTS.txt, и так далее. Только маленькие буквы в названии.
  • В директиве host следует писать путь к домену без http и без слешей. Неправильно: Host: http://www.site.ru/, Правильно: Host: www.site.ru (или site.ru)
  • При использовании сайтом защищенного протокола https в директиве host (для робота Яндекса) нужно обязательно указывать именно с протоколом, так Host: https://www.site.ru

Проверка ошибок в robots.txt c помощью Лабрики

labrika→в левом меню Технический аудит→в выпадающем меню→Ошибки robots.txt→перепроверить robots.txt

Необходимо учесть, что файл размером больше 32кб считывается как полностью разрешающий, вне зависимости от того, что написано.

Избыточное наполнение robots.txt. Начинающие веб-мастера впечатляются статьями, где сказано, что все ненужное необходимо закрыть в robots.txt и начинают закрывать вообще все, кроме текста на строго определенных страницах. Это, мягко говоря, неверно. Во-первых, существует рекомендация Google не закрывать скрипты, CSS и прочее, что может помешать боту увидеть сайт так же, как видит его пользователь. Во-вторых, очень большое количество ошибок связано с тем, что закрывая одно, пользователь закрывает другое тоже. Безусловно, можно и нужно проверять доступность страницы и ее элементов. Как вариант ошибки - путаница с последовательностью Allow и Disallow. Лучше всего закрывать в robots.txt только очевидно ненужные боту вещи, вроде формы регистрации, страницы перенаправления ссылок и т. п., а от дубликатов избавляться с помощью canonical. Обратите внимание: то, что вы поправили robots.txt, совсем не обозначает, что Yandex- bot и Google-bot его сразу перечитают. Для ускорения этого процесса достаточно посмотреть на robots.txt в соответствующем разделе вебмастера.

Примеры правильно настроенного robots.txt для разных CMS:

WordPress

User-Agent: *
Allow: /wp-content/uploads/
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /xmlrpc.php
Disallow: /template.html
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content
Disallow: /tag
Disallow: /category
Disallow: /archive
Disallow: */trackback/
Disallow: */feed/
Disallow: */comments/
Disallow: /?feed=
Disallow: /?s=

Host: site.ru
Sitemap: http://site.ru/sitemap.xml

ModX

User-agent: *
Disallow: /manager/
Disallow: /assets/components/
Disallow: /core/
Disallow: /connectors/
Disallow: /index.php
Disallow: *?
Host: example.ru
Sitemap: http://example.ru/sitemap.xml

OpenCart

User-agent: *
Disallow: /*route=account/
Disallow: /*route=affiliate/
Disallow: /*route=checkout/
Disallow: /*route=product/search
Disallow: /index.php?route=product/product*&manufacturer_id=
Disallow: /admin
Disallow: /catalog
Disallow: /download
Disallow: /export
Disallow: /system
Disallow: /*?sort=
Disallow: /*&sort=
Disallow: /*?order=
Disallow: /*&order=
Disallow: /*?limit=
Disallow: /*&limit=
Disallow: /*?filter_name=
Disallow: /*&filter_name=
Disallow: /*?filter_sub_category=
Disallow: /*&filter_sub_category=
Disallow: /*?filter_description=
Disallow: /*&filter_description=
Disallow: /*?tracking=
Disallow: /*&tracking=
Disallow: /*?page=
Disallow: /*&page=
Disallow: /wishlist
Disallow: /login
Disallow: /index.php?route=product/manufacturer
Disallow: /index.php?route=product/compare
Disallow: /index.php?route=product/category

Joomla

User-agent:*
Allow: /index.php?option=com_xmap&sitemap=1&view=xml
Disallow: /administrator/  
Disallow: /cache/
Disallow: /components/
Disallow: /go.php
Disallow: /images/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /logs/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/
Disallow: /*com_mailto*
Disallow: /*pop=*
Disallow: /*lang=ru*    
Disallow: /*format=*    
Disallow: /*print=*
Disallow: /*task=vote*
Disallow: /*=watermark*     
Disallow: /*=download*
Disallow: /*user/*    
Disallow: /.html        
Disallow: /index.php?
Disallow: /index.html
Disallow: /*? 
Disallow: /*%
Disallow: /*&
Disallow: /index2.php
Disallow: /index.php  
Disallow: /*tag           
Disallow: /*print=1        
Disallow: /trackback        
Host: Ваш сайт                

Bitrix

User-agent: *
Disallow: /*index.php$
Disallow: /bitrix/
Disallow: /auth/
Disallow: /personal/
Disallow: /upload/
Disallow: /search/
Disallow: /*/search/
Disallow: /*/slide_show/
Disallow: /*/gallery/*order=*
Disallow: /*?print=
Disallow: /*&print=
Disallow: /*register=
Disallow: /*forgot_password=
Disallow: /*change_password=
Disallow: /*login=
Disallow: /*logout=
Disallow: /*auth=
Disallow: /*?action=
Disallow: /*action=ADD_TO_COMPARE_LIST
Disallow: /*action=DELETE_FROM_COMPARE_LIST
Disallow: /*action=ADD2BASKET
Disallow: /*action=BUY
Disallow: /*bitrix_*=
Disallow: /*backurl=*
Disallow: /*BACKURL=*
Disallow: /*back_url=*
Disallow: /*BACK_URL=*
Disallow: /*back_url_admin=*
Disallow: /*print_course=Y
Disallow: /*COURSE_ID=
Disallow: /*?COURSE_ID=
Disallow: /*?PAGEN
Disallow: /*PAGEN_1=
Disallow: /*PAGEN_2=
Disallow: /*PAGEN_3=
Disallow: /*PAGEN_4=
Disallow: /*PAGEN_5=
Disallow: /*PAGEN_6=
Disallow: /*PAGEN_7=
Disallow: /*PAGE_NAME=user_post
Disallow: /*PAGE_NAME=detail_slide_show
Disallow: /*PAGE_NAME=search
Disallow: /*PAGE_NAME=user_post
Disallow: /*PAGE_NAME=detail_slide_show
Disallow: /*SHOWALL
Disallow: /*show_all= Host: sitename.ru
Sitemap: http://www.sitename.ru/sitemap.xml

В данных примерах, в указании User-Agent указан параметр * , разрешающий доступ всем поисковым роботам, для настройки robots.txt под отдельные поисковые системы вместо спецсимвола указывается название робота  Yandex, GoogleBot, StackRambler, Slurp, MSNBot, ia_archiver.

 

Онлайн SEO-сервис Labrika

Получите рекомендации для продвижения сайта на основе 178 требований поисковых систем