Мета-тег robots играет важную роль в SEO, управляя индексированием страниц поисковыми системами. В WordPress по умолчанию для разных типов страниц выводится этот тег, но иногда возникает необходимость удалить его или изменить параметры без использования плагинов. В этой статье подробно разберём, как именно это сделать через functions.php вашей темы или дочерней темы, с примерами кода и объяснениями.
Что такое мета-тег robots и зачем его менять
Мета-тег robots сообщает поисковым роботам, как обрабатывать страницу: индексировать ли её, переходить по ссылкам и т.д. Например, значение noindex, nofollow запрещает индексацию и переход по ссылкам, а index, follow разрешает.
В WordPress этот тег генерируется автоматически для архивов, страниц поиска, отдельных записей и других типов страниц. Однако иногда нужно убрать или изменить этот тег, например, чтобы разрешить индексацию там, где по умолчанию стоит запрет, или наоборот. Часто это требуется для улучшения SEO и контроля над тем, что индексируется.
Удаление или изменение этого тега плагинами — это просто, но если вы хотите держать сайт более лёгким и не устанавливать дополнительные расширения, можно обойтись кодом.
Как WordPress выводит мета-тег robots
По умолчанию WordPress выводит мета-тег robots функцией wp_no_robots(), которая вызывается в wp_head. В зависимости от типа страницы она подставляет разные значения.
Внутри функции есть проверки, например, для страниц поиска, архивов, 404 ошибки, авторов и других. Это значит, что чтобы изменить поведение, можно перехватить вывод этой функции или полностью её отключить и вывести свой тег.
Как удалить мета-тег robots полностью
Если вам нужно полностью убрать тег robots из <head>, достаточно удалить действие wp_no_robots из wp_head:
remove_action('wp_head', 'wp_no_robots');
Добавьте этот код в файл functions.php вашей активной темы или дочерней темы:
function wpeditor_remove_meta_robots() {
remove_action('wp_head', 'wp_no_robots');
}
add_action('init', 'wpeditor_remove_meta_robots');
После этого мета-тег robots не будет выводиться вообще на всех страницах.
Как изменить содержимое мета-тега robots для разных типов страниц
Если нужно не просто убрать тег, а заменить его на свои значения в зависимости от типа страницы, лучше отменить стандартный вывод и добавить новый вывод с условной логикой.
Пример, как это реализовать:
function wpeditor_custom_meta_robots() {
if (is_search()) {
// Для страницы поиска запретим индексацию
echo '<meta name="robots" content="noindex, nofollow" />';
} elseif (is_singular('post')) {
// Для одиночной записи позволим индексировать
echo '<meta name="robots" content="index, follow" />';
} elseif (is_archive()) {
// Для архивов запретим индексацию
echo '<meta name="robots" content="noindex, follow" />';
} else {
// Для всех остальных страниц стандартное поведение
echo '<meta name="robots" content="index, follow" />';
}
}
function wpeditor_replace_meta_robots() {
remove_action('wp_head', 'wp_no_robots');
add_action('wp_head', 'wpeditor_custom_meta_robots');
}
add_action('init', 'wpeditor_replace_meta_robots');
Такой код удаляет стандартный вывод, и вместо него выводит кастомную версию с нужной логикой по типу страницы.
Практический пример: как запретить индексацию страниц пагинации и поиска
Частая задача — не индексировать страницы пагинации (вторые, третьи страницы архивов) и результаты поиска, чтобы избежать дублирования и улучшить SEO.
Реализуем это на примере кода:
function wpeditor_robots_for_pagination_and_search() {
if (is_paged() || is_search()) {
echo '<meta name="robots" content="noindex, nofollow" />';
} else {
echo '<meta name="robots" content="index, follow" />';
}
}
function wpeditor_modify_robots_tag() {
remove_action('wp_head', 'wp_no_robots');
add_action('wp_head', 'wpeditor_robots_for_pagination_and_search');
}
add_action('init', 'wpeditor_modify_robots_tag');
Это позволит поисковикам не индексировать вторые и последующие страницы архивов и поиск, но при этом индексировать основную страницу и остальные записи.
Советы по отладке и проверке результата
После внесения изменений в functions.php очистите кеш сайта и браузера. Также полезно проверить исходный код страниц (Ctrl+U в браузере) и найти тег robots в разделе <head>.
Для автоматической проверки можно использовать онлайн-сервисы вроде SEO Review Tools или расширения для браузеров.
Использование плагина Clearfy Pro для управления мета-тегами robots
Если вы хотите управлять мета-тегами robots удобно и с расширенными опциями, можно обратить внимание на плагин Clearfy Pro. Он позволяет тонко настраивать SEO параметры без кода, но если вы предпочитаете код, приведённые решения полностью покрывают задачу.