Файл sitemap в robots txt. Роботы яндекса. Disallow — расставляем «кирпичи»

Robots.txt - это текстовый файл, который располагается в корне сайта - http://site.ru/robots.txt . Главное его предназначение - это задавать определённые директивы поисковым системам - что и когда делать на сайте.

Самый простой Robots.txt

Самый простой robots.txt , который всем поисковым системам, разрешает всё индексировать, выглядит вот так:

User-agent : *
Disallow :

Если у директивы Disallow не стоит наклонный слеш в конце, то разрешены все страницы для индексации.

Такая директива полностью запрещает сайт к индексации:

User-agent : *
Disallow : /

User-agent - обозначает для кого предназначены директивы, звёздочка обозначает что для всех ПС, для Яндекса указывают User-agent: Yandex .

В справке Яндекса написано, что его поисковые роботы обрабатывают User-agent: * , но если присутствует User-agent: Yandex , User-agent: * игнорируется.

Директивы Disallow и Allow

Существуют две основные директивы:

Disallow – запретить

Allow – разрешить

Пример: На блоге мы запретили индексировать папку /wp-content/ где находятся файлы плагинов, шаблон и.т.п. Но так же там находятся изображения, которые должны быть проиндексированы ПС, для участия в поиске по картинкам. Для этого надо использовать такую схему:

User-agent : *
Allow : /wp-content/uploads/ # Разрешаем индексацию картинок в папке uploads
Disallow : /wp-content/

Порядок использования директив имеет значение для Яндекса, если они распространяются на одни страницы или папки. Если вы укажите вот так:

User-agent : *
Disallow : /wp-content/
Allow : /wp-content/uploads/

Изображения не будут загружаться роботом Яндекса с каталога /uploads/ , потому что исполняется первая директива, которая запрещает весь доступ к папке wp-content .

Google относится проще и выполняет все директивы файла robots.txt, вне зависимости от их расположения.

Так же, не стоит забывать, что директивы со слешем и без, выполняют разную роль:

Disallow: /about Запретит доступ ко всему каталогу site.ru/about/ , так же не будут индексироваться страницы которые содержат about - site.ru/about.html , site.ru/aboutlive.html и.т.п.

Disallow: /about/ Запретит индексацию роботам страниц в каталоге site.ru/about/ , а страницы по типу site.ru/about.html и.т.п. будут доступны к индексации.

Регулярные выражения в robots.txt

Поддерживается два символа, это:

* - подразумевает любой порядок символов.

Пример:

Disallow: /about* запретит доступ ко всем страницам, которые содержат about, в принципе и без звёздочки такая директива будет так же работать. Но в некоторых случаях это выражение не заменимо. Например, в одной категории имеются страницы с.html на конце и без, чтобы закрыть от индексации все страницы которые содержат html, прописываем вот такую директиву:

Disallow : /about/*.html

Теперь страницы site.ru/about/live.html закрыта от индексации, а страница site.ru/about/live открыта.

Ещё пример по аналогии:

User-agent : Yandex
Allow : /about/*.html #разрешаем индексировать
Disallow : /about/

Все страницы будут закрыты, кроме страниц которые заканчиваются на .html

$ - обрезает оставшуюся часть и обозначает конец строки.

Пример:

Disallow: /about - Эта директива robots.txt запрещает индексировать все страницы, которые начинаются с about , так же идёт запрет на страницы в каталоге /about/ .

Добавив в конце символ доллара - Disallow: /about$ мы сообщим роботам, что нельзя индексировать только страницу /about , а каталог /about/ , страницы /aboutlive и.т.п. можно индексировать.

Директива Sitemap

В этой директиве указывается путь к Карте сайта, в таком виде:

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

Директива Host

Указывается в таком виде:

Host: site.ru

Без http:// , наклонных слешей и тому подобных вещей. Если у вас главное зеркало сайта с www, то пишите:

Пример robots.txt для Битрикс

User-agent: *
Disallow: /*index.php$
Disallow: /bitrix/
Disallow: /auth/
Disallow: /personal/
Disallow: /upload/
Disallow: /search/
Disallow: /*/search/
Disallow: /*/slide_show/
Disallow: /*/gallery/*order=*
Disallow: /*?*
Disallow: /*&print=
Disallow: /*register=
Disallow: /*forgot_password=
Disallow: /*change_password=
Disallow: /*login=
Disallow: /*logout=
Disallow: /*auth=
Disallow: /*action=*
Disallow: /*bitrix_*=
Disallow: /*backurl=*
Disallow: /*BACKURL=*
Disallow: /*back_url=*
Disallow: /*BACK_URL=*
Disallow: /*back_url_admin=*
Disallow: /*print_course=Y
Disallow: /*COURSE_ID=
Disallow: /*PAGEN_*
Disallow: /*PAGE_*
Disallow: /*SHOWALL
Disallow: /*show_all=
Host: sitename.ru
Sitemap: https://www.sitename.ru/sitemap.xml

Пример robots.txt для WordPress

После того, когда были добавлены все нужные директивы, которые описаны выше. Вы должны получить примерно вот такой файл robots:

Это так сказать базовый вариант robots.txt для wordpress. Здесь присутствует два User-agent-a – один для всех и второй для Яндекса, где указывается директива Host .

Мета-теги robots

Существует возможность закрыть от индексации страницу или сайт не только файлом robots.txt, это можно сделать при помощи мета-тега.

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

Прописывать его надо в теге и этот мета тег запретит индексировать сайт. В WordPress существуют плагины, которые позволяют выставлять такие мета теги, например – Platinum Seo Pack . С помощью него можно закрыть от индексации любую страницу, он использует мета-теги.

Директива Crawl-delay

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

User-agent : *
Crawl-delay : 5

Таймаут между загрузкой двух страниц будет равен 5 секундам. Чтобы уменьшить нагрузку на сервер, обычно выставляют 15-20 секунд. Это директива нужны для больших, часто обновляемых сайтов, на которых поисковые боты просто «живут».

Для обычных сайтов/блогов эта директива не нужна, но можно таким образом ограничить поведение других не актуальных поисковых роботов (Rambler, Yahoo, Bing) и.т.п. Ведь они тоже заходят на сайт и индексируют его, создавая тем самым нагрузку на сервер.

Это текстовый файл (документ в формате.txt), содержащий четкие инструкции для индексации конкретного сайта. Файл указывает поисковиками, какие страницы веб-ресурса необходимо проиндексировать, а какие запретить к индексации.

Казалось бы, зачем запрещать индексировать какое-то содержимое сайта? Пусть поисковый робот индексирует все без разбору, руководствуясь принципом: чем больше страниц, тем лучше! Но это не так.

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

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

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

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

«User-agent:» – основная директива robots.txt

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

  • User-agent: Googlebot – все команды, которые последуют после этой базовой директивы, будет касаться исключительно поисковой системы Google (ее индексирующего робота);
  • User-agent: Yandex – адресат в данном случае отечественный поисковик Яндекс.

В файле robots.txt можно обратиться ко всем остальным поисковым системам вместе взятым. Команда в этом случае будет выглядеть так: User-agent: * . Под специальным символом «*» принято понимать «любой текст». В нашем случае – любые другие, кроме Яндекса, поисковики. Гугл, кстати, тоже воспринимает данную директиву на свой счет, если не обращаться лично к нему.

Команда «Disallow:» – запрет индексации в robots.txt

После основной директивы «User-agent:», обращенной к поисковым системам, могут следовать конкретные команды. В их числе самой распространенной можно считать директиву «Disallow: ». При помощи этой команды поисковому роботу можно запретить индексировать веб-ресурс целиком или какую-то его часть. Все зависит от того, какое расширение будет у данной директивы. Рассмотрим примеры:

User-agent: Yandex Disallow: /

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

User-agent: Yandex Disallow: /wp-admin

Как видно, на этот раз уточнения имеются и касаются они системной папки wp-admin в . То есть индексирующий робот посредством данной команды (прописанному в ней пути) откажется от индексации всей этой папки.

User-agent: Yandex Disallow: /wp-content/themes

Такое указание роботу Яндекса предполагает его допуск в большую категорию «wp-content », в которой он может индексировать все содержимое, кроме «themes ».

Исследуем «запретные» возможности текстового документа robots.txt дальше:

User-agent: Yandex Disallow: /index$

В данной команде, как следует из примера, используется еще один специальный знак «$». Его применение подсказывает роботу, что нельзя индексировать те страницы, в ссылках которых имеется последовательность букв «index ». При этом индексировать отдельный файл сайта с аналогичным названием «index.php » роботу не запрещено. Таким образом, символ «$» применяется в случае, когда необходим избирательный подход к запрету индексации.

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

User-agent: Yandex Disallow: *&*

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

User-agent: Yandex Disallow: *&

Тут запрет индексации касается всех тех страниц, ссылки которых заканчиваются на «&».

Если с запретом индексации системных файлов сайта вопросов быть не должно, то по поводу запрета индексировать отдельные страницы ресурса такие могут возникнуть. Мол, зачем это нужно в принципе? Соображений на сей счет у опытного веб-мастера может быть много, но главное из них – необходимость избавиться в поиске от дубликатов страниц. С помощью команды «Disallow:» и группы специальных символов, рассмотренных выше, бороться с «нежелательными» страницами можно довольно просто.

Команда «Allow:» – разрешение индексации в robots.txt

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

User-agent: Yandex Allow: /wp-admin

По какой-то причине веб-мастер передумал и внес соответствующие корректировки в robots.txt. Как следствие, отныне содержимое папки wp-admin официально разрешено к индексации Яндексом.

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

Директивы «Host:» и «Sitemap:»

Завершают обзор важных директив в robots.txt команды «Host: » и «Sitemap: ». Что касается первой, то она предназначается исключительно для Яндекса, указывая ему, какое зеркало сайта (с www или без) считать основным. На примере сайт это может выглядеть следующим образом:

User-agent: Yandex Host: сайт

User-agent: Yandex Host: www.сайт

Использование этой команды также позволяет избегать ненужного дублирования содержимого сайта.

В свою очередь директива «Sitemap: » указывает индексирующему роботу правильный путь к так называемой Карте сайта – файлам sitemap.xml и sitemap.xml.gz (в случае с CMS WordPress). Гипотетический пример может быть следующим:

User-agent: * Sitemap: http://сайт/sitemap.xml Sitemap: http://сайт/sitemap.xml.gz

Прописывание данной команды в файле robots.txt поможет поисковому роботу быстрее проиндексировать Карту сайта. Это, в свою очередь, также ускорит процесс попадания страниц веб-ресурса в поисковую выдачу.

Файл robots.txt готов – что дальше?

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

  • воспользоваться текстовым редактором (например, Notepad) для составления нужного вам robots.txt;
  • проверить корректность созданного документа, например, посредством данного сервиса Яндекса ;
  • при помощи FTP-клиента закачать готовый файл в корневую папку своего сайта (в ситуации с WordPress речь обычно идет о системной папке Public_html).

Да, чуть не забыли. Начинающему веб-мастеру, вне всякого сомнения, прежде чем экспериментировать самому, захочется сперва посмотреть на готовые примеры данного файла в исполнении других. Нет ничего проще. Для этого в адресной строке браузера достаточно ввести site.ru/robots.txt . Вместо «site.ru» – название интересующего вас ресурса. Только и всего.

Удачных экспериментов и спасибо, что читали!

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

Зачем нужно сканирование:

  1. Собрать данные для построения индекса - информацию о новых страницах и обновлениях на старых.
  2. Сравнить URL в индексе и в списке для сканирования.
  3. Убрать из очереди дублирующиеся URL, чтобы не скачивать их дважды.

Боты смотрят не все страницы сайта. Количество ограничено краулинговым бюджетом , который складывается из количества URL, которое может просканировать бот-краулер. Бюджета на объемный сайт может не хватить. Есть риск, что краулинговый бюджет уйдет на сканирование неважных или «мусорных» страниц, а чтобы такого не произошло, веб-мастеры направляют краулеров с помощью файла robots.txt .

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

Какие страницы краулер просканирует быстрее:

  1. Находятся ближе к главной.
    Чем меньше кликов с главной ведет до страницы, тем она важнее и тем вероятнее ее посетит краулер. Количество переходов от главной до текущей страницы называется (DFI).
  2. Имеют много ссылок.
    Если многие ссылаются на страницу, значит она полезная и имеет хорошую репутацию. Нормальным считается около 11-20 ссылок на страницу, перелинковка между своими материалами тоже считается.
  3. Быстро загружаются.
    Проверьте скорость загрузки если она медленная - и .

Все посещения ботов-краулеров не фиксируют такие инструменты, как Google Analytics, но поведение ботов можно отследить в лог-файлах. Некоторые SEO-проблемы крупных сайтов можно решить с помощью который также поможет увидеть проблемы со ссылками и распределение краулингового бюджета.

Robots.txt для Яндекса и Google

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

В robots.txt можно открыть или закрыть доступ ко всем файлам или отдельно прописать, какие файлы можно сканировать, а какие нет.

Требования к robots.txt:

  • файл называется "robots.txt ", название написано только строчными буквами, "Robots.TXT" и другие вариации не поддерживаются;
  • располагается только в корневом каталоге - https://site.com/robots.txt, в подкаталоге быть не может;
  • на сайте в единственном экземпляре;
  • имеет формат.txt;
  • весит до 32 КБ;
  • в ответ на запрос отдает HTTP-код со ;
  • каждый префикс URL на отдельной строке;
  • содержит только латиницу.

Если домен на кириллице, для robots.txt переведите все кириллические ссылки в Punycode с помощью любого Punycode-конвертера: "сайт.рф" - "xn--80aswg.xn--p1ai".

Robots.txt действует для HTTP, HTTPS и FTP, имеет кодировку UTF-8 или ASCII и направлен только в отношении хоста, протокола и номера порта, где находится.

Его можно добавлять к адресам с субдоменами - http://web.site.com/robots.txt или нестандартными портами - http://site.com:8181/robots.txt. Если у сайта несколько поддоменов, поместите файл в корневой каталог каждого из них.

Как исключить страницы из индексации с помощью robots.txt

В файле robots.txt можно запретить ботам индексацию некоторого контента.

User-agent: * Disallow: /about/

Запись формата "Disallow: /about" без закрывающего "/" запретит доступ и к разделу http://site.com/about/, к файлу http://site.com/about.php и к другим ссылкам, которые начинаются с "/about".

Если нужно запретить доступ к нескольким разделам или папкам, для каждого нужна отдельная строка с Disallow:

User-agent: * Disallow: /about Disallow: /info Disallow: /album1

Allow

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

Разрешено сканировать все, что начинается с "/catalog", а все остальное запрещено:

User-agent: * Allow: /catalog Disallow: /

Сканировать файл "photo.html" разрешено, а всю остальную информацию в каталоге /album1/ запрещено:

User-agent: * Allow: /album1/photo.html Disallow: /album1/

Заблокировать доступ к каталогам "site.com/catalog1/" и "site.com/catalog2/" но разрешить к "catalog2/subcatalog1/":

User-agent: * Disallow: /catalog1/ Disallow: /catalog2/ Allow: /catalog2/subcatalog1/

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

Директивы, которые распознают боты Яндекса:

Clean-param

Некоторые страницы дублируются с разными GET-параметрами или UTM-метками, которые не влияют на содержимое. К примеру, если в каталоге товаров использовали сортировку или разные id.

Чтобы отследить, с какого ресурса делали запрос страницы с книгой book_id=123, используют ref:

"www.site. com/some_dir/get_book.pl?ref=site_1& book_id=123"
"www.site. com/some_dir/get_book.pl?ref=site_2& book_id=123"
"www.site. com/some_dir/get_book.pl?ref=site_3& book_id=123"

Страница с книгой одна и та же, содержимое не меняется. Чтобы бот не сканировал все варианты таких страниц с разными параметрами, используют правило Clean-param:

User-agent: Yandex Disallow: Clean-param: ref/some_dir/get_book.pl

Робот Яндекса сведет все адреса страницы к одному виду:

"www.example. com/some_dir/get_book.pl? book_id=123"

Для адресов вида:
"www.example2. com/index.php? page=1&sid=2564126ebdec301c607e5df"
"www.example2. com/index.php? page=1&sid=974017dcd170d6c4a5d76ae"

robots.txt будет содержать:

User-agent: Yandex Disallow: Clean-param: sid/index.php

Для адресов вида

"www.example1. com/forum/showthread.php? s=681498b9648949605&t=8243"
"www.example1. com/forum/showthread.php? s=1e71c4427317a117a&t=8243"

robots.txt будет содержать:

User-agent: Yandex Disallow: Clean-param: s/forum/showthread.php

Если переходных параметров несколько:
"www.example1.com/forum_old/showthread.php?s=681498605&t=8243&ref=1311"
"www.example1.com/forum_new/showthread.php?s=1e71c417a&t=8243&ref=9896"

robots.txt будет содержать:

User-agent: Yandex Disallow: Clean-param: s&ref/forum*/showthread.php


Host

Правило показывает, какое зеркало учитывать при индексации. URL нужно писать без "http://" и без закрывающего слэша "/".

User-agent: Yandex Disallow: /about Host: www.site.com

Сейчас эту директиву уже не используют , если в ваших robots.txt она есть, можно удалять. Вместо нее нужно на всех не главных зеркалах сайта поставить 301 редирект.

Crawl-delay

Раньше частая загрузка страниц нагружала сервер, поэтому для ботов устанавливали Crawl-delay - время ожидания робота в секундах между загрузками. Эту директиву можно не использовать, мощным серверам она не требуется.

Время ожидания - 4 секунды:

User-agent: * Allow: /album1 Disallow: / Crawl-delay: 4

Только латиница

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

User-agent: Yandex Disallow: /каталог

Правильно:

User-agent: Yandex Disallow: /xn--/-8sbam6aiv3a

Пример robots.txt

Запись означает, что правило справедливо для всех роботов: запрещено сканировать ссылки из корзины, из встроенного поиска и админки, карта сайта находится по ссылке http://site.com/ sitemap, ref не меняет содержание страницы get_book:

User-agent: * Disallow: /bin/ Disallow: /search/ Disallow: /admin/ Sitemap: http://site.com/sitemap Clean-param: ref/some_dir/get_book.pl

Инструменты для составления и проверки robots.txt

Составить robots.txt бесплатно поможет , он позволит закрыть или открыть весь сайт для ботов, указать путь к карте сайта, настроить ограничение на посещение страниц, закрыть доступ некоторым роботам и установить задержку:


Графы инструмента для заполнения

Для проверки файла robots.txt на ошибки у поисковиков есть собственные инструменты:

Инструмент проверки файла robots.txt от Google позволит проверить, как бот видит конкретный URL. В поле нужно ввести проверяемый URL, а инструмент покажет, доступна ли ссылка.

Инструмент проверки от Яндекса покажет, правильно ли заполнен файл. Нужно указать сайт, для которого создан robots.txt, и перенести его содержимое в поле.

Файл robots.txt не подходит для блокировки доступа к приватным файлам, но направляет краулеров к карте сайта и дает рекомендации для быстрого сканирования важных материалов ресурса.

В этой статье пример оптимального, на мой взгляд, кода для файла robots.txt под WordPress, который вы можете использовать в своих сайтах.

Для начала, вспомним зачем нужен robots.txt - файл robots.txt нужен исключительно для поисковых роботов, чтобы «сказать» им какие разделы/страницы сайта посещать, а какие посещать не нужно. Страницы, которые закрыты от посещения не будут попадать в индекс поисковиков (Yandex, Google и т.д.).

Вариант 1: оптимальный код robots.txt для WordPress

User-agent: * Disallow: /cgi-bin # классика... Disallow: /? # все параметры запроса на главной Disallow: /wp- # все файлы WP: /wp-json/, /wp-includes, /wp-content/plugins Disallow: *?s= # поиск Disallow: *&s= # поиск Disallow: /search # поиск Disallow: /author/ # архив автора 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 папке и т.д. Allow: /wp-admin/admin-ajax.php #Disallow: /wp/ # когда WP установлен в подкаталог wp Sitemap: http://example.com/sitemap.xml Sitemap: http://example.com/sitemap2.xml # еще один файл #Sitemap: http://example.com/sitemap.xml.gz # сжатая версия (.gz) # Версия кода: 1.1 # Не забудьте поменять `site.ru` на ваш сайт.

Разбор кода:

    В строке 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: .

    Остальные строчки запрещают роботам "ходить" по ссылкам, которые начинаются с:

    • Disallow: /cgi-bin - закрывает каталог скриптов на сервере
    • Disallow: /feed - закрывает RSS фид блога
    • Disallow: /trackback - закрывает уведомления
    • Disallow: ?s= или Disallow: *?s= - закрыавет страницы поиска
    • Disallow: */page/ - закрывает все виды пагинации
  1. Правило Sitemap: http://example.com/sitemap.xml указывает роботу на файл с картой сайта в формате XML. Если у вас на сайте есть такой файл, то пропишите полный путь к нему. Таких файлов может быть несколько, тогда указываем путь к каждому отдельно.

    В строке Host: site.ru мы указываем главное зеркало сайта. Если у сайта существуют зеркала (копии сайта на других доменах), то чтобы Яндекс индексировал всех их одинаково, нужно указывать главное зеркало. Директива Host: понимает только Яндекс, Google не понимает! Если сайт работает под https протоколом, то его обязательно нужно указать в Host: Host: http://example.com

    Из документации Яндекса: «Host - независимая директива и работает в любом месте файла (межсекционная)». Поэтому её ставим наверх или в самый конец файла, через пустую строку.

Потому что наличие открытых фидов требуется например для Яндекс Дзен, когда нужно подключить сайт к каналу (спасибо комментатору «Цифровой»). Возможно открытые фиды нужны где-то еще.

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

Директива Host для Яндекса больше не нужна

Яндекс полностью отказывается от директивы Host, её заменил 301 редирект. Host можно смело удалять из robots.txt . Однако важно, чтобы на всех зеркалах сайта стоял 301 редирект на главный сайт (главное зеркало).

Это важно: сортировка правил перед обработкой

Yandex и Google обрабатывает директивы Allow и Disallow не по порядку в котором они указаны, а сначала сортирует их от короткого правила к длинному, а затем обрабатывает последнее подходящее правило:

User-agent: * Allow: */uploads Disallow: /wp-

будет прочитана как:

User-agent: * Disallow: /wp- Allow: */uploads

Чтобы быстро понять и применять особенность сортировки, запомните такое правило: «чем длиннее правило в robots.txt, тем больший приоритет оно имеет. Если длина правил одинаковая, то приоритет отдается директиве Allow.»

Вариант 2: стандартный robots.txt для WordPress

Не знаю кто как, а я за первый вариант! Потому что он логичнее - не надо полностью дублировать секцию ради того, чтобы указать директиву Host для Яндекса, которая является межсекционной (понимается роботом в любом месте шаблона, без указания к какому роботу она относится). Что касается нестандартной директивы Allow , то она работает для Яндекса и Гугла и если она не откроет папку uploads для других роботов, которые её не понимают, то в 99% ничего опасного это за собой не повлечет. Я пока не заметил что первый robots работает не так как нужно.

Вышеприведенный код немного не корректный. Спасибо комментатору " " за указание на некорректность, правда в чем она заключалась пришлось разбираться самому. И вот к чему я пришел (могу ошибаться):

    Некоторые роботы (не Яндекса и Гугла) - не понимают более 2 директив: User-agent: и Disallow:

  1. Директиву Яндекса Host: нужно использовать после Disallow: , потому что некоторые роботы (не Яндекса и Гугла), могут не понять её и вообще забраковать robots.txt. Cамому же Яндексу, судя по документации , абсолютно все равно где и как использовать Host: , хоть вообще создавай robots.txt с одной только строчкой Host: www.site.ru , для того, чтобы склеить все зеркала сайта.

3. Sitemap: межсекционная директива для Яндекса и Google и видимо для многих других роботов тоже, поэтому её пишем в конце через пустую строку и она будет работать для всех роботов сразу.

На основе этих поправок, корректный код должен выглядеть так:

User-agent: Yandex Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins Disallow: /wp-json/ Disallow: /wp-login.php Disallow: /wp-register.php Disallow: */embed Disallow: */page/ Disallow: /cgi-bin Disallow: *?s= Allow: /wp-admin/admin-ajax.php Host: site.ru User-agent: * Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins Disallow: /wp-json/ Disallow: /wp-login.php Disallow: /wp-register.php Disallow: */embed Disallow: */page/ Disallow: /cgi-bin Disallow: *?s= Allow: /wp-admin/admin-ajax.php Sitemap: http://example.com/sitemap.xml

Дописываем под себя

Если вам нужно запретить еще какие-либо страницы или группы страниц, можете внизу добавить правило (директиву) Disallow: . Например, нам нужно закрыть от индексации все записи в категории news , тогда перед Sitemap: добавляем правило:

Disallow: /news

Оно запретить роботам ходить по подобным ссылками:

  • http://example.com/news
  • http://example.com/news/drugoe-nazvanie/

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

Disallow: */news

  • http://example.com/news
  • http://example.com/my/news/drugoe-nazvanie/
  • http://example.com/category/newsletter-nazvanie.html

Подробнее изучить директивы robots.txt вы можете на странице помощи Яндекса (но имейте ввиду, что не все правила, которые описаны там, работают для Google).

Проверка robots.txt и документация

Проверить правильно ли работают прописанные правила можно по следующим ссылкам:

  • Яндекс: http://webmaster.yandex.ru/robots.xml .
  • В Google это делается в Search console . Нужна авторизация и наличия сайта в панели веб-мастера...
  • Сервис для создания файла robots.txt: http://pr-cy.ru/robots/
  • Сервис для создания и проверки robots.txt: https://seolib.ru/tools/generate/robots/

Я спросил у Яндекса...

Задал вопрос в тех. поддержку Яндекса насчет межсекционного использования директив 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://example.com/sitemap.xml

Поймет ли робот в данном примере директиву Sitemap?

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

Ответ:

Здравствуйте!

Директивы Host и Sitemap являются межсекционными, поэтому будут использоваться роботом вне зависимости от места в файле robots.txt, где они указаны.

--
С уважением, Платон Щукин
Служба поддержки Яндекса

Заключение

Важно помнить, что изменения в robots.txt на уже рабочем сайте будут заметны только спустя несколько месяцев (2-3 месяца).

Ходят слухи, что Google иногда может проигнорировать правила в robots.txt и взять страницу в индекс, если сочтет, что страница ну очень уникальная и полезная и она просто обязана быть в индексе. Однако другие слухи опровергают эту гипотезу тем, что неопытные оптимизаторы могут неправильно указать правила в robots.txt и так закрыть нужные страницы от индексации и оставить ненужные. Я больше склоняюсь ко второму предположению...

Динамический robots.txt

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

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

Для этого добавьте следующий код в файл functions.php:

Add_action("do_robotstxt", "my_robotstxt"); function my_robotstxt(){ $lines = [ "User-agent: *", "Disallow: /wp-admin/", "Disallow: /wp-includes/", "", ]; echo implode("\r\n", $lines); die; // обрываем работу PHP }

User-agent: * Disallow: /wp-admin/ Disallow: /wp-includes/

Crawl-delay - таймаут для сумасшедших роботов (с 2018 года не учитывается)

Яндекс

Проанализировав письма за последние два года в нашу поддержку по вопросам индексирования, мы выяснили, что одной из основных причин медленного скачивания документов является неправильно настроенная директива 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

Робот Google не понимает директиву Crawl-delay . Таймаут его роботам можно указать в панели вебмастера.

На сервисе avi1.ru Вы можете уже сейчас приобрести продвижение SMM более чем в 7 самых популярных социальных сетях. При этом обратите внимание на достаточно низкую стоимость всех услуг сайта.

Файл sitemap.xml и правильный robots.txt для сайта - это два обязательных документа, которые способствуют быстрому и полноценному индексированию всех необходимых страниц веб-ресурса поисковыми роботами. Правильная индексация сайта в Яндексе и Google - залог успешного продвижения блога в поисковых системах.

Как сделать карту сайта в формате XML и для чего она нужна я уже писал . А сейчас давайте поговорим о том, как создать правильный robots.txt для сайта на Вордпресс и для чего он вообще нужен. Подробную информацию об этом файле можно получить у самих Яндекса и Гугла, соответственно и . Я же коснусь самой сути и затрону основные настройки robots.txt для WordPress на примере своего файла.

Зачем нужен файл robots.txt для сайта

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

Правильная настройка robots.txt позволит:

  • исключить из индекса дубликаты и различные мусорные страницы;
  • наложить запрет на индексацию страниц, файлов и папок, которые мы хотим скрыть;
  • вообще отказать в индексации некоторым поисковым роботам (например, Yahoo, чтобы скрыть от конкурентов информацию о входящих ссылках);
  • указать главное зеркало сайта (с www или без www);
  • указать путь к карте сайта sitemap.xml.

Как создать правильный robots.txt для сайта

Для этой цели существуют специальные генераторы и плагины, но правильнее это сделать вручную.

Надо просто создать обычный текстовый файл с названием robots.txt, воспользовавшись любым текстовым редактором (например, Блокнотом или Notepad++) и загрузить его на хостинг в корневую папку блога. В этом файле надо прописать определенные директивы, т.е. правила индексации для роботов Яндекса, Гугла и др.

Если лень заморачиваться с этим, то ниже я приведу пример, с моей точки зрения, правильного robots.txt для WordPress с моего блога. Можно использовать его, заменив имя домена в трех местах.

Правила создания и директивы robots.txt

Для успешной поисковой оптимизации блога надо знать некоторые правила создания robots.txt:

  • Отсутствие или пустой файл robots.txt будет означать, что поисковикам разрешено индексировать все содержание веб-ресурса.
  • robots.txt должен открываться по адресу ваш сайт.ru/robots.txt , отдавая роботу код ответа 200 OK и иметь размер не более 32 Кб. Файл, который не удастся открыть (например, из-за 404 ошибки) или большего размера, будет считаться разрешающим.
  • Количество директив в файле не должно быть больше 1024. Длина одной строки – не более 1024 символов.
  • Правильный файл robots.txt может иметь несколько инструкций, каждая из которых должна начинаться с директивы User-agent и должна содержать хотя бы одну директиву Disallow. Обычно пишут инструкции в robots.txt для Google и всех остальных роботов и отдельно для Яндекса.

Основные директивы robots.txt:

User-agent – указывает, какому поисковому роботу адресована инструкция.

Символ “*” означает, что это относится ко всем роботам, например:

User-agent: *

Если нам надо создать правило в robots.txt для Яндекса, то пишем:

User-agent: Yandex

Если указана директива для конкретного робота, директива User-agent: * ним не учитывается.

Disallow и Allow – соответственно, запрещают и разрешают роботам индексацию указанных страниц. Все адреса надо указывать от корня сайта, т.е. начиная с третьего слеша. Например:

  • Запрет индексации всего сайта всем роботам:

    User-agent: *
    Disallow: /

  • Запрещено индексировать Яндексу все страницы, начинающиеся с /wp-admin:

    User-agent: Yandex
    Disallow: /wp-admin

  • Пустая директива Disallow разрешает индексировать все и аналогична Allow. Например, разрешаю индексировать Яндексу весь сайт:

    User-agent: Yandex
    Disallow:

  • И наоборот, запрещаю индексировать все страницы всем поисковым роботам:

    User-agent: *
    Allow:

  • Директивы Allow и Disallow из одного блока User-agent сортируются по длине префикса URL и выполняются последовательно. Если для одной страницы сайта подходит несколько директив, то выполняется последняя в списке. Теперь на использование директив роботом порядок их написания не имеет значения. Если у директив префиксы одинаковой длины, то первой выполняется Allow. Такие правила вступили в силу с 8.03.12 года. Например, разрешает индексировать только страницы начинающиеся с /wp-includes:

    User-agent: Yandex
    Disallow: /
    Allow: /wp-includes

Sitemap – указывает адрес карты сайта XML. На одном сайте может быть несколько директив Sitemap, которые могут быть вложенными. Все адреса файлов Sitemap надо указать в robots.txt, чтобы ускорить индексацию сайта:

Sitemap: http://сайт/sitemap.xml.gz
Sitemap: http://сайт/sitemap.xml

Host – сообщает роботу-зеркальщику, какое зеркало сайта считать главным.

Если сайт доступен по нескольким адресам (например, с www и без www), то это создает полные дубли страниц, за которые можно попасть под фильтр. Также, в этом случае, может быть проиндексирована не основная страница, а основная, наоборот, будет исключена из индекса поисковой системы. Чтобы этого не допустить служит директива Host, которая предназначена в файле robots.txt только для Яндекса и может быть только одна. Пишется она после Disallow и Allow и выглядит так:

Host: сайт

Crawl-delay – задает задержку между закачкой страниц в секундах. Используется, если идет большая нагрузка и сервер не успевает обрабатывать запросы. На молодых сайтах лучше директиву Crawl-delay не использовать. Пишется она так:

User-agent: Yandex
Crawl-delay: 4

Clean-param – поддерживается только Яндексом и служит для устранения дубликатов страниц с переменными, склеивая их в одну. Тем самым робот Яндекса не будет много раз закачивать похожие страницы, например, связанные с реферальными ссылками. Я пока этой директивой не пользовался, но в помощи по robots.txt для Яндекса, по ссылке в начале статьи, можно ознакомиться с этой директивой подробно.

Спецсимволы * и $ используются в robots.txt для указания путей директив Disallow и Allow:

  • Спецсимвол “*” означает любую последовательность символов. Например, Disallow: /*?* означает запрет на любые страницы, где в адресе встречается “?”, не зависимо от того, какие символы идут до и после этого знака. По умолчанию спецсимвол “*” добавляется к концу каждого правила, даже если он не прописан специально.
  • Символ “$” отменяет “*” на конце правила и означает строгое соответствие. Например, директива Disallow: /*?$ будет запрещать индексацию страниц, заканчивающихся знаком “?”.

Пример robots.txt для WordPress

Вот пример моего файла robots.txt для блога на движке Вордпресс:

User-agent: * Disallow: /cgi-bin Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins Disallow: /wp-content/cache Disallow: /wp-content/themes Disallow: /trackback Disallow: */trackback Disallow: */*/trackback Disallow: /feed/ Disallow: */*/feed/*/ Disallow: */feed Disallow: /*?* Disallow: /?s= User-agent: Yandex Disallow: /cgi-bin Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins Disallow: /wp-content/cache Disallow: /wp-content/themes Disallow: /trackback Disallow: */trackback Disallow: */*/trackback Disallow: /feed/ Disallow: */*/feed/*/ Disallow: */feed Disallow: /*?* Disallow: /?.ru/sitemap.xml..xml

User-agent: * Disallow: /cgi-bin Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins Disallow: /wp-content/cache Disallow: /wp-content/themes Disallow: /trackback Disallow: */trackback Disallow: */*/trackback Disallow: /feed/ Disallow: */*/feed/*/ Disallow: */feed Disallow: /*?* Disallow: /?s= User-agent: Yandex Disallow: /cgi-bin Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins Disallow: /wp-content/cache Disallow: /wp-content/themes Disallow: /trackback Disallow: */trackback Disallow: */*/trackback Disallow: /feed/ Disallow: */*/feed/*/ Disallow: */feed Disallow: /*?* Disallow: /?.ru/sitemap.xml..xml

Чтобы не морочить себе голову с созданием правильного robots.txt для WordPress, можете использовать этот файл. Проблем с индексацией нет. У меня стоит скрипт защиты от копирования, поэтому будет удобнее готовый robots.txt скачать и загрузить его на свой хостинг. Только не забудьте заменить имя моего сайта на свое в директивах Host и Sitemap.

Полезные дополнения по правильной настройке файла robots.txt для WordPress

Если на вашем блоге Вордпресс установлены древовидные комментарии, то они создают дубли страниц вида ?replytocom= . В robots.txt такие страницы закрыты директивой Disallow: /*?* . Но это не выход и запреты лучше удалить, а с replytocom бороться другим способом. Каким, .

Таким образом, актуальный robots.txt на июль 2014 года выглядит так:

User-agent: * Disallow: /wp-includes Disallow: /wp-feed Disallow: /wp-content/plugins Disallow: /wp-content/cache Disallow: /wp-content/themes User-agent: Yandex Disallow: /wp-includes Disallow: /wp-feed Disallow: /wp-content/plugins Disallow: /wp-content/cache Disallow: /wp-content/themes Host: site.ru User-agent: Googlebot-Image Allow: /wp-content/uploads/ User-agent: YandexImages Allow: /wp-content/uploads/ Sitemap: http://site.ru/sitemap.xml

User-agent: * Disallow: /wp-includes Disallow: /wp-feed Disallow: /wp-content/plugins Disallow: /wp-content/cache Disallow: /wp-content/themes User-agent: Yandex Disallow: /wp-includes Disallow: /wp-feed Disallow: /wp-content/plugins Disallow: /wp-content/cache Disallow: /wp-content/themes Host: site.ru User-agent: Googlebot-Image Allow: /wp-content/uploads/ User-agent: YandexImages Allow: /wp-content/uploads/ Sitemap: http://site.ru/sitemap.xml

В нем дополнительно прописаны правила для роботов-индесаторов картинок.

User-agent: Mediapartners-Google
Disallow:

Если вы планируете продвигать страницы категорий или тегов, то стоит их открыть для роботов. Например, на блоге сайт рубрики не закрыты от индексации, так как в них публикуются только небольшие анонсы статей, что совсем незначительно в плане дублирования контента. А если использовать вывод цитат в ленту блога, которые заполнять уникальными анонсами, то дублирования вообще не будет.

Если вы не используете указанный выше плагин, то можно указать в файле robots.txt запрет индексации тегов, категорий и архивов. Например, добавив такие строчки:

Disallow: /author/
Disallow: /tag
Disallow: /category/*/*
Disallow: /20*

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

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