Большинство роботов хорошо спроектированы и не создают каких-либо проблем для владельцев сайтов. Но если бот написан дилетантом или «что-то пошло не так», то он может создавать существенную нагрузку на сайт, который он обходит. Кстати, пауки вовсе на заходят на сервер подобно вирусам — они просто запрашивают нужные им страницы удаленно (по сути это аналоги браузеров, но без функции просмотра страниц).

Robots.txt — директива user-agent и боты поисковых систем

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

Стандарт создавался довольно давно и что-то было добавлено уже позже. Есть директивы и правила оформления, которые будут понятны только роботами определенных поисковых систем. В рунете интерес представляют в основном только Яндекс и Гугл, а значит именно с их хелпами по составлению robots.txt следует ознакомиться особо детально (ссылки я привел в предыдущем абзаце).

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

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

Теперь поговорим немного о синтаксисе этого файла. Директивы в 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 в роботс.тхт

Приведу несколько простых примеров использования директив с объяснением его действий.

  1. Приведенный ниже код разрешает всем ботам (на это указывает звездочка в User-agent) проводить индексацию всего содержимого без каких-либо исключений. Это задается пустой директивой Disallow . User-agent: * Disallow:
  2. Следующий код, напротив, полностью запрещает всем поисковикам добавлять в индекс страницы этого ресурса. Устанавливает это Disallow с «/» в поле значения. User-agent: * Disallow: /
  3. В этом случае будет запрещаться всем ботам просматривать содержимое каталога /image/ (http://mysite.ru/image/ — абсолютный путь к этому каталогу) User-agent: * Disallow: /image/
  4. Чтобы заблокировать один файл, достаточно будет прописать его абсолютный путь до него (читайте ): User-agent: * Disallow: /katalog1//katalog2/private_file.html

    Забегая чуть вперед скажу, что проще использовать символ звездочки (*), чтобы не писать полный путь:

    Disallow: /*private_file.html

  5. В приведенном ниже примере будут запрещены директория «image», а также все файлы и директории, начинающиеся с символов «image», т. е. файлы: «image.htm», «images.htm», каталоги: «image», «images1», «image34» и т. д.): User-agent: * Disallow: /image Дело в том, что по умолчанию в конце записи подразумевается звездочка, которая заменяет любые символы, в том числе и их отсутствие. Читайте об этом ниже.
  6. С помощью директивы Allow мы разрешаем доступ. Хорошо дополняет Disallow. Например, таким вот условием поисковому роботу Яндекса мы запрещаем выкачивать (индексировать) все, кроме вебстраниц, адрес которых начинается с /cgi-bin: User-agent: Yandex Allow: /cgi-bin Disallow: /

    Ну, или такой вот очевидный пример использования связки Allow и Disallow:

    User-agent: * Disallow: /catalog Allow: /catalog/auto

  7. При описании путей для директив Allow-Disallow можно использовать символы "*" и "$" , задавая, таким образом, определенные логические выражения.
    1. Символ "*"(звездочка) означает любую (в том числе пустую) последовательность символов. Следующий пример запрещает всем поисковикам индексацию файлов с расширение «.php»: User-agent: * Disallow: *.php$
    2. Зачем нужен на конце знак $ (доллара) ? Дело в том, что по логике составления файла robots.txt, в конце каждой директивы как бы дописывается умолчательная звездочка (ее нет, но она как бы есть). Например мы пишем: Disallow: /images

      Подразумевая, что это то же самое, что:

      Disallow: /images*

      Т.е. это правило запрещает индексацию всех файлов (вебстраниц, картинок и других типов файлов) адрес которых начинается с /images, а дальше следует все что угодно (см. пример выше). Так вот, символ $ просто отменяет эту умолчательную (непроставляемую) звездочку на конце. Например:

      Disallow: /images$

      Запрещает только индексацию файла /images, но не /images.html или /images/primer.html. Ну, а в первом примере мы запретили индексацию только файлов оканчивающихся на.php (имеющих такое расширение), чтобы ничего лишнего не зацепить:

      Disallow: *.php$

  • Во многих движках пользователи (человеко-понятные Урлы), в то время как Урлы, генерируемые системой, имеют знак вопроса "?" в адресе. Этим можно воспользоваться и написать такое правило в robots.txt: User-agent: * Disallow: /*?

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

  • Директивы Sitemap и Host (для Яндекса) в Robots.txt

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

    Директива Host — указывает главное зеркало сайта для Яндекса

    Например, раньше, если вы еще не перешли на защищенный протокол , указывать в Host нужно было не полный Урл, а доменное имя (без http://, т.е..ru). Если же уже перешли на https, то указывать нужно будет полный Урл (типа https://myhost.ru).

    Замечательный инструмент для борьбы с дублями контента — поисковик просто не будет индексировать страницу, если в Canonical прописан другой урл. Например, для такой страницы моего блога (страницы с пагинацией) Canonical указывает на https://сайт и никаких проблем с дублированием тайтлов возникнуть не должно.

    Но это я отвлекся...

    Если ваш проект создан на основе какого-либо движка, то дублирование контента будет иметь место с высокой вероятностью, а значит нужно с ним бороться, в том числе и с помощью запрета в 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. Чаще всего в блогах можно встретить роботс, автоматически заполненный плагином .

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

    Мой вариант этого файла вы можете сами посмотреть. Он старый, давно не менялся, но я стараюсь следовать принципу «не чини то, что не ломалось», а вам уже решать: использовать его, сделать свой или еще у кого-то подсмотреть. У меня там еще запрет индексации страниц с пагинацией был прописан до недавнего времени (Disallow: */page/), но недавно я его убрал, понадеясь на Canonical, о котором писал выше.

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

    Приведу две крайности :

    1. можно найти мегафайлище с подробными пояснениями (символом # отделяются комментарии, которые в реальном файле лучше будет удалить): 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
    2. А вот можно взять на вооружение пример минимализма: User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php Host: https://site.ru Sitemap: https://site.ru/sitemap.xml

    Истина, наверное, лежит где-то посредине. Еще не забудьте прописать мета-тег Robots для «лишних» страниц, например, с помощью чудесного плагина — . Он же поможет и Canonical настроить.

    Правильный robots.txt для Joomla

    User-agent: * Disallow: /administrator/ Disallow: /bin/ Disallow: /cache/ Disallow: /cli/ Disallow: /components/ Disallow: /includes/ Disallow: /installation/ Disallow: /language/ Disallow: /layouts/ Disallow: /libraries/ Disallow: /logs/ Disallow: /modules/ Disallow: /plugins/ Disallow: /tmp/

    В принципе, здесь практически все учтено и работает он хорошо. Единственное, в него следует добавить отдельное правило User-agent: Yandex для вставки директивы Host, определяющей главное зеркало для Яндекса, а так же указать путь к файлу Sitemap.

    Поэтому в окончательном виде правильный robots для Joomla, по-моему мнению, должен выглядеть так:

    User-agent: Yandex Disallow: /administrator/ Disallow: /cache/ Disallow: /includes/ Disallow: /installation/ Disallow: /language/ Disallow: /libraries/ Disallow: /modules/ Disallow: /plugins/ Disallow: /tmp/ Disallow: /layouts/ Disallow: /cli/ Disallow: /bin/ Disallow: /logs/ Disallow: /components/ Disallow: /component/ Disallow: /component/tags* Disallow: /*mailto/ Disallow: /*.pdf Disallow: /*% Disallow: /index.php Host: vash_sait.ru (или www.vash_sait.ru) User-agent: * Allow: /*.css?*$ Allow: /*.js?*$ Allow: /*.jpg?*$ Allow: /*.png?*$ Disallow: /administrator/ Disallow: /cache/ Disallow: /includes/ Disallow: /installation/ Disallow: /language/ Disallow: /libraries/ Disallow: /modules/ Disallow: /plugins/ Disallow: /tmp/ Disallow: /layouts/ Disallow: /cli/ Disallow: /bin/ Disallow: /logs/ Disallow: /components/ Disallow: /component/ Disallow: /*mailto/ Disallow: /*.pdf Disallow: /*% Disallow: /index.php Sitemap: http://путь к вашей карте XML формата

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

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

    Удачи вам! До скорых встреч на страницах блога сайт

    Вам может быть интересно

    Домены с www и без него - история появления, использование 301 редиректа для их склеивания
    Зеркала, дубли страниц и Url адреса - аудит вашего сайта или что может быть причиной краха при его SEO продвижении SEO для новичков: 10 основных пунктов технического аудита сайта
    Bing вебмастер - центр для вебмастеров от поисковой системы Бинг
    Гугл вебмастер - инструменты Search Console (Google Webmaster)
    Как обойти распространенные ошибки при продвижении сайта
    Как продвинуть сайт самостоятельно, улучшая внутреннюю оптимизацию под ключевые слова и удаляя дубли контента
    Яндекс Вебмастер - индексация, ссылки, видимость сайта, выбор региона, авторство и проверка на вирусы в Yandex Webmaster

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

    Запрет индексирования сайта, раздела или страницы

    Если какие-то страницы или разделы сайта не должны индексироваться (например, со служебной или конфиденциальной информацией), ограничьте доступ к ним следующими способами:

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

    Запрет индексирования контента страницы

    Скрыть от индексирования часть текста страницы

    В HTML-коде страницы добавьте элемент noindex . Например:

    Элемент не чувствителен к вложенности - может находиться в любом месте HTML-кода страницы. При необходимости сделать код сайта валидным возможно использование тега в следующем формате:

    текст, индексирование которого нужно запретить Скрыть от индексирования ссылку на странице

    В HTML-коде страницы в элемент a добавьте атрибут . Например:

    Атрибут работает аналогично директиве nofollow в метатеге robots , но распространяется только на ссылку, для которой указан.

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

    Файл robots.txt и стандарт исключений для роботов

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

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

    [директива]: [значение]

    Весь список директив разбивают на секции (записи), разделяя их одной или несколькими пустыми строками. Новую секцию начинают с одной или нескольких инструкций User-agent. Запись должна содержать как минимум одну директиву User-agent и одну Disallow.

    Текст после символа # (решетка) считается комментарием и игнорируется поисковыми роботами.

    Директива User-agent

    User-agent — первая директива в секции, сообщает имена роботов, для которых предназначены следующие за ней правила. Звездочка в значении обозначает любое имя, разрешается только одна секция с инструкциями для всех роботов. Пример:

    # инструкции для всех роботов User-agent: * ... # инструкции для роботов Яндекса User-agent: Yandex ... # инструкции для роботов Google User-agent: Googlebot ...

    Директива Disallow

    Disallow — основная директива, запрещающая сканирование URL/файлов/каталогов, имена которых полностью или частично совпадают с указанными после двоеточия.

    Продвинутые поисковые роботы вроде Яндекса и Google понимают спецсимвол * (звездочка), обозначающий любую последовательность символов. Подстановку не желательно использовать в секции для всех роботов.

    Примеры директивы Disallow:

    # пустое значение разрешает индексировать все User-agent: * Disallow: # запрещает сканировать весь сайт User-agent: * Disallow: / # запрещает к сканированию все файлы и/или каталоги, начинающиеся из символов "wp-" User-agent: * Disallow: /wp- # запрещает сканировать файлы page-1.php, page-vasya.php, page-news-345.php # вместо * может встречаться любая последовательность символов User-agent: * Disallow: /page-*.php

    Директива Allow (неофициальная)

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

    # запрещает сканировать ресурсы начинающиеся с /catalog # но разрешает сканировать страницу /catalog/page.html User-agent: Yandex Disallow: /catalog Allow: /catalog/page.html

    Sitemap (неофициальная)

    Sitemap — директива, указывающая адрес карты сайта в формате XML. Эта директива так же не описана в стандарте исключений и поддерживается не всеми роботами (работает для Яндекс, Google, Ask, Bing и Yahoo). Можно указывать одну или несколько карт — все будут учтены. Может использоваться без User-agent после пустой строки. Пример:

    # одна или несколько карт в формате XML, указывается полный URL Sitemap: http://sitename.com/sitemap.xml Sitemap: http://sitename.com/sitemap-1.xml

    Директива Host (только Яндекс)

    Host — директива для робота Яндекс, указывающая основное зеркало сайта. Вопрос о зеркалах детальнее можно изучить в справке Яндекса . Эту инструкцию можно указывать как в секции для роботов Яндекса, так и отдельной записью без User-agent (инструкция межсекционная и в любом случае будет учтена Яндексом, а остальные роботы ее проигнорируют). Если в одном файле Host указан несколько раз, то будет учтена только первая. Примеры:

    # указываем главное зеркало в секции для Яндекса User-agent: Yandex Disallow: Host: sitename.com # главное зеркало для сайта с SSL сертификатом User-agent: Yandex Disallow: Host: https://sitename.com # или отдельно без User-agent после пустой строки Host: sitename.com

    Другие директивы

    Роботы Яндекса также понимают директивы Crawl-delay и Clean-param . Детальнее об их использовании читайте в справочной документации.

    Роботы, директивы robots.txt и индекс поисковых систем

    Ранее поисковые роботы следовали директивам robots.txt и не добавляли в индекс «запрещенных» там ресурсов.

    Сегодня все обстоит иначе. Если Яндекс послушно исключит из индекса адреса, запрещенные в файле роботс, то Google поступит совершенно иначе. Он обязательно добавит их индекс, но в результатах поиска будет стоять надпись «Описание веб-страницы недоступно из-за ограничений в файле robots.txt» .

    Почему Google добавляет в индекс страницы, запрещенные в robots.txt?

    Ответ кроется в маленькой хитрости гугла. Если внимательно прочесть справку для вебмастера, то все становится более чем понятно:

    Google без зазрения совести сообщает, что директивы в robots.txt являются рекомендацией , а не прямыми командами к действию.

    Это означает, что робот директивы учитывает, но поступает все-же по-своему. И он может добавить в индекс страницу, запрещенную в robots.txt, если встретит на нее ссылку.

    Добавление адреса в robots.txt не гарантирует исключения его из индекса поисковой системы Google.

    Индекс Google + некорректный robots.txt = ДУБЛИ

    Практически каждое руководство в сети говорит о том, что закрытие страниц в robots.txt запрещает их индексацию.

    Ранее так и было. Но мы уже знаем, что для Google такая схема сегодня не работает. А что еще хуже — каждый последовавший таким рекомендациям совершает огромную ошибку — закрытые URL попадают в индекс и помечаются как дубли, процент дублированного контента постоянно растет и рано или поздно сайт наказывается фильтром Панда.

    Google предлагает два действительно рабочих варианта для исключения из индекса ресурсов веб-сайта:

    1. закрытие паролем (применяется для файлов вроде.doc, .pdf, .xls и других)
    2. добавление метатега robots с атрибутом noindex в (применяется для веб-страниц):

    Главное, что нужно учесть:

    Если на веб-страницу добавить указанный выше мета-тег, запрещающий индексацию, и дополнительно запретить сканирование этой-же страницы в robots.txt, то робот Google не сможет прочесть мета-тег с запретом и добавит страницу в индекс!
    (поэтому он и пишет в результатах поиска, что описание ограничено в robots.txt)

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

    Примеры robots.txt для WordPress

    Если внимательно ознакомиться с предыдущим разделом, то становится понятно, что сегодня не стоит практиковать чрезмерный запрет адресов в robots.txt , по крайне мере для Google. Управлять индексацией страниц лучше через метатег robots.

    Вот самый банальный и при этом совершенно правильный robots.txt для WordPress:

    User-agent: * Disallow: Host: sitename.com

    Удивлены? Еще бы! Все гениальное просто 🙂 На западных ресурсах, где нету Яндекса, рекомендации по составлению robots.txt для WordPress сводятся к двум первым строчкам, как это показали авторы WordPress SEO by Yoast .

    Правильно настроенный SEO-плагин позаботится о канонических ссылках и метатеге robots со значением noindex, а страницы админки под паролем и не нуждаются в запрете индексации (исключением могут быть только страницы входа и регистрации на сайта — убедитесь, что на них есть meta тег robots со значением noindex). Карту сайта правильнее добавить вручную в вебмастере поисковой системы и заодно проследить, чтобы она была корректно прочитана. Осталось единственное и важное для рунета — указать главное зеркало для Яндекса.

    Еще один вариант, подойдет для менее смелых:

    User-agent: * Disallow: /wp-admin Host: sitename.com Sitemap: http://sitename.com/sitemam.xml

    В первой секции запрещается индексация для всех роботов каталога wp-admin и его содержимого. В последних двух строках указанные зеркало сайта для робота Яндекса и карта сайта.

    Прежде чем изменять свой robots.txt…

    Если приняли решение о смене директив в robots.txt, то сначала позаботьтесь о трех вещах:

    1. Убедитесь, что в корне вашего сайта нету дополнительных файлов или каталогов, содержимое которых стоит скрыть от сканирования (это могут быть личные файлы или медиаресурсы);
    2. Включите канонические ссылки в своем SEO-плагине (это исключит из индекса URL c параметрами запроса вроде http://sitename.com/index.php?s=word )
    3. Настройте вывод метатега robots со значением noindex на страницах, которые хотите скрыть от индексации (для WordPress это архивы по дате, метке, автору и страницы пагинации). Сделать это можно для части страниц в настройках SEO-плагинов (в All In One SEO неполные настройки). Или специальным кодом вывести самостоятельно: /* ========================================================================== * Добавляем свой * ========================================================================== */ function my_meta_noindex () { if (//is_archive() OR // любые страницы архивов - за месяц, за год, по рубрике, по авторам //is_category() OR // архивы рубрик is_author() OR // архивы статей по авторам is_time() OR // архивы статей по времени is_date() OR // архивы статей по любым датам is_day() OR // архивы статей по дням is_month() OR // архивы статей по месяцам is_year() OR // архивы статей по годам is_tag() OR // архивы статей по тегам is_tax() OR // архивы статей для пользовательской таксономии is_post_type_archive() OR // архивы для пользовательского типа записи //is_front_page() OR // статическая главная страница //is_home() OR // главная страница блога с последними записями //is_singular() OR // любые типы записей - одиночные посты, страницы, вложения и т.д. //is_single() OR // любой одиночный пост любого типа постов (кроме вложений и Страниц) //is_page() OR // любая одиночная Страница ("Страницы" в админке) is_attachment() OR // любая страница вложения is_paged() OR // все и любые страницы пагинации is_search() // страницы результатов поиска по сайту) { echo "".""."\n"; } } add_action("wp_head", "my_meta_noindex", 3); /* ========================================================================== */

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

    В двух словах о том, что закрывать в robots.txt

    С настройкой файла роботс и индексацией страниц нужно запомнить два важных момента, которые ставят все на свои места:

    Используйте файл robots.txt, чтобы управлять доступом к файлам и каталогам сервера . Файл robots.txt играет роль электронного знака «Вход запрещен: частная территория»

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

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

    Есть несколько причин, которые заставляют вебмастеров скрывать свои проекты от поисковых роботов. Зачастую к такой процедуре они прибегают в двух случаях:

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

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

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

    Какие есть способы запрета индексации сайта?

    1. Панель инструментов в .
    2. Изменения в файле robots.txt.
    3. Посредством name=“robots”
    4. Написание кода в настройках сервера.

    1. Закрытие индексации через WordPress

    Если сайт создан на базе WordPress, это ваш вариант. Скрыть проект от ботов таким образом проще и быстрее всего:

    1. Перейдите в «Панель управления».
    2. Затем в «Настройки».
    3. А после – в «Чтение».
    4. Отыщите меню «Видимость для поисковиков».
    5. Возле строки «Рекомендовать поисковым роботам не индексировать сайт» поставьте галочку.
    6. Сохраните изменения.


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

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

    2. Посредством файла robots.txt

    Если у вас нет возможности проделать эту операцию в WordPress или у вас стоит другой движок сайта, удалить веб-сайт из поисковиков можно вручную. Это также реализуется несложно. Создайте обычный текстовый документ, разумеется, в формате txt, и назовите его robots.

    Затем скиньте его в корневую папку своего портала, чтобы этот файл мог открываться по такому пути site.ru/robots.txt

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

    Закрыть сайта полностью для всех поисковых систем

    Укажите в robots.txt команду:

    User-agent: * Disallow: /

    Это позволит запретить ботам всех поисковиков обрабатывать и вносить в базу данных всю информацию, находящуюся на вашем веб-ресурсе. Проверить документ robots.txt, как мы уже говорили, можно, введя в адресной строке браузера: Название__вашего_домена.ru/robots.txt . Если вы все сделали правильно, то увидите все, что указано в файле. Но если, перейдя по указанному адресу, вам выдаст ошибку 404, то, скорее всего, вы скинули файл не туда.

    Отдельную папку

    User-agent: * Disallow: /folder/

    Так вы скроете все файлы, находящиеся в указанной папке.

    Только в Яндексе

    User-agent: Yandex Disallow: /

    Чтобы перепроверить, получилось ли у вас удалить свой блог из Яндекса, добавьте его в Яндекс.Вебмастер, после чего зайдите в соответствующий раздел по ссылке https://webmaster.yandex.ru/tools/robotstxt/ . В поле для проверки URL вставьте несколько ссылок на документы ресурса, и нажмите «Проверить». Если они скрыты от ботов, напротив них в результатах будет написано «Запрещено правилом /*?*».

    Только для Google

    User-agent: Googlebot Disallow: /

    Проверить, получилось ли сделать запрет, или нет, можно аналогичным способом, что и для Яндекса, только вам нужно будет посетить панель вебмастера Google Search Console. Если документ закрыт от поисковика, то напротив ссылки будет написано «Заблокировано по строке», и вы увидите ту самую строку, которая дала команду ботам не индексировать его.

    Но с большой вероятностью вы можете увидеть «Разрешено». Здесь два варианта: либо вы что-то сделали неправильно, либо Google продолжает индексировать запрещенные в документе robots страницы. Я уже упоминал об этом выше, что для поисковых машин данный документ несет лишь рекомендационный характер, и окончательное решение по индексированию остается за ними.

    Для других поисковиков

    Все поисковики имеют собственных ботов с уникальными именами, чтобы вебмастера могли прописывать их в robots.txt и задавать для них команды. Представляем вашему вниманию самые распространенные (кроме Яндекса и Google):

    • Поисковик Yahoo. Имя робота – Slurp.
    • Спутник. Имя робота – SputnikBot.
    • Bing. Имя робота – MSNBot.

    Список имен всех ботов вы с легкостью найдете в интернете.

    Скрыть изображения

    Чтобы поисковики не могли индексировать картинки, пропишите такие команды (будут зависеть от формата изображения):

    User-Agent: * Disallow: *.png Disallow: *.jpg Disallow: *.gif

    Закрыть поддомен

    Любой поддомен содержит собственный robots.txt. Как правило, он находится в корневой для поддомена папке. Откройте документ, и непосредственно там укажите:

    User-agent: * Disallow: /

    Если такого текстового документа в папке поддомена нет, создайте его самостоятельно.

    3. С применением тега name=”robots”

    Еще один способ, который поможет скрыть от роботов поисковых систем какой-либо документ или полностью весь сайт – использование мета-тега robots. Данный вариант является одним из самых приоритетных к исполнению для поисковиков. Для этого в любом месте, но обязательно внутри тегов и , нужно прописать код:

    4. В настройках сервера

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

    SetEnvIfNoCase User-Agent "^Googlebot" search_bot SetEnvIfNoCase User-Agent "^Yandex" search_bot SetEnvIfNoCase User-Agent "^Yahoo" search_bot SetEnvIfNoCase User-Agent "^Aport" search_bot SetEnvIfNoCase User-Agent "^msnbot" search_bot SetEnvIfNoCase User-Agent "^spider" search_bot SetEnvIfNoCase User-Agent "^Robot" search_bot SetEnvIfNoCase User-Agent "^php" search_bot SetEnvIfNoCase User-Agent "^Mail" search_bot SetEnvIfNoCase User-Agent "^bot" search_bot SetEnvIfNoCase User-Agent "^igdeSpyder" search_bot SetEnvIfNoCase User-Agent "^Snapbot" search_bot SetEnvIfNoCase User-Agent "^WordPress" search_bot SetEnvIfNoCase User-Agent "^BlogPulseLive" search_bot SetEnvIfNoCase User-Agent "^Parser" search_bot

    5. С помощью HTTP заголовка X-Robots-Tag

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