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

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

<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary" id="bkmrk-%2Fwp-sitemap.xml"><div class="sticky top-[calc(var(--sticky-padding-top)+9*var(--spacing))]"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"></div></div><div class="overflow-y-auto p-4" dir="ltr">`/wp-sitemap.xml`</div></div>Он формируется классом `WP_Sitemaps` и управляется через фильтры. Никакой отдельный файл в теме не создаётся — всё генерируется динамически.

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

---

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

<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary" id="bkmrk-add_filter%28%27wp_sitem"><div class="sticky top-[calc(var(--sticky-padding-top)+9*var(--spacing))]"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-title function_ invoke__">add_filter</span>(<span class="hljs-string">'wp_sitemaps_enabled'</span>, <span class="hljs-string">'__return_false'</span>);`</div></div>---

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

<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary" id="bkmrk-add_filter%28%27wp_sitem-1"><div class="sticky top-[calc(var(--sticky-padding-top)+9*var(--spacing))]"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-title function_ invoke__">add_filter</span>(<span class="hljs-string">'wp_sitemaps_post_types'</span>, function (<span class="hljs-variable">$post_types</span>) {    <span class="hljs-keyword">unset</span>(<span class="hljs-variable">$post_types</span>[<span class="hljs-string">'post'</span>]); <span class="hljs-comment">// убираем записи</span>    <span class="hljs-keyword">return</span> <span class="hljs-variable">$post_types</span>;});`</div></div>Пример для кастомного типа:

<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary" id="bkmrk-unset%28%24post_types%5B%27p"><div class="sticky top-[calc(var(--sticky-padding-top)+9*var(--spacing))]"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-keyword">unset</span>(<span class="hljs-variable">$post_types</span>[<span class="hljs-string">'product'</span>]);`</div></div>---

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

<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary" id="bkmrk-add_filter%28%27wp_sitem-2"><div class="sticky top-[calc(var(--sticky-padding-top)+9*var(--spacing))]"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-title function_ invoke__">add_filter</span>(<span class="hljs-string">'wp_sitemaps_taxonomies'</span>, function (<span class="hljs-variable">$taxonomies</span>) {    <span class="hljs-keyword">unset</span>(<span class="hljs-variable">$taxonomies</span>[<span class="hljs-string">'post_tag'</span>]); <span class="hljs-comment">// убрать теги</span>    <span class="hljs-keyword">return</span> <span class="hljs-variable">$taxonomies</span>;});`</div></div>Убрать категории:

<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary" id="bkmrk-unset%28%24taxonomies%5B%27c"><div class="sticky top-[calc(var(--sticky-padding-top)+9*var(--spacing))]"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-keyword">unset</span>(<span class="hljs-variable">$taxonomies</span>[<span class="hljs-string">'category'</span>]);`</div></div>---

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

<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary" id="bkmrk-add_filter%28%27wp_sitem-3"><div class="sticky top-[calc(var(--sticky-padding-top)+9*var(--spacing))]"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-title function_ invoke__">add_filter</span>(<span class="hljs-string">'wp_sitemaps_add_provider'</span>, function (<span class="hljs-variable">$provider</span>, <span class="hljs-variable">$name</span>) {    <span class="hljs-keyword">if</span> (<span class="hljs-variable">$name</span> === <span class="hljs-string">'users'</span>) {        <span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;    }    <span class="hljs-keyword">return</span> <span class="hljs-variable">$provider</span>;}, <span class="hljs-number">10</span>, <span class="hljs-number">2</span>);`</div></div>---

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

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

<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary" id="bkmrk-add_filter%28%27wp_sitem-4"><div class="sticky top-[calc(var(--sticky-padding-top)+9*var(--spacing))]"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-title function_ invoke__">add_filter</span>(<span class="hljs-string">'wp_sitemaps_posts_query_args'</span>, function (<span class="hljs-variable">$args</span>, <span class="hljs-variable">$post_type</span>) {        <span class="hljs-keyword">if</span> (<span class="hljs-variable">$post_type</span> === <span class="hljs-string">'post'</span>) {        <span class="hljs-variable">$args</span>[<span class="hljs-string">'meta_query'</span>] = <span class="hljs-keyword">array</span>(            <span class="hljs-keyword">array</span>(                <span class="hljs-string">'key'</span>     => <span class="hljs-string">'exclude_from_sitemap'</span>,                <span class="hljs-string">'compare'</span> => <span class="hljs-string">'NOT EXISTS'</span>            )        );    }    <span class="hljs-keyword">return</span> <span class="hljs-variable">$args</span>;}, <span class="hljs-number">10</span>, <span class="hljs-number">2</span>);`</div></div>---

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

<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary" id="bkmrk-add_filter%28%27wp_sitem-5"><div class="sticky top-[calc(var(--sticky-padding-top)+9*var(--spacing))]"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-title function_ invoke__">add_filter</span>(<span class="hljs-string">'wp_sitemaps_posts_entry'</span>, function (<span class="hljs-variable">$entry</span>, <span class="hljs-variable">$post</span>, <span class="hljs-variable">$post_type</span>) {        <span class="hljs-variable">$entry</span>[<span class="hljs-string">'priority'</span>] = <span class="hljs-number">0.8</span>;    <span class="hljs-variable">$entry</span>[<span class="hljs-string">'changefreq'</span>] = <span class="hljs-string">'weekly'</span>;    <span class="hljs-keyword">return</span> <span class="hljs-variable">$entry</span>;}, <span class="hljs-number">10</span>, <span class="hljs-number">3</span>);`</div></div>---

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

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

<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary" id="bkmrk-add_action%28%27init%27%2C-f"><div class="sticky top-[calc(var(--sticky-padding-top)+9*var(--spacing))]"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-title function_ invoke__">add_action</span>(<span class="hljs-string">'init'</span>, function () {    <span class="hljs-variable">$provider</span> = <span class="hljs-keyword">new</span> <span class="hljs-title class_">WP_Sitemaps_Provider</span>(        <span class="hljs-string">'custom'</span>,        <span class="hljs-string">'custom'</span>    );    <span class="hljs-title function_ invoke__">wp_register_sitemap_provider</span>(<span class="hljs-string">'custom'</span>, <span class="hljs-variable">$provider</span>);});`</div></div>(для продакшена обычно создают отдельный класс-провайдер)

---

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

- В `functions.php` темы
- Или лучше — в собственном мини-плагине

---

#### ⚠️ Важно

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

- Yoast SEO
- Rank Math
- All in One SEO

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