Итак, суть проблемы – на сайте создано или импортировано большое количество пустых постов без контента. Возможно, ошибка, возможно, посты созданы автоматически и не успели внести контент. Важно, что есть такая проблема, и если сайт хорошо индексируется поисковиками, то такие пустые записи могут создать некоторые проблемы, ведь в индексе окажется много бесполезных страниц.
Решение проблемы – добавляем код в файл 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
.