
🗂️ Как исключить страницы из карты сайта Yoast SEO
Вы заходите в Search Console и видите: из 200 страниц сайта проиндексировано 340. Лишние 140, это архивные метки, дубли с UTM-хвостами, тестовые заглушки и страницы вложений. Google тратит краулинговый бюджет на мусор, а боевые URL ждут своей очереди неделями.
Проблема не в Google. Карта сайта, которую генерирует Yoast SEO, честно докладывает роботу обо всём, что видит. А видит она по умолчанию много лишнего. Ваша задача, объяснить плагину, какие страницы в sitemap не должны попадать.
Ниже, четыре способа почистить XML-карту сайта: от одного клика в интерфейсе до фильтров в functions.php. С живыми скриншотами и актуальным кодом.
💡 Быстрый обзор:
- Исключить одну страницу через вкладку «Дополнительно» в метабоксе Yoast SEO, без кода.
- Массово убрать десятки URL через фильтр
wpseo_exclude_from_sitemap_by_post_ids, один массив. - Отключить целые таксономии в Search Appearance или через
wpseo_sitemap_exclude_taxonomy. - Проверить результат в
sitemap_index.xmlи при необходимости добавитьnoindex.
Почему вообще нужно чистить sitemap
Sitemap, не просто список ссылок. Это инструкция поисковому роботу: «вот страницы, которые действительно важны, индексируй их в первую очередь». Когда в карте сайта оказывается мусор, Google сталкивается с тремя проблемами.
Первая, дубли. Один и тот же контент по двум URL (скажем, /blog/ и /blog/?utm_source=telegram), для поисковика это сигнал некачественного сайта. Вторая, тонкий контент. Страницы-заглушки, пустые архивы авторов, страницы вложений, ценности для поиска не несут, но отъедают краулинговый бюджет. Третья, служебные URL. Тестовые лендинги, страницы благодарности после покупки, личные кабинеты, им в поиске вообще не место.
Регулярный аудит sitemap, базовая SEO-гигиена. Особенно если сайту больше года: лишние URL в карту сайта просачиваются почти гарантированно.
Yoast SEO даёт несколько уровней контроля, от точечного выключения одной страницы до фильтрации целых таксономий через хук. Разберём каждый.
Как исключить отдельную страницу из sitemap
Самый простой сценарий: убрать из индекса один конкретный пост или страницу. Yoast SEO позволяет сделать это прямо из редактора WordPress, без единой строки кода.
Откройте нужную запись в админке, прокрутите вниз до метабокса Yoast SEO и перейдите на вкладку «Дополнительно» (Advanced). Найдите вопрос «Разрешить поисковым системам показывать эту запись в результатах поиска?» и переключите с «Да» на «Нет». Нажмите «Обновить».

После сохранения Yoast уберёт запись из sitemap, а в исходном коде страницы появится метатег <meta name="robots" content="noindex, follow">. Сама страница останется доступной по прямой ссылке. Из поиска и sitemap она будет исключена.
Способ штатный и самый безопасный. Подходит для точечного скрытия одной-двух страниц. Для массового исключения десятков URL, следующий раздел.
Как массово исключить страницы через код
Когда нужно разом исключить 20-30 страниц, кликать каждую вручную, пустая трата времени. Yoast SEO предоставляет фильтр wpseo_exclude_from_sitemap_by_post_ids: он принимает массив ID записей и вырезает их из карты сайта.
Код добавляется в functions.php активной темы или через плагин Code Snippets:
1 add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', function() { 2 return array( 311, 322, 450, 512 ); 3 } );

Как узнать ID страницы? В админке WordPress откройте список страниц или постов, наведите на название, в URL ссылки увидите post=311. Число после post= и есть ID.
После добавления фильтра зайдите на yourdomain.com/sitemap_index.xml, откройте дочерний sitemap (например, page-sitemap.xml) и убедитесь: указанные ID из списка исчезли.
Важно: фильтр только убирает ID из sitemap. Он не добавляет noindex на саму страницу. Если страница уже в индексе Google, дополнительно проставьте noindex через интерфейс (предыдущий раздел) или запросите удаление URL через Google Search Console.
Как увеличить лимит ссылок в sitemap
По умолчанию Yoast SEO включает в один дочерний sitemap до 1000 ссылок. Для крупного сайта, магазина на 5000 товаров или справочника с десятками тысяч статей, это означает либо рост числа файлов (уменьшить лимит), либо больше URL в одном файле (увеличить лимит).
Настройка находится в разделе Yoast SEO → Settings → Content types:

Что здесь можно отрегулировать:
- Отключить ненужные типы контента. Например, вы публикуете только записи, а страницы используете как служебные, уберите «Страницы» из sitemap.
- Настроить медиа. Вкладка Media (вложения) в sitemap по умолчанию включена. Для фотоблогов это оправдано, для обычного сайта, лишняя трата краулингового бюджета.
- Лимит ссылок. Технически фильтр
wpseo_sitemap_entries_per_pageпозволяет задать произвольное число записей на один файл sitemap:
1 add_filter( 'wpseo_sitemap_entries_per_page', function() { 2 return 500; 3 } );
Стандартные 1000, золотая середина для большинства проектов. Менять лимит стоит, только если вы точно понимаете последствия для скорости индексации.
Как убрать категории и таксономии из sitemap
Категории, метки и кастомные таксономии часто засоряют sitemap пустыми или малополезными архивами. Особенно актуально для WooCommerce-сайтов: атрибуты товаров («цвет», «размер») генерируют сотни URL без самостоятельной поисковой ценности.
Первый, визуальный способ, вкладка Taxonomies в настройках Yoast SEO:

У каждой таксономии есть переключатель «Show in search results?». Положение «Да», таксономия попадает в sitemap, «Нет», исключается. Для большинства сайтов разумно оставить в sitemap только категории, отключив метки (tags) и атрибуты товаров.

Если нужной таксономии нет в списке, она зарегистрирована кастомным кодом или сторонним плагином, используйте фильтр. Код для исключения одной таксономии по слагу:
1 /* Исключить одну таксономию из sitemap Yoast SEO */ 2 function sitemap_exclude_taxonomy( $value, $taxonomy ) { 3 if ( $taxonomy === 'taxonomy_slug' ) { 4 return true; 5 } 6 return $value; 7 } 8 add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomy', 10, 2 );
Для нескольких таксономий сразу:
1 /* Исключить несколько таксономий из sitemap Yoast SEO */ 2 function sitemap_exclude_taxonomies( $value, $taxonomy ) { 3 $taxonomy_to_exclude = array( 4 'taxonomy_slug1', 5 'taxonomy_slug2', 6 'taxonomy_slug3' 7 ); 8 if ( in_array( $taxonomy, $taxonomy_to_exclude, true ) ) { 9 return true; 10 } 11 return $value; 12 } 13 add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomies', 10, 2 );

Замените taxonomy_slug1, taxonomy_slug2 и taxonomy_slug3 на реальные слаги ваших таксономий. После сохранения кода зайдите в sitemap_index.xml и проверьте дочерний sitemap: архивы исключённых таксономий должны исчезнуть.
⁉️🤔 Частые вопросы
Исключённая из sitemap страница всё равно показывается в поиске. Почему?
Sitemap, лишь рекомендация для Google, а не директива. Исключение страницы из sitemap не равно
noindex. Если страница уже проиндексирована и на неё ведут внешние ссылки, Google может продолжать её показывать. Решение: вместе с исключением из sitemap включитеnoindex(тот же переключатель во вкладке «Дополнительно» Yoast) и при необходимости запросите удаление URL через Google Search Console.
Можно ли полностью исключить тип контента из sitemap без кода?
Да. В разделе Yoast SEO → Settings → Content types у каждого зарегистрированного типа контента есть переключатель «Show in search results?». Переведите в «No», и весь тип (например, «Страницы» или «Товары») перестанет попадать в sitemap целиком. Это работает и для таксономий через вкладку Taxonomies.
Как проверить, что страница действительно ушла из sitemap?
Откройте
вашсайт.com/sitemap_index.xmlв браузере, увидите список дочерних sitemap. Найдите нужный (например,page-sitemap.xmlилиpost-sitemap.xml), перейдите по ссылке и поищите по заголовку или URL. Страницы нет, фильтр сработал. Для массовой сверки удобны Screaming Frog или Sitebulb: они покажут расхождение между sitemap и реальными страницами сайта.
Что делать, если код фильтра не срабатывает?
Проверьте три момента. Первое: код добавлен в активную тему (
functions.php) или через Code Snippets, и файл сохранён без синтаксических ошибок, откройте сайт в соседней вкладке (белый экран = ошибка PHP). Второе: ID страниц указаны верно, без лишних пробелов внутри массива. Третье: кеш. Yoast SEO кеширует sitemap, после изменений сбросьте кеш плагина (SEO → Tools → Optimize SEO Data) или подождите до суток.
Влияет ли исключение из sitemap на внутреннюю перелинковку?
Нет. Sitemap и внутренние ссылки, независимые сигналы. Страница, исключённая из sitemap, по-прежнему передаёт вес через внутренние ссылки, если на неё ссылаются другие страницы сайта. Но Google будет реже её переиндексировать: она исчезла из основного источника информации о структуре сайта.
Что ставить в приоритет: интерфейс или код
Для трёх-пяти страниц, только интерфейс. Быстро, безопасно, не требует доступа к файлам темы.
Для десятков страниц, фильтр wpseo_exclude_from_sitemap_by_post_ids. Один массив с ID вместо ручного переключения каждого поста.
Для таксономий, визуальный переключатель в Search Appearance, если таксономия в списке есть. Нет (кастомная), фильтр wpseo_sitemap_exclude_taxonomy.
И главное: исключение из sitemap не равно исключению из индекса. Если страница должна исчезнуть из поиска полностью, всегда добавляйте noindex. Yoast SEO даёт для этого единый интерфейс, не пренебрегайте им.



