В интернете можно найти много публикаций на тему, как составить лучший (или даже самый лучший) файл robots.txt для WordPress. При этом в ряде таких популярных статей многие правила не объясняются и, как мне кажется, вряд ли понимаются самими авторами. Единственный обзор, который я нашел и который действительно заслуживает внимания, — это статья в блоге wp-kama. Однако и там я нашел не совсем корректные рекомендации. Понятно, что на каждом сайте будут свои нюансы при составлении файла robots.txt. Но существует ряд общих моментов для совершенно разных сайтов, которые можно взять за основу. Robots.txt, опубликованный в этой статье, можно будет просто копировать и вставлять на новый сайт и далее дорабатывать в соответствии со своими нюансами.
Более подробно о составлении robots.txt и значении всех его директив я писал здесь. Ниже я не буду подробно останавливаться на значении каждого правила. Ограничусь тем, что кратко прокомментирую что для чего необходимо.
Ниже привожу короткий и расширенный вариант. Короткий не включает отдельные блоки для Google и Яндекса. Расширенный уже менее актуален, т.к. теперь нет принципиальных особенностей между двумя крупными поисковиками: обеим системам нужно индексировать файлы скриптов и изображений, обе не поддерживают директиву Host. Тем не менее, если в этом мире снова что-то изменится, либо вам потребуется все-таки как-то по-отдельному управлять индексацией файлов на сайте Яндексом и Гугл, сохраню в этой статье и второй вариант.
Еще раз обращаю внимание, что это базовый файл robots.txt. В каждом конкретном случае нужно смотреть реальный сайт и по-необходимости вносить корректировки. Поручайте это дело опытным специалистам!
User-agent: * # общие правила для роботов, кроме Яндекса и Google,
# т.к. для них правила ниже
Disallow: /cgi-bin # папка на хостинге
Disallow: /? # все параметры запроса на главной
Disallow: /wp- # все файлы WP: /wp-json/, /wp-includes, /wp-content/plugins
Disallow: /wp/ # если есть подкаталог /wp/, где установлена CMS (если нет,
# правило можно удалить)
Disallow: *?s= # поиск
Disallow: *&s= # поиск
Disallow: /search/ # поиск
Disallow: /author/ # архив автора
Disallow: /users/ # архив авторов
Disallow: */trackback # трекбеки, уведомления в комментариях о появлении открытой
# ссылки на статью
Disallow: */feed # все фиды
Disallow: */rss # rss фид
Disallow: */embed # все встраивания
Disallow: */wlwmanifest.xml # xml-файл манифеста Windows Live Writer (если не используете,
# правило можно удалить)
Disallow: /xmlrpc.php # файл WordPress API
Disallow: *utm*= # ссылки с utm-метками
Disallow: *openstat= # ссылки с метками openstat
Allow: */uploads # открываем папку с файлами uploads
# Укажите один или несколько файлов 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. Теперь все основные поисковые системы команду Host не учитывают.
Host: www.site.ru
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. Теперь все основные поисковые системы команду Host не учитывают.
Host: www.site.ru
В примере я не добавляю правило Crawl-Delay, т.к. в большинстве случаев эта директива не нужна. Однако если у вас крупный нагруженный ресурс, то использование этой директивы поможет снизить нагрузку на сайт со стороны роботов Яндекса, Mail.Ru, Bing, Yahoo и других (Google не учитывает). Подробнее про это читайте в статье Robots.txt.
Disallow: /20 — по такому правилу не только закроете все архивы, но и заодно все статьи о 20 способах или 200 советах, как сделать мир лучше 🙂Disallow: /comments и Disallow: */comment-*.User-agent: Googlebot-Image
Allow: /wp-content/uploads/
User-agent: YandexImages
Allow: /wp-content/uploads/ Совет достаточно сомнительный, т.к. для ранжирования страницы необходима информация о том, какие изображения и файлы размещены на ней.Спасибо за ваше внимание! Если у вас возникнут вопросы или предложения, пишите в комментариях!
В этой статье я подробно раскрою процесс работы с Google Core Web Vitals для качественной технической оптимизации сайта. А также…
В этой статье я приведу перечень пунктов, которые необходимо проверить, чтобы предусмотреть все основные ключевые факторы, которые важны при оптимизации…
Интервью для проекта газеты Комсомольская Правда «Образование в России и за рубежом». (далее…)
С ноября 2020 года поисковый робот Google, который индексирует сайты в интернете, начнет производить сканирование по протоколу HTTP/2. Если ваш…
Наверное, я не слишком ошибусь, если скажу, что скоро будет 10 лет мифу о том, что «SEO умерло». Тем не…
Сайты на системе администрирования MODx встречаются не так часто, информацию по правильной настройке SEO для этой системы найти сложнее. В…
Показать комментарии
Использую Ваш Роботс. Проверка Google выдаёт ошибку. Жалуется на
Clean-Param: utm_source&utm_medium&utm_campaign
Clean-Param: openstat
Прописанные для робота Яндекса.
Нужно ли редактировать, или проигнорировать?
https://uploads.disquscdn.com/images/f45c202c099acdc1cdcc72ea5c93abc6a8f73793ed757cb0254e59070c350f0a.jpg
Михаил, игнорируйте. Или можно заменить на аналогичные правила с Disallow. Google не понимает директиву Clean-Param, хотя она входит в стандарт robots.txt, воспринимает ее как ошибку.
Здравствуйте, если я для вордпресса создам такой robots.txt будет ли он нормальным для индексации?
User-agent: *
Disallow:
User-agent: Yandex
Allow: /yandex/news/
User-agent: Googlebot
Allow: *.js
Allow: *.css
Disallow:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https:// название моего сайта/sitemap.xml
Инна, надо смотреть сайт.
Но вообще конкретно данный код выглядит так, что человек не понимал, что эти строки означают. Например, зачем вам команда Disalow: Почему два раза повторяете User-agen: * в разных местах? Зачем вам команды открывать файлы .js и .css, если вы не закрывали ни одной папки для робота Google?
Но в моём robots.txt только то, что я выше описывала
Проблема с индексацией, Гугл добавляет лиш 1/4 всех ссылок и пишет не понятные мне ошибки, возможно Вы знаете, что это означает и как исправить
Прикрепляю ниже фото https://uploads.disquscdn.com/images/f061fc1efd683ac1edaa14bd6fe026a75111da5b58983f4c433776535be731d8.jpg https://uploads.disquscdn.com/images/119939ee24951b943b116e9b63a86c29296835ebcd92b64dc31262c1feb6983f.jpg
Google много чего пишет. Но не все, что гугл называет ошибками, является реальной ошибкой. По крайней мере, на что-либо влияющей.
Сайт googlesyndication явно не ваш? Если администратор этого сайта закрыл скрипты для индексирования, то, во-первых, вы не можете никаким образом повлиять на это. Во-вторых, если сторонний скрипт не индексируется, это мелочь - на это вообще нет смысла обращать внимание.
Вы просмотрели фото? Можете подсказать в чём причина плохой индексации? https://uploads.disquscdn.com/images/f061fc1efd683ac1edaa14bd6fe026a75111da5b58983f4c433776535be731d8.jpg https://uploads.disquscdn.com/images/119939ee24951b943b116e9b63a86c29296835ebcd92b64dc31262c1feb6983f.jpg
У меня не добавляет турбо-страницы, пишет что запрещено в robots.txt
По какому правилу?
Добрый день! Статья очень понравилась! столкнулся с такой проблемой: https://uploads.disquscdn.com/images/863b00a7f06eebb40f28fbfbb5ac4857972d76f626775d967736e621a881a536.png загрузил файл, проверил по отдельности через яндекс и через гугл, в первом случае анализатор не нашел ошибок, во втором выдал аж 21! в чем может быть дело?
Может, гугл ругается на пробел перед User-agent? И далее все команды считает ошибками, потому что они должны идти после User-agent, который он не распознал.
Добрый день. Спасибо за статью. Давно не видела таких понятных рекомендаций.
Возможно у вас было бы гораздо больше благодарственных комментариев, если бы стояла обычная капча и не требовался вход через аккаунты соц.сетей.
И немного сбило с толку расположение блока предыдущая запись / следующая запись, не сразу увидела, что можно добавлять комментарии. (не из вредности, хочу чтоб у хороших авторов было больше благодарственных комментариев)
Я зарегистрировалась в Дискусе, так как есть вопрос.
В ошибочных рекомендациях других блогеров в 5 пункте говориться про тег rel="canonical". Подскажите, можно ли его прописать в robots.txt или нужны другие меры?
Елена, добрый день.
Спасибо за советы.
По вашему вопросу. Canonical прописывается в html-коде соответствующей страницы. В robots его прописать нельзя.
Cпасибо))
HOST - удалите - более не поддерживается Яндексом!
Поставил данный robots. Все работает. Есть одно но. В исходном виде google ругался на удобство просмотра на мобильных устройствах - контент шире экрана. В итоге проблема решилась, когда в секцию User-agent: * добавил
Allow: /*/*.js
Allow: /*/*.css
Allow: /wp-*.png
Allow: /wp-*.jpg
Allow: /wp-*.jpeg
Allow: /wp-*.gif
Allow: /wp-admin/admin-ajax.php
PS: рад, что не пришлось перелопачивать css!!! пол дня голову ломал с мобильным отображением в гугл.
Странно, что гугл среагировал на правила user-agent *, когда есть блок user-agent googlebot. Может, причина еще в чем-то?
здравствуйте. а вдруг поможете))) буду безумно признательна, уже голову сломала.
от предыдущего сеошника остался такой роботс
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
User-agent: *
Disallow: /cgi-bin
Disallow: /?
Disallow: /wp-
Disallow: *?s=
Disallow: *&s=
Disallow: /search
Disallow: /author/
Disallow: *?attachment_id=
Disallow: */trackback
Disallow: */feed
Disallow: */embed
Disallow: */page/
Allow: */uploads
Allow: /*/*.js
Allow: /*/*.css
Allow: /wp-*.png
Allow: /wp-*.jpg
Allow: /wp-*.jpeg
Allow: /wp-*.gif
Allow: /wp-*.svg
1. вопрос раз) Гугл не видел некоторые картинки .jpg
Крутила-вертела, попробовала прописать
Allow: /wp-content/themes/*.jpg
и тут случился вообще парадокс, из всех картинок , которые он не видел до прописывания этого правила, сейчас на одной странице какие-то видит, а какие-то - нет. Такая беда не с одной страницей. Т.е. на одной странице с одинаковым уровнем вложенности, практически одинаковыми урлами, отличающимися на одну цифру, урлы такого вида
https://mysite/wp-content/themes/site/images/2018/09/mypost-1.jpg - видит
https://mysite/wp-content/themes/site/images/2018/09/mypost-2.jpg - не видит
роботс выше. т.е. цифру "2" точно нигде не закрыли. что можете посоветовать, куда копать?
2. Вопрос два) я правильно понимаю, что User-agent: * нет смысла два раза писать?
просто все директивы прописываем под одним User-agent: * может вышеописаннная проблема быть как-то с этим связана? ну типа некорректно прописано - некорректно и видит
Вторую строчку user-agent * - просто удаляем. Она лишняя. Как именно реагирует гугл - нужно смотреть опытным путем: может, берет первую часть, может, вторую, может все вместе. Не забываем, что robots.txt - это файл с рекомендациями. Иногда гугл индексирует в том числе и то, что закрыто в роботсе.
В приведенном вами файле роботс нет никаких правил, по которым могли бы быть закрыты изображения с цифрой "2". Но, возможно, в html-коде страницы есть другие теги, которые закрывают от индексации конкретный участок кода или страницу в целом. Нужно смотреть.
ясно. Будем эксперементировать. В любом случае, согласна с отзывами, что это самая адекватная статья по роботсу, ну и за мгновенную обратную связь спасибо
спасибо! :)
Судя по всему все-таки мешала лишняя строчка user-agent. Все вышло, спасибо.
Еще один маленький вопрос и цены вам не будет))) открывать контакт-формы (тип AJAX)? гуглу не нравится
https://mysite/wp-json/contact-form-7/v1/contact-forms/222/refill
Если да, то как правильнее прописать команду? Так?
Allow: /contact-form-7/
Нет.
Allow: /wp-json/contact-form-7/
или
Allow: */contact-form-7/
Спасибо!
Можно подправить роботс, Яндекс также отказался от директивы Host
Андрей, спасибо за совет! А можете проверить, точно все поисковые системы отказались от этой директивы? Пока не вношу изменения, поскольку есть, например, Yahoo!. Во всяком случае, раньше они тоже ориентировались на Host. Сейчас не уверен. По крайней мере, ошибки точно нет, если эту директиву оставить.
Можно оставить, Яндекс будет игнорировать. Но тогда это будет лишняя строчка в robots. Про Yahoo! читал, что он отказался от своего движка в пользу Bing, которые насколько я знаю не читает Host.
Лишняя строчка не страшно. В общем, по своим проектам, я не трачу время на удаление Host, и даже по-прежнему его указываю. Даже несмотря на то, что для яндекса и гугл она теперь не нужна и в принципе всегда главное зеркало определяется, в первую очередь, по правильному 301-редиректу. Честно говоря, больше на случай того, что вдруг какой-нибудь гугл, наоборот, перейдет на новые стандарты, по которым нужно будет четко прописывать хост в роботсе. Ведь в классической спецификации robots эта директива есть.