Skip to main content

Общие сведения

Начиная с WordPress 5.5, встроенный sitemap доступен по адресу:

/wp-sitemap.xml

Он формируется классом WP_Sitemaps и управляется через фильтры. Никакой отдельный файл в теме не создаётся — всё генерируется динамически.

Ниже — основные способы управления содержимым.


1️⃣ Полностью отключить sitemap


add_filter('wp_sitemaps_enabled', '__return_false');

2️⃣ Убрать конкретный тип записей (например, post)


add_filter('wp_sitemaps_post_types', function ($post_types) { unset($post_types['post']); // убираем записи return $post_types; });

Пример для кастомного типа:


unset($post_types['product']);

3️⃣ Убрать таксономию (категории, теги и т.д.)


add_filter('wp_sitemaps_taxonomies', function ($taxonomies) { unset($taxonomies['post_tag']); // убрать теги return $taxonomies; });

Убрать категории:


unset($taxonomies['category']);

4️⃣ Убрать пользователей из sitemap


add_filter('wp_sitemaps_add_provider', function ($provider, $name) { if ($name === 'users') { return false; } return $provider; }, 10, 2);

5️⃣ Изменить список ссылок (фильтрация конкретных URL)

Можно отфильтровать сами записи:


add_filter('wp_sitemaps_posts_query_args', function ($args, $post_type) { if ($post_type === 'post') { $args['meta_query'] = array( array( 'key' => 'exclude_from_sitemap', 'compare' => 'NOT EXISTS' ) ); } return $args; }, 10, 2);

6️⃣ Изменить данные конкретной записи в sitemap


add_filter('wp_sitemaps_posts_entry', function ($entry, $post, $post_type) { $entry['priority'] = 0.8; $entry['changefreq'] = 'weekly'; return $entry; }, 10, 3);

7️⃣ Добавить собственный sitemap

Можно зарегистрировать свой провайдер:


add_action('init', function () { $provider = new WP_Sitemaps_Provider( 'custom', 'custom' ); wp_register_sitemap_provider('custom', $provider); });

(для продакшена обычно создают отдельный класс-провайдер)


🔥 Где размещать код?

  • В functions.php темы

  • Или лучше — в собственном мини-плагине


⚠️ Важно

Если установлен SEO-плагин вроде:

  • Yoast SEO

  • Rank Math

  • All in One SEO

то встроенный sitemap WordPress обычно отключается, и управление происходит через плагин.