XML Sitemap — это важный инструмент для SEO, который помогает поисковым системам эффективно индексировать содержимое вашего сайта. В WordPress стандартные XML Sitemap, доступные с версии 5.5, покрывают только основные типы записей, такие как записи и страницы. Но если вы используете пользовательские типы записей (Custom Post Types, CPT) и таксономии, стандартного функционала может быть недостаточно.
Что такое XML Sitemap и зачем расширять стандартный функционал WordPress
XML Sitemap — это файл, содержащий список URL вашего сайта, которые вы хотите, чтобы поисковые системы проиндексировали. Он упрощает работу роботов и позволяет быстрее находить новые или обновленные страницы.
Стандартный sitemap WordPress не всегда учитывает все пользовательские типы записей и таксономии. Например, если у вас есть CPT «Продукты» или «Отзывы», они могут не попасть в sitemap без дополнительной настройки. Это снижает видимость этих страниц в поиске и может негативно сказаться на SEO.
Расширение sitemap позволит:
- Учитывать все пользовательские типы записей и таксономии.
- Настраивать приоритет и частоту обновления для разных типов контента.
- Автоматически обновлять sitemap при добавлении контента.
Расширение XML Sitemap в WordPress с помощью кода
WordPress предоставляет фильтры, которые позволяют модифицировать sitemap. Рассмотрим, как добавить пользовательский тип записей в стандартный sitemap.
Добавление пользовательского типа записей в sitemap
Предположим, что у вас есть CPT с названием product. Чтобы включить его в sitemap, добавьте следующий код в файл functions.php вашей темы или в отдельный плагин:
function wpkit_add_products_to_sitemap( \WP_Sitemaps_Provider\ $provider ) {
if ( 'post' === $provider->get_sitemap_name() ) {
// Добавляем CPT 'product' в sitemap
add_filter( 'wp_sitemaps_posts_query_args', function( $args, $post_type ) {
if ( 'product' === $post_type ) {
$args['post_status'] = 'publish';
}
return $args;
}, 10, 2 );
}
}
add_action( 'init', 'wpkit_add_products_to_sitemap' );Однако более правильный способ — зарегистрировать собственного провайдера sitemap для CPT:
class WPKit_Product_Sitemap_Provider extends WP_Sitemaps_Provider_Posts {
public function __construct() {
parent::__construct( 'product' );
}
}
function wpkit_register_product_sitemap_provider() {
global $wp_sitemaps;
if ( isset( $wp_sitemaps ) ) {
$wp_sitemaps->register_provider( 'product', new WPKit_Product_Sitemap_Provider() );
}
}
add_action( 'init', 'wpkit_register_product_sitemap_provider' );Этот код создаст отдельный sitemap для ваших продуктов, который будет автоматически обновляться при изменении записей.
Добавление пользовательских таксономий в sitemap
По умолчанию таксономии в sitemap WordPress не всегда отображаются. Чтобы добавить их, используйте фильтр wp_sitemaps_taxonomies:
function wpkit_add_custom_taxonomy_to_sitemap( $taxonomies ) {
$taxonomies[] = 'product_category'; // замените на вашу таксономию
return $taxonomies;
}
add_filter( 'wp_sitemaps_taxonomies', 'wpkit_add_custom_taxonomy_to_sitemap' );Так вы обеспечите попадание всех терминов таксономии в sitemap, что важно для SEO.
Использование плагинов для расширения XML Sitemap
Если вы предпочитаете готовые решения, есть несколько плагинов, которые помогут управлять sitemap с поддержкой CPT и таксономий:
- Yoast SEO — один из самых популярных SEO-плагинов, имеющий расширенные функции для управления sitemap, включая поддержку пользовательских типов записей и таксономий.
- Google XML Sitemaps — классический плагин, который позволяет гибко настраивать sitemap и добавлять кастомный контент.
- Clearfy Pro — плагин для оптимизации WordPress, который также предлагает расширенные возможности управления sitemap.
Для примера, в Yoast SEO можно в настройках включить отображение нужных типов записей в sitemap, а также исключать лишние.
Автоматическое обновление и кэширование sitemap
XML Sitemap генерируется динамически, что может привести к нагрузке на сервер при большом объёме контента. Рекомендуется использовать кэширование.
Например, можно использовать transient API WordPress, чтобы кэшировать sitemap на определённое время:
function wpkit_get_cached_sitemap( $url ) {
$cache_key = 'wpkit_sitemap_cache_' . md5( $url );
$sitemap = get_transient( $cache_key );
if ( false === $sitemap ) {
$response = wp_remote_get( $url );
if ( is_wp_error( $response ) ) {
return '';
}
$sitemap = wp_remote_retrieve_body( $response );
set_transient( $cache_key, $sitemap, HOUR_IN_SECONDS );
}
return $sitemap;
}Такой подход уменьшит нагрузку и ускорит отдачу sitemap поисковикам.
Проверка и отладка созданного sitemap
После создания или расширения sitemap важно проверить, что он доступен и корректно отображается. Обычно стандартный sitemap находится по адресу https://ваш-сайт.ru/wp-sitemap.xml.
Для проверки используйте инструменты Google Search Console, Яндекс.Вебмастер или онлайн-сервисы проверки sitemap. Они покажут наличие ошибок, предупреждений и количество проиндексированных страниц.
Если вы создали кастомные провайдеры или добавили новые типы записей, стоит вручную проверить, что все нужные URL попадают в sitemap.
Выводы и рекомендации
Расширение XML Sitemap в WordPress — важный шаг для улучшения SEO, особенно если вы используете кастомный контент. Используйте встроенные фильтры и классы WordPress для добавления CPT и таксономий, либо проверенные плагины, если нужны более комплексные решения.
Обязательно проверяйте sitemap после изменений и применяйте кэширование для повышения производительности сайта.
Для автоматизации SEO-оптимизации и расширения возможностей sitemap можно рассмотреть использование Clearfy Pro от WPShop, который умеет гибко управлять sitemap и другими параметрами SEO.