Robots.txt – это один из простейших файлов на вашем сайте. Но в нём же проще всего сделать опасную ошибку. Всего один символ, который стоит не на месте – и ваше SEO летит в тартарары. Поисковики не видят на вашем сайте того, что вы хотели им показать, но прекрасно считывают закрытую информацию. Ваша миссия провалена. Даже опытные SEO-шники иногда допускают такие ошибки, что уж говорить о начинающих. Если вы до сих пор не знаете, как правильно работать с robots.txt, или уже где-то ошиблись и не хотите, чтобы это повторилось, читайте наш разбор.
Краткая справка
Файл robots.txt – это свод правил для поисковых роботов. «Туда не ходи, сюда ходи» и всё такое. Здесь нужно перечислить весь контент, который вы хотите скрыть от роботов. И большинство поисковиков выполняет требования файла. Но не все. И нет, Google не среди непослушных. Также в этом файле можно объяснить некоторым ботам, как именно можно краулить разрешённый контент. А вот это для Google уже не будет руководством к действию.
Как выглядит файл
Общая схема такова:
Выглядит пугающе и непонятно, если вы ещё никогда не работали с такими файлами. Но синтаксис здесь на самом деле простой. Вы называете робота, к которому обращаетесь, и предъявляете ему список команд-директив. Как зовут роботов и что им приказывать, разберёмся дальше.
Имена агентов
Вы можете дать разные разрешения отдельным поисковикам. Для этого нужно знать, как обращаться к роботам каждой системы. Вот самые полезные из имён:
- Яндекс – Yandex.
- Google – Googlebot.
- Google Images – Googlebot-Image.
- Mail.ru – Mail.ru.
- Bing – Bingbot.
- Yahoo – Slurp.
- Baidu – Baiduspider.
- DuckDuckGo – DuckDuckBot.
Учтите, что имена нужно вводить именно так, как они здесь написаны, с дефисами и разным регистром.
Если вы хотите дать команду всем ботам, то вместо имени введите *. А если открыть доступ только Google, можно запретить краулинг всем роботам, кроме гугл-бота. Это выглядит так:
Боты выполняют наиболее конкретные команды, поэтому первую гугл-бот проигнорирует и спокойно будет сканировать сайт по разрешению второй директивы.
Вообще вы можете добавить сколько угодно индивидуальных директив и обратиться к бесконечному числу агентов. Но если вы так делаете, помните, что тогда робот-паук считывает только то, что обращено к нему. И для каждого бота вам нужно будет ввести весь список команд. Команды для второго робота первому не указ. Но если вы ввели две и больше директивы под одним именем, то всё нормально.
Директивы
Какие же приказы роботы поймут? Посмотрим на примере робота Google.
Disallow
Это «кирпич», выставленный на пути бота к какой-то странице. Если вы не хотите, чтобы в поиске были страницы вашего блога, вставьте такой код:
Здесь нужно внимательно следить за адресом страницы. Если там будет опечатка, или вы забудете вставить в строчку сам адрес, боты просто проигнорируют эту директиву.
Allow
Продолжаем историю с блогом. Вы написали мегаполезную статью и хотите поделиться ею со всем миром. Но поисковики её не увидят. Она же в закрытой части сайта. Надо открыть. Используем директиву:
Теперь робот увидит вашу статью, но остальной блог останется для него закрытым. Здесь тоже следите, правильно ли написан адрес.
Конфликты директив
Прервём список для важного уточнения. Иногда директивы из-за ошибки противоречат друг другу. Вот так, например:
Роботу одновременно разрешают и запрещают просматривать блог. Как разрешить противоречие? Google и Bing выбирают ту, в которой больше символов. То есть здесь они не пойдут в блог, потому что в запрете на один символ больше. А если бы команды были одинаковы по длине, тогда выбор этих систем пал на тот вариант, который даёт просмотреть больше страниц. То есть разрешительный. Другие роботы поступают по-другому: они принимают первую директиву, игнорируя другие.
Sitemap
Директива от адреса, где список со страницами лежит. Это те страницы, которые поисковик может просматривать и индексировать. Директива выглядит так:;
Она не относится к какому-то боту, а по умолчанию указывает путь всем. Поэтому её лучше включать в начале или конце robots.txt.
Эти три директивы, кроме Google, поддерживают так же Яндекс, Bing и большинство поисковиков.
Crawl-delay
А вот эту Google больше не поддерживает. Хотя Яндекс и Bing оставили её в списке используемых. Этой директивой можно задать количество секунд, которое должно пройти между загрузкой страниц. Паузы помогут снизить нагрузку на ваш сервер. Если вы зададите промежуток в 5 секунд, тогда за сутки бот проверит 17280 страниц. Если у вас их больше, стоит уменьшить паузу.
Noindex
Google отрицает, что эта директива когда-либо существовала, а 1 сентября 2019 года окончательно поставила точку, официально заявив, что noindex не поддерживается. Если хотите закрыть что-то от индексации, используйте другие способы: мета-теги для роботов или специальные заголовки.
Nofollow
Тоже никогда не имела официальной поддержки Google и от неё тоже отказались 1 сентября. Теперь запретить роботам переходить по ссылкам на странице только тегами и http-заголовками.
Clean-param
А это директива Яндекса. Её используют, чтобы очистить адрес страницы от идентификаторов сессий или пользователей, а также меток, которые не влияют на содержимое сайта.
Кириллица в robots.txt
Ещё одно отступление. В файл нельзя вставлять текст, написанный русскими буквами. Его нужно перевести в кодировку структуры вашего сайта.
А вам точно нужен robots.txt?
В принципе, небольшим сайтам не обязательно иметь этот файл. Но с ним лучше, чем без него. Благодаря ему, вы лучше контролируете, что поисковики могут и не могут делать на вашем сайте. То есть вы можете быть уверены, что:
- поисковые роботы не найдут страницы-дубликаты;
- некоторые части сайта останутся только для ваших глаз (например, ещё не протестированные страницы);
- нагрузка на сервер будет меньше;
- Google не будет впустую тратить бюджет на краулинг;
- ваши изображения, видео и файлы не попадут в поисковую выдачу.
Но с другой стороны, запреты на индексацию в robots.txt не дают 100%-ной гарантии, что закрытая страница не засветится в поиске. Например, если на эту страницу ведут ссылки с других сайтов, она может раскрыться в выдаче.
Работаем с файлом
Где найти robots.txt
Если на вашем сайте уже есть этот файл, значит, он лежит по адресу site-name.ru/robots.txt.
Делаем с нуля
Ну а если файла нет, надо его сделать. Открывайте блокнот и печатайте директивы. Или открывайте генераторы robots.txt и вбивайте данные туда. Эти генераторы помогают избежать большей части ошибок. Но они часто не очень хорошо кастомизируются.
Куда загрузить файл
На тот сайт, который вы имели в виду, когда прописывали все правила. Если это site-name.ru, то грузите прямо в корень, чтобы потом найти файл по адресу site-name.ru/robots.txt. А если blog.site-name.ru, то blog.site-name.ru/robots.txt.
Полезные советы
С общими правилами мы разобрались. Надеемся, вам стало понятнее, как работать с robots.txt. Перейдём к практическим советам.
Новая директива – новая строка
Если не разделять правила, робот может их не считать. Кроме того, когда всё написано в одну строчку, легче пропустить ошибку.
Используйте * для упрощения инструкций
Знак * можно использовать не только для обращения ко всем роботам, но и для сокращения адресов в командах. Например, вы не хотите, чтобы боты заходили на товарные страницы категорий с настроенными параметрами. Можно прописать адреса всех этих страниц.
Или заменить их одной строчкой и запретить краулинг всех страниц в products, которые заканчиваются вопросительным знаком. То есть все, в которых пользователь что-то настраивал.
Также можно полностью блокировать путь в любую категорию на сайте, если вам это нужно.
Ставьте $ в конце адреса
Чтобы показать боту, где заканчивается нужный URL, используйте знак доллара. Для примера: если вам нужно запретить ботам просматривать ваши pdf-ки, в вашем robots.txt должна быть такая строчка:
Это перекроет путь ко всем страницам, чей адрес заканчивается на .pdf, но не к тем, у которых в конце стоит что-то типа /file.pdf?id=1234455665.
Обращайтесь к каждому агенту только раз
Это не правило, а именно совет. Google считает команды правильно и в таком виде:
Но тогда у вас станет в два раза больше строчек, в которых можно ошибиться. Лучше упростите себе работу и объедините все директивы под одним обращением:
Конкретизируйте
Общие инструкции могут привести к катастрофическим последствиям. Представьте, что вы ведёте сайт на двух языках – русском и английском. Но вторая часть ещё не до конца готова, но уже размещена на ресурсе. Вы каждый день что-то дополняете и меняете. И вам не нужно, чтобы поисковые роботы постоянно это индексировали. Английская версия сайта доступна по адресу site-name.ru/en. Вы прописываете в robots.txt:
Робот не заходит в английскую версию, но заодно и на другие сайты:
/entrycode/enablenotifications/envydwarf/enoughofthiskerfuffle.pdf
Чтобы этого избежать, добавьте в код после en слэш.
Добавьте в robots.txt комментарии для людей
Да, файл называется «роботы». И да, мы там прописываем инструкции для роботов. Но люди их тоже читают. Оставьте комментарии для других разработчиков или же себя в будущем. Начинайте предложение с #, тогда роботы не будут читать этот комментарий.
Каждому поддомену – отдельный файл
Роботы выполняют инструкции только на том домене, куда загружен файл. Если у вас есть хотя бы один поддомен, например, blog.site-name.ru, значит, для него нужно делать отдельный robots.txt, итого два файла. Два поддомена – три файла и так далее. Каждый нужно выложить на своём поддомене.
Примеры файлов robots.txt
Вот вам примеры директив для вдохновения. Хотя, если они вам подойдут, можете спокойно копипастить их к себе в robots.txt.
Свободный доступ для всех ботов
User-agent: *Disallow:
Если вы не добавите сюда адрес, для ботов это будет значить, что ни у одной страницы нет запрета на краулинг. То есть вы дадите им доступ ко всем адресам на сайте.
Общий запрет
User-agent: *Disallow: /
Обратная ситуация. Доступ к любой странице перекрыт директивой.
Перекрытие доступа к одному разделу
User-agent: *Disallow: /folder/
Вместо folder пишем название вашего раздела.
Разрешить доступ к одному файлу из закрытой папки
User-agent: *Disallow: /folder/Allow: /folder/page.html
Тоже кастомизируем адреса под себя.
Скрываем любой файл
User-agent: *Disallow: /file.pdf
Запрет доступа к определённому формату файлов. На примере pdf.
User-agent: *Disallow: /*.pdf$
Перекрыть доступ одного бота к страницам с пользовательскими параметрами
User-agent: GooglebotDisallow: /*?
На месте Googlebot может быть любой другой агент.
Как проверить robots.txt на ошибки
Если вам важна видимость в Google, используйте его инструменты. В Яндексе они все объединены в Вебмастере. Итак, разберём ошибки на примере Google. Провести аудит можно через сервис Search Console. Вам нужен отчёт о доступности. Что вы можете там обнаружить?
Адрес заблокирован robots.txt
Это значит, что хотя бы один из адресов в вашей карте сайта недоступен из-за директивы в robots.txt. В карте не должно быть ни одной страницы, которую вы не хотите индексировать и на которой работает редирект. Если у вас отображается эта ошибка, значит, в карту просочилось что-то запрещённое. Как найти, какая именно страница недоступна ботам? Перейдите в тестер robots.txt, там запрещающая директива будет видна. И исправьте ошибку: либо уберите ссылку на эту страницу из карты сайта, или разрешите к ней доступ.
Заблокировано robots.txt
Эта ошибка говорит о том, что бот не может проиндексировать какой-то контент. Если вам нужно, чтобы Google всё-таки его проиндексировал, откройте закрытый в robots.txt доступ. И убедитесь, что на контенте не висит тег noindex. А если контент должен остаться невидимым для поисковика, то всё равно уберите блок на краулинг, а контент перекройте тегами или http-заголовком. Тогда Google увидит запрет на индексацию и точно выполнит это требование.
Проиндексировано, но заблокировано robots.txt
Это значит, что Google проиндексировал часть закрытого контента. То есть вы попытались перекрыть доступ через robots.txt, но у вас не получилось. Google не видит запрет на индексацию, если доступ к странице закрыт. Решение такое же, как и в прошлом случае.
И ещё немного полезной информации:
- Максимальный размер robots.txt – около 500 кб.
- Где найти robots.txt в WordPress? Там же, где и у остальных: site-name.ru/robots.txt. Редактировать его можно через специальные плагины.
- Файл robots.txt Битрикс доступен для редактирования в админ панели в разделе Маркетинг - Поисковая оптимизация - Настройка robots.txt