В этой статье пример оптимального, на мой взгляд, кода для файла robots.txt под WordPress, который вы можете использовать в своих сайтах.
Для начала, вспомним зачем нужен robots.txt - файл robots.txt нужен исключительно для поисковых роботов, чтобы «сказать» им какие разделы/страницы сайта посещать, а какие посещать не нужно. Страницы, которые закрыты от посещения не будут попадать в индекс поисковиков (Yandex, Google и т.д.).
Разбор кода:
В строке User-agent: * мы указываем, что все нижеприведенные правила будут работать для всех поисковых роботов * . Если нужно, чтобы эти правила работали только для одного, конкретного робота, то вместо * указываем имя робота (User-agent: Yandex , User-agent: Googlebot).
В строке Allow: */uploads мы намеренно разрешаем индексировать страницы, в которых встречается /uploads . Это правило обязательно, т.к. выше мы запрещаем индексировать страницы начинающихся с /wp- , а /wp- входит в /wp-content/uploads . Поэтому, чтобы перебить правило Disallow: /wp- нужна строчка Allow: */uploads , ведь по ссылкам типа /wp-content/uploads/... у нас могут лежать картинки, которые должны индексироваться, так же там могут лежать какие-то загруженные файлы, которые незачем скрывать. Allow: может быть "до" или "после" Disallow: .
Остальные строчки запрещают роботам "ходить" по ссылкам, которые начинаются с:
Правило Sitemap: http://site.ru/sitemap.xml указывает роботу на файл с картой сайта в формате XML. Если у вас на сайте есть такой файл, то пропишите полный путь к нему. Таких файлов может быть несколько, тогда указываем путь к каждому отдельно.
В строке Host: site.ru мы указываем главное зеркало сайта. Если у сайта существуют зеркала (копии сайта на других доменах), то чтобы Яндекс индексировал всех их одинаково, нужно указывать главное зеркало. Директива Host: понимает только Яндекс, Google не понимает! Если сайт работает под https протоколом, то его обязательно нужно указать в Host: Host: https://site.ru
Из документации Яндекса: «Host - независимая директива и работает в любом месте файла (межсекционная)». Поэтому её ставим наверх или в самый конец файла, через пустую строку.
Yandex и Google обрабатывает директивы Allow и Disallow не по порядку в котором они указаны, а сначала сортирует их от короткого правила к длинному, а затем обрабатывает последнее подходящее правило:
User-agent: * Allow: */uploads Disallow: /wp-
будет прочитана как:
User-agent: * Disallow: /wp- Allow: */uploads
Чтобы быстро понять и применять особенность сортировки, запомните такое правило: «чем длиннее правило в robots.txt, тем больший приоритет оно имеет. Если длина правил одинаковая, то приоритет отдается директиве Allow.»
Не знаю кто как, а я за первый вариант! Потому что он логичнее - не надо полностью дублировать секцию ради того, чтобы указать директиву Host для Яндекса, которая является межсекционной (понимается роботом в любом месте шаблона, без указания к какому роботу она относится). Что касается нестандартной директивы Allow , то она работает для Яндекса и Гугла и если она не откроет папку uploads для других роботов, которые её не понимают, то в 99% ничего опасного это за собой не повлечет. Я пока не заметил что первый robots работает не так как нужно.
Вышеприведенный код немного не корректный. Спасибо комментатору " " за указание на некорректность, правда в чем она заключалась пришлось разбираться самому. И вот к чему я пришел (могу ошибаться):
Некоторые роботы (не Яндекса и Гугла) - не понимают более 2 директив: User-agent: и Disallow:
3. Sitemap: межсекционная директива для Яндекса и Google и видимо для многих других роботов тоже, поэтому её пишем в конце через пустую строку и она будет работать для всех роботов сразу.
Если вам нужно запретить еще какие-либо страницы или группы страниц, можете внизу добавить правило (директиву) Disallow: . Например, нам нужно закрыть от индексации все записи в категории news , тогда перед Sitemap: добавляем правило:
Disallow: /news
Оно запретить роботам ходить по подобным ссылками:
Если нужно закрыть любые вхождения /news , то пишем:
Disallow: */news
Подробнее изучить директивы robots.txt вы можете на странице помощи Яндекса (но имейте ввиду, что не все правила, которые описаны там, работают для Google).
Проверить правильно ли работают прописанные правила можно по следующим ссылкам:
Сервис для создания и проверки robots.txt: https://seolib.ru/tools/generate/robots/
Проанализировав письма за последние два года в нашу поддержку по вопросам индексирования, мы выяснили, что одной из основных причин медленного скачивания документов является неправильно настроенная директива Crawl-delay в robots.txt […] Для того чтобы владельцам сайтов не пришлось больше об этом беспокоиться и чтобы все действительно нужные страницы сайтов появлялись и обновлялись в поиске быстро, мы решили отказаться от учёта директивы Crawl-delay.
Когда робот Яндекса сканирует сайт как сумасшедший и это создает излишнюю нагрузку на сервер. Робота можно попросить «поубавить обороты».
Для этого нужно использовать директиву Crawl-delay . Она указывает время в секундах, которое робот должен простаивать (ждать) для сканирования каждой следующей страницы сайта.
Для совместимости с роботами, которые плохо следуют стандарту robots.txt, Crawl-delay нужно указывать в группе (в секции User-Agent) сразу после Disallow и Allow
Робот Яндекса понимает дробные значения, например, 0.5 (пол секунды). Это не гарантирует, что поисковый робот будет заходить на ваш сайт каждые полсекунды, но позволяет ускорить обход сайта.
User-agent: Yandex Disallow: /wp-admin Disallow: /wp-includes Crawl-delay: 1.5 # таймаут в 1.5 секунды User-agent: * Disallow: /wp-admin Disallow: /wp-includes Allow: /wp-*.gif Crawl-delay: 2 # таймаут в 2 секунды
Робот Google не понимает директиву Crawl-delay . Таймаут его роботам можно указать в панели вебмастера.
Задал вопрос в тех. поддержку Яндекса насчет межсекционного использования директив Host и Sitemap:
Здравствуйте!
Пишу статью насчет robots.txt на своем блоге. Хотелось бы получить ответ на такой вопрос (в документации я не нашел однозначного "да"):Если мне нужно склеить все зеркала и для этого я использую директиву Host в самом начале фала robots.txt:
Host: site.ru User-agent: * Disallow: /asd
Будет ли в данном примере правильно работать Host: site.ru? Будет ли она указывать роботам что site.ru это основное зеркало. Т.е. эту директиву я использую не в секции, а отдельно (в начале файла) без указания к какому User-agent она относится.
Также хотел узнать, обязательно ли директиву Sitemap нужно использовать внутри секции или можно использовать за пределами: например, через пустую строчку, после секции?
User-agent: Yandex Disallow: /asd User-agent: * Disallow: /asd Sitemap: http://site.ru/sitemap.xml
Поймет ли робот в данном примере директиву Sitemap?
Надеюсь получить от вас ответ, который поставит жирную точку в моих сомнениях.
Здравствуйте!
Директивы Host и Sitemap являются межсекционными, поэтому будут использоваться роботом вне зависимости от места в файле robots.txt, где они указаны.
--
С уважением, Платон Щукин
Служба поддержки Яндекса
Важно помнить, что изменения в robots.txt на уже рабочем сайте будут заметны только спустя несколько месяцев (2-3 месяца).
Ходят слухи, что Google иногда может проигнорировать правила в robots.txt и взять страницу в индекс, если сочтет, что страница ну очень уникальная и полезная и она просто обязана быть в индексе. Однако другие слухи опровергают эту гипотезу тем, что неопытные оптимизаторы могут неправильно указать правила в robots.txt и так закрыть нужные страницы от индексации и оставить ненужные. Я больше склоняюсь ко второму предположению...
На сервисе avi1.ru Вы можете уже сейчас приобрести продвижение SMM более чем в 7 самых популярных социальных сетях. При этом обратите внимание на достаточно низкую стоимость всех услуг сайта.
Всем привет, друзья! Сегодня я расскажу, как создать файл robots txt для wordpress. Этот пост, будет очень важным для тех, у кого до сих пор нет файла robots txt. Я постараюсь рассказать вам основные команды, которые используются в этом файле, чтобы вы могли составить самостоятельно robots txt а также покажу пример, каким должен быть правильный robots.txt для wordpress:smile:.
http://www.mycharm.ru/articles/text/?id=2766
то нужно просто убрать из файла robots.txt вот эту строчку
Disallow: /*?*
, поскольку она заблокирует индексацию всех страниц, где встречается знак вопроса «?»
. Ее нужно убрать в двоих местах.
Если у вас другая система управления сайтом, то я вам сейчас кратко расскажу основные команды для того, чтобы вы могли составить robots.txt для своего сайта самостоятельно. Итак, поехали.
Директива «User-agent» отвечает за то, к какому поисковому роботу вы обращаетесь.
Директива «Disallow»
закрывает страницы, категории или сайт от индексации.
Например, у меня есть на сайте вод такая страница http://сайт/search/
и я хочу закрыть ее от индексации всех поисковиков. В таком случаи нужно прописать следующее.
User-agent: *
Disallow: /search/
Если вы хотите закрыть весь сайт от индексации гуглом, то нужно прописать так:
User-agent: Googlebot
Disallow: /
А если, наоборот, хотите, чтобы весь сайт индексировался гуглом, то нужно прописать в файле robots.txt вод так:
User-agent: Googlebot
Disallow:
Таким образом, мы можем запретить индексировать сайт или страницу, яндексу и гулу отдельно, или всем поисковикам сразу.
Директива «Allow»
разрешает индексировать сайт, категории или страницы.
Например, вы хотите запретить индексировать папку wp-includes всем поисковикам, но в этой папке хотите разрешить индексировать файл compat.php, тогда нужно прописать следующее:
User-agent: *
Disallow: /wp-includes/
Allow: /wp-includes/compat.php
Директива «Sitemap» позволяет указать поисковым роботам:
User-agent: *
Sitemap: http://сайт/sitemap.xml
Есть еще несколько директив, которые понимает только Яндекс.
Директива «Host» позволяет указать основной адрес сайта. С www или без www. Я указал без www.
User-agent: Yandex
Host: сайт
Директива «Crawl-delay»
позволяет указать задержку, с которой поисковый робот будет отправлять вам команду. Если у вас большой сайт, то поисковик постоянным его штудированием может создать большую нагрузку на сервер. И чтобы этого не случилось, вы можете воспользоваться директивой «Crawl-delay»
Вод пример:
User-agent: Yandex
Crawl-delay: 3
Это значит, что интервал между посылками команды будет 3 секунды. Но опять же, это актуально только для яндекса.
Для того, чтобы без проблем самому составить файл robots.txt, очень важно научиться понимать некоторые спецсимволы. Адрес начинается с третьего слеша.
Я сейчас объясню, что это значит, и как эти символы использовать при составлении файла robots.txt
Сначала разберем, как использовать «*». Например, у меня есть дублирована страница
http://сайт/page?replytocom=29#respond
Для того, чтобы убрать ее с индекса нужно прописать следующее:
User-agent: *
Disallow: /*?*
Таким образом, я говорю поисковому роботу: «Если в URL страницы встретишь знак вопроса «?» то не индексируй ее. И неважно, какие символы стоят до знака вопроса и после него».
Потому что перед знаком вопроса и после него мы поставили звездочку «*». А она, в свою очередь, означает любую последовательность символов.
Ну а теперь разберем, как использовать символ $. Например, у нас есть вод такая страница
http://сайт/index.php
и мы хотим запретить поисковому роботу ее индексировать.
Для этого нужно прописать следующее
User-agent: *
Disallow: /*index.php$
Я говорю поисковикам: «Если index.php конец строки и неважно какие символы до index.php – не индексируй». Пояснил, как мог, если что-то не понятно, то спрашивайте в комментариях;-).
Таким образом, зная всего лишь эти два спецсимволы, можно запрещать от индексации любую страницу или раздел сайта.
Для этого, прежде всего, нужно . Потом, нужно зайти в раздел: «Настройка индексирования» — «Анализ robots.txt».
После этого нужно загрузить файл robots.txt и нажать на кнопку проверить. Если вы увидите примерно такое сообщения, как на картинке, без ошибок, значит у вас правильный robots.txt для wordpress или другой системы управления.
Но мы еще можем проверить конкретную страницу. Например, я копирую url статьи, которая должна быть открыта для индексации, и проверяю, так ли это на самом деле.
Сначало расскажу, что такое robots.txt.
Robots.txt – файл, который находится в корневой папки сайта, где прописываются специальные инструкции для поисковых роботов. Эти инструкции необходимы для того, чтобЫ при заходе на сайт, робот не учитывал страницу/раздел, другими словами мы закрываем страницу от индексации.
Файл robots.txt считается ключевым требованием при SEO-оптимизации абсолютно любого сайта. Отсутствие этого файла может негативно сказаться на нагрузку со стороны роботов и медленной индексации и, даже более того, сайт полностью не будет проиндексирован. Соответственно пользователи не смогут перейти на страницы через Яндекс и Google.
Поисковые системы (в особенности Google) проиндексируют cайт, но если файла robots.txt нет, то, как и говорил не все страницы. Если имеется такой файл, то роботы руководствуются правилами, которые указываются в этом файле. Причем существует несколько видов поисковых роботов, если одни могут учитывать правило, то другие игнорируют. В частности, робот GoogleBot не учитывает директиву Host и Crawl-Delay, робот YandexNews совсем недавно перестал учитывать директиву Crawl-Delay, а роботы YandexDirect и YandexVideoParser игнорируют общепринятые директивы в robots.txt (но учитывают те, которые прописаны специально для них).
Нагружают сайт больше всего роботы, которые подгружают контент с вашего сайта. Соответственно, если мы укажем роботу, какие страницы индексировать, а какие игнорировать, а также с какими временными промежутками подгружать контент со страниц (это больше качается крупных сайтов у которых имеется более 100 000 страниц в индексе поисковых систем). Это позволит значительно облегчить роботу индексацию и процесс подгружения контента с сайта.
К ненужным для поисковых систем можно отнести файлы которые относятся к CMS, например, в Wordpress – /wp-admin/. Помимо этого, скрипты ajax, json, отвечающие за всплывающие формы, баннеры, вывод каптчи и так далее.
Для большинства роботов также рекомендую закрыть от индексации все файлы Javascript и CSS. Но для GoogleBot и Yandex такие файлы лучше индексировать, так как они используются поисковыми системами для анализа удобства сайта и его ранжирования.
Директивы – это и есть правила для поисковых роботов. Первые стандарты по написанию robots.txt и соответственно появились в 1994, а расширенный стандарт в 1996 году. Однако, как вы уже знаете, что не все роботы поддерживают те или иные директивы. Поэтому ниже я расписал чем руководствуются основные роботы при индексации страниц сайта.
Это самая главная директива, которая определяет для каких поисковых роботов будут действовать следовать дальнейшие правила.
Для всех роботов:
Для определенного бота:
User-agent: Googlebot
Регистр в robots.txt не стол важен, писать можно как Googlebot так и googlebot
основной индексирующий робот Яндекса |
|
Используется в сервисе Яндекс.Картинки |
|
Используется в сервисе Яндекс.Видео |
|
Мультимедийные данные |
|
Поиск по блогам |
|
Поисковый робот, обращающийся к странице при добавлении ее через форму «Добавить URL» |
|
робот, индексирующий пиктограммы сайтов (favicons) |
|
Яндекс.Директ |
|
Яндекс.Метрика |
|
Используется в сервисе Яндекс.Каталог |
|
Используется в сервисе Яндекс.Новости |
|
YandexImageResizer |
Поисковый робот мобильных сервисов |
Disallow закрывает от индексирования разделы и страницы вашего сайта. Соответственно Allow наоборот открывает их.
Есть некоторые особенности.
Во первых, дополнительные операторы - *, $ и #. Для чего они используются?
“*” – это любое количество символов и их отсутствие. По умолчанию она уже находится в конце строки, поэтому ставить ее еще раз смысла нет.
“$” – показывает, что символ перед ним должен идти последним.
“#” – комментарий, все что идет после этого символа робот не учитывает.
Примеры использования Disallow:
Disallow: *?s=
Disallow: /category/
Соответственно поисковый робот закроет страницы типа:
Но открыты для индексации будут страницы вида:
Теперь вам необходимо понять, каким образом выполняются правила с вложенностью. Порядок записи директив совершено важен. Наследование правил, определяется по тому какие директории указаны, то есть если мы хотим закрыть страницу/документ от индексации достаточно прописать директиву. Давайте посмотрим на примере
Это наш файл robots.txt
Disallow: /template/
Данная директива указывается так же в любом месте, причем можно прописать несколько файлов sitemap.
Директива Host в robots.txt
Данная директива необходима для указания главного зеркала сайта (часто с www или без). Обратите внимание, что директива host указывается без протокола http://, но с протоколом https://. Директиву учитывают только поисковые роботы Яндекса и Mail.ru, а другими роботами, в том числе GoogleBot правило не будет учтено. Host прописывать 1 раз в файле robots.txt
Пример с http://
Host: website.ru
Пример с https://
Директива Crawl-delay
Устанавливает временной интервал индексирования поисковым роботом страниц сайта. Значение указывается в секундах, и в миллисекундах.
Пример:
Применяется по большей части на крупных интернет-магазинах, информационных сайтах, порталах, где посещаемость сайта от 5 000 в день. Необходим для того, чтобы поисковый робот делал запрос на индексирование в определенный промежуток времени. Если не указывать данную директиву, то это может создать серьезную нагрузку на сервер.
Оптимальное значение crawl-delay для каждого сайта свое. Для поисковых систем Mail, Bing, Yahoo значение можно выставить минимальное значение 0.25, 0.3, так как роботы эти поисковиков могут переобходить ваш сайт раз в месяц, 2 месяца и так далее (очень редко). Для Яндекса лучше установить большее значение.
Если нагрузка вашего сайта минимальная, то указывать данную директиву смысла нет.
Директива Clean-param
Правило интересно тем, что сообщает краулеру, что страницы с определенными параметрами нет необходимости индексировать. Прописывается 2 агрумента: URL страницы и параметр. Данная директива поддерживается поисковой системой Яндекс.
Пример:
Disallow: /admin/
Disallow: /plugins/
Disallow: /search/
Disallow: /cart/
Disallow: *sort=
Disallow: *view=
User-agent: GoogleBot
Disallow: /admin/
Disallow: /plugins/
Disallow: /search/
Disallow: /cart/
Disallow: *sort=
Disallow: *view=
Allow: /plugins/*.css
Allow: /plugins/*.js
Allow: /plugins/*.png
Allow: /plugins/*.jpg
Allow: /plugins/*.gif
User-agent: Yandex
Disallow: /admin/
Disallow: /plugins/
Disallow: /search/
Disallow: /cart/
Disallow: *sort=
Disallow: *view=
Allow: /plugins/*.css
Allow: /plugins/*.js
Allow: /plugins/*.png
Allow: /plugins/*.jpg
Allow: /plugins/*.gif
Clean-Param: utm_source&utm_medium&utm_campaign
В примере мы прописали правила для 3 разных ботов.
Куда добавить robots.txt?
Добавляется в корневую папку сайта. Помимо, чтобы по нему можно было перейти по ссылке:
Яндекс Вебмастер
На вкладке Инструменты выбираете Анализ robots.txt и далее нажимаете проверить
Google Search Console
На вкладке Cканирование выбираете Инструмент проверки файла robots.txt и далее нажимаете проверить.
Файл robots.txt должен быть обязательно на каждом продвигаемом сайте и лишь правильная его настройка позволит получить необходимую индексацию.
Ну и напоследок, если у вас возникли вопросы задавайте их в комментариях под статьей и еще мне интересно, а как вы прописываете robots.txt?
Файл robots.txt является одним из самых важных при оптимизации любого сайта. Его отсутствие может привести к высокой нагрузке на сайт со стороны поисковых роботов и медленной индексации и переиндексации, а неправильная настройка к тому, что сайт полностью пропадет из поиска или просто не будет проиндексирован. Следовательно, не будет искаться в Яндексе, Google и других поисковых системах. Давайте разберемся во всех нюансах правильной настройки robots.txt.
Для начала короткое видео, которое создаст общее представление о том, что такое файл robots.txt.
Поисковые роботы будут индексировать ваш сайт независимо от наличия файла robots.txt. Если же такой файл существует, то роботы могут руководствоваться правилами, которые в этом файле прописываются. При этом некоторые роботы могут игнорировать те или иные правила, либо некоторые правила могут быть специфичными только для некоторых ботов. В частности, GoogleBot не использует директиву Host и Crawl-Delay, YandexNews с недавних пор стал игнорировать директиву Crawl-Delay, а YandexDirect и YandexVideoParser игнорируют более общие директивы в роботсе (но руководствуются теми, которые указаны специально для них).
Подробнее об исключениях:
Исключения Яндекса
Стандарт исключений для роботов (Википедия)
Максимальную нагрузку на сайт создают роботы, которые скачивают контент с вашего сайта. Следовательно, указывая, что именно индексировать, а что игнорировать, а также с какими временны́ми промежутками производить скачивание, вы можете, с одной стороны, значительно снизить нагрузку на сайт со стороны роботов, а с другой стороны, ускорить процесс скачивания, запретив обход ненужных страниц.
К таким ненужным страницам относятся скрипты ajax, json, отвечающие за всплывающие формы, баннеры, вывод каптчи и т.д., формы заказа и корзина со всеми шагами оформления покупки, функционал поиска, личный кабинет, админка.
Для большинства роботов также желательно отключить индексацию всех JS и CSS. Но для GoogleBot и Yandex такие файлы нужно оставить для индексирования, так как они используются поисковыми системами для анализа удобства сайта и его ранжирования (пруф Google , пруф Яндекс).
Директивы — это правила для роботов. Есть спецификация W3C от 30 января 1994 года и расширенный стандарт от 1996 года . Однако не все поисковые системы и роботы поддерживают те или иные директивы. В связи с этим для нас полезнее будет знать не стандарт, а то, как руководствуются теми или иными директивы основные роботы.
Давайте рассмотрим по порядку.
Это самая главная директива, определяющая для каких роботов далее следуют правила.
Для всех роботов:
User-agent: *
Для конкретного бота:
User-agent: GoogleBot
Обратите внимание, что в robots.txt не важен регистр символов. Т.е. юзер-агент для гугла можно с таким же успехом записать соледующим образом:
user-agent: googlebot
Ниже приведена таблица основных юзер-агентов различных поисковых систем.
Бот | Функция |
---|---|
Googlebot | основной индексирующий робот Google |
Googlebot-News | Google Новости |
Googlebot-Image | Google Картинки |
Googlebot-Video | видео |
Mediapartners-Google | |
Mediapartners | Google AdSense, Google Mobile AdSense |
AdsBot-Google | проверка качества целевой страницы |
AdsBot-Google-Mobile-Apps | Робот Google для приложений |
Яндекс | |
YandexBot | основной индексирующий робот Яндекса |
YandexImages | Яндекс.Картинки |
YandexVideo | Яндекс.Видео |
YandexMedia | мультимедийные данные |
YandexBlogs | робот поиска по блогам |
YandexAddurl | робот, обращающийся к странице при добавлении ее через форму «Добавить URL» |
YandexFavicons | робот, индексирующий пиктограммы сайтов (favicons) |
YandexDirect | Яндекс.Директ |
YandexMetrika | Яндекс.Метрика |
YandexCatalog | Яндекс.Каталог |
YandexNews | Яндекс.Новости |
YandexImageResizer | робот мобильных сервисов |
Bing | |
Bingbot | основной индексирующий робот Bing |
Yahoo! | |
Slurp | основной индексирующий робот Yahoo! |
Mail.Ru | |
Mail.Ru | основной индексирующий робот Mail.Ru |
Rambler | |
StackRambler | Ранее основной индексирующий робот Rambler. Однако с 23.06.11 Rambler перестает поддерживать собственную поисковую систему и теперь использует на своих сервисах технологию Яндекса. Более не актуально. |
Disallow закрывает от индексирования страницы и разделы сайта.
Allow принудительно открывает для индексирования страницы и разделы сайта.
Но здесь не все так просто.
Во-первых, нужно знать дополнительные операторы и понимать, как они используются — это *, $ и #.
* — это любое количество символов, в том числе и их отсутствие. При этом в конце строки звездочку можно не ставить, подразумевается, что она там находится по умолчанию.
$ — показывает, что символ перед ним должен быть последним.
# — комментарий, все что после этого символа в строке роботом не учитывается.
Примеры использования:
Disallow: *?s=
Disallow: /category/$
Во-вторых, нужно понимать, каким образом выполняются вложенные правила.
Помните, что порядок записи директив не важен. Наследование правил, что открыть или закрыть от индексации определяется по тому, какие директории указаны. Разберем на примере.
Allow: *.css
Disallow: /template/
http://site.ru/template/ — закрыто от индексирования
http://site.ru/template/style.css — закрыто от индексирования
http://site.ru/style.css — открыто для индексирования
http://site.ru/theme/style.css — открыто для индексирования
Если нужно, чтобы все файлы.css были открыты для индексирования придется это дополнительно прописать для каждой из закрытых папок. В нашем случае:
Allow: *.css
Allow: /template/*.css
Disallow: /template/
Повторюсь, порядок директив не важен.
Директива для указания пути к XML-файлу Sitemap. URL-адрес прописывается так же, как в адресной строке.
Например,
Sitemap: http://site.ru/sitemap.xml
Директива Sitemap указывается в любом месте файла robots.txt без привязки к конкретному user-agent. Можно указать несколько правил Sitemap.
Директива для указания главного зеркала сайта (в большинстве случаев: с www или без www). Обратите внимание, что главное зеркало указывается БЕЗ http://, но С https://. Также если необходимо, то указывается порт.
Директива поддерживается только ботами Яндекса и Mail.Ru. Другими роботами, в частности GoogleBot, команда не будет учтена. Host прописывается только один раз!
Пример 1:
Host: site.ru
Пример 2:
Host: https://site.ru
Директива для установления интервала времени между скачиванием роботом страниц сайта. Поддерживается роботами Яндекса, Mail.Ru, Bing, Yahoo. Значение может устанавливаться в целых или дробных единицах (разделитель — точка), время в секундах.
Пример 1:
Crawl-delay: 3
Пример 2:
Crawl-delay: 0.5
Если сайт имеет небольшую нагрузку, то необходимости устанавливать такое правило нет. Однако если индексация страниц роботом приводит к тому, что сайт превышает лимиты или испытывает значительные нагрузки вплоть до перебоев работы сервера, то эта директива поможет снизить нагрузку.
Чем больше значение, тем меньше страниц робот загрузит за одну сессию. Оптимальное значение определяется индивидуально для каждого сайта. Лучше начинать с не очень больших значений — 0.1, 0.2, 0.5 — и постепенно их увеличивать. Для роботов поисковых систем, имеющих меньшее значение для результатов продвижения, таких как Mail.Ru, Bing и Yahoo можно изначально установить бо́льшие значения, чем для роботов Яндекса.
Это правило сообщает краулеру, что URL-адреса с указанными параметрами не нужно индексировать. Для правила указывается два аргумента: параметр и URL раздела. Директива поддерживается Яндексом.
Clean-param: author_id http://site.ru/articles/
Clean-param: author_id&sid http://site.ru/articles/
Clean-Param: utm_source&utm_medium&utm_campaign
В расширенной спецификации robots.txt можно найти еще параметры Request-rate и Visit-time. Однако они на данный момент не поддерживаются ведущими поисковыми системами.
Смысл директив:
Request-rate: 1/5 — загружать не более одной страницы за пять секунд
Visit-time: 0600-0845 — загружать страницы только в промежуток с 6 утра до 8:45 по Гринвичу.
Если вам нужно настроить, чтобы ваш сайт НЕ индексировался поисковыми роботами, то вам нужно прописать следующие директивы:
User-agent: *
Disallow: /
Проверьте, чтобы на тестовых площадках вашего сайта были прописаны эти директивы.
Для России и стран СНГ, где доля Яндекса ощутима, следует прописывать директивы для всех роботов и отдельно для Яндекса и Google.
Чтобы правильно настроить robots.txt воспользуйтесь следующим алгоритмом:
После того как вы создали файл robots.txt, его необходимо разместить на вашем сайте по адресу site.ru/robots.txt — т.е. в корневом каталоге. Поисковый робот всегда обращается к файлу по URL /robots.txt
Проверка robots.txt осуществляется по следующим ссылкам:
В конце статьи приведу несколько типичных ошибок файла robots.txt
Полезное видео от Яндекса (Внимание! Некоторые рекомендации подходят только для Яндекса).
Первое, что делает поисковый бот, который приходит на ваш сайт, это поиск и чтение файла robots.txt. Что это за файл? — это набор инструкций для поисковой системы.
Он представляет собой текстовый файл, с расширением txt, который находится в корневой директории сайта. Данный набор инструкций указывает поисковому роботу, какие страницы и файлы сайта индексировать, а какие нет. Так же в нем указывается основное зеркало сайта и где искать карту сайта.
Для чего нужен файл robots.txt? Для правильного индексирования вашего сайта. Что бы в поиске не было дублей страниц, различных служебных страниц и документов. Один раз правильно настроив директивы в robots вы убережете свой сайт от многих проблем с индексацией и зазеркаливанием сайта.
Составить robots.txt достаточно легко, создаем текстовый документ в стандартном блокноте винды. Пишем в этом файле директивы для поисковых систем. Далее сохраняем этот файл под названием «robots» и текстовым расширением «txt». Все теперь его можно залить на хостинг, в корневую папку сайта. Учтите, для одного сайта можно создать только один документ «роботс». Если этот файл отсутствует на сайте, то бот автоматические «решает» что можно индексировать все.
Так как он один, то в нем прописываются инструкции ко всем поисковым системам. Причем можно записать как отдельно инструкции под каждую ПС, так и общую сразу под все. Разделение инструкций для различных поисковых ботов делается через директиву User-agent. Подробнее поговорим об этом ниже.
Файл «для роботов» может содержать следующие директивы для управления индексацией: User-agent, Disallow, Allow, Sitemap, Host, Crawl-delay, Clean-param. Давайте рассмотрим каждую инструкцию по подробней.
Директива User-agent — указывает для какой поисковой системы будут инструкции (точнее для какого конкретно бота). Если стоит «*» то инструкции предназначены для всех роботов. Если указан конкретный бот, например Googlebot, значит, инструкции предназначены только для основного индексирующего робота Google. Причем если инструкции есть и отдельно для Googlebot и для всех других ПС, то гугл прочтет только свою инструкцию, а общую проигнорирует. Бот Яндекса поступит так же. Смотрим пример записи директивы.
User-agent: YandexBot — инструкции только для основного индексирующего бота Яндекса
User-agent: Yandex — инструкции для всех бот Яндекса
User-agent: * — инструкции для всех ботов
Директивы Disallow и Allow — дают команды что индексировать, а что нет. Disallow дает команду не индексировать страницу или целый раздел сайта. А Allow наоборот указывает, что нужно проиндексировать.
Disallow: / — запрещает индексировать весь сайт
Disallow: /papka/ — запрещает индексировать все содержимое папки
Disallow: /files.php — запрещает индексировать файл files.php
Allow: /cgi-bin – разрешает индексировать страницы cgi-bin
В директивах Disallow и Allow можно и зачастую просто необходимо использовать спецсимволы. Они нужны для задания регулярных выражений.
Спецсимвол * — заменяет любую последовательность символов. Он по умолчанию приписывается к концу каждого правила. Даже если вы его не прописали, ПС сами приставят. Пример использования:
Disallow: /cgi-bin/*.aspx – запрещает индексировать все файлы с расширением.aspx
Disallow: /*foto — запрещает индексацию файлов и папок содержащих слово foto
Спецсимвол $ — отменяет действие спецсимвола «*» в конце правила. Например:
Disallow: /example$ — запрещает индексировать ‘/example’, но не запрещает ‘/example.html’
А если прописать без спецсимвола $ то инструкция сработает уже по другому:
Disallow: /example — запрещает и ‘/example’ и ‘/example.html’
Директива Sitemap — предназначена для указания роботу поисковой системы, в каком месте на хостинге лежит карта сайта. Формат карты сайта должен быть sitemaps.xml. Карта сайта нужна для более быстрой и полной индексации сайта. Причем карта сайта это не обязательно один файл, их может быть несколько. Формат записи директы:
Sitemap: http://сайт/sitemaps1.xml
Sitemap: http://сайт/sitemaps2.xml
Директива Host — указывает роботу основное зеркало сайта. Что бы не было в индексе зеркал сайта, всегда нужно указывать эту директиву. Если ее не указать, робот Яндекса будет индексировать как минимум две версии сайт с www и без. Пока робот зеркальщик их не склеит. Пример записи:
Host: www.сайт
Host: сайт
В первом случае робот будет индексировать версию с www, во втором случае без. Разрешается прописывать только одну директиву Host в файле robots.txt. Если вы пропишите их несколько, бот обработает и примет к сведению только первую.
Правильная директива хост должна иметь следующие данные:
— указывать на протокол соединения (HTTP или HTTPS);
— корректно написанное доменное имя (нельзя прописывать IP-адрес);
— номер порта при необходимости (например, Host: site.com:8080).
Не правильно сделанные директивы просто будут игнорированы.
Директива Crawl-delay позволяет снизить нагрузку на сервер. Она нужна на случай если ваш сайт начинается ложиться под натиском различных ботов. Директива Crawl-delay указывает поисковому боту время ожидания между окончанием закачки одной страницы и началом закачки другой страницы сайта. Директива должна идти непосредственно после записей директив «Disallow» и/или «Allow». Поисковый робот Яндекса умеет читывать дробные значения. Например: 1.5 (полторы секунды).
Директива Clean-param нужна сайтам, страницы которых содержат динамические параметры. Речь о тех, которые не влияют на содержимое страниц. Это различная служебная информация: идентификаторы сессий, пользователей, рефереров и т.д. Так вот, что бы не было дублей эти страниц и используется эта директива. Она скажет ПС не закачивать повторно добирающуюся информацию. Снизится и нагрузка на сервер и время обхода сайта роботом.
Clean-param: s /forum/showthread.php
Данная запись говорит ПС, что параметр s будет считаться незначительным для для всех url, которые начинаются с /forum/showthread.php. Максимальная длина записи 500 символов.
С директивами разобрались, переходим к настройке нашего файла роботс.
Приступаем непосредственно к настройке файла robots.txt. Он должен содержать как минимум две записи:
User-agent:
— указывает для какой поисковой системы будут идущие ниже инструкции.
Disallow:
— уточняет, какую именно часть сайта не индексировать. Может закрывать от индексации, как отдельную страницу сайта, так и целые разделы.
Причем можно указать, что эти директивы предназначены для всех поисковых систем, или для какой-то одной конкретно. Указывается это в директиве User-agent. Если вы хотите что бы инструкции читали все боты — ставим «звездочку»
Если хотите прописать инструкции для конкретного робота, но надо указать его имя.
User-agent: YandexBot
Упрощенно пример правильно составленного файла robots будет таким:
User-agent: *
Disallow: /files.php
Disallow: /razdel/
Host: сайт
Где, *
говорит о том, что инструкции предназначены для всех ПС;
Disallow: /files.php
– дает запрет на индексацию файла file.php;
Disallow: /foto/
— запрещает индексировать целиком весь раздел «foto» со всеми вложенными файлами;
Host: сайт
— указывает роботам, какое зеркало индексировать.
Если у вас на сайте нет страниц, которые надо закрыть от индексации, то ваш файл robots.txt должен быть таким:
User-agent: *
Disallow:
Host: сайт
Что бы указать, что данные инструкции предназначены для поисковой системы Яндекс, надо прописать в директиве User-agent: Yandex. Причем если мы пропишем «Yandex» то сайт будут индексировать все роботы Яндекса, а если укажем «YandexBot» — то это будет команда только для основного индексирующего робота.
Так же надо обязательно прописать директиву «Host», где указать основное зеркало сайта. Как я писал выше, делается это для недопущения дублей страниц. Ваш правильный robots.txt для Yandex будет таким:
User-agent: Yandex
Disallow: /cgi-bin
Disallow: /adminka
Host: сайт
До сих пор часто приходится слышать вопросы, что лучше указывать в директиве host, сайт с www или без. А ведь ни какой разницы нет. Тут просто как вам больше нравится, что бы сайт выглядел в выдаче ПС. Главное не забыть ее указать вообще, что бы не создавать дубли.
Поисковая система Google поддерживает все общепринятые форматы записи файла robots.txt. Правда он не учитывает директиву Host. Поэтому отличий от Яндекса фактически не будет. Robots.txt для Google будет выглядеть следующим образом:
User-agent: Googlebot
Disallow: /cgi-bin
Disallow: /adminka
Sitemap: http://сайт/sitemaps.xml
Надеюсь, что изложенных мною данных вам хватит, чтобы составить качественный, а главное правильный файл. robots.txt. Если же вы используете одну из популярных CMS то в следующей статье я подготовил для вас подборку роботсов — robots.txt для популярных CMS
1
оценок, среднее: 5,00
из 5)