Сегодня я проведу урок как сделать правильный Robots.txt для вашего сайта.  

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

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

Но вначале нужно изучить все команды которые поддерживает robots.txt и что это такое вообще. 
 

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

Команды в robots.txt: 
 

Disallow: /блокирует доступ ко всему сайту 
Disallow: /wp-admin — блокирует доступ к страницам начинающимся с wp-admin 
 

Allow: /разрешает доступ ко всему сайту 
Allow: /wp-admin — разрешает доступ к страницам начинающимся с wp-admin 
 

«*» — спецсимвол обозначающий любой набор символов. Обычно применяется при использовании директив Allow и Disallow.  
 

Sitemap: — директива показывающая поисковому роботу где находится карта сайта. Запомнив один раз адрес карты сайта, в дальнейшем поисковый робот обращается по данному адресу. Пример использования: Sitemap: http://mysite.ru/site_structure/my_sitemaps1.xml 
 

Host: — директива указывающая какое зеркало у ваших сайтов является Главным. Разумеется используется если у вашего сайта есть зеркала. 
 

Это были основные команды. Переходим теперь к практике. 
 

Правильный robots.txt для Яндекса
 
 

Обычно всё начинается с указания Юзерагента той поисковой системы для которой вы собираетесь что то прописать в роботсе. Вот юзерагенты Яндекса: 
 

Yandex‘ — все роботы Яндекса

YandexBot‘ — основной индексирующий робот

YandexMedia‘ — робот, индексирующий мультимедийные данные;

YandexImages‘ — индексатор Яндекс.Картинок;

YandexCatalog‘ — «простукивалка» Яндекс.Каталога;

YandexDirect‘ — робот, индексирующий страницы сайтов, участвующих в Рекламной сети Яндекса;

YandexBlogs‘ — робот поиска по блогам, индексирующий комментарии постов;

YandexNews‘ — робот Яндекс.Новостей;

YandexPagechecker‘ — робот, обращающийся к странице при валидации микроразметки через форму «Валидатор микроразметки»;  
 

Если вы обращаетесь ко всем поисковым роботам Яндекса, то просто в роботсе пишите: 
 

User-agent: YandexBot 
 

Если же вы хотите обратиться только какому то конкретному роботу, то пишите в юзерагенте его название. Вот например как нужно написать, чтобы обратиться к роботу Яндекс.картинок 
 

User-agent: YandexImages 
 

Для чего такое разделение? Ну может вы хотите, чтобы текстовый контент вашего сайта Яндекс индексировал, а картинки не индексировал. Может вы боитесь, что Яндекс проиндексировав ваши картинки отправит их в Яндекс.картинки. А оттуда их сможет скопировать любой желающий. 

Но в общем то в большинстве случаев в качестве юзерагента используют только Yandex 
 

Ну а после указания юзерагента всё просто. Указываем какие разделы или страницы нам нужно запретить, а какие разрешить. Вот пример: 
 
___________________________________
User-agent: Yandex

Disallow: /?C=D;O=A
Disallow: /?pedofil
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /wp-trackback
Disallow: /wp-feed
Disallow: /wp-comments
Disallow: */trackback
Disallow: */feed
Disallow: */comments

_________________________________
 

Расшифрую что мы делали: 
 

Мы заблокировали доступ к страницам сайта роботам Яндекса начинающимся с: 
 

‘?C=D;O=A’
‘/wp-admin’
‘cgi-bin’
 
 

Т.е. допустим страница сайта site.ru/wp-admin/refsfs не будет проиндексирована. 
 

Запомните, в Интернете как в жизни — Всё что не запрещено, то разрешено. Аналогично и в Роботсе. Если мы чего то не запрещаем индексировать, значит оно разрешено для индексации. 
Таким образом не нужно указывать Allow: для каких то разделов или каталогов. Достаточно запретить нужные, а остальные будут разрешены по умолчанию. 

Немного отступления( Я в ВУЗе учился на математика. Как то мы сдавали экзамен по Ассемблеру. И вот сиди мы на экзамене. И достаётся одному парню задача. Он решает её по своему, а не как учили, пишет программу, но количество кода в ней в 2 раза больше, но РАБОТАЕТ ТАКЖЕ. Препод ставит ему неуд и говорит — представь если бы так сделал программу для ракеты, сколько лишнего кода нужно было. Вы учитесь на программистов и одна из ваших основных задач — Достижение простоты и модернизация, а не создание лишних барьеров 
 

Аналогично и со всеми другими командами. Главное отличие при построении роботса для Яндекса это обращание к его юзера-агентам. Если же вы хотите обратиться сразу ко всем поисковым системам, то вместо названия Юзерагента ставите звёздочку ‘*’ 
 

Пример. 
 

User-agent: * — обращению абсолютно ко всем поисковым системам 
 

Вот такое обращение встречается в большинстве роботсов в Рунете. 
 

Правильный robots.txt для Гугла 
 

В Гугле как и в Яндексе существуют свои юзера-агенты. Вот их названия и характеристики: 
 

юзер-агенты гугла
 
 

Я думаю вы без труда поймёте какой юзера-агент и за что отвечает. Полная аналогия с Яндексом. 
 

В большинстве случаев если хотят обратиться к Гуглу, то обращаются к основному индексирующему роботу: 
 


User-agent: Googlebot
 
 

Ну а далее работают такие же команды как и для Яндекса. 
 

Пример файла robots.txt для Гугла: 
 
___________________________________
User-agent: Googlebot

Disallow: /?C=D;O=A
Disallow: /?pedofil
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /wp-trackback
Disallow: /wp-feed
Disallow: /wp-comments
Disallow: */trackback
Disallow: */feed
Disallow: */comments

_________________________________
 
У многих возникнет вопрос — а есть ли какие то плюсы если я пропишу 2 раза одно и тоже для Яндекса и Гугла или же напишу одни раз без упоминания какого то поисковика? 
 
Т.е. вот 2 разных роботса: 
 

1 Вариант 
______________________________
User-agent: Yandex

Disallow: /cgi-bin
Disallow: /wp-admin

User-agent: Googlebot

Disallow: /cgi-bin
Disallow: /wp-admin

______________________________
 
 

2 Вариант
 

____________________
User-agent: *

Disallow: /cgi-bin
Disallow: /wp-admin
______________________________
 
 
Как видите во втором случае мы не обращаемся к какой либо поисковой системе, а сразу пишем команды. Многим кажется, что обращаясь «лично» к поисковой системе мы таким образом «уважаем» поисковик и каждая поисковая система ранжирует сайт выше. Это полные выдумки и бред!!! Абсолютно одинаковый эффект. Более того, второй случай чище по коду, его просто там мало.
Робот заходит, считывает всё быстро и всё на этом. Чем меньше кода, тем лучше. Я рекомендую использовать второй вариант и не указывать юзерагенты. 
 

Robots.txt для wordpress 
 

Тут ничего мудрёного нет. Вордпрессс в отличие от джумблы не страдает проблемами с дублями. Привожу пример стандартного роботса для WordPress: 
 

__________
User-agent: *

Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /wp-trackback
Disallow: /wp-feed
Disallow: /wp-comments
Disallow: */trackback
Disallow: */feed
Disallow: */comments

___________
 
 
Можете по умолчанию запиливать его в свои вордпрессовские сайты.  
 

Robots.txt для Битрикса 
 

Публикую стандартный вариант для сайтов на движке Битрикса: 

________________________

User-agent: *
Disallow: /bitrix/
Disallow: /upload/
Disallow: /search/
Allow: /search/map.php
Disallow: /club/search/
Disallow: /club/group/search/
Disallow: /club/forum/search/
Disallow: /communication/forum/search/
Disallow: /communication/blog/search.php
Disallow: /club/gallery/tags/
Disallow: /examples/my-components/
Disallow: /examples/download/download_private/
Disallow: /auth/
Disallow: /auth.php
Disallow: /personal/
Disallow: /communication/forum/user/
Disallow: /e-store/paid/detail.php
Disallow: /e-store/affiliates/
Disallow: /club/$
Disallow: /club/messages/
Disallow: /club/log/
Disallow: /content/board/my/
Disallow: /content/links/my/
Disallow: /*/search/
Disallow: /*PAGE_NAME=search
Disallow: /*PAGE_NAME=user_post
Disallow: /*PAGE_NAME=detail_slide_show
Disallow: /*/slide_show/
Disallow: /*/gallery/*order=*
Disallow: /*?print=
Disallow: /*&print=
Disallow: /*register=yes
Disallow: /*forgot_password=yes
Disallow: /*change_password=yes
Disallow: /*login=yes
Disallow: /*logout=yes
Disallow: /*auth=yes
Disallow: /*action=ADD_TO_COMPARE_LIST
Disallow: /*action=DELETE_FROM_COMPARE_LIST
Disallow: /*action=ADD2BASKET
Disallow: /*action=BUY
Disallow: /*print_course=Y
Disallow: /*bitrix_*=
Disallow: /*backurl=*
Disallow: /*BACKURL=*
Disallow: /*back_url=*
Disallow: /*BACK_URL=*
Disallow: /*back_url_admin=*
Disallow: /*index.php$

___________________________________
 
 

Robots txt для Joomla 
 

Для сайтов на движке Joomla вот как выглядит стандартный robots.txt 

_____________________

User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /component/*
Disallow: /component/search/
Disallow: /component/content/
Disallow: /images/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/
_____________________________
 
 

Вообще Джумбла это такое УГ, которое не хочется вообще касаться. Там постоянно где то вылазиют дубли и всё сделано через Ж. Эти дубли страниц постоянно приходится запрещать в роботсе. 
 

Основные ошибки при составлении robots.txt 
 

Файл robots.txt пишется строчными буквами и не ЗАГЛАВНЫМИ. Вот так нельзя — Robots.txt  
 

Несколько каталогов для одной инструкции не пишутся. Так нельзя — Disallow: /css/ /cgi-bin/ /images/  
 

В директиве Host пишется имя домена, а не урл сайта. Так неправильно — Host: http://www.site.ru/  
 

Лучший способ зазеркалить сайт с переводом на другой домен, это 301 редирект, а не robots.txt  
 

Ну вот впринципе и всё. Каких то великий премудростей в прописывании роботса нет, всё делается стандартно. Если вдруг у вас где то вылезли на сайте дубли страниц, то просто запрещаете их в Роботсе.  
 

Вопросы?