Skip to content

Все для WordPress, веб-розробки — і не тільки

🗂️ Як виключити сторінки з карти сайту Yoast SEO

🗂️ Як виключити сторінки з карти сайту 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 SEO

Після збереження 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:

1add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', function() {
2 return array( 311, 322, 450, 512 );
3} );
PHP-код масового виключення сторінок через фільтр wpseo_exclude_from_sitemap_by_post_ids

Як дізнатися 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 у Yoast SEO

Що тут можна відрегулювати:

  • Вимкнути непотрібні типи контенту. Наприклад, ви публікуєте лише записи, а сторінки використовуєте як службові, приберіть «Сторінки» з sitemap.
  • Налаштувати медіа. Вкладка Media (вкладення) в sitemap за замовчуванням увімкнена. Для фотоблогів це виправдано, для звичайного сайту, зайва витрата краулінгового бюджету.
  • Ліміт посилань. Технічно фільтр wpseo_sitemap_entries_per_page дозволяє задати довільну кількість записів на один файл sitemap:
1add_filter( 'wpseo_sitemap_entries_per_page', function() {
2 return 500;
3} );

Стандартні 1000, золота середина для більшості проєктів. Змінювати ліміт варто, тільки якщо ви точно розумієте наслідки для швидкості індексації.

Як прибрати категорії та таксономії з sitemap

Категорії, мітки та кастомні таксономії часто засмічують sitemap порожніми або малокорисними архівами. Особливо актуально для WooCommerce-сайтів: атрибути товарів («колір», «розмір») генерують сотні URL без самостійної пошукової цінності.

Перший, візуальний спосіб, вкладка Taxonomies у налаштуваннях Yoast SEO:

Вкладка таксономій у налаштуваннях sitemap Yoast SEO

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

Список таксономій з перемикачами показу в пошуку Yoast SEO

Якщо потрібної таксономії немає в списку, вона зареєстрована кастомним кодом або стороннім плагіном, використовуйте фільтр. Код для виключення однієї таксономії за слагом:

1/* Исключить одну таксономию из sitemap Yoast SEO */
2function sitemap_exclude_taxonomy( $value, $taxonomy ) {
3 if ( $taxonomy === 'taxonomy_slug' ) {
4 return true;
5 }
6 return $value;
7}
8add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomy', 10, 2 );

Для кількох таксономій одразу:

1/* Исключить несколько таксономий из sitemap Yoast SEO */
2function 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}
13add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomies', 10, 2 );
PHP-код виключення кількох таксономій через фільтр sitemap Yoast SEO

Замініть 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 дає для цього єдиний інтерфейс, не нехтуйте ним.

🔗 Yoast SEO на WordPress.org