Карта сайта (sitemap) — важный инструмент для поисковой оптимизации, который помогает поисковым системам быстро и эффективно индексировать контент вашего сайта. Однако иногда в sitemap попадают пустые страницы, страницы с минимальным содержимым или черновики, что может негативно сказаться на SEO и общему восприятию сайта поисковыми роботами. В этой статье мы разберём, как исключить пустые страницы из sitemap WordPress, используя как готовые плагины, так и собственные решения с помощью кода.
Почему важно исключать пустые страницы из sitemap WordPress
Пустые страницы в sitemap — это страницы с отсутствующим или недостаточным содержанием, которые не несут ценности для посетителей и поисковых систем. Их присутствие может привести к следующим проблемам:
- Низкая оценка качества сайта поисковыми системами;
- Распыление веса ссылок и внутренней перелинковки;
- Потенциальное снижение позиций из-за индексации некачественного контента;
- Увеличение времени и ресурсов поисковиков на обход сайта.
Поэтому важно фильтровать sitemap и исключать такие страницы.
Типичные причины появления пустых страниц в sitemap
Пустые страницы могут появляться в sitemap по разным причинам:
- Созданы черновики или страницы с минимальным контентом;
- Используются шаблоны страниц, которые пока не наполнены содержимым;
- Автоматически генерируемые страницы с параметрами, не несущие полезной информации;
- Ошибки в плагинах SEO и sitemap, которые не фильтруют пустой контент.
Перед тем, как исправлять проблему, стоит проанализировать, откуда именно появляются пустые страницы, чтобы правильно настроить исключения.
Как проверить, какие страницы пустые и попадают в sitemap
Для начала нужно получить список URL, которые попадают в вашу карту сайта. Обычно sitemap находится по адресу https://ваш-сайт.ru/sitemap.xml или https://ваш-сайт.ru/sitemap_index.xml. Откройте его и проверьте, какие страницы там присутствуют.
Далее можно использовать плагины, например WP Rocket с функцией кеша или Yoast SEO, чтобы увидеть, какие страницы индексируются.
Для проверки контента страниц можно быстро написать скрипт, который проверит длину содержимого каждой страницы по списку URL.
Исключение пустых страниц из sitemap с помощью плагина Yoast SEO
Если вы используете плагин Yoast SEO, то у него есть встроенные настройки управления тем, что попадёт в sitemap.
Для исключения пустых страниц:
- Перейдите в админке WordPress в раздел SEO → Поиск внешнего вида → Типы контента.
- Отключите отображение в sitemap для страниц или записей, которые не должны попадать в индексацию.
- Используйте функцию массового редактирования, чтобы отметить как "noindex" пустые страницы.
Однако если страниц много, и они появляются динамически, этого может быть недостаточно. В таком случае можно добавить дополнительный фильтр через код.
Как программно исключить пустые страницы из sitemap WordPress
Для более гибкого и точного управления sitemap можно добавить пользовательский фильтр в functions.php вашей темы или в отдельный плагин. Ниже пример функции, которая исключит из sitemap страницы с контентом меньше 50 символов.
function wpcoding_exclude_empty_pages_from_sitemap( $url, $post ) {
if ( $post->post_type === 'page' ) {
$content = trim( strip_tags( $post->post_content ) );
if ( strlen( $content ) < 50 ) {
return false; // Исключаем страницу из sitemap
}
}
return $url;
}
add_filter( 'wpseo_sitemap_url', 'wpcoding_exclude_empty_pages_from_sitemap', 10, 2 );Здесь мы используем фильтр wpseo_sitemap_url, который применяется в Yoast SEO при генерации sitemap. Функция проверяет длину текста страницы и если она меньше 50 символов, возвращает false, чтобы исключить URL из карты сайта.
Если вы используете другой SEO плагин или собственное решение, возможно, придется использовать другие хуки, например rank_math/sitemap/url для Rank Math или фильтры встроенного WordPress sitemap.
Исключение пустых страниц из встроенного sitemap WordPress (5.5+)
Начиная с версии 5.5 WordPress имеет встроенный sitemap. Для фильтрации страниц можно использовать фильтр wp_sitemaps_posts_query_args.
function wpcoding_filter_empty_pages_sitemap( $args, $post_type ) {
if ( $post_type === 'page' ) {
$args['meta_query'] = array(
array(
'key' => '_wpcoding_content_length',
'value' => 50,
'compare' => '>=',
'type' => 'NUMERIC'
)
);
}
return $args;
}
add_filter( 'wp_sitemaps_posts_query_args', 'wpcoding_filter_empty_pages_sitemap', 10, 2 );Но этот код требует, чтобы у вас была сохранена длина контента в метаполе _wpcoding_content_length. Поэтому предварительно нужно добавить функцию, которая при сохранении страницы будет записывать длину контента в метаполе:
function wpcoding_save_content_length_meta( $post_id, $post, $update ) {
if ( $post->post_type === 'page' ) {
$content = trim( strip_tags( $post->post_content ) );
update_post_meta( $post_id, '_wpcoding_content_length', strlen( $content ) );
}
}
add_action( 'save_post', 'wpcoding_save_content_length_meta', 10, 3 );<Этот подход позволяет фильтровать страницы на этапе запроса sitemap, исключая пустые или недостаточно наполненные страницы.
Как проверить результат и убедиться, что пустые страницы исключены из sitemap
После реализации фильтрации обновите страницу sitemap и проверьте содержимое. Можно использовать онлайн инструменты проверки sitemap, например валидацию XML sitemap.
Также удобно использовать плагины типа Expert Review от WpShop для глубокого анализа сайта, включая проверку контента страниц и sitemap.
Дополнительные рекомендации для управления sitemap
Исключение страниц по статусу и шаблону
Иногда пустые страницы имеют определённые шаблоны или статусы (например, черновики или приватные страницы). Чтобы исключить их, используйте дополнительные проверки:
function wpcoding_exclude_by_status_and_template( $url, $post ) {
if ( $post->post_status !== 'publish' ) {
return false;
}
$template = get_page_template_slug( $post->ID );
if ( $template === 'template-empty.php' ) {
return false;
}
return $url;
}
add_filter( 'wpseo_sitemap_url', 'wpcoding_exclude_by_status_and_template', 20, 2 );Использование плагина Clearfy Pro для управления sitemap
Плагин Clearfy Pro позволяет гибко управлять индексированием сайта, в том числе исключать из sitemap пустые страницы, страницы по шаблонам или другим критериям, без необходимости писать код.
Это удобно, если вы не хотите самостоятельно внедрять фильтры и хотите получить комплексный инструмент для оптимизации сайта.
Выводы
Исключение пустых страниц из sitemap — важный аспект технической SEO-оптимизации WordPress-сайта. Вы можете использовать как готовые возможности популярных плагинов, так и собственные фильтры, чтобы добиться максимальной точности и эффективности. Добавление проверки длины контента и дополнительных условий позволяет избежать попадания в индекс некачественных страниц, улучшая позиции сайта и пользовательский опыт.