Практические решения закрытия сайта или его части от индексации

Что будет если закрыть индексацию

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

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

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

Оставить страницы пагинации в индексе

Лично мне нравится такой вариант больше всех, и я использую его на своих личных проектах.

И если мы решили оставить страницы пагинации, нам надо выполнить несколько важных условий:

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

  1. Надо ли менять h1 на страницах пагинации? Вопрос интересный, но лично я этого не делаю, я дублирую на всех страницах навигации один и тот же заголовок (в отличие от дублирования title — это не есть нарушение). И в целом очень редко встречаю сайты, где в H1 добавляется приставка «- страница X». Это не хорошо и не плохо, можете делать так, как вам нравится.
  2. Надо ли использовать атрибуты <link rel=»prev» href=»…»/> и <link rel=»next» href=»…»/>? Раньше Google поддерживал эти теги и рекомендовал их использовать для страниц пагинации, но весной 2019 года внезапно сообщили, мол: «Мы упразднили атрибуты rel=prev/next, потому что исследования показали, что пользователи любят одностраничный контент».

    Это заявление не запрещает использовать данные директивы, но и поисковик их учитывать больше не будет. Что касается Яндекса, то он никогда и не поддерживал атрибуты next и prev, о чем свидетельствует комментарий Платона от 2018 года:

    Учитывая, что сама публикация, к которой оставлен данный комментарий, датирована 2015 годом и вопрос об next и prev там поднимался не раз, вряд ли что-то изменится когда-либо. Поэтому целенаправленно настраивать данные атрибуты не нужно, но и удалять, если ваш движок их выводит, нет смысла.

  3. Последнее, с чем осталось разобраться, если мы решили оставить страницы пагинации открытыми для индексации – надо ли уникализировать метатег description? Лично я вообще удаляю этот метатег со страниц пагинации, чтобы его не было в коде. Как вариант – можно оставить его пустым. Еще один вариант – добавлять в него приставку «- страница X», как для title. Выбирайте то, что вам больше нравится, любой из этих вариантов приемлемый.

Теперь я объясню, почему я выбираю для себя вариант держать пагинацию открытой для поисковиков.

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

Закрываем блок на сайте от индекса

Довольно часто требуется закрыть от индексации определенный блок: меню, счетчик, текст или какой-нибудь код.

Когда был популярен в основном Яндекс, а Google все само как то в топ выходило, все использовали вариант Тег «noindex»

<noindex>Все что угодно тут - ссылки или текст или код</noindex>

Но потом Яндекс все чаще и чаще стал не обращать внимания на такой технический прием, а Google вообще не понимает такой комбинации и все стали использовать другую схему для скрытия от индексации части текста на странице — с помощью javascript:

Текст или любой блок — кодируется в javascript , а потом сам скрипт закрывается от индексации в robots.txt

Как это реализовать?

Нам понадобится:

  • Файл BASE64.js для декодирования того, что нужно скрыть.
  • Алгоритм SEOhide.js.
  • Jquery.
  • Robots.txt (чтобы скрыть от индексации сам файл SEOhide.js)
  • HTML код

Рассмотрим подробнее:

BASE64.js. Здесь я его приводить не буду, в данном контексте он нам не так интересен.

</pre>
<pre class="html">$(function(){
	var seoContent = {"de96dd3df7c0a4db1f8d5612546acdbb":"0JHQu9C+0LMgU0VPINC80LDRgNC60LXRgtC+0LvQvtCz0LAgLSDQn9Cw0LLQu9CwINCc0LDQu9GM0YbQtdCy0LAu",
	"54cdc704188eee4573d9e6cafe5f708a":"0JfQsNGF0L7QtNC40YLQtSwg0YfQuNGC0LDQudGC0LUsINC/0L7QtNC/0LjRgdGL0LLQsNC50YLQtdGB0YwsINGA0LDRgdGB0LrQsNC30YvQstCw0LnRgtC1INC00YDRg9C30YzRj9C8ICk="};
	var seoHrefs = {"43b7c3097587757d49558bdff19a8fcb":"aHR0cDovL2luZXRydS5ydQ=="};
	var $elements = $("");
	for(var i = 0, count = $elements.length; i < count; i++) {
		var $element = $elements.eq(i);
		var key = $element.data("key");
		switch($element.data("type")) {
			case "href":
				$element.attr("href", Base64.decode(seoHrefs));
				break;
			case "content":
				$element.replaceWith(Base64.decode(seoContent));
				break;
		}
	}
	$(document).trigger( "renderpage.finish");
});</pre>
<pre>

Переменные seoContent и seoHrefs. В одну записываем html код, в другую ссылки.

    • de96dd3df7c0a4db1f8d5612546acdbb — это идентификатор, по которому будет осуществляться замена.
    • 0JHQu9C+0LMgU0VPINC80LDRgNC60LXRgtC+0LvQvtCz0LAgLSDQn9Cw0LLQu9CwINCc0LDQu9GM0YbQtdCy0LAu— html, который будет отображаться для объявленного идентификатора.

И сам HTML файл:

</pre>
<pre class="html"><span data-key="de96dd3df7c0a4db1f8d5612546acdbb" data-type="content"></span><br />
<span data-key="54cdc704188eee4573d9e6cafe5f708a" data-type="content"></span><br />
<a href="#" data-key="43b7c3097587757d49558bdff19a8fcb" data-type="href">Перейти</a></pre>
&nbsp;
<pre>

В robots.txt обязательно скрываем от индексации файл SEOhide.js.

Пять причин для запрета индексации!

  1. Полное индексирование создаёт лишнюю нагрузку на ваш сервер.
  2. Отнимает драгоценное время самого робота.
  3. Пожалуй это самое главное, некорректная информация может быть неправильно интерпретирована поисковыми системами. Это приведет к неправильному ранжированию статей и страниц, а в последствии и к некорректной выдаче в результатах поиска.
  4. Папки с шаблонами и плагинами содержат огромное количество ссылок на сайты создателей и рекламодателей. Это очень плохо для молодого сайта, когда на ваш сайт ссылок из вне еще нет или очень мало.
  5. Индексируя все копии ваших статей в архивах и комментариях, у поисковика складывается плохое мнение о вашем сайте. Много дублей. Много исходящих ссылок Поисковая машина будет понижать ваш сайт в результатах поиска в плоть до фильтра. А картинки, оформленные в виде отдельной статьи с названием и без текста, приводят робота просто в ужас. Если их очень много, то сайт может загреметь под фильтр АГС Яндекса. Мой сайт там был. Проверено!

Теперь после всего сказанного возникает резонный вопрос: «А можно ли как то запретить индексировать то что не надо?». Оказывается можно. Хотя бы не в приказном порядке, а в рекомендательном. Ситуация не полного запрета индексации некоторых объектов возникает из-за файла sitemap.xml, который обрабатывается после robots.txt. Получается так: robots.txt запрещает, а sitemap.xml разрешает. И всё же решить эту задачу мы можем. Как это сделать правильно сейчас и рассмотрим.

robots.txt для wordpress

Файл robots.txt для wordpress по умолчанию динамический и реально в wordpress не существует. А генерируется только в тот момент, когда его кто-то запрашивает, будь это робот или просто посетитель. То есть если через FTP соединение вы зайдете на сайт, то в корневой папке файла robots.txt для wordpress вы там просто не найдете. А если в браузере укажите его конкретный адрес http://название_вашего_сайта/robots.txt, то на экране получите его содержимое, как будто файл существует. Содержимое этого сгенерированного файла robots.txt для wordpress будет такое:

User-agent: *

В правилах составления файла robots.txt по умолчанию разрешено индексировать всё. Директива User-agent: * указывает на то, что все последующие команды относятся ко всем поисковым агентам ( * ). Но далее ничего не ограничивается.  И как вы понимаете этого не достаточно. Мы с вами уже обсудили папок и записей, имеющих ограниченный доступ, достаточно много.

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

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

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

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

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

  • файл называется «robots.txt», название написано только строчными буквами, «Robots.TXT» и другие вариации не поддерживаются;
  • располагается только в корневом каталоге — https://site.com/robots.txt, в подкаталоге быть не может;
  • на сайте в единственном экземпляре;
  • имеет формат .txt;
  • весит до 32 КБ;
  • в ответ на запрос отдает HTTP-код со статусом 200 ОК;
  • каждый префикс 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 можно запретить ботам индексацию некоторого контента.

Яндекс поддерживает
стандарт исключений для роботов (Robots Exclusion Protocol). Веб-мастер может скрыть содержимое от индексирования ботами Яндекса, указав директиву «disallow». Тогда при очередном посещении сайта робот загрузит файл robots.txt, увидит запрет и проигнорирует страницу. Другой вариант убрать страницу из индекса — прописать в HTML-коде мета-тег «noindex» или «none».

Google предупреждает, что robots.txt не предусмотрен для блокировки показа страниц в результатах выдачи. Он позволяет запретить индексирование только некоторых типов контента: медиафайлов, неинформативных изображений, скриптов или стилей. Исключить страницу из выдачи Google можно с помощью пароля на сервере или элементов HTML — «noindex» или атрибута «rel» со значением «nofollow».

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

Закройте доступ к странице паролем или «nofollow» , если не хотите, чтобы она попала в выдачу Google. Если этого не сделать, ссылка попадет в результаты но будет выглядеть так:

Доступная для пользователей ссылка

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

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

Если нет доступа к robots.txt

Если вы не имеете доступа к robots.txt и не знаете, доступна ли страница в Google или Яндекс, введите ее URL в строку поиска.

На некоторых сторонних платформах управлять файлом robots.txt нельзя. К примеру, сервис Wix автоматически создает robots.txt для каждого проекта на платформе. Вы сможете посмотреть файл, если добавите в конец домена «/robots.txt».

В файле будут элементы, которые относятся к структуре сайтов на этой платформе, к примеру «noflashhtml» и «backhtml». Они не индексируются и никак не влияют на SEO.

Если нужно удалить из выдачи какие-то из страниц ресурса на Wix, используйте «noindex».

robots.txt в WordPress

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

Изменить содержание robots.txt можно через:

  • Хук robots_txt.
  • Хук do_robotstxt.

Рассмотрим как использовать оба хука.

По умолчанию WP 5.5 создает следующий контент для страницы :

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: http://example.com/wp-sitemap.xml

Смотрите do_robots() — как работает динамическое создание файла robots.txt.

Этот хук позволяет дополнить уже имеющиеся данные файла robots.txt. Код можно вставить в файл темы functions.php.

// Дополним базовый robots.txt
// -1 before wp-sitemap.xml
add_action( 'robots_txt', 'wp_kama_robots_txt_append', -1 );

function wp_kama_robots_txt_append( $output ){

	$str = '
	Disallow: /cgi-bin             # Стандартная папка на хостинге.
	Disallow: /?                   # Все параметры запроса на главной.
	Disallow: *?s=                 # Поиск.
	Disallow: *&s=                 # Поиск.
	Disallow: /search              # Поиск.
	Disallow: /author/             # Архив автора.
	Disallow: */embed              # Все встраивания.
	Disallow: */page/              # Все виды пагинации.
	Disallow: */xmlrpc.php         # Файл WordPress API
	Disallow: *utm*=               # Ссылки с utm-метками
	Disallow: *openstat=           # Ссылки с метками openstat
	';

	$str = trim( $str );
	$str = preg_replace( '/^+(?!#)/mU', '', $str );
	$output .= "$str\n";

	return $output;
}

В результате перейдем на страницу и видим:

User-agent: *
Disallow: /wp/wp-admin/
Allow: /wp/wp-admin/admin-ajax.php
Disallow: /cgi-bin             # Стандартная папка на хостинге.
Disallow: /?                   # Все параметры запроса на главной.
Disallow: *?s=                 # Поиск.
Disallow: *&s=                 # Поиск.
Disallow: /search              # Поиск.
Disallow: /author/             # Архив автора.
Disallow: */embed              # Все встраивания.
Disallow: */page/              # Все виды пагинации.
Disallow: */xmlrpc.php         # Файл WordPress API
Disallow: *utm*=               # Ссылки с utm-метками
Disallow: *openstat=           # Ссылки с метками openstat

Sitemap: http://wptest.ru/wp-sitemap.xml

Обратите внимание, что мы дополнили родные данные ВП, а не заменили их. Этот хук позволяет полностью заменить контент страницы

Этот хук позволяет полностью заменить контент страницы .

add_action( 'do_robotstxt', 'wp_kama_robots_txt' );

function wp_kama_robots_txt(){

	$lines = [
		'User-agent: *',
		'Disallow: /wp-admin/',
		'Disallow: /wp-includes/',
		'',
	];

	echo implode( "\r\n", $lines );

	die; // обрываем работу PHP
}
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/

Запрещаем индексацию сайта

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

При помощи robots.txt

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

User-agent: * Disallow: /

Таким образом вы запрещаете индексацию для любой поисковой системы. Но есть возможность запрета и для конкретного поисковика, к примеру, Яндекса.

User-agent: Yandex Disallow: /

Подробнее о синтаксисе и работе с файлом robots.txt — https://dh-agency.ru/category/vnutrennyaya-optimizaciya/robots-txt/

При помощи тэгов

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

<meta name=»robots» content=»noindex»>

Данный тэг необходимо разместить на каждой странице Вашего сайта.

Параметр поля «name» зависит от робота, к которому Вы обращаетесь. К примеру, если речь идет о роботе Google, то данный тэг будет выглядеть следующим образом:

<meta name=»googlebot» content=»noindex»>

О том, какие значения может принимать параметр «content», читайте .

Что такое индексация сайта

Опубликованный на страницах сайтов контент собирается заранее и хранится в базе данных поисковой системы.

Называется эта база данных Индексом (Index), а собственно процесс сбора информации в сети с занесением в базу ПС называется «индексацией».

Продвинутые пользователи мгновенно сообразят, получается, что если текст на странице сайта не занесен в Индекс поисковика, так эта информация не может быть найдена и контент не станет доступен людям?

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

В плане индексации Google работает несколько быстрее нашего Яндекса.

  • Публикация на сайте станет доступна в поиске Гугл через несколько часов. Иногда индексация происходит буквально в считанные минуты.
  • В Яндексе процесс сбора информации относительно нового контента в интернете происходит значительно медленнее. Иногда новая публикация на сайте или блоге появляется в Яндексе через две недели.

Чтобы ускорить появление вновь опубликованного контента, администраторы сайтов могут вручную добавить URL новых страниц в инструментах Яндекса для веб-мастеров. Однако и это не гарантирует, что новая статья немедленно появится в интернете.

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

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

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

Давайте разберемся, как задачу управления индексацией решить практически.

Как поисковики сканируют страницу

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

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

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

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

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

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

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

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

Для чего нужен запрет индексации

Существует множество причин для полного и частичного запрета. Разберем по порядку.

  1. Нежелание участвовать в поиске. Самая банальная причина. Вы просто не хотите, что бы сайт участвовал в результатах поиска.

  2. Сайт находится в разработке. Робот индексирует сайт всегда, вне зависимости от того, находится он в разработке или уже закончен.
    Поэтому, если работы проводятся не на локальном хостинге, то необходимо запретить поисковым системам индексировать сайт до тех пор, пока он не будет готов. Вот лишь ряд причин, почему необходимо скрывать от поисковика все, что еще не доделали.

    • В процессе разработки размещается демо контент, уникальность которого крайне низка. Видеть такой материал поисковая система не должна.

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

    • Во время технических работ появляется множество дублей страниц. Нельзя допустить попадания их в индекс.

    • Ряд других технических причин.

  3. Информация не для поиска. На любом сайте существуют страницы и разделы, которые не должны участвовать в поиске. К ним относится система управления сайта, результаты вычислений, дубликаты URL, неуникальный контент, не индексируемые документы и т.д.

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

Страницы сайта

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

Сразу перечислим страницы, которые целесообразно прятать:

– страницы оформления заявок, корзины пользователей;
– результаты поиска по сайту;
– личная информация пользователей;
– страницы результатов сравнения товаров и подобных вспомогательных модулей;
– страницы, генерируемые фильтрами поиска и сортировкой;
– страницы административной части сайта;
– версии для печати.

Рассмотрим способы, которыми можно закрыть страницы от индексации.

Закрыть в  robots.txt

Это не самый лучший метод.

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

Во-вторых, запрет в файле robots не является гарантией того, что страница не попадёт в индекс.

Вот что Google пишет об этом в своей справке:

Работе с файлом robots.txt посвящена статья в блоге Siteclinic «Гайд по robots.txt: создаём, настраиваем, проверяем».

Метатег noindex

Чтобы гарантированно исключить страницы из индекса, лучше использовать этот метатег.

Рекомендации по синтаксису у Яндекса и Google отличаются.

Ниже приведём вариант метатега, который понимают оба поисковика:

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

Важный момент!

Чтобы Googlebot увидел метатег noindex, нужно открыть доступ к страницам, закрытым в файле robots.txt. Если этого не сделать, робот может просто не зайти на эти страницы.

Выдержка из рекомендаций Google:

Заголовки X-Robots-Tag

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

Этот метод не очень распространён в Рунете. Полагаем, основная причина такой ситуации в том, что Яндекс этот метод долгое время не поддерживал.
В этом году сотрудники Яндекса написали, что метод теперь поддерживается.

Ответ поддержки подробным не назовёшь))). Прежде чем переходить на запрет индексации, используя X-Robots-Tag, лучше убедиться в работе этого способа под Яндекс. Свои эксперименты на эту тему мы пока не ставили, но, возможно, сделаем в ближайшее время.

Подробные рекомендации по использованию заголовков X-Robots-Tag от Google.

Защита с помощью пароля

Этот способ Google рекомендует, как наиболее надёжный метод спрятать конфиденциальную информацию на сайте.

Если нужно скрыть весь сайт, например, тестовую версию, также рекомендуем использовать именно этот метод. Пожалуй, единственный недостаток – могут возникнуть сложности в случае необходимости просканировать домен, скрытый под паролем.

Исключить появление мусорных страниц c помощью AJAX

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

Например, если пользователь выбрал в фильтре поиска набор параметров, под которые вы не создавали отдельную страницу, изменения в товарах, отображаемых на странице, происходит без изменения самого URL.

Сложность этого метода в том, что обычно его нельзя применить сразу для всех случаев. Часть формируемых страниц используется для продвижения.

Например, страницы фильтров. Для «холодильник + Samsung + белый» нам нужна страница, а для «холодильник + Samsung + белый + двухкамерный + no frost» – уже нет.

Поэтому нужно делать инструмент, предполагающий создание исключений. Это усложняет задачу программистов.

Использовать методы запрета индексации от поисковых алгоритмов

«Параметры URL» в Google Search Console

Этот инструмент позволяет указать, как идентифицировать появление в URL страниц новых параметров.

Директива Clean-param в robots.txt

В Яндексе аналогичный запрет для параметров URL можно прописать, используя директиву Clean-param.
Почитать об этом можно .

Канонические адреса, как профилактика появления мусорных страниц на сайте
Этот метатег был создан специально для борьбы с дублями и мусорными страницами на сайте. Мы рекомендуем прописывать его на всём сайте, как профилактику появления в индексе дубле и мусорных страниц.

Инструменты точечного удаления страниц из индекса Яндекса и Google

Если возникла ситуация, когда нужно срочно удалить информацию из индекса, не дожидаясь, пока ваш запрет увидят поисковые работы, можно использовать инструменты из панели Яндекс.Вебмастера и Google Search Console.

В Яндексе это «Удалить URL»:

В Google Search Console «Удалить URL-адрес»:

Нестандартные Директивы

Google не понимаю эту директиву. Указывает роботу, что URL страницы содержит GET-параметры, которые не нужно учитывать при индексировании. Такими параметрами могут быть идентификаторы сессий, пользователей, метки UTM, т.е. все то что не влияет на содержимое страницы.

Заполняйте директиву Clean-param максимально полно и поддерживайте ее актуальность. Новый параметр, не влияющий на контент страницы, может привести к появлению страниц-дублей, которые не должны попасть в поиск. Из-за большого количества таких страниц робот медленнее обходит сайт. А значит, важные изменения дольше не попадут в результаты поиска. Робот Яндекса, используя эту директиву, не будет многократно перезагружать дублирующуюся информацию. Таким образом, увеличится эффективность обхода вашего сайта, снизится нагрузка на сервер.

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

example.com/dir/bookname?ref=site_1
example.com/dir/bookname?ref=site_2
example.com/dir/bookname?ref=site_3

Если указать директиву следующим образом:

User-agent: Yandex
Clean-param: ref /dir/bookname

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

example.com/dir/bookname

Пример очистки нескольких параметров сразу: и :

Clean-param: ref&sort /dir/bookname

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

User-agent: Yandex
Disallow: /wp-admin
Disallow: /wp-includes
Crawl-delay: 1.5

User-agent: *
Disallow: /wp-admin
Disallow: /wp-includes
Allow: /wp-*.gif

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

Яндекс перестал учитывать Crawl-delay

Проанализировав письма за последние два года в нашу поддержку по вопросам индексирования, мы выяснили, что одной из основных причин медленного скачивания документов является неправильно настроенная директива Crawl-delay в robots.txt Для того чтобы владельцам сайтов не пришлось больше об этом беспокоиться и чтобы все действительно нужные страницы сайтов появлялись и обновлялись в поиске быстро, мы решили отказаться от учёта директивы Crawl-delay.

Для чего была нужна директива Crawl-delay

Когда робот сканирует сайт как сумасшедший и это создает излишнюю нагрузку на сервер. Робота можно попросить «поубавить обороты». Для этого можно использовать директиву Crawl-delay. Она указывает время в секундах, которое робот должен простаивать (ждать) для сканирования каждой следующей страницы сайта.

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