Приветствую вас, друзья. Сегодня я покажу как сделать правильный файл Robots.txt для WordPress блога. Файл Robots является ключевым элементом внутренней оптимизации сайта, так как выступает в роли гида-проводника для поисковых систем, посещающих ваш ресурс — показывает, что нужно включать в поисковый индекс, а что нет.
Содержание:
- Зачем нужен файл robots.txt
- Принцип работы файла robots
- Как создать и проверить robots.txt
- Robots.txt для WordPress
- Дополнения и заблуждения
Само название файла robots.txt подсказываем нам, что он предназначен для роботов, а не для людей. В статье о том, как работают поисковые системы, я описывал алгоритм их работы, если не читали, рекомендую ознакомиться.
Зачем нужен файл robots.txt
Представьте себе, что ваш сайт – это дом. В каждом доме есть разные служебные помещения, типа котельной, кладовки, погреба, в некоторых комнатах есть потаенные уголки (сейф). Все эти тайные пространства гостям видеть не нужно, они предназначены только для хозяев.
Аналогичным образом, каждый сайт имеет свои служебные помещения (разделы), а поисковые роботы – это гости. Так вот, задача правильного robots.txt – закрыть на ключик все служебные разделы сайта и пригласить поисковые системы только в те блоки, которые созданы для внешнего мира.
Примерами таких служебных зон являются – админка сайта, папки с темами оформления, скриптами и т.д.
Вторая функция этого файла – это избавление поисковой выдачи от дублированного контента. Если говорить о WordPress, то, часто, мы можем по разным URL находить одни и те же статьи или их части. Допустим, анонсы статей в разделах с архивами и рубриках идентичны друг другу (только комбинации разные), а страница автора обычного блога на 100% копирует весь контент.
Поисковики интернета могут просто запутаться во всем многообразии таких страниц и неверно понять – что нужно показывать в поисковой выдаче. Закрыв одни разделы, и открыв другие, мы дадим однозначную рекомендацию роботам по правильной индексации сайта, и в поиске окажутся те страницы, которые мы задумывали для пользователей.
Если у вас нет правильно настроенного файла Robots.txt, то возможны 2 варианта:
1. В выдачу попадет каша из всевозможных страниц с сомнительной релевантностью и низкой уникальностью.
2. Поисковик посчитает кашей весь ваш сайт и наложит на него санкции, удалив из выдачи весь сайт или отдельные его части.
Есть у него еще пара функций, о них я расскажу по ходу.
Принцип работы файла robots
Работа файла строится всего на 3-х элементах:
- Выбор поискового робота
- Запрет на индексацию разделов
- Разрешение индексации разделов
1. Как указать поискового робота
С помощью директивы User-agent прописывается имя робота, для которого будут действовать следующие за ней правила. Она используется вот в таком формате:
User-agent: * # для всех роботов
User-agent: имя робота # для конкретного робота
После символа «#» пишутся комментарии, в обработке они не участвуют.
Таким образом, для разных поисковых систем и роботов могут быть заданы разные правила.
Основные роботы, на которые стоит ориентироваться – это yandex и googlebot, они представляют соответствующие поисковики.
2. Как запретить индексацию в Robots.txt
Запрет индексации осуществляется в помощью директивы Disallow. После нее прописывается раздел или элемент сайта, который не должен попадать в поиск. Указывать можно как конкретные папки и документы, так и разделы с определенными признаками.
Если после этой директивы не указать ничего, то робот посчитает, что запретов нет.
Disallow: #запретов нет
Для запрета файлов указываем путь относительного домена.
Disallow: /zapretniy.php #запрет к индексации файла zapretniy.php
Запрет разделов осуществляется аналогичным образом.
Disallow: /razdel-sajta #запрет к индексации всех страниц, начинающихся с /razdel-sajta
Если нам нужно запретить разные разделы и страницы, содержащие одинаковые признаки, то используем символ «*». Звездочка означает, что на ее месте могут быть любые символы (любые разделы, любой степени вложенности).
Disallow: */*test #будут закрыты все страницы, в адресе которых содержится test
Обратите внимание, что на конце правила звездочка не ставится, считается, что она там есть всегда. Отменить ее можно с помощью знака «$»
Disallow: */*test$ #запрет к индексации всех страниц, оканчивающихся на test
Выражения можно комбинировать, например:
Disallow: /test/*.pdf$ #закрывает все pdf файлы в разделе /test/ и его подразделах.
3. Как разрешить индексацию в Robots.txt
По-умолчанию, все разделы сайта открыты для поисковых роботов. Директива, разрешающая индексацию нужна в тех случаях, когда вам необходимо открыть какой-либо кусочек из блока закрытого директивой disallow.
Для открытия служит директива Allow. К ней применяются те же самые атрибуты. Пример работы может выглядеть вот так:
User-agent: * # для всех роботов Disallow: /razdel-sajta #запрет к индексации всех страниц, начинающихся с /razdel-sajta Allow: *.pdf$ #разрешает индексировать pdf файлы, даже в разделе /razdel-sajta
Теорию мы изучили, переходим к практике.
Как создать и проверить Robots.txt
Проверить, что содержит ваш файл на данный момент можно в сервисе Яндекса — Проверка Robots.txt. Введете там адрес своего сайта, и он покажет всю информацию.
Если у вас такого файла нет, то необходимо срочного его создать. Открываете текстовый редактор (блокнот, notepad++, akelpad и т.д.), создаете файл с названием robots, заполняете его нужными директивами и сохраняете с txt расширением (ниже я расскажу, как выглядит правильный robots.txt для WordPress).
Дальше, помещаем файл в корневую папку вашего сайта (рядом с index.php) с помощью файлового менеджера вашего хостинга или ftp клиента, например, filezilla (как пользоваться).
Если у вас WordPress и установлен All in One SEO Pack, то в нем все делается прямо из админки, в этой статье я рассказывал как.
Robots.txt для WordPress
Под особенности каждой CMS должен создаваться свой правильный файл, так как конфигурация системы отличается и везде свои служебные папки и документы.
Мой файл robots.txt имеет следующий вид:
User-agent: * Disallow: /wp-admin Disallow: /wp-content Disallow: /wp-includes Disallow: /wp-comments Disallow: /wp-login.php Disallow: /wp-register.php Disallow: */trackback Disallow: /xmlrpc.php Disallow: */feed Disallow: */author Allow: /wp-content/themes/папка_вашей_темы/ Allow: /wp-content/plugins/ Allow: /wp-includes/js/ User-agent: Googlebot-Image Allow: /wp-content/uploads/ User-agent: YandexImages Allow: /wp-content/uploads/ host: biznessystem.ru Sitemap: https://biznessystem.ru/sitemap.xml
Первый блок действует для всех роботов, так как в строке User-agent стоит «*». Со 2 по 9 строки закрывают служебные разделы самого вордпресс. 10 – удаляет из индекса страницы RSS ленты. 11 – закрывает от индексации авторские страницы.
По последним требованиям поисковиков, необходимо открыть доступ к стилям и скриптам. Для этих целей в 12, 13 и 14 строках прописываем разрешение на индексирование папки с шаблоном сайта, плагинами и Java скриптами.
Дальше у меня идет 2 блока, открывающих доступ к папке с картинками роботам YandexImages и Googlebot-Image. Можно их не выделять отдельно, а разрешающую директиву для папки с картинками перенести выше на 15 строку, чтобы все роботы имели доступ к изображениям сайта.
Если бы я не использовал All-in-One-Seo-Pack, то добавил бы правило, закрывающее архивы (Disallow: */20) и метки (Disallow: */tag).
При использовании стандартного поиска по сайту от WordPress, стоит поставить директиву, закрывающую страницы поиска (Disallow: *?s=). А лучше, настройте Яндекс поиск по сайту, как это сделано на моем блоге.
Обратите внимание на 2 правила:
1. Все директивы для одного робота идут подряд без пропуска строк.
2. Блоки для разных роботов обязательно разделяются пустой строкой.
В самом конце есть директивы, которые мы ранее не рассматривали – это host и sitemap. Обе эти директивы называют межсекционными (можно ставить вне блоков).
Host – указывает главное зеркало ресурса (с 2018 года отменена и больше не используется). Обязательно стоит указать какой домен является главным для вашего сайта – с www или без www. Если у сайта есть еще зеркала, то в их файлах тоже нужно прописать главное. Данную директиву понимает только Яндекс.
Sitemap – это директива, в которой прописывается путь к XML карте вашего сайта. Ее понимают и Гугл и Яндекс.
Дополнения и заблуждения
1. Некоторые вебмастера делают отдельный блок для Яндекса, полностью дублируя общий и добавляя директиву host. Якобы, иначе yandex может не понять. Это лишнее. Мой файл robots.txt известен поисковику давно, и он в нем прекрасно ориентируется, полностью отрабатывая все указания.
2. Можно заменить несколько строк, начинающихся с wp- одной директивой Disallow: /wp-, я не стал такого делать, так как боюсь – вдруг у меня есть статьи, начинающиеся с wp-, если вы уверены, что ваш блог такого не содержит, смело сокращайте код.
3. Переиндексация файла robots.txt проходит не мгновенно, поэтому, ваши изменения поисковики могут заметить лишь спустя пару месяцев.
4. Гугл рекомендует открывать доступ своим ботам к файлам темы оформления и скриптам сайта, пугая вебмастеров возможными санкциями за несоблюдение этого правила. Я провел эксперимент, где оценивал, насколько сильно влияет это требование на позиции сайта в поиске — подробности и результаты эксперимента тут.
Резюме
Правильный файл Robots.txt для WordPress является почти шаблонным документом и его вид одинаков для 99% проектов, созданных на этом движке. Максимум, что требуется для вебмастера — это внести индивидуальные правила для используемого шаблона.
Спасибо за статью.
Уже давно пытаюсь исправить robots.txt у себя на сайте busparty.ru ? там почему то не видит яндекс посты, Гугл все видит, Яндекс нет.. Сейчас попробую по вашему совету заменить свой
А вы уверены, что Яндекс не видит посты именно из-за этого файла?
Посмотрел внимательнее ваш сайт — он под фильтром АГС, оказывается. Надо разбираться в причинах и проводить серьезную работу.
Не попасть под фильтр гораздо легче, чем вывести сайт из под него.
Есть много спорных вопросов по этому файлу и его настройкам. Вот никак не решу, как же правильно его составить, что закрыть, а что оставить. Спасибо вашей статье, попробую теперь разобраться более подробно
Если будут вопросы, задавайте, с удовольствием помогу решить.
спасибо!
Спасибо автору за статью с пошаговой инструкцией. Ваши советы мне очень помогли. Доступней не бывает.
А как вам мой Robots.txt?
User-agent: *
Allow: /wp-content/themes/frontend
Disallow: /wp-includes
Disallow: /wp-feed
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Host: http: //filwebs.ru
Sitemap: http: //filwebs.ru/sitemap.xml
User-agent: Googlebot-Image
Allow: /wp-content/uploads/
User-agent: YandexImages
Allow: /wp-content/uploads/
frontend — это папка с активной темой.
А с какой целью вы открываете доступ роботам к теме оформления сайта?
Здравствуйте. В Google Mobile-Friendly Test рекомендуют. Да и в кабинете веб-мастера можно посмотреть как видит бот сайт. Да и вообще, зачем ее закрывать?
В рекомендация Гугла есть такое, согласен с вами.
Честно говоря, я не придавал значения, так как сомневаюсь, что стандартные вордпресовские скрипты и CSS стили влияют на ранжирование сайта в поиске.
А дополнительные скрипты на сайт я закидывал в отдельную папку, которая открыта для роботов.
Попробую открыть доступ — посмотрим, как это скажется на позициях (повод для нового эксперимента — через 3 месяца посмотрим на результат).
Опять же, по тем же рекомендациям нужно открывать доступ к файлам плагинов, так как просмотр от лица googlebot указывает в качестве ошибок недоступность к скриптам и стилям плагинов.
У меня еще закрыты от индексации служебные страницы, только в файле functions
Я просто проверял, он показал мне как видит сайт робот и рекомендовал открыть доступ к скриптам и стилям. Я открыл, все впорядке, говорит 🙂 Хотя незнаю, как это сказывается на выдаче.
Хотя если открываешь файлы темы, то от этого все-равно хуже то не станет.
Посмотрим, станет или нет.
Я открыл сейчас доступ к файлам темы, плагинам и скриптам wordpress — через 3 месяца опубликую результат эксперимента (как изменятся позиции в выдаче).
добрый день!
Подскажите пожалуйста как правильно настроить и куда разместить Robots.txt в программе NVU.
Размещается этот файл в корневой папке на хостинге независимо от того, для какого сайта он делается.
NVU — это редактор, создающий html страницы. При его использовании дубли не создаются, также для html сайтов не предусмотрена админка.
Так что, для таких проектов актуально лишь указание главного зеркала сайта, закрытие разделов, которые вы не хотите показывать поисковикам (если они есть — это определяете вы сами) и указание файла карты сайта (если он есть).
Добрый день!
Дмитрий подскажите пожалуйста, нужен ли robots.txt для одно страничного сайта!?
Не помешает, как минимум, для того, чтобы указать главное зеркало сайта директивой host — с www или без www.
Здравствуйте, согласен. Robots не помешает для указания зеркала.
Здравствуйте! скажите пожалуйста а почему вы вводите людей в заблуждение? ваш robots.txt выглядит несколько по другому там не 21 строка а 31, для чего писать что ваш файл выглядит именно так?
Жизнь не стоит на месте, пост писался давно.
Но это мелочи. Приведенный здесь robots полностью соответствует всем правилам и не вводит в заблуждение никого, кто внимательно читает назначение всех строк.
Если вы обратите внимание на различия, то увидите, что они несущественны:
— я убрал отдельные правила для картиночных ботов Яндекса и Гугл и объединил их с общим блоком для всех роботов — как лучше я пока не знаю, правильно и так и так.
— по недавней просьбе Google, был открыт доступ к папкам темы оформления и скриптам, никаких изменений в индексации и позициях сайта замечено не было, поэтому, я не знаю стоит ли рекомендовать их открытие всем.
— у меня стоят запретные правила для некоторых роботов не принадлежащих Яндексу или Google. Я посчитал, что мой сайт им посещать не нужно, максимум на что это влияет — на нагрузку хостинга, опять же, правила не обязательные и без необходимости их ставить я не рекомендую.
Через несколько месяцев может измениться что-то еще, например, появится какой-то назойливый бот, от которого я захочу избавиться или у меня на сайте добавится папка, которую я не захочу показывать поисковикам — это не значит, что нужно будет добавлять относящиеся к ним правила ко всем сайтам интернета.
У меня вообще 16 строк + две урл блога = 18. Купила умный плагин и он сам сгенерировал роботс и многое спрятал без мороки. Я всего лишь добавила несколько рубрик, которые у меня под нофоллов и ноиндекс. Но они почему — то индексируются Яшей. Тоже эксперимент длиною… пока не скажу, потом расскажу.
Эксперимент идет. Так-то гость. Все на себе 🙂
У меня проблема немного другая. Два года стоит файл роботс, взял по рекомендации, но наверное буду менять как у Вас. Дня 4 назад Яндекс написал не может найти файл роботс, и тут же в графе загружено в панели вебмастера, появляются куча страниц. Было гдето 200 сейчас 444. При том что в поиске 107. Отправил на повторную проверку.
У Гугла все норм.
Что может быть?
Проверьте доступность файла через панель Яндекс Вебмастера. Если отдает код 200, то в поддержку Яндекса напишите или просто подождите следующего апдейта, может быть в момент прихода робота Яндекса в прошлый раз был сбой.
Спасибо! Помогло)) теперь на всех сайтах хоть нормальные файлы сделаю.
Дмитрий, прокомментируйте, пожалуйста
# If the Joomla site is installed within a folder such as at
# e.g. example.com/joomla/ the robots.txt file MUST be
# moved to the site root at e.g. example.com/robots.txt
# AND the joomla folder name MUST be prefixed to the disallowed
# path, e.g. the Disallow rule for the /administrator/ folder
# MUST be changed to read Disallow: /joomla/administrator/
#
# For more information about the robots.txt standard, see:
# robotstxt.org/orig.html
#
# For syntax checking, see:
# sxw.org.uk/computing/robots/check.html
User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /images/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /logs/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
А что тут комментировать? Пишут, что если у вас джумла установлена не в корневой папке, то файл robots нужно переместить в корневую. А дальше рекомендуемые к закрытию директории идут, так сказать типовой файл дан.
Дмитрий, Добрый вечер!
Нужна помощь в настройке robots.txt сможете мне помочь?
Это зависит от того, что за сайт — нужно знать его структуру. Для WordPress файл на 99% стандартен, для других популярных CMS тоже можете найти шаблонные варианты в сети.
Вот в этой статье dampi.ru/pravilnyiy-robots-txt-dlya-sayta-na-wordpress автор утверждает о том, что если открыть uploads для всех ботов, то в индексе появляются загруженные PDF и прочие текстовые файлы. А в яндекс вебмастере, в отчете «Исключенные страницы» появляются сообщения об ошибке при индексировании картинок, мол содержимое не поддерживается. Вот и не знаю кому верить…
По умолчанию в uploads складываются картинки сайта. Их просят к показу как Я, так и Г. Иногда в отчетах вебмастера появляются сообщения об ошибке индексирования картинок, но они пропадают со временем. На этот счет я делал запросы в вебмастер, они ответили, что это временные сбои и поисковик сам определит, что это картинки и уберет из списка (так и происходило).
Текстовые и pdf файлы на данный момент не только индексируются поисковиками, но и появляются в результатах выдачи.
Тут уж вы сами определяйте, хотите ли вы чтобы это было так для вашего конкретного проекта.
Если не хотите индексации, то есть варианты:
1. складывать в отдельную папку и уже её запрещать индексировать,
2. запретить к индексации определенные форматы файлов, пример с pdf как раз разобран у меня в 3 пункте статьи.
Кроме того, в указанной вами статье есть спорные моменты, например, с чего автор взял, что Яндекс игнорирует User-Agent: * — он прекрасно его понимает и применяет к себе, если для его ботов нет отдельных строк.