Как отключить индексацию пустых записей, страниц или кастомных постов

19.03.2022

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

Решение проблемы – добавляем код в файл functions.php, который будет проверять, есть ли контент в записи, если контента нет, то в хедер будет добавлен код с указанием noindex:

<meta name='robots' content='noindex, follow' />

Код, который будет добавлен в файл functions.php:

add_filter('wp_robots', 'filter_robots_tag');

function filter_robots_tag($robots)
{
    global $post;

    if (empty($post->post_content)) {
        $robots['noindex'] = true;
    }

    return $robots;
}

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

Данный код был проверен так же на совместимость с плагином Yoast SEO, все отработало, как надо.

В пустых постах добавлено правило:

<meta name='robots' content='noindex, follow' />

В постах с контентом такие настройки, которые установлены в Yoast SEO:

<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />

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

Рекомендую к прочтению:

Оставить комментарий