Запрет индексирования в robots txt. Какие страницы закрывать от индексации и как

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

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

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

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

Второй инструмент — это файл Sitemap.xml, который создает «дорожную разметку» (карту сайта) и значительно упрощает поисковикам навигацию по блогу. (Файл sitemap.xml для поисковиков Google и Яндекс)

Почему надо обязательно создавать файл robots.txt

Допустим, забрел поисковый робот на сайт или блог не важно, на котором по вине администратора или другого лица не был создан файл robots.tx t. Что делает робот в первую очередь? В первую очередь он как раз ищет файл robots.tx t, но так как такого файла нет, робот принимается знакомится с сайтом руководствуясь своими собственными секретными алгоритмами.

Вместо того, чтобы индексировать опубликованный материл, робот гуляет по каталогу wp-admin или wp-includes в поисках что-то похожего на контент. А через некоторое фиксированное время «Центр Управления» дает команду роботу следовать на сайт к Василию Пупкину и робот, так и не добравшись до главной цели своего визита — контента, отправиться гулять дальше по просторам интернета.

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

Из этого всего можно сделать несколько полезных выводов:

Вывод №1. Время, отводящееся поисковой машине для индексации ресурса строго лимитировано.

Вывод №2. Робот наверняка сообщит в своем рапорте «Центру Управления» о сайте в котором нечего индексировать и ЦУ поправит расписание следующего посещения с пометкой — «Посещать реже».

Вывод№3. При многократном повторении такой ситуации ЦУ обязательно примет меры по ниспровержению позиций такого не благонадежного ресурса и задвинет в глубь поиска от греха по-дальше.

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

Создаем правильный robots.txt для WordPress

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

создается с помощью обычного текстового документа имеющего формат .txt в котором прописываются следующий директивы:

Директива — «User-agent:»

Директива «User-agent» служит для указания названия поискового робота, например:

User-agent: Yandex

Все директивы, которые расположены ниже будут относится непосредственно к роботу Яндекса.

User-agent: Googlebot

В этом случаю дальнейшие директивы будут обращены к Гуглу.

Можно написать и так:

Спецсимвол «*» можно перевести как — «Любой текст», т.е таким спецсимволом можно заменить название всех остальных поисковых роботов, чтобы не прописывать для каждого отдельные директивы в силу их незначительности среди двух гигантов Яндекс и Google. Последние в свою очередь игнорируют спецсимвол «*» и увидя свое «имя» в файле robots.txt и станут слепо следовать директивам, назначенным для этого имени.

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

  1. Alexa — ia_archiver;
  2. AltaVista — Scooter;
  3. AOL — Slurp;
  4. Aport — Aport;
  5. Ask — Teoma;
  6. Bing — bingbot;
  7. Live — MSNBot;
  8. MSN — MSNBot;
  9. Lycos — Lycos;
  10. Nigma — Nigma.ru;
  11. Yahoo! — Slurp (или Yahoo! Slurp);
  12. Вебальта — WebAlta (WebAlta Crawler/2.0);
  13. Мэйл.ру — Mail.Ru;
  14. Рамблер — StackRambler.

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

Для всех перечисленных роботов можно задавать отдельные директивы.

Директива — «Disallow:»

Директива «Disallow:» запрещает роботу индексировать указанную часть сайта или весь сайт целиком, смотря какое значение содержит данная директива. Например:

  1. User-agent: Yandex
  2. Disallow: /

Директива «Disallow:» содержит спецсимвол «/» , который является запрещающим знаком, а так как после него ни чего не указано, робот понимает это, как команду запрещающую индексацию всего сайта в целом.

Если после спецсимвола «/» прописать название какого-нибудь каталога, например:

  1. User-agent: Yandex
  2. Disallow: /wp-admin

Для робота это будет означать запрет индексации всего, что находиться в каталоге wp-admin. Не трудно догадаться, что таким способом можно блокировать путь робота к каталогам или отдельным файлам, а также пути в URL адресе. Например, этот URL будет блокирован:

  1. сайт/wp-admin/post.php

Но как же быть если надо разрешить роботу зайти в определенный каталог и уже потом запретить ему дальнейшее продвижение по некоторым направлениям? Делается это просто:

  1. User-agent: Yandex
  2. Disallow: /wp-admin
  3. Disallow: /wp-content/plugins

Как Вы уже догадались, прописывается путь до каталога, который надо блокировать.

Также можно запретить индексацию по символам таких, как «?», встречающимся в URL ведущем на определенные страницы:

  1. User-agent: Yandex
  2. Disallow: /wp-admin
  3. Disallow: /wp-content/plugins
  4. Disallow: /*?*

Давайте разберемся в последней директиве, что там за знаки такие. Как я уже писал выше, спецсимвол «*» обозначает любой текст — значит запрещаются любые URL, которые включают в себя символ «?», причем этот символ должен находиться между любыми другими символами. Пример:

  1. сайт/post.php?post=618

Если в некоторых «нежелательных» URL символ «?» находиться в конце, то прописывать надо так:

  1. User-agent: Yandex
  2. Disallow: /wp-admin
  3. Disallow: /wp-content/plugins
  4. Disallow: /*?*
  5. Disallow: /*?

Надеюсь, объяснил понятно.

Теперь наверное у многих может возникнуть вопрос — «А зачем запрещать роботу индексировать URL, ведь это и есть контент?»

Дело в том, что один и тот же контент очень часто бывает доступен по разным URL и это приводит к его дублированию в рамках одного сайта. Дубли бывают полными или частичными (под частичными дублями подразумеваются анонсы записей) Поисковые системы негативно относятся к таким проявления и если дубликатов много, то в худшем случаи сайт может загреметь под фильтр.

  1. User-agent: Yandex
  2. Disallow: /page$

В данном примере спец символ «$» указал на запрет индексации URL содержащего в себе последовательность букв «page» но не запретил индексировать page.php,что позволяет белее тонко производить настройку файла robots.txt.

Директива — «Allow:»

Если директива «Disallow:» являются запрещающей, то «Allow:» — разрешающей. К ней можно прописывать те же значения как и к «Disallow:»

  1. User-agent: Yandex
  2. Allow: /wp-content

Директива — «Host:»

Директива «Host:» предназначена только для Яндекса и указывает ему на главное зеркало сайта , которое и будет индексироваться роботом исключая все остальные зеркала, что также предохраняет от дублирования контента. Еще необходимо Прописывают эту директиву так:

  1. User-agent: Yandex
  2. Disallow: /wp-admin
  3. Disallow: /wp-content/plugins
  4. Disallow: /*?*
  5. Disallow: /*?
  6. Host: сайт.ru
  1. User-agent: Yandex
  2. Disallow: /wp-admin
  3. Disallow: /wp-content/plugins
  4. Disallow: /*?*
  5. Disallow: /*?
  6. Host: www.сайт.ru

Без http:// и без https://.

Директива — «Sitemap:»

Директива «Sitemap:» указывает путь ко второму незаменимому инструменту, ускоряющему индексацию — это файлы sitemap.xml и файл sitemap.xml.gz создающие карту сайта для поисковиков. Пример:

  1. User-agent: Yandex
  2. Disallow: /wp-admin
  3. Disallow: /wp-content/plugins
  4. Disallow: /*?*
  5. Disallow: /*?
  6. Host: сайт.ru
  7. Sitemap: http://сайт.ru/sitemap.xml

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

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

Проверить файл robots.txt можно можно по следующим адресам:


1. Вписываете URL блога без http:// и без https://

2. Нажимаетекнопку — «Загрузить robots.txt с сайта».

3. После того как файл загрузиться нажимаете кнопку — «Проверить».

Google Инструменты для вебмастеров — Заблокированные URL


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

Robots.txt - это текстовый файл, который содержит параметры индексирования сайта для роботов поисковых систем.

Яндекс поддерживает следующие директивы:

Директива Что делает
User-agent *
Disallow
Sitemap
Clean-param
Allow
Crawl-delay
Директива Что делает
User-agent * Указывает на робота, для которого действуют перечисленные в robots.txt правила.
Disallow Запрещает индексирование разделов или отдельных страниц сайта.
Sitemap Указывает путь к файлу Sitemap , который размещен на сайте.
Clean-param Указывает роботу, что URL страницы содержит параметры (например, UTM-метки), которые не нужно учитывать при индексировании.
Allow Разрешает индексирование разделов или отдельных страниц сайта.
Crawl-delay Задает роботу минимальный период времени (в секундах) между окончанием загрузки одной страницы и началом загрузки следующей.

* Обязательная директива.

Наиболее часто вам могут понадобиться директивы Disallow, Sitemap и Clean-param. Например:

User-agent: * #указываем, для каких роботов установлены директивы\nDisallow: /bin/ # запрещает ссылки из \"Корзины с товарами\".\nDisallow: /search/ # запрещает ссылки страниц встроенного на сайте поиска\nDisallow: /admin/ # запрещает ссылки из панели администратора\nSitemap: http://example.com/sitemap # указываем роботу на файл sitemap для сайта\nClean-param: ref /some_dir/get_book.pl

Роботы других поисковых систем и сервисов могут иначе интерпретировать эти директивы.

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

Использование кириллицы

Использование кириллицы запрещено в файле robots.txt и HTTP-заголовках сервера.

Для указания имен доменов используйте Punycode . Адреса страниц указывайте в кодировке, соответствующей кодировке текущей структуры сайта.

Пример файла robots.txt :

#Неверно:\nUser-agent: Yandex\nDisallow: /корзина\n\n#Верно:\nUser-agent: Yandex\nDisallow: /%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B0

Как создать robots.txt

Вопросы и ответы

В Яндекс.Вебмастере на странице «Диагностика сайта» возникает ошибка «Сервер отвечает редиректом на запрос /robots.txt»

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

Проверить ответ сервера и доступность файла robots.txt для робота можно с помощью инструмента Проверка ответа сервера .

Если ваш robots.txt выполняет перенаправление на другой файл robots.txt (например, при переезде сайта), добавьте сайт, который является целью перенаправления, в Яндекс.Вебмастер и подтвердите права на управление сайтом.

User-agent: *\nAllow:

Disallow: *

Disallow: /

Яндекс.Вебмастере


Команда Поиска

Как запрещающий сигнал в robots.txt.

Часто индексирующий робот не может получить доступ к сайтам из-за установленного по ошибке в robots.txt запрета на посещение всех страниц. Часть этих ошибок связана с использованием пустой директивы Allow:

User-agent: *\nAllow:

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

Поэтому мы решили изменить обработку роботом такой директивы - сейчас она игнорируется при обнаружении в robots.txt. Если на вашем сайте намеренно используются пустое правило Allow в robots.txt, то для того, чтобы робот корректно учитывал запрет, правило нужно изменить на директиву Disallow:

Disallow: *

Disallow: /

Проверить, что разрешено, а что запрещено в robots.txt можно в Яндекс.Вебмастере . Рекомендуем обратить особое внимание на пустые значения для Allow - если нужно запретить индексирование, то их быть не должно.

Теперь ограничения в robots.txt работают еще надёжнее
Команда Поиска

","contentType":"text/html"},"proposedBody":{"source":"

Как запрещающий сигнал в robots.txt.

Часто индексирующий робот не может получить доступ к сайтам из-за установленного по ошибке в robots.txt запрета на посещение всех страниц. Часть этих ошибок связана с использованием пустой директивы Allow:

User-agent: *\nAllow:

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

Поэтому мы решили изменить обработку роботом такой директивы - сейчас она игнорируется при обнаружении в robots.txt. Если на вашем сайте намеренно используются пустое правило Allow в robots.txt, то для того, чтобы робот корректно учитывал запрет, правило нужно изменить на директиву Disallow:

Disallow: *

Disallow: /

Проверить, что разрешено, а что запрещено в robots.txt можно в Яндекс.Вебмастере . Рекомендуем обратить особое внимание на пустые значения для Allow - если нужно запретить индексирование, то их быть не должно.

Теперь ограничения в robots.txt работают еще надёжнее
Команда Поиска

Как запрещающий сигнал в robots.txt.

Часто индексирующий робот не может получить доступ к сайтам из-за установленного по ошибке в robots.txt запрета на посещение всех страниц. Часть этих ошибок связана с использованием пустой директивы Allow:

User-agent: *\nAllow:

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

Поэтому мы решили изменить обработку роботом такой директивы - сейчас она игнорируется при обнаружении в robots.txt. Если на вашем сайте намеренно используются пустое правило Allow в robots.txt, то для того, чтобы робот корректно учитывал запрет, правило нужно изменить на директиву Disallow:

Disallow: *

Disallow: /

Проверить, что разрешено, а что запрещено в robots.txt можно в Яндекс.Вебмастере . Рекомендуем обратить особое внимание на пустые значения для Allow - если нужно запретить индексирование, то их быть не должно.

Теперь ограничения в robots.txt работают еще надёжнее
Команда Поиска

","contentType":"text/html"},"authorId":"30364427","slug":"izmeneniya-v-obrabotke-robots-txt","canEdit":false,"canComment":false,"isBanned":false,"canPublish":false,"viewType":"minor","isDraft":false,"isOnModeration":false,"isSubscriber":false,"commentsCount":45,"modificationDate":"Fri Jun 10 2016 14:41:00 GMT+0000 (Coordinated Universal Time)","isAutoPreview":true,"showPreview":true,"tags":[{"displayName":"Яндекс.Вебмастер","slug":"yandeks-vebmaster","url":"/blog??tag=yandeks-vebmaster"},{"displayName":"Индексирование","slug":"indeksirovanie","url":"/blog??tag=indeksirovanie"},{"displayName":"robots.txt","slug":"robots-txt","url":"/blog??tag=robots-txt"}],"isModerator":false,"commentsEnabled":true,"url":"/blog/575aa00fef202d16005fe180","urlTemplate":"/blog/%slug%","fullBlogUrl":"https://webmaster.yandex.ru/blog","addCommentUrl":"/blog/createComment/webmaster/575aa00fef202d16005fe180","updateCommentUrl":"/blog/updateComment/webmaster/575aa00fef202d16005fe180","addCommentWithCaptcha":"/blog/createWithCaptcha/webmaster/575aa00fef202d16005fe180","changeCaptchaUrl":"/blog/api/captcha/new","putImageUrl":"/blog/image/put","urlBlog":"/blog","urlEditPost":"/blog/575aa00fef202d16005fe180/edit","urlSlug":"/blog/post/generateSlug","urlPublishPost":"/blog/575aa00fef202d16005fe180/publish","urlUnpublishPost":"/blog/575aa00fef202d16005fe180/unpublish","urlRemovePost":"/blog/575aa00fef202d16005fe180/removePost","urlDraft":"/blog/575aa00fef202d16005fe180/draft","urlDraftTemplate":"/blog/%slug%/draft","urlRemoveDraft":"/blog/575aa00fef202d16005fe180/removeDraft","urlTagSuggest":"/blog/api/suggest/webmaster","urlAfterDelete":"/blog","isAuthor":false,"subscribeUrl":"/blog/api/subscribe/575aa00fef202d16005fe180","unsubscribeUrl":"/blog/api/unsubscribe/575aa00fef202d16005fe180","urlEditPostPage":"/blog/575aa00fef202d16005fe180/edit","urlForTranslate":"/blog/post/translate","urlRelateIssue":"/blog/post/updateIssue","urlUpdateTranslate":"/blog/post/updateTranslate","urlLoadTranslate":"/blog/post/loadTranslate","urlTranslationStatus":"/blog/575aa00fef202d16005fe180/translationInfo","urlRelatedArticles":"/blog/api/relatedArticles/webmaster/575aa00fef202d16005fe180","author":{"id":"30364427","uid":{"value":"30364427","lite":false,"hosted":false},"aliases":{},"login":"webmaster","display_name":{"name":"webmaster","avatar":{"default":"0/0-0","empty":true}},"address":"[email protected]","defaultAvatar":"0/0-0","imageSrc":"https://avatars.mds.yandex.net/get-yapic/0/0-0/islands-middle","isYandexStaff":false},"originalModificationDate":"2016-06-10T11:41:55.364Z","socialImage":{"orig":{"fullPath":"https://avatars.mds.yandex.net/get-yablogs/51778/file_1461153249801/orig"}}}}}">

Изменения в обработке robots.txt

Поисковые роботы Яндекса перестают учитывать как запрещающий сигнал в robots.txt.

Часто индексирующий робот не может получить доступ к сайтам из-за установленного по ошибке в robots.txt запрета на посещение всех страниц. Часть этих ошибок связана с использованием пустой директивы Allow:

User-agent: * Allow:

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

Поэтому мы решили изменить обработку роботом такой директивы - сейчас она игнорируется при обнаружении в robots.txt. Если на вашем сайте намеренно используются пустое правило Allow в robots.txt, то для того, чтобы робот корректно учитывал запрет, правило нужно изменить на директиву Disallow:

Disallow: *

Disallow: /

Проверить, что разрешено, а что запрещено в robots.txt можно в . Рекомендуем обратить особое внимание на пустые значения для Allow - если нужно запретить индексирование, то их быть не должно.

Теперь ограничения в robots.txt работают еще надёжнее
Команда Поиска

От автора: У вас на сайте есть страницы, которые вы бы не хотели показывать поисковым системам? Из этой статье вы узнаете подробно о том, как запретить индексацию страницы в robots.txt, правильно ли это и как вообще правильно закрывать доступ к страницам.

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

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

User-agent: * Disallow: /kontakty/ Disallow: /about/ Disallow: /uslugi/

Другой вариант

Отлично, но это не единственный способ закрыть роботу доступ к определенным страничкам. Второй – это разместить в html-коде специальный мета-тег. Естественно, разместить только в тех записях, которые нужно закрыть. Выглядит он так:

< meta name = "robots" content = "noindex,nofollow" >

Тег должен быть помещен в контейнер head в html-документе для корректной работы. Как видите, у него два параметры. Name указывается как робот и определяет, что эти указания предназначены для поисковых роботов.

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

Таким образом, если вы хотите, чтобы странице вообще не индексировалась, укажите значения noindex, nofollow, то есть не индексировать текст и запретить переход по ссылкам, если они имеются. Есть такое правило, что если текста на странице нет, то она проиндексирована не будет. То есть если весь текст закрыт в noindex, то индексироваться нечему, поэтому ничего и не будет попадать в индекс.

Кроме этого есть такие значения:

noindex, follow – запрет на индексацию текста, но разрешение на переход по ссылкам;

index, nofollow – можно использовать, когда контент должен быть взят в индекс, но все ссылки в нем должны быть закрыты.

index, follow – значение по умолчанию. Все разрешается.

Robots.txt для сайта - это индексный текстовый файл в кодировке UTF-8.

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

Если кодировка файла отличается от UTF-8, то поисковые роботы могут неправильно воспринимать находящуюся в нем информацию.

Файл действителен для протоколов http, https, ftp, а также имеет «силу» только в пределах хоста/протокола/номера порта, на котором размещен.

Где находится robots.txt на сайте?

У файла robots.txt может быть только одно расположение - корневой каталог на хостинге. Выглядит это примерно вот так: http://vash-site.xyz/robots.txt

Директивы файла robots txt для сайта

Обязательными составляющими файла robots.txt для сайта являются правило Disallow и инструкция User-agent. Есть и второстепенные правила.

Правило Disallow

Disallow - это правило, с помощью которого поисковому роботу сообщается информация о том, какие страницы сканировать нет смысла. И сразу же несколько конкретных примеров применения этого правила:

Пример 1 - разрешено индексировать весь сайт:

Пример 2 - полностью запретить индексацию сайта:

В таком случае будет бесполезно. Применение этого примера актуально в том случае, если сайт «закрыт» на доработку (например, неправильно функционирует). В этом случае сайту в поисковой выдаче не место, поэтому его нужно через файл robots txt закрыть от индексации. Разумеется, после того, как сайт будет доработан, запрет на индексирование надо снять, но об этом забывают.

Пример 6 - как в robots txt закрыть от индексации файлы конкретного расширения (в данном случае - .gif):

Звездочка перед.gif$ сообщает, что имя файла может быть любым, а знак $ сообщает о конце строки. Т.е. такая «маска» запрещает сканирование вообще всех GIF-файлов.

Правило Allow в robots txt

Правило Allow все делает с точностью до наоборот - разрешает индексирование файла/папки/страницы.

И сразу же конкретный пример:

Мы с вами уже знаем, что с помощью директивы Disallow: / мы можем закрыть сайт от индексации robots txt. В то же время у нас есть правило Allow: /catalog, которое разрешает сканирование папки /catalog. Поэтому комбинацию этих двух правил поисковые роботы будут воспринимать как «запрещено сканировать сайт, за исключением папки /catalog»

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

Рассмотрим 2 ситуации с двумя правилами, которые противоречат друг другу - одно правило запрещает индексировать папки /content, а другое - разрешает.

В данном случае будет приоритетнее директива Allow, т.к. оно находится ниже по списку:

А вот здесь приоритетным является директива Disallow по тем же причинам (ниже по списку):

User-agent в robots txt

User-agent — правило, являющееся «обращением» к поисковому роботу, мол, «список рекомендаций специально для вас» (к слову, списков в robots.txt может быть несколько - для разных поисковых роботов от Google и Яндекс).

Например, в данном случае мы говорим «Эй, Googlebot, иди сюда, тут для тебя специально подготовленный список рекомендаций», а он такой «ОК, специально для меня - значит специально для меня» и другие списки сканировать не будет.

Правильный robots txt для Google (Googlebot)

Примерно та же история и с поисковым ботом Яндекса. Забегая вперед, список рекомендаций для Яндекса почти в 100% случаев немного отличается от списка для других поисковых роботов (чем - расскажем чуть позже). Но суть та же: «Эй, Яндекс, для тебя отдельный список» - «ОК, сейчас изучим его».

Т.е. если в одном и том же robots.txt есть 3 списка с User-agent: *, User-agent: Googlebot и User-agent: Yandex, это значит, первый является «одним для всех», за исключением Googlebot и Яндекс, т.к. для них есть «личные» списки.

Sitemap

Правило Sitemap - расположение файла с XML-картой сайта, в которой содержатся адреса всех страниц, являющихся обязательными к сканированию. Как правило, указывается адрес вида http://site.ua/sitemap.xml.

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

Правило Sitemap должно быть вписано в Robots.txt следующим образом:

Директива Host

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

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

Адрес основного зеркала обязательно должно быть указано следующим образом:

Для сайтов, работающих по http - Host: site.ua или Host: http://site.ua (т.е. http:// пишется по желанию)

Для сайтов, работающих по https - Host: https://site.ua (т.е. https:// прописывается в обязательном порядке)

Пример директивы host в robots txt для сайта на протоколе HTTPS:

Crawl delay

В отличие от предыдущих, параметр Crawl-delay уже не является обязательным. Основная его задача - подсказать поисковому роботу, в течение скольких секунд будут грузиться страницы. Обычно применяется в том случае, если Вы используете слабые сервера. Актуален только для Яндекса.

Clean param

С помощью директивы Clean-param можно бороться с get-параметрами, чтобы не происходило дублирование контента, т.к. один и тот же контент бывает доступен по разным динамическим ссылкам (это те, которые со знаками вопроса). Динамические ссылки могут генерироваться сайтом в том случае, когда используются различные сортировки, применяются идентификаторы сессий и т.д.

Например, один и тот же контент может быть доступен по трем адресам:

www.site.com/catalog/get_phone.ua?ref=page_1&phone_id=1

www.site.com/catalog/get_phone.ua?ref=page_2&phone_id=1

www.site.com/catalog/get_phone.ua?ref=page_3&phone_id=1

В таком случае директива Clean-param оформляется вот так:

Т.е. после двоеточия прописывается атрибут ref, указывающий на источник ссылки, и только потом указывается ее «хвост» (в данном случае - /catalog/get_phone.ua).

Самые частые вопросы

Как в robots.txt запретить индексацию?

Для этих целей придумано правило Disallow: т.е. копируем ссылку на документ/файл, который нужно закрыть от индексации, вставляем ее после двоеточия:

Disallow: http://your-site.xyz/privance.html

Disallow: http://your-site.xyz/foord.doc

Disallow: http://your-site.xyz/barcode.jpg

А затем удаляете адрес домена (в данном случае удалить надо вот эту часть - http://your-site.xyz). После удаления у нас останется ровно то, что и должно остаться:

Disallow: /privance.html

Disallow: /foord.doc

Disallow: /barcode.jpg

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

Disallow: /*.html

Disallow: /*.doc

Disallow: /*.jpg

Как в robots.txt указать главное зеркало?

Для этих целей придумана директива Host. Т.е. если адреса http://your-site.xyz и http://yoursite.com являются «зеркалами» одного и того же сайта, то одно из них необходимо указать в директиве Host. Пусть основным зеркалом будет http://your-site.xyz. В этом случае правильными вариантами будут следующие:

Если сайт работает по https-протоколу, то нужно делать только так:

User-agent: Yandex

Disallow: /privance.html

Disallow: /foord.doc

Disallow: /barcode.jpg

Host: https://your-site.xyz

Если сайт работает по http-протоколу, то оба приведенных ниже варианта будут верными:

User-agent: Yandex

Disallow: /privance.html

Disallow: /foord.doc

Disallow: /barcode.jpg

Host: http://your-site.xyz

User-agent: Yandex

Disallow: /privance.html

Disallow: /foord.doc

Disallow: /barcode.jpg

Host: your-site.xyz

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

Простейший пример правильного robots.txt

В таком виде файл robots.txt можно разместить практически на любом сайте (с мельчайшими корректировками).

Давайте теперь разберем, что тут есть.

  1. Здесь 2 списка правил - один «персонально» для Яндекса, другой - для всех остальных поисковых роботов.
  2. Правило Disallow: пустое, а значит никаких запретов на сканирование нет.
  3. В списке для Яндекса присутствует директива Host с указанием основного зеркала, а также, ссылка на карту сайта.

НО… Это НЕ значит, что нужно оформлять robots.txt именно так. Правила должны быть прописаны строго индивидуально для каждого сайта. Например, нет смысла индексировать «технические» страницы (страницы ввода логина-пароля, либо тестовые страницы, на которых отрабатывается новый дизайн сайта, и т.д.). Правила, кстати, зависят еще и от используемой CMS.

Закрытый от индексации сайт - как выглядит robots.txt?

Даем сразу же готовый код, который позволит запретить индексацию сайта независимо от CMS:

Как указать главное зеркало для сайта на https robots.txt?

Очень просто:

Host: https://your-site.xyz

ВАЖНО!!! Для https-сайтов протокол должен указываться строго обязательно!

Наиболее частые ошибки в robots.txt

Специально для Вас мы приготовили подборку самых распространенных ошибок, допускаемых в robots.txt. Почти все эти ошибки объединяет одно - они допускаются по невнимательности.

1. Перепутанные инструкции:

Правильный вариант:

2. В один Disallow вставляется куча папок:

В такой записи робот может запутаться. Какую папку нельзя индексировать? Первую? Последнюю? Или все? Или как? Или что? Одна папка = одно правило Disallow и никак иначе.

3. Название файла допускается только одно - robots.txt, причем все буквы маленькие. Имена Robots.txt, ROBOTS.TXT и т.п. не допускаются.

4. Правило User-agent запрещено оставлять пустым. Либо указываем имя поискового робота (например, для Яндекса), либо ставим звездочку (для всех остальных).

5. Мусор в файле (лишние слэши, звездочки и т.д.).

6. Добавление в файл полных адресов скрываемых страниц, причем иногда даже без правила Disallow.

Неправильно:

http://mega-site.academy/serrot.html

Тоже неправильно:

Disallow: http://mega-site.academy/serrot.html

Правильно:

Disallow: /serrot.html

Онлайн-проверка файла robots.txt

Существует несколько способов проверки файла robots.txt на соответствие общепринятому в интернете стандарту.

Способ 1. Зарегистрироваться в панелях веб-мастера Яндекс и Google. Единственный минус - придется покопаться, чтоб разобраться с функционалом. Далее вносятся рекомендованные изменения и готовый файл закачивается на хостинг.

Способ 2. Воспользоваться онлайн-сервисами:

Https://services.sl-team.ru/other/robots/

Https://technicalseo.com/seo-tools/robots-txt/

Http://tools.seochat.com/tools/robots-txt-validator/

Итак, robots.txt сформирован. Осталось только проверить его на ошибки. Лучше всего использовать для этого инструменты, предлагаемые самими поисковыми системами.

Google Вебмастерс (Search Console Google): заходим в аккаунт, если в нем сайт не подтвержден - подтверждаем, далее переходим на Сканирование -> Инструмент проверки файла robots.txt.

Здесь можно:

  • моментально обнаружить все ошибки и потенциально возможные проблемы,
  • сразу же «на месте» внести поправки и проверить на ошибки еще раз (чтоб не перезагружать файл на сайт по 20 раз)
  • проверить правильность запретов и разрешений индексирования страниц.

Является аналогом предыдущего, за исключением:

  • авторизация не обязательна;
  • подтверждение прав на сайт не обязательно;
  • доступна массовая проверка страниц на доступность;
  • можно убедиться, что все правила правильно восприняты Яндексом.

Готовые решения для самых популярных CMS

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

Disallow: /cgi-bin # классика жанра

Disallow: /? # любые параметры запроса на главной

Disallow: /wp- # все файлы WP: /wp-json/, /wp-includes, /wp-content/plugins

Disallow: *?s= # поиск

Disallow: *&s= # поиск

Disallow: /search # поиск

Disallow: *?attachment_id= # страница вложения. Вообще-то на ней редирект...

Disallow: */feed # все фиды

Disallow: */rss # rss фид

Disallow: */embed # все встраивания

Disallow: */page/ # все виды пагинации

Allow: */uploads # открываем uploads

Allow: /*/*.js # внутри /wp- (/*/ - для приоритета)

Allow: /*/*.css # внутри /wp- (/*/ - для приоритета)

Allow: /wp-*.png # картинки в плагинах, cache папке и т.д.

Allow: /wp-*.jpg # картинки в плагинах, cache папке и т.д.

Allow: /wp-*.jpeg # картинки в плагинах, cache папке и т.д.

Allow: /wp-*.gif # картинки в плагинах, cache папке и т.д.

Allow: /wp-*.svg # картинки в плагинах, cache папке и т.д.

Allow: /wp-*.pdf # файлы в плагинах, cache папке и т.д.

#Disallow: /wp/ # когда WP установлен в подкаталог wp

Sitemap: http://site.ru/sitemap2.xml # еще один файл

#Sitemap: http://site.ru/sitemap.xml.gz # сжатая версия (.gz)

Host: www.site.ru # для Яндекса и Mail.RU. (межсекционная)

# Версия кода: 1.0

# Не забудьте поменять `site.ru` на ваш сайт.

Давайте разберем код файла robots txt для WordPress CMS:

Здесь мы указываем, что все правила актуальны для всех поисковых роботов (за исключением тех, для кого составлены «персональные» списки). Если список составляется для какого-то конкретного робота, то * меняется на имя робота:

User-agent: Yandex

User-agent: Googlebot

Allow: */uploads

Здесь мы осознанно даем добро на индексирование ссылок, в которых содержится /uploads. В данном случае это правило является обязательным, т.к. в движке WordPress есть директория /wp-content/uploads (в которой вполне могут содержаться картинки, либо другой «открытый» контент), индексирование которой запрещено правилом Disallow: /wp-. Поэтому с помощью Allow: */uploads мы делаем исключение из правила Disallow: /wp-.

В остальном просто идут запреты на индексирование:

Disallow: /cgi-bin - запрет на индексирование скриптов

Disallow: /feed - запрет на сканирование RSS-фида

Disallow: /trackback - запрет сканирования уведомлений

Disallow: ?s= или Disallow: *?s= - запрет на индексирование страниц внутреннего поиска сайта

Disallow: */page/ - запрет индексирования всех видов пагинации

Правило Sitemap: http://site.ru/sitemap.xml указывает Яндекс-роботу путь к файлу с xml-картой. Путь должен быть прописан полностью. Если таких файлов несколько - прописываем несколько Sitemap-правил (1 файл = 1 правило).

В строке Host: site.ru мы специально для Яндекса прописали основное зеркало сайта. Оно указывается для того, чтоб остальные зеркала индексировались одинаково. Пустая строка перед Host: является обязательной.

Где находится robots txt WordPress вы все наверное знаете - так как и в другие CMS, данный файл должен находится в корневом каталоге сайта.

Файл robots.txt для Joomla

Joomla — почти самый популярный движок у вебмастеров, т.к. не смотря на широчайшие возможности и множества готовых решений, он поставляется бесплатно. Однако, штатный robots.txt всегда имеет смысл подправить, т.к. для индексирования открыто слишком много «мусора», но картинки закрыты (это плохо).

Вот так выглядит правильный robots.txt для Joomla:

Disallow: /administrator/

Disallow: /cache/

Disallow: /components/

Disallow: /images/

Disallow: /includes/

Disallow: /installation/

Disallow: /language/

Disallow: /layouts/

Disallow: /libraries/

Disallow: /logs/

Disallow: /media/

Disallow: /modules/

Disallow: /plugins/

Disallow: /templates/

robots.txt Wix

Платформа Wix автоматически генерирует файлы robots.txt персонально для каждого сайта Wix. Т.е. к Вашему домену добавляете /robots.txt (например: www.domain.com/robots.txt) и можете спокойно изучить содержимое файла robots.txt, находящегося на Вашем сайте.

Отредактировать robots.txt нельзя. Однако с помощью noindex можно закрыть какие-то конкретные страницы от индексирования.

robots.txt для Opencart

Стандартный файл robots.txt для OpenCart:

Disallow: /*route=account/

Disallow: /*route=affiliate/

Disallow: /*route=checkout/

Disallow: /admin

Disallow: /catalog

Disallow: /download

Disallow: /export

Disallow: /system

Disallow: /*?sort=

Disallow: /*&sort=

Disallow: /*?order=

Disallow: /*&order=

Disallow: /*?limit=

Disallow: /*&limit=

Disallow: /*?filter_name=

Disallow: /*&filter_name=

Disallow: /*?filter_sub_category=

Disallow: /*&filter_sub_category=

Disallow: /*?filter_description=

Disallow: /*&filter_description=

Disallow: /*?tracking=

Disallow: /*&tracking=

Disallow: /*?page=

Disallow: /*&page=

Disallow: /wishlist

Disallow: /login

User-agent: Yandex

Disallow: /*route=account/

Disallow: /*route=affiliate/

Disallow: /*route=checkout/

Disallow: /*route=product/search

Disallow: /index.php?route=product/product*&manufacturer_id=

Disallow: /admin

Disallow: /catalog

Disallow: /download

Disallow: /export

Disallow: /system

Disallow: /*?sort=

Disallow: /*&sort=

Disallow: /*?order=

Disallow: /*&order=

Disallow: /*?limit=

Disallow: /*&limit=

Disallow: /*?tracking=

Disallow: /*&tracking=

Disallow: /*route=product/search

Disallow: /*?page=

Disallow: /*&page=

Clean-param: tracking

Clean-param: filter_name

Clean-param: filter_sub_category

Clean-param: filter_description

Disallow: /wishlist

Disallow: /login

Disallow: /index.php?route=product/manufacturer

Disallow: /index.php?route=product/compare

Disallow: /index.php?route=product/category

Host: Vash_domen

Sitemap: http://Vash_domen/sitemap.xml

robots.txt для Битрикс (Bitrix)

1. Папки /bitrix и /cgi-bin должны быть закрыты, т.к. это чисто технический «хлам», который незачем светить в поисковой выдаче.

Disallow: /bitrix

Disallow: /cgi-bin

2. Папка /search тоже не представляет интереса ни для пользователей, ни для поисковых систем. Да и образование дублей никому не нужно. Поэтому тоже ее закрываем.

Disallow: /search

Disallow: /auth/

Disallow: /auth.php

4. Материалы для печати (например, счета на оплату) тоже нет смысла светить в поисковой выдаче. Закрываем.

Disallow: /*?print=

Disallow: /*&print=

5. Один из жирных плюсов «Битрикса» в том, что он фиксирует всю историю сайта - кто когда залогинился, кто когда сменил пароль, и прочую конфиденциальную информацию, утечка которой не допустима. Поэтому закрываем:

Disallow: /*register=yes

Disallow: /*forgot_password=yes

Disallow: /*change_password=yes

Disallow: /*login=yes

Disallow: /*logout=yes

Disallow: /*auth=yes

6. Back-адреса тоже нет смысла индексировать. Эти адреса могут образовываться, например, при просмотре фотоальбома, когда Вы сначала листаете его «вперед», а потом - «назад». В эти моменты в адресной строке вполне может появиться что-то типа матерного ругательства: ?back_url_ =%2Fbitrix%2F%2F. Ценность таких адресов равна нулю, поэтому их тоже закрываем от индексирования. Ну а в качестве бонуса - избавляемся от потенциальных «дублей» в поисковой выдаче.

Disallow: /*BACKURL=*

Disallow: /*back_url=*

Disallow: /*BACK_URL=*

Disallow: /*back_url_admin=*

7. Папку /upload необходимо закрывать строго по обстоятельствам. Если там хранятся фотографии и видеоматериалы, размещенные на страницах, то ее скрывать не нужно, чтоб не срезать дополнительный трафик. Ну а если что-то конфиденциальное - однозначно закрываем:

Disallow: /upload

Готовый файл robots.txt для Битрикс:

Allow: /search/map.php

Allow: /bitrix/templates/

Disallow: */index.php

Disallow: /*action=

Disallow: /*print=

Disallow: /*/gallery/*order=

Disallow: /*/search/

Disallow: /*/slide_show/

Disallow: /*?utm_source=

Disallow: /*ADD_TO_COMPARE_LIST

Disallow: /*arrFilter=

Disallow: /*auth=

Disallow: /*back_url_admin=

Disallow: /*BACK_URL=

Disallow: /*back_url=

Disallow: /*backurl=

Disallow: /*bitrix_*=

Disallow: /*bitrix_include_areas=

Disallow: /*building_directory=

Disallow: /*bxajaxid=

Disallow: /*change_password=

Disallow: /*clear_cache_session=

Disallow: /*clear_cache=

Disallow: /*count=

Disallow: /*COURSE_ID=

Disallow: /*forgot_password=

Disallow: /*index.php$

Disallow: /*login=

Disallow: /*logout=

Disallow: /*modern-repair/$

Disallow: /*MUL_MODE=

Disallow: /*ORDER_BY

Disallow: /*PAGE_NAME=

Disallow: /*PAGE_NAME=detail_slide_show

Disallow: /*PAGE_NAME=search

Disallow: /*PAGE_NAME=user_post

Disallow: /*PAGEN_

Disallow: /*print_course=

Disallow: /*print=

Disallow: /*register=

Disallow: /*register=yes

Disallow: /*set_filter=

Disallow: /*show_all=

Disallow: /*show_include_exec_time=

Disallow: /*show_page_exec_time=

Disallow: /*show_sql_stat=

Disallow: /*SHOWALL_

Disallow: /*sort=

Disallow: /*sphrase_id=

Disallow: /*tags=

Disallow: /access.log

Disallow: /admin

Disallow: /auth.php

Disallow: /bitrix

Disallow: /bitrix/

Disallow: /cgi-bin

Disallow: /club/$

Disallow: /club/forum/search/

Disallow: /club/gallery/tags/

Disallow: /club/group/search/

Disallow: /club/log/

Disallow: /club/messages/

Disallow: /club/search/

Disallow: /communication/blog/search.php

Disallow: /communication/forum/search/

Disallow: /communication/forum/user/

Disallow: /content/board/my/

Disallow: /content/links/my/

Disallow: /error

Disallow: /e-store/affiliates/

Disallow: /e-store/paid/detail.php

Disallow: /examples/download/download_private/

Disallow: /examples/my-components/

Disallow: /include

Disallow: /personal

Disallow: /search

Disallow: /upload

Disallow: /*/*ELEMENT_CODE=

Disallow: /*/*SECTION_CODE=

Disallow: /*/*IBLOCK_CODE

Disallow: /*/*ELEMENT_ID=

Disallow: /*/*SECTION_ID=

Disallow: /*/*IBLOCK_ID=

Disallow: /*/*CODE=

Disallow: /*/*ID=

Disallow: /*/*IBLOCK_EXTERNAL_ID=

Disallow: /*/*SECTION_CODE_PATH=

Disallow: /*/*EXTERNAL_ID=

Disallow: /*/*IBLOCK_TYPE_ID=

Disallow: /*/*SITE_DIR=

Disallow: /*/*SERVER_NAME=

Sitemap: http://site.ru/sitemap_index.xml

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

robots.txt для Modx и Modx Revo

CMS Modx Revo тоже не лишена проблемы дублей. Однако, она не так сильно обострена, как в Битриксе. Теперь о ее решении.

  1. Включаем ЧПУ в настройках сайта.
  2. закрываем от индексации:

Disallow: /index.php # т.к. это дубль главной страницы сайта

Disallow: /*? # разом решаем проблему с дублями для всех страниц

Готовый файл robots.txt для Modx и Modx Revo:

Disallow: /*?id=

Disallow: /assets

Disallow: /assets/cache

Disallow: /assets/components

Disallow: /assets/docs

Disallow: /assets/export

Disallow: /assets/import

Disallow: /assets/modules

Disallow: /assets/plugins

Disallow: /assets/snippets

Disallow: /connectors

Disallow: /index.php

Disallow: /install

Disallow: /manager

Disallow: /profile

Disallow: /search

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

Выводы

Без преувеличения файл robots.txt можно назвать «поводырём для поисковых роботов Яндекс и Гугл» (разумеется, если он составлен правильно). Если файл robots txt отсутствует, то его нужно обязательно создать и загрузить на хостинг Вашего сайта. Справка Disallow правил описаны выше в этой статьей и вы можете смело их использоваться в своих целях.

Еще раз резюмируем правила/директивы/инструкции для robots.txt:

  1. User-agent — указывает, для какого именно поискового робота создан список правил.
  2. Disallow - «рекомендую вот это не индексировать».
  3. Sitemap - указывает расположение XML-карты сайта со всеми URL, которые нужно проиндексировать. В большинстве случаев карта расположена по адресу http://[ваш_сайт]/sitemap.xml.
  4. Crawl-delay — директива, указывающая период (в секундах), через который будет загружена страница сайта.
  5. Host - показывает Яндексу основное зеркало сайта.
  6. Allow - «рекомендую вот это проиндексировать, не смотря на то, что это противоречит одному из Disallow-правил».
  7. Clean-param - помогает в борьбе с get-параметрами, применяется для снижения рисков образования страниц-дублей.

Знаки при составлении robots.txt:

  1. Знак «$» для «звездочки» является «ограничителем».
  2. После слэша «/» указывается наименование файла/папки/расширения, которую нужно скрыть (в случае с Disallow) или открыть (в случае с Allow) для индексирования.
  3. Знаком «*» обозначается «любое количество любых символов».
  4. Знаком «#» отделяются какие-либо комментарии или примечания, оставленные вэб-мастером для себя, либо для кого-то другого. Поисковые роботы их не читают.