Приветствую вас, уважаемые читатели SEO блога Pingo. В данной статье я хочу изложить своё представление о том, как правильно составить robots.txt для сайта. В своё время меня очень раздражало, что информация в интернете по этому вопросу довольно отрывочна. Из-за этого приходилось ползать по большому количеству ресурсов, постоянно фильтруя повторяющуюся информацию и вычленяя новую.
Таким образом, здесь я постараюсь ответить на большинство вопросов, начиная с определения и заканчивая примерами реальных задач, решаемых данным инструментом. Если что-то забуду — отпишитесь в комментариях об этом — исследую вопрос и дополню материал.
Robots.txt — что это, зачем нужен и где обитает?
Итак, сперва ликбез для тех, кому данная тема незнакома совершенно.
Robots.txt — текстовый файл, содержащий инструкции по индексации сайта для роботов поисковых систем. В этом файле вебмастер может определить параметры индексации своего сайта как для всех роботов сразу, так и для каждой поисковой системы по отдельности (например, для гугла).
Где находится robots.txt? Он размещается в корневой папке FTP сайта, и, по сути, является обычным документом в формате txt, редактирование которого можно осуществлять через любой текстовый редактор (лично я предпочитаю Notepad++). Содержимое файла роботс можно увидеть, введя в адресной строке браузера http://www.ваш-сайт.ru/robots.txt. Если, конечно, он существует.
Как создать robots.txt для сайта? Достаточно сделать обычный текстовый файл с таким именем и загрузить его на сайт. О том, как его правильно настроить и составить, будет сказано ниже.
Структура и правильная настройка файла robots.txt
Как должен выглядеть правильный файл robots txt для сайта? Структуру можно описать следующим образом:
1. Директива User-agent
Что писать в данном разделе? Эта директива определяет то, для какого именно робота предназначены нижеизложенные инструкции. Например, если они предназначены для всех роботов, то достаточно следующей конструкции:
В синтаксисе файла robots.txt знак «*» равноценен словосочетанию «что угодно». Если же требуется задать инструкции для конкретной поисковой системы или робота, то на месте звездочки из предыдущего примера пишется его название, например:
У каждого поисковика существует целый набор роботов, выполняющих те или иные функции. Роботы поисковой системы Яндекс описаны тут. В общем же плане имеется следующее:
- Yandex — указание на роботов Яндекс.
- GoogleBot — основной индексирующий робот Google.
- MSNBot — основной индексирующий робот Bing.
- Aport — роботы Aport.
- Mail.Ru — роботы ПС Mail.
Если имеется директива для конкретной поисковой системы или робота, то общие игнорируются.
2. Директива Allow
Разрешает отдельные страницы раздела, если, скажем, ранее он целиком закрыт от индексации. Например:
В данном примере мы запрещаем к индексации весь сайт, кроме страницы poni.html
Служит эта директива в какой-то степени для указания на исключения из правил, заданных директивой Disallow. В случае, если таких ситуаций нет, то директива может не использоваться совсем. Она не позволяет открыть сайт для индексации, как многие думают, так как если нет запрета вида Disallow: /, то он открыт по умолчанию.
2. Директива Disallow
Является антиподом директивы Allow и закрывает от индексации отдельные страницы, разделы или сайт целиком. Являет аналогом тега noindex. Например:
3. Директива Host
Используется только для Яндекса и указывает на основное зеркало сайта. Выглядит это так.
Основное зеркало без www:
Основное зеркало с www:
Сайт на https:
Нельзя записывать директиву host в файл дважды. Если же вследствие какой-то ошибки это произошло, то обрабатывается та директива, которая идет первой, а вторая — игнорируется.
4. Директива Sitemap
Используется для указания пути к XML-карте сайта sitemap.xml (если она есть). Синтаксис следующий:
5. Директива Clean-param
Используется для закрытия от индексации страниц с параметрами, которые могут являться дублями. Очень полезная на мой взгляд директива, которая отсекает параметрический хвост урлов, оставляя только костяк, который и является родоначальным адресом страницы.
Особенно часто встречается такая проблема при работе с каталогами и интернет-магазинами.
Скажем, у нас имеется страница:
И эта страница в процессе работы может обрастать клонами вида.
Для того, чтобы избавиться от всевозможных вариантов этого спама, достаточно указать следующую конструкцию:
Синтаксис из примера, думаю, понятен:
Если параметров несколько, то просто перечисляем их через амперсант(&):
Пример взят простой, поясняющий саму суть. Особенно спасибо этому параметру хочется сказать при работе с CMS Bitrix.
Директива Crawl-Delay
Позволяет задать таймаут на загрузку страниц сайта роботом Яндекс. Используется при большой загруженности сервера, при которой он просто не успевает быстро отдавать содержимое. На мой взгляд, это анахронизм, который уже не учитывается и который можно не использовать.
Синтаксис
- # — используется для написания комментариев:
- * — означает любую последовательность символов, значение:
- $ — обрезание правила, антипод знака звездочки:
Пример файла robots.txt
С целью закрепления понимания вышеописанной структуры и правил, приведем стандартный robots txt для CMS Data Life Engine.
User-agent: * # директивы предназначены для всех поисковых систем
Disallow: /engine/go.php # запрещаем отдельные разделы и страницы
Disallow: /engine/download.php #
Disallow: /user/ #
Disallow: /newposts/ #
Disallow: /*subaction=userinfo # закрываем страницы с отдельными параметрами
Disallow: /*subaction=newposts #
Disallow: /*do=lastcomments #
Disallow: /*do=feedback #
Disallow: /*do=register #
Disallow: /*do=lostpassword #
Host: www.pingoblog.ru # указываем главное зеркало сайта
Sitemap: https://pingoblog.ru/sitemap.xml # указываем путь до карты сайта
User-agent: Aport # указываем направленность правил на ПС Aport
Disallow: / # предположим, не хотим мы с ними дружить
Проверка robots.txt
Как проверить robots txt на корректность составления? Стандартный вариант — валидатор Яндекса — http://webmaster.yandex.ru/robots.xml. Вводим путь до вашего файла роботс или сразу вставляем его содержимое в текстовое поле. Вводим список урлов, которые мы хотим проверить — закрыты или открыты они согласно заданным директивам — нажимаем «Проверить» и вуаля! Профит.

Выводится статус страницы — открыта ли она для индексации или закрыта. Если закрыта, то указывается, каким именно правилом. Чтобы разрешить индексацию такой страницы, нужно доработать правило, на которое указывает валидатор. Если в файле имеются синтаксические ошибки, то валидатор также об этом сообщит.
Генератор robots.txt — создание в режиме онлайн
Если изучать синтаксис желания или времени нет, но необходимость закрыть спамные страницы сайта присутствует, то можно воспользоваться любым бесплатным онлайн генератором, который позволит создать robots txt для сайта всего парой кликов. Затем вам останется лишь скачать файл и загрузить его к себе на сайт. При работе с ним вам лишь необходимо проставить галочки у очевидных настроек, а также указать страницы, которые вы хотите закрыть от индексации. Остальное генератор сделает за вас.
Готовые файлы для популярных CMS
Файл robots.txt для сайта на 1C Битрикс
Robots.txt для DataLife Engine (DLE)
Robots.txt для Joomla
Robots.txt для WordPress
Robots.txt для Ucoz
pingoblog.ru
Основной синтаксис
User-Agent: робот для которого будут применяться следующие правила (например, «Googlebot»)
Disallow: страницы, к которым вы хотите закрыть доступ (можно указать большой список таких директив с каждой новой строки)
Каждая группа User-Agent / Disallow должны быть разделены пустой строкой. Но, не пустые строки не должны существовать в рамках группы (между User-Agent и последней директивой Disallow).
Символ хэш (#) может быть использован для комментариев в файле robots.txt: для текущей строки всё что после # будет игнорироваться. Данные комментарий может быть использован как для всей строки, так в конце строки после директив.
Каталоги и имена файлов чувствительны к регистру: «catalog», «Catalog» и «CATALOG» – это всё разные директории для поисковых систем.
Host: применяется для указание Яндексу основного зеркала сайта. Поэтому, если вы хотите склеить 2 сайта и делаете постраничный 301 редирект, то для файла robots.txt (на дублирующем сайте) НЕ надо делать редирект, чтобы Яндекс мог видеть данную директиву именно на сайте, который необходимо склеить.
Crawl-delay: можно ограничить скорость обхода вашего сайта, так как если у вашего сайта очень большая посещаемость, то, нагрузка на сервер от различных поисковых роботов может приводить к дополнительным проблемам.
Регулярные выражения: для более гибкой настройки своих директив вы можете использовать 2 символа
- * (звездочка) – означает любую последовательность символов
- $ (знак доллара) – обозначает конец строки
Основные примеры использования robots.txt
Запрет на индексацию всего сайта
User-agent: *
Disallow: /
Эту инструкцию важно использовать, когда вы разрабатываете новый сайт и выкладываете доступ к нему, например, через поддомен.
Очень часто разработчики забывают таким образом закрыть от индексации сайт и получаем сразу полную копию сайта в индексе поисковых систем. Если это всё-таки произошло, то надо сделать постраничный 301 редирект на ваш основной домен.
А такая конструкция ПОЗВОЛЯЕТ индексировать весь сайт:
User-agent: *
Disallow:
Запрет на индексацию определённой папки
User-agent: Googlebot
Disallow: /no-index/
Запрет на посещение страницы для определенного робота
User-agent: Googlebot
Disallow: /no-index/this-page.html
Запрет на индексацию файлов определенного типа
User-agent: *
Disallow: /*.pdf$
Разрешить определенному поисковому роботу посещать определенную страницу
User-agent: *
Disallow: /no-bots/block-all-bots-except-rogerbot-page.html
User-agent: Yandex
Allow: /no-bots/block-all-bots-except-Yandex-page.html
Ссылка на Sitemap
User-agent: *
Disallow:
Sitemap: http://www.example.com/none-standard-location/sitemap.xml
Нюансы с использованием данной директивы: если у вас на сайте постоянно добавляется уникальный контент, то
- лучше НЕ добавлять в robots.txt ссылку на вашу карту сайта,
- саму карту сайта сделать с НЕСТАНДАРТНЫМ названием sitemap.xml (например, my-new-sitemap.xml и после этого добавить эту ссылку через «вебмастерсы» поисковых систем),
так как, очень много недобросовестных вебмастеров парсят с чужих сайтов контент и используют для своих проектов.
Статья в тему: Создаем sitemap для Google и Яндекс
Что лучше использовать robots.txt или noindex?
Если вы хотите, чтобы страница не попала в индекс, то лучше использовать noindex в мета-теге robots. Для этого на странице в секции <head> необходимо добавить следующий метатег:
<meta name=”robots” content=”noindex, follow”>.
Это позволит вам
- убрать из индекса страницу при следующем посещение поискового робота (и не надо будет делать в ручном режиме удаление данной страницы, через вебмастерс)
- позволит вам передать ссылочный вес страницы
Через robots.txt лучше всего закрывать от индексации:
- админку сайта
- результаты поиска по сайту
- страницы регистрации/авторизации/восстановление пароля
Как и чем проверить файл robots.txt?
После того, как вы окончательно сформировали файл robots.txt необходимо проверить его на ошибки. Для этого можно воспользоваться инструментами проверки от поисковых систем:
Google Вебмастерс: войти в аккаунт с подтверждённым в нём текущим сайтом, перейти на Сканирование -> Инструмент проверки файла robots.txt.
В данном инструменте вы можете:
- сразу увидеть все свои ошибки и возможные проблемы,
- прямо в этом инструменте провести все правки и сразу проверить на ошибки, чтобы потом уже перенести готовый файл себе на сайт,
- проверить правильно ли вы закрыли все не нужные для индексации страницы и открыты ли все нужные страницы.
Яндекс Вебмастер: чтобы воспользоваться данным инструментом просто перейдите по этой ссылке http://webmaster.yandex.ru/robots.xml.
Этот инструмент почти аналогичный предыдущему с тем небольшим отличием, что:
- тут можно не авторизоваться и нет необходимости в подтверждении прав на сайт, а поэтому, можно сразу приступать к проверке вашего файла robots.txt,
- для проверки сразу можно задать список страниц, а не вбивать их по одному,
- точно убедиться, что Яндекс правильно понял ваши инструкции.
seoprofy.ua
Если ваш блог или сайт ориентирован на популярность, то его индексация — один из ключевых моментов, над которым вы должны работать. И тут важно грамотное создание файла robots.txt. В работе ресурса он никак себя не проявляет — этот файл служит набором инструкций для поисковых систем, когда их роботы заходят на ваш блог. Своего рода указание: «здесь индексировать можно, а сюда не заходи» и т.д. И вот я пару недель разбирался с этим файлом и готов представить вам свои наработки.
Задача по работе с файлом часто формируется как «написать идеальный robots.txt«. И таких «идеальных» вариантов в интернете оказалось очень много. Почти столько же сколько людей бралось их писать. Так что я предлагаю не безоглядно копировать код моего robots.txt, а вместе с ним поразбираться.
Для начала ответим на вопрос, так ли он вам нужен. Серьёзно, простому сайту, сделанному не на серверной CMS, которому нечего скрывать от поисковиков этот файл не нужен. Где-то даже сам робот разберётся, что и как индексировать, исходя из своих алгоритмов. Ну а если ваш блог сделан на WordPress, как и мой, то за составление robots.txt надо браться в первую очередь. Обязательным требованием только являются настроенные ЧПУ (человеко-понятные урлы) на вашем блоге.
Итак, вто что получилосьу меня:
User-agent: Unknown robot
Disallow: /
User-agent: Yandex
Allow: /wp-content/uploads/
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-content
Disallow: /wp-includes
Disallow: /xmlrpc.php
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /tag
Disallow: /feed
Disallow: /page
Disallow: /author
Disallow: /trackback
Disallow: /comments
Disallow: */feed
Disallow: */page/
Disallow: */trackback
Disallow: */comments
Disallow: /?s=
Disallow: /*?
Disallow: /goto/
Disallow: /category/*/*
Crawl-delay: 5
Host: desiter.ru
User-agent: Googlebot-Image
Disallow:
Allow: /*
User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/cache
Disallow: /wp-content/plugins
Disallow: /wp-content/themes
Disallow: /xmlrpc.php
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /tag
Disallow: /feed
Disallow: /page
Disallow: /author
Disallow: /trackback
Disallow: /comments
Disallow: */feed
Disallow: */page/
Disallow: */trackback
Disallow: */comments
Disallow: /?s=
Disallow: /*?
Disallow: /goto/
Disallow: /category/*/*
Allow: /wp-content/uploads
Sitemap: http://desiter.ru/sitemap.xml
А теперь разберёмся, что всё это значит.
Директива User-agent: Unknown robot указывает, что последующие команды адресованы неизвестному роботу. Командой Disallow: / мы запретили ему лазать по нашему блогу. Раз неизвестен, значит, либо совсем незначительная поисковая система, либо робот какой-нибудь вредоносной программы. Так что этой командой мы себя обезопасили, да ещё снизили нагрузку на сервер.
Далее идут команды для поискового робота от Яндекса. Список директив для него чуть-чуть, но отличается от команд для роботов других поисковых систем, поэтому мы выделили для него отдельный блок и поставили впереди.
Сначала мы разрешили ему индексировать папку upload, в которую попадают загруженные на блог картинки. Это важно, потому что дальнейшими командами мы запретили к индексации все прочие папки, относящиеся к работе CMS WordPress. Для поисковой системы это мусор, в котором ещё и дублирующий контент может попасться.
Разрешающая директива Allow: должна идти впереди запрещающей Disallow:.
xmlrpc.php — не знаю, за что отвечает это файл, но Яндекс индексировать его любит (а как я уже упоминал, иной раз сообразительный робот сам исключает мусор из индекса, но не этот файл). Рекомендуется запретить к индексации.
Далее мы закрываем трэкбэки, фиды, комментарии, страницы автора, рубрики и тэги. Это всё в рамках борьбы с дублированием контента. Например, перейдя по ссылке на комментарий, робот обнаружит ровно ту же самую страницу, что и при переходе по ссылке на сообщение, к которому был комментарий. Можно встретить такое мнение, что чем больше страниц в индексе, тем лучше. Однако, на дублирующий контент это правило не распространяется.
Некоторые команды, как вы могли заметить, похожи. Например, Disallow: /feed и Disallow: */feed. Первая запрещает фиды, найденные в папке feed, которая лежит в корневой папке вашего домена. Вторая запись находит аналогичные папки с большей глубиной вложенности, то есть между папкой feed и корневой папкой могут находится промежуточные папки.
Спецсимвол * подразумевает любое число любых символов.
Запись Disallow: /page запрещает к индексации дублирующие страницы, появившиеся в результате установки плагина page-navi.
Запись Disallow: /?s= запрещает к индексации результаты поиска. Про них почему-то часто забывают, а ведь это всё то же дублирование. Рекомендуется всем.
Disallow: /goto/ — ещё одна запись, необходимость которой возникла с установкой плагина. В этот раз для счастливых обладателей плагина WP No External Links. Плагин служит для преобразования внешних ссылок во внутренние. Сам факт наличия внутренних ссылок — вроде хорошо. Но вы получаете ещё и страницы на своём домене, полностью идентичные страницам с других доменов. Это те самые, на которые вы ссылались.
Crawl-delay: 5 — директива специально для Яндекса, Гуглом не понимается. Указывает роботу заглядывать на сайт не чаще, чем раз в 5 секунд. Чаще всё-равно нет смысла, однако нагрузку на сервер создаёт.
И, наконец, обязательный момент — указание ндексу вашего основного домена — Host: desiter.ru. Обратите внимание, что домен www.desiter.ru в моём случае является зеркалом указанного основным домена desiter.ru. Также имеет смысл только для Яндекса.
Следующий блок директив для гугловского бота поиска по картинкам открывает ему полную свободу в нахождении картинок на нашем домене. Не обязательно, но можно.
Теперь переходим к директивам для роботов прочих поисковых систем. Как видите, в моём случае получился почти полный повтор команд из блока для Яндекса. Отличия найдёте, думаю, сами.
Последняя директива, завершающая составление файла robots.txt — Sitemap:. В ней вы указываете путь до вашей карты сайта — файла sitemap.xml. Этот файл не менее важен, чем сам robots.txt, он содержит ссылки на все страницы вашего ресурса, и способствует индексации. Обязателен к применению.
В результате у нас получилось несколько блоков команд. Файл robots.txt читается последовательно. Сначала отсеиваются все неизвестные роботы, потом выполняются указания для известных ботов Яндекса и Google Image, и, наконец, для остальных известных ботов.
Напомню, что файл должен лежать в корневой директории вашего ресурса. Если он там уже есть, отредактируйте имеющийся. Это можно сделать в «блокноте». Если нет, создайте новый.
Если есть замечания, пожелания или вопросы по статье, пишите в комментариях. Удачи.
desiter.ru
Индексация сайта
Упомянутые выше инструменты очень важны для успешного развития вашего проекта, и это вовсе не голословное утверждение. В статье про Sitemap xml (см. ссылку выше) я приводил в пример результаты очень важного исследования по наиболее частым техническим ошибкам начинающих вебмастеров, там на втором и третьем месте (после не уникального контента) находятся как раз отсутствие этих файлов роботс и сайтмап, либо их неправильное составление и использование.
Почему так важно управлять индексацией сайта
Надо очень четко понимать, что при использовании CMS (движка) не все содержимое сайта должно быть доступно роботам поисковых систем. Почему?
- Ну, хотя бы потому, что, потратив время на индексацию файлов движка вашего сайта (а их может быть тысячи), робот поисковика до основного контента сможет добраться только спустя много времени. Дело в том, что он не будет сидеть на вашем ресурсе до тех пор, пока его полностью не занесет в индекс. Есть лимиты на число страниц и исчерпав их он уйдет на другой сайт. Адьес.
- Если не прописать определенные правила поведения в роботсе для этих ботов, то в индекс поисковиков попадет множество страниц, не имеющих отношения к значимому содержимому ресурса, а также может произойти многократное дублирование контента (по разным ссылкам будет доступен один и тот же, либо сильно пересекающийся контент), что поисковики не любят.
Хорошим решением будет запрет всего лишнего в robots.txt (все буквы в названии должны быть в нижнем регистре — без заглавных букв). С его помощью мы сможем влиять на процесс индексации сайта Яндексом и Google. Представляет он из себя обычный текстовый файл, который вы сможете создать и в дальнейшем редактировать в любом текстовом редакторе (например, Notepad++).
Поисковый бот будет искать этот файл в корневом каталоге вашего ресурса и если не найдет, то будет загонять в индекс все, до чего сможет дотянуться. Поэтому после написания требуемого роботса, его нужно сохранить в корневую папку, например, с помощью Ftp клиента Filezilla так, чтобы он был доступен к примеру по такому адресу:
https://ktonanovenkogo.ru/robots.txt
Кстати, если вы хотите узнать как выглядит этот файл у того или иного проекта в сети, то достаточно будет дописать к Урлу его главной страницы окончание вида /robots.txt
. Это может быть полезно для понимания того, что в нем должно быть.
Однако, при этом надо учитывать, что для разных движков этот файл будет выглядеть по-разному (папки движка, которые нужно запрещать индексировать, будут называться по-разному в разных CMS). Поэтому, если вы хотите определиться с лучшим вариантом роботса, допустим для Вордпресса, то и изучать нужно только блоги, построенные на этом движке (и желательно имеющие приличный поисковый трафик).
Как можно запретить индексацию отдельных частей сайта и контента?
Прежде чем углубляться в детали написания правильного файла robots.txt для вашего сайта, забегу чуть вперед и скажу, что это лишь один из способов запрета индексации тех или иных страниц или разделов вебсайта. Вообще их три:
- Роботс.тхт — самый высокоуровневый способ, ибо позволяет задать правила индексации для всего сайта целиком (как его отдельный страниц, так и целых каталогов). Он является полностью валидным методом, поддерживаемым всеми поисковиками и другими ботами живущими в сети. Но его директивы вовсе не являются обязательными для исполнения. Например, Гугл не шибко смотрит на запреты в robots.tx — для него авторитетнее одноименный мета-тег рассмотренный ниже.
- Мета-тег robots — имеет влияние только на страницу, где он прописан. В нем можно запретить индексацию и переход робота по находящимся в этом документе ссылкам (подробнее смотрите ниже). Он тоже является полностью валидным и поисковики будут стараться учитывать указанные в нем значения. Для Гугла, как я уже упоминал, этот метод имеет больший вес, чем файлик роботса в корне сайта.
- Тег Noindex и атрибут rel=»nofollow» — самый низкоуровневый способ влияния на индексацию. Они позволяют закрыть от индексации отдельные фрагменты текста (noindex) и не учитывать вес передаваемый по ссылке. Они не валидны (их нет в стандартах). Как именно их учитывают поисковики и учитывают ли вообще — большой вопрос и предмет долгих споров (кто знает наверняка — тот молчит и пользуется).
Важно понимать, что даже «стандарт» (валидные директивы robots.txt и одноименного мета-тега) являются необязательным к исполнению. Если робот «вежливый», то он будет следовать заданным вами правилам. Но вряд ли вы сможете при помощи такого метода запретить доступ к части сайта роботам, ворующим у вас контент или сканирующим сайт по другим причинам.
Вообще, роботов (ботов, пауков, краулеров) существует множество. Какие-то из них индексируют контент (как например, боты поисковых систем или воришек). Есть боты проверяющие ссылки, обновления, зеркалирование, проверяющие микроразметку и т.д. Смотрите сколько роботов есть только у Яндекса.
Большинство роботов хорошо спроектированы и не создают каких-либо проблем для владельцев сайтов. Но если бот написан дилетантом или «что-то пошло не так», то он может создавать существенную нагрузку на сайт, который он обходит. Кстати, пауки вовсе на заходят на сервер подобно вирусам — они просто запрашивают нужные им страницы удаленно (по сути это аналоги браузеров, но без функции просмотра страниц).
Robots.txt — директива user-agent и боты поисковых систем
Роботс.тхт имеет совсем не сложный синтаксис, который очень подробно описан, например, в хелпе яндекса и хелпе Гугла. Обычно в нем указывается, для какого поискового бота предназначены описанные ниже директивы: имя бота ('User-agent'), разрешающие ('Allow') и запрещающие ('Disallow'), а также еще активно используется 'Sitemap' для указания поисковикам, где именно находится файл карты.
Стандарт создавался довольно давно и что-то было добавлено уже позже. Есть директивы и правила оформления, которые будут понятны только роботами определенных поисковых систем. В рунете интерес представляют в основном только Яндекс и Гугл, а значит именно с их хелпами по составлению robots.txt следует ознакомиться особо детально (ссылки я привел в предыдущем абзаце).
Например, раньше для поисковой системы Яндекс было полезным указать, какое из зеркал вашего вебпроекта является главным в специальной директиве 'Host', которую понимает только этот поисковик (ну, еще и Майл.ру, ибо у них поиск от Яндекса). Правда, в начале 2018 Яндекс все же отменил Host и теперь ее функции как и у других поисковиков выполняет 301-редирект.
Если даже у вашего ресурса нет зеркал, то полезно будет указать, какой из вариантов написания является главным — с www или без него.
Теперь поговорим немного о синтаксисе этого файла. Директивы в robots.txt имеют следующий вид:
<поле>:<пробел><значение><пробел> <поле>:<пробел><значение><пробел>
Правильный код должен содержать хотя бы одну директиву «Disallow» после каждой записи «User-agent». Пустой файл предполагает разрешение на индексирование всего сайта.
User-agent
Директива «User-agent» должна содержать название поискового бота. При помощи нее можно настроить правила поведения для каждого конкретного поисковика (например, создать запрет индексации отдельной папки только для Яндекса). Пример написания «User-agent», адресованной всем ботам зашедшим на ваш ресурс, выглядит так:
User-agent: *
Если вы хотите в «User-agent» задать определенные условия только для какого-то одного бота, например, Яндекса, то нужно написать так:
User-agent: Yandex
Название роботов поисковых систем и их роль в файле robots.txt
Бот каждой поисковой системы имеет своё название (например, для рамблера это StackRambler). Здесь я приведу список самых известных из них:
Google http://www.google.com Googlebot Яндекс http://www.ya.ru Yandex Бинг http://www.bing.com/ bingbot
У крупных поисковых систем иногда, кроме основных ботов, имеются также отдельные экземпляры для индексации блогов, новостей, изображений и т.д. Много информации по разновидностям ботов вы можете почерпнуть тут (для Яндекса) и тут (для Google).
Как быть в этом случае? Если нужно написать правило запрета индексации, которое должны выполнить все типы роботов Гугла, то используйте название Googlebot и все остальные пауки этого поисковика тоже послушаются. Однако, можно запрет давать только, например, на индексацию картинок, указав в качестве User-agent бота Googlebot-Image. Сейчас это не очень понятно, но на примерах, я думаю, будет проще.
Примеры использования директив Disallow и Allow в роботс.тхт
Приведу несколько простых примеров использования директив с объяснением его действий.
- Приведенный ниже код разрешает всем ботам (на это указывает звездочка в User-agent) проводить индексацию всего содержимого без каких-либо исключений. Это задается пустой директивой Disallow.
User-agent: * Disallow:
- Следующий код, напротив, полностью запрещает всем поисковикам добавлять в индекс страницы этого ресурса. Устанавливает это
Disallow
с «/» в поле значения.User-agent: * Disallow: /
- В этом случае будет запрещаться всем ботам просматривать содержимое каталога /image/ (http://mysite.ru/image/ — абсолютный путь к этому каталогу)
User-agent: * Disallow: /image/
- Чтобы заблокировать один файл, достаточно будет прописать его абсолютный путь до него (читайте про абсолютные и относительные пути по ссылке):
User-agent: * Disallow: /katalog1//katalog2/private_file.html
Забегая чуть вперед скажу, что проще использовать символ звездочки (*), чтобы не писать полный путь:
Disallow: /*private_file.html
- В приведенном ниже примере будут запрещены директория «image», а также все файлы и директории, начинающиеся с символов «image», т. е. файлы: «image.htm», «images.htm», каталоги: «image», «images1», «image34» и т. д.):
User-agent: * Disallow: /image
Дело в том, что по умолчанию в конце записи подразумевается звездочка, которая заменяет любые символы, в том числе и их отсутствие. Читайте об этом ниже.
- С помощью директивы Allow мы разрешаем доступ. Хорошо дополняет Disallow. Например, таким вот условием поисковому роботу Яндекса мы запрещаем выкачивать (индексировать) все, кроме вебстраниц, адрес которых начинается с /cgi-bin:
User-agent: Yandex Allow: /cgi-bin Disallow: /
Ну, или такой вот очевидный пример использования связки Allow и Disallow:
User-agent: * Disallow: /catalog Allow: /catalog/auto
- При описании путей для директив
Allow-Disallow
можно использовать символы '*' и '$', задавая, таким образом, определенные логические выражения.- Символ '*'(звездочка) означает любую (в том числе пустую) последовательность символов. Следующий пример запрещает всем поисковикам индексацию файлов с расширение «.php»:
User-agent: * Disallow: *.php$
- Зачем нужен на конце знак $ (доллара)? Дело в том, что по логике составления файла robots.txt, в конце каждой директивы как бы дописывается умолчательная звездочка (ее нет, но она как бы есть). Например мы пишем:
Disallow: /images
Подразумевая, что это то же самое, что:
Disallow: /images*
Т.е. это правило запрещает индексацию всех файлов (вебстраниц, картинок и других типов файлов) адрес которых начинается с /images, а дальше следует все что угодно (см. пример выше). Так вот, символ $ просто отменяет эту умолчательную (непроставляемую) звездочку на конце. Например:
Disallow: /images$
Запрещает только индексацию файла /images, но не /images.html или /images/primer.html. Ну, а в первом примере мы запретили индексацию только файлов оканчивающихся на .php (имеющих такое расширение), чтобы ничего лишнего не зацепить:
Disallow: *.php$
- Символ '*'(звездочка) означает любую (в том числе пустую) последовательность символов. Следующий пример запрещает всем поисковикам индексацию файлов с расширение «.php»:
User-agent: * Disallow: /*?
Звездочка после вопросительного знака напрашивается, но она, как мы с вами выяснили чуть выше, уже подразумевается на конце. Таким образом мы запретим индексацию страниц поиска и прочих служебных страниц создаваемых движком, до которых может дотянуться поисковый робот. Лишним не будет, ибо знак вопроса чаще всего CMS используют как идентификатор сеанса, что может приводить к попаданию в индекс дублей страниц.
Директивы Sitemap и Host (для Яндекса) в Robots.txt
Во избежании возникновения неприятных проблем с зеркалами сайта, раньше рекомендовалось добавлять в robots.txt директиву Host, которая указывал боту Yandex на главное зеркало.
Однако, в начале 2018 год это было отменено и и теперь функции Host выполняет 301-редирект.
Директива Host — указывает главное зеркало сайта для Яндекса
Например, раньше, если вы еще не перешли на защищенный протокол, указывать в Host нужно было не полный Урл, а доменное имя (без http://, т.е. ktonanovenkogo.ru, а не https://ktonanovenkogo.ru). Если же уже перешли на https, то указывать нужно будет полный Урл (типа https://myhost.ru).
Сейчас переезд сайта после отказа от директивы Host очень сильно упростился, ибо теперь не нужно ждать пока произойдет склейка зеркал по директиве Host для Яндекса, а можно сразу после настройки Https на сайте делать постраничный редирект с Http на Https.
Напомню в качестве исторического экскурса, что по стандарту написания роботс.тхт за любой директивой User-agent
должна сразу следовать хотя бы одна директива Disallow
(пусть даже и пустая, ничего не запрещающая). Так же, наверное, имеется смысл прописывать Host для отдельного блока «User-agent: Yandex», а не для общего «User-agent: *», чтобы не сбивать с толку роботов других поисковиков, которые эту директиву не поддерживают:
User-agent: Yandex Disallow: Host: www.site.ru
либо
User-agent: Yandex Disallow: Host: site.ru
либо
User-agent: Yandex Disallow: Host: https://site.ru
либо
User-agent: Yandex Disallow: Host: https://www.site.ru
в зависимости от того, что для вас оптимальнее (с www или без), а так же в зависимости от протокола.
Указываем или скрываем путь до карты сайта sitemap.xml в файле robots
Директива Sitemap указывает на местоположение файла карты сайта (обычно он называется Sitemap.xml, но не всегда). В качестве параметра указывается путь к этому файлу, включая http:// (т.е. его Урл).Благодаря этому поисковый робот сможете без труда его найти. Например:
Sitemap: http://site.ru/sitemap.xml
Раньше файл карты сайта хранили в корне сайта, но сейчас многие его прячут внутри других директорий, чтобы ворам контента не давать удобный инструмент в руки. В этом случае путь до карты сайта лучше в роботс.тхт не указывать. Дело в том, что это можно с тем же успехом сделать через панели поисковых систем (Я.Вебмастер, Google.Вебмастер, панель Майл.ру), тем самым «не паля» его местонахождение.
Местоположение директивы Sitemap в файле robots.txt не регламентируется, ибо она не обязана относиться к какому-то юзер-агенту. Обычно ее прописывают в самом конце, либо вообще не прописывают по приведенным выше причинам.
Проверка robots.txt в Яндекс и Гугл вебмастере
Как я уже упоминал, разные поисковые системы некоторые директивы могут интерпритировать по разному. Поэтому имеет смысл проверять написанный вами файл роботс.тхт в панелях для вебмастеров обоих систем. Как проверять?
- Зайти в инструменты проверки Яндекса и Гугла.
- Убедиться, что в панель вебмастера загружена версия файла с внесенными вами изменениями. В Яндекс вебмастере загрузить измененный файл можно с помощью показанной на скриншоте иконки:
В Гугл Вебмастере нужно нажать кнопку «Отправить» (справа под списком директив роботса), а затем в открывшемся окне выбрать последний вариант нажатием опять же на кнопку «Отправить»:
- Набрать список адресов страниц своего сайта (по Урлу в строке), которые должны индексироваться, и вставить их скопом (в Яндексе) или по одному (в Гугле) в расположенную снизу форму. После чего нажать на кнопку «Проверить».
Если возникли нестыковки, то выяснить причины, внести изменения в robots.txt, загрузить обновленный файл в панель вебмастеров и повторить проверку. Все ОК?
Тогда составляйте список страниц, которые не должны индексироваться, и проводите их проверку. При необходимости вносите изменения и проверку повторяйте. Естественно, что проверять следует не все страницы сайта, а ярких представителей своего класса (страницы статей, рубрики, служебные страницы, файлы картинок, файлы шаблона, файлы движка и т.д.)
Причины ошибок выявляемых при проверке файла роботс.тхт
- Файл должен находиться в корне сайта, а не в какой-то папке (это не .htaccess, и его действия распространяются на весь сайт, а не на каталог, в котором его поместили), ибо поисковый робот его там искать не будет.
- Название и расширение файла robots.txt должно быть набрано в нижнем регистре (маленькими) латинскими буквами.
- В названии файла должна быть буква S на конце (не robot.txt, как многие пишут)
- Часто в User-agent вместо звездочки (означает, что этот блок robots.txt адресован всем ботам) оставляют пустое поле. Это не правильно и * в этом случае обязательна
User-agent: * Disallow: /
- В одной директиве Disallow или Allow можно прописывать только одно условие на запрет индексации директории или файла. Так нельзя:
Disallow: /feed/ /tag/ /trackback/
Для каждого условия нужно добавить свое Disallow:
Disallow: /feed/ Disallow: /tag/ Disallow: /trackback/
- Довольно часто путают значения для директив и пишут:
User-agent: / Disallow: Yandex
вместо
User-agent: Yandex Disallow: /
- Порядок следования Disallow (Allow) не важен — главное, чтобы была четкая логическая цепь
- Пустая директива Disallow означает то же, что «Allow: /»
- Нет смысла прописывать директиву sitemap под каждым User-agent, если будете указывать путь до карты сайта (читайте об этом ниже), то делайте это один раз, например, в самом конце.
- Директиву Host лучше писать под отдельным «User-agent: Yandex», чтобы не смущать ботов ее не поддерживающих
Мета-тег Robots — помогает закрыть дубли контента при индексации сайта
Существует еще один способ настроить (разрешить или запретить) индексацию отдельных страниц вебсайта, как для Яндекса, так и для Гугл. Причем для Google этот метод гораздо приоритетнее описанного выше. Поэтому, если нужно наверняка закрыть страницу от индексации этой поисковой системой, то данный мета-тег нужно будет прописывать в обязательном порядке.
Для этого внутри тега «HEAD» нужной вебстраницы дописывается МЕТА-тег Robots с нужными параметрами, и так повторяется для всех документов, к которым нужно применить то или иное правило (запрет или разрешение). Выглядеть это может, например, так:
<html> <head> <meta name="robots" content="noindex,nofollow"> <meta name="description" content="Эта страница ...."> <title>...</title> </head> <body> ...
В этом случае, боты всех поисковых систем должны будут забыть об индексации этой вебстраницы (об этом говорит присутствие noindex
в данном мета-теге) и анализе размещенных на ней ссылок (об этом говорит присутствие nofollow
— боту запрещается переходить по ссылкам, которые он найдет в этом документе).
Существуют только две пары параметров у метатега robots: [no]index и [no]follow:
- Index — указывают, может ли робот проводить индексацию данного документа
- Follow — может ли он следовать по ссылкам, найденным в этом документе
Значения по умолчанию (когда этот мета-тег для страницы вообще не прописан) – «index» и «follow». Есть также укороченный вариант написания с использованием «all» и «none», которые обозначают активность обоих параметров или, соответственно, наоборот: all=index,follow
и none=noindex,nofollow
.
Более подробные объяснения можно найти, например, в хелпе Яндекса:
Для блога на WordPress вы сможете настроить мета-тег Robots, например, с помощью плагина All in One SEO Pack. Если используете другие плагины или другие движки сайта, то гуглите на тему прописывания для нужных страниц meta name=»robots».
Как создать правильный роботс.тхт?
Ну все, с теорией покончено и пора переходить к практике, а именно к составлению оптимальных robots.txt. Как известно, у проектов, созданных на основе какого-либо движка (Joomla, WordPress и др), имеется множество вспомогательных объектов не несущих никакой информативной нагрузки.
Если не запретить индексацию всего этого мусора, то время, отведенное поисковиками на индексацию вашего сайта, будет тратиться на перебор файлов движка (на предмет поиска в них информационной составляющей, т.е. контента). Но фишка в том, что в большинстве CMS контент хранится не в файликах, а в базе данных, к которой поисковым ботам никак не добраться. Полазив по мусорным объектам движка, бот исчерпает отпущенное ему время и уйдет не солоно хлебавши.
Кроме того, следует стремиться к уникальности контента на своем проекте и не следует допускать полного или даже частичного дублирования контента (информационного содержимого). Дублирование может возникнуть в том случае, если один и тот же материал будет доступен по разным адресам (URL).
Яндекс и Гугл, проводя индексацию, обнаружат дубли и, возможно, примут меры к некоторой пессимизации вашего ресурса при их большом количестве (машинные ресурсы стоят дорого, а посему затраты нужно минимизировать). Да, есть еще такая штука, как мета-тэг Canonical.
Замечательный инструмент для борьбы с дублями контента — поисковик просто не будет индексировать страницу, если в Canonical прописан другой урл. Например, для такой страницы https://ktonanovenkogo.ru/page/2 моего блога (страницы с пагинацией) Canonical указывает на https://ktonanovenkogo.ru и никаких проблем с дублированием тайтлов возникнуть не должно.
<link rel="canonical" href="https://ktonanovenkogo.ru/" />
Но это я отвлекся…
Если ваш проект создан на основе какого-либо движка, то дублирование контента будет иметь место с высокой вероятностью, а значит нужно с ним бороться, в том числе и с помощью запрета в robots.txt, а особенно в мета-теге, ибо в первом случае Google запрет может и проигнорировать, а вот на метатег наплевать он уже не сможет (так воспитан).
Например, в WordPress страницы с очень похожим содержимым могут попасть в индекс поисковиков, если разрешена индексация и содержимого рубрик, и содержимого архива тегов, и содержимого временных архивов. Но если с помощью описанного выше мета-тега Robots создать запрет для архива тегов и временного архива (можно теги оставить, а запретить индексацию содержимого рубрик), то дублирования контента не возникнет. Как это сделать описано по ссылке приведенной чуть выше (на плагин ОлИнСеоПак)
Подводя итог скажу, что файл Роботс предназначен для задания глобальных правил запрета доступа в целые директории сайта, либо в файлы и папки, в названии которых присутствуют заданные символы (по маске). Примеры задания таких запретов вы можете посмотреть чуть выше.
Теперь давайте рассмотрим конкретные примеры роботса, предназначенного для разных движков — Joomla, WordPress и SMF. Естественно, что все три варианта, созданные для разных CMS, будут существенно (если не сказать кардинально) отличаться друг от друга. Правда, у всех у них будет один общий момент, и момент этот связан с поисковой системой Яндекс.
Т.к. в рунете Яндекс имеет достаточно большой вес, то нужно учитывать все нюансы его работы, и тут нам поможет директива Host. Она в явной форме укажет этому поисковику главное зеркало вашего сайта.
Для нее советуют использовать отдельный блог User-agent, предназначенный только для Яндекса (User-agent: Yandex). Это связано с тем, что остальные поисковые системы могут не понимать Host и, соответственно, ее включение в запись User-agent, предназначенную для всех поисковиков (User-agent: *), может привести к негативным последствиям и неправильной индексации.
Как обстоит дело на самом деле — сказать трудно, ибо алгоритмы работы поиска — это вещь в себе, поэтому лучше сделать так, как советуют. Но в этом случае придется продублировать в директиве User-agent: Yandex
все те правила, что мы задали User-agent: *
. Если вы оставите User-agent: Yandex с пустым Disallow:
, то таким образом вы разрешите Яндексу заходить куда угодно и тащить все подряд в индекс.
Robots для WordPress
Не буду приводить пример файла, который рекомендуют разработчики. Вы и сами можете его посмотреть. Многие блогеры вообще не ограничивают ботов Яндекса и Гугла в их прогулках по содержимому движка WordPress. Чаще всего в блогах можно встретить роботс, автоматически заполненный плагином Google XML Sitemaps.
Но, по-моему, все-таки следует помочь поиску в нелегком деле отсеивания зерен от плевел. Во-первых, на индексацию этого мусора уйдет много времени у ботов Яндекса и Гугла, и может совсем не остаться времени для добавления в индекс вебстраниц с вашими новыми статьями. Во-вторых, боты, лазящие по мусорным файлам движка, будут создавать дополнительную нагрузку на сервер вашего хоста, что не есть хорошо.
Мой вариант этого файла вы можете сами посмотреть. Он старый, давно не менялся, но я стараюсь следовать принципу «не чини то, что не ломалось», а вам уже решать: использовать его, сделать свой или еще у кого-то подсмотреть. У меня там еще запрет индексации страниц с пагинацией был прописан до недавнего времени (Disallow: */page/), но недавно я его убрал, понадеясь на Canonical, о котором писал выше.
А вообще, единственно правильного файла для WordPress, наверное, не существует. Можно, кончено же, реализовать в нем любые предпосылки, но кто сказал, что они будут правильными. Вариантов идеальных robots.txt в сети много.
Приведу две крайности:
- Тут можно найти мегафайлище с подробными пояснениями (символом # отделяются комментарии, которые в реальном файле лучше будет удалить):
User-agent: * # общие правила для роботов, кроме Яндекса и Google, # т.к. для них правила ниже Disallow: /cgi-bin # папка на хостинге Disallow: /? # все параметры запроса на главной Disallow: /wp- # все файлы WP: /wp-json/, /wp-includes, /wp-content/plugins Disallow: /wp/ # если есть подкаталог /wp/, где установлена CMS (если нет, # правило можно удалить) Disallow: *?s= # поиск Disallow: *&s= # поиск Disallow: /search/ # поиск Disallow: /author/ # архив автора Disallow: /users/ # архив авторов Disallow: */trackback # трекбеки, уведомления в комментариях о появлении открытой # ссылки на статью Disallow: */feed # все фиды Disallow: */rss # rss фид Disallow: */embed # все встраивания Disallow: */wlwmanifest.xml # xml-файл манифеста Windows Live Writer (если не используете, # правило можно удалить) Disallow: /xmlrpc.php # файл WordPress API Disallow: *utm= # ссылки с utm-метками Disallow: *openstat= # ссылки с метками openstat Allow: */uploads # открываем папку с файлами uploads User-agent: GoogleBot # правила для Google (комментарии не дублирую) Disallow: /cgi-bin Disallow: /? Disallow: /wp- Disallow: /wp/ Disallow: *?s= Disallow: *&s= Disallow: /search/ Disallow: /author/ Disallow: /users/ Disallow: */trackback Disallow: */feed Disallow: */rss Disallow: */embed Disallow: */wlwmanifest.xml Disallow: /xmlrpc.php Disallow: *utm= Disallow: *openstat= Allow: */uploads Allow: /*/*.js # открываем js-скрипты внутри /wp- (/*/ - для приоритета) Allow: /*/*.css # открываем css-файлы внутри /wp- (/*/ - для приоритета) Allow: /wp-*.png # картинки в плагинах, cache папке и т.д. Allow: /wp-*.jpg # картинки в плагинах, cache папке и т.д. Allow: /wp-*.jpeg # картинки в плагинах, cache папке и т.д. Allow: /wp-*.gif # картинки в плагинах, cache папке и т.д. Allow: /wp-admin/admin-ajax.php # используется плагинами, чтобы не блокировать JS и CSS User-agent: Yandex # правила для Яндекса (комментарии не дублирую) Disallow: /cgi-bin Disallow: /? Disallow: /wp- Disallow: /wp/ Disallow: *?s= Disallow: *&s= Disallow: /search/ Disallow: /author/ Disallow: /users/ Disallow: */trackback Disallow: */feed Disallow: */rss Disallow: */embed Disallow: */wlwmanifest.xml Disallow: /xmlrpc.php Allow: */uploads Allow: /*/*.js Allow: /*/*.css Allow: /wp-*.png Allow: /wp-*.jpg Allow: /wp-*.jpeg Allow: /wp-*.gif Allow: /wp-admin/admin-ajax.php Clean-Param: utm_source&utm_medium&utm_campaign # Яндекс рекомендует не закрывать # от индексирования, а удалять параметры меток, # Google такие правила не поддерживает Clean-Param: openstat # аналогично # Укажите один или несколько файлов Sitemap (дублировать для каждого User-agent # не нужно). Google XML Sitemap создает 2 карты сайта, как в примере ниже. Sitemap: http://site.ru/sitemap.xml Sitemap: http://site.ru/sitemap.xml.gz # Укажите главное зеркало сайта, как в примере ниже (с WWW / без WWW, если HTTPS # то пишем протокол, если нужно указать порт, указываем). Команду Host понимает # Яндекс и Mail.RU, Google не учитывает. Host: www.site.ru
- А вот тут можно взять на вооружение пример минимализма:
User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php Host: https://site.ru Sitemap: https://site.ru/sitemap.xml
Истина, наверное, лежит где-то посредине. Еще не забудьте прописать мета-тег Robots для «лишних» страниц, например, с помощью чудесного плагина — All in One SEO Pack. Он же поможет и Canonical настроить.
ktonanovenkogo.ru
Сегодня я проведу урок как сделать правильный 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
Ну вот впринципе и всё. Каких то великий премудростей в прописывании роботса нет, всё делается стандартно. Если вдруг у вас где то вылезли на сайте дубли страниц, то просто запрещаете их в Роботсе.
Вопросы?
blogarbik.ru