
🚫 Як закрити сторінки пагінації від індексу в Yoast SEO
Коли у вас сотні постів, десятки категорій і хмара тегів, сторінки пагінації множаться непомітно. /page/2/, потім /page/3/, потім /page/15/, і ось уже Google індексує тисячу сміттєвих URL, які не несуть унікального контенту, але з’їдають краулінговий бюджет.
У старих версіях Yoast SEO був вбудований перемикач «Noindex subpages of archives». Позначка, і проблему вирішено. Але у 2020 році команда Yoast прибрала це налаштування з інтерфейсу. Офіційна позиція: Google став розумніше працювати з пагінованими серіями, і налаштування більше не потрібне.
На практиці потрібне. Особливо великим сайтам, де кожна зайва сторінка в індексі від’їдає квоту обходу в тих URL, які справді мають ранжуватися.
Розробники Yoast залишили лазівку: фільтр wpseo_robots. З його допомогою можна програмно виставити noindex, follow для будь-яких сторінок пагінації. Нижче два варіанти коду: жорсткий (усі /page/-URL) і вибірковий (тільки архіви категорій і тегів).
💡 Швидкий огляд:
- Дізнаєтеся, чому Yoast прибрав вбудовану опцію і в яких випадках вона все ще потрібна
- Отримаєте готовий код для
functions.php: два варіанти фільтраwpseo_robots - Навчитеся перевіряти результат через вихідний код сторінки та Google Search Console
Чому сторінки пагінації варто закрити від індексу
У кожної сторінки пагінації три проблеми. Перша, дублювання контенту: /category/seo/, /category/seo/page/2/ і /category/seo/page/3/ показують одні й ті самі анонси, просто розбиті посторінково. Друга, тонкий контент: на сторінці пагінації немає повноцінної статті, тільки список заголовків з excerpt-ами. Третя, краулінговий бюджет: Googlebot витрачає ліміт обходів на URL, які не мають пошукової цінності, замість того щоб переобійти свіжі пости.
Yoast SEO історично вмів вирішувати це завдання однією позначкою в налаштуваннях. Але з версії 14.0 компанія переглянула підхід. Логіка була такою: Google навчився розпізнавати rel="prev" і rel="next", розуміє структуру пагінації та сам спрямовує користувачів на першу сторінку. А noindex на підсторінках, на думку Yoast, скорочує кількість обходів і заважає пошуковику перевідкривати старі статті через посилання з цих сторінок.
Аргумент спірний. Якщо у вас невеликий блог на 30 постів, ок, Google розбереться. Але якщо сайт розрісся до кількох тисяч URL з пагінацією категорій, тегів і архівів дат, пошуковик витрачає час не на те. Закрити підсторінки від індексу через код, контрольоване й оборотне рішення.
Варіант 1: noindex для всіх сторінок пагінації
Найпростіший і радикальний підхід. Фільтр перевіряє умову is_paged(), стандартну функцію WordPress, яка повертає true на будь-якій сторінці пагінації (архіви, категорії, теги, головна). Якщо умова істинна, підставляємо noindex, follow.
Додайте цей код у functions.php активної теми або через плагін Code Snippets:
1 add_filter('wpseo_robots', function($robots) { 2 if (is_paged()) { 3 return 'noindex,follow'; 4 } 5 return $robots; 6 });
Що відбувається порядково:
add_filter('wpseo_robots', ...), чіпляємося до фільтра Yoast SEO, який відповідає за вміст мета-тегаrobots. Фільтр приймає поточне значення$robotsі очікує рядок назад.is_paged(), вбудована функція WordPress з ядра. Спрацьовує на будь-якому URL, де присутня зміннаpaged(тобто/page/N/).return 'noindex,follow', говоримо пошуковику: «не індексуй цю сторінку, але переходь за посиланнями з неї». Посилання всередині пагінації продовжують передавати вагу.return $robots, для всіх інших сторінок повертаємо стандартне значення Yoast без змін.
Після додавання коду зайдіть на будь-яку сторінку на кшталт /category/seo/page/2/ і відкрийте вихідний HTML (Ctrl+U). Знайдіть рядок <meta name="robots". Якщо бачите content="noindex, follow", фільтр відпрацював.
Варіант 2: noindex тільки для архівів категорій і тегів
Перший варіант б’є по всіх paginated-сторінках без розбору, включно з головною (/page/2/). Якщо головна сторінка сайту виводить анонси постів і ви хочете зберегти її підсторінки в індексі, потрібна більш прицільна логіка.
Додаємо другу умову, is_archive(). Ця функція WordPress повертає true тільки на сторінках архівів: категорій, тегів, архівах дат, архівах авторів і кастомних таксономій.
1 add_filter('wpseo_robots', function($robots) { 2 if (is_paged() && is_archive()) { 3 return 'noindex,follow'; 4 } 5 return $robots; 6 });
Різниця з першим варіантом у поєднанні умов. is_paged() && is_archive() означає: «сторінка пагінації І сторінка архіву одночасно». Пагінація головної (/page/2/) під умову is_archive() не потрапляє, тому її індексація зберігається.
Який варіант обрати:
Ситуація | Варіант |
|---|---|
Великий сайт, тисячі URL пагінації, потрібен максимальний контроль | Варіант 1 |
Головна виводить стрічку постів, підсторінки головної важливі для індексу | Варіант 2 |
Інтернет-магазин на WooCommerce з категоріями товарів | Варіант 2 |
Потрібна передбачуваність і мінімум винятків | Варіант 1 |
Як перевірити результат
Після вставки коду перевірте три речі.
Перше, вихідний код. Відкрийте будь-яку сторінку пагінації, Ctrl+U, пошук за <meta name="robots". Переконайтеся, що бачите content="noindex, follow", а не content="index, follow".
Друге, Google Search Console. Зайдіть в інструмент перевірки URL, вставте адресу paginated-сторінки та натисніть «Перевірити». У блоці «Індексування» побачите статус: «Сторінка не проіндексована» з причиною «Виключено тегом noindex». Це підтверджує, що Googlebot отримав і обробив директиву.
Третє, динаміка індексу. У Search Console відкрийте «Індекс» → «Сторінки». Через 2-4 тижні після впровадження коду ви побачите зростання кількості сторінок у статусі «Виключено тегом noindex» і скорочення проіндексованих paginated-URL. Процес не миттєвий: Googlebot має переобійти кожен URL, щоб зчитати новий тег.
Важливі обмеження та застереження
Код змінює поведінку всього сайту. Перед впровадженням переконайтеся, що розумієте наслідки.
Різке випадання тисяч сторінок з індексу може тимчасово просісти за трафіком. Якщо сайт жив з індексацією пагінації кілька років і частина підсторінок отримувала пошукові переходи, ви ці переходи втратите. Натомість звільниться краулінговий бюджет для сторінок, які справді мають ранжуватися. Але період адаптації у 3-6 тижнів неминучий.
Робіть бекап functions.php перед правками. Синтаксична помилка в PHP-коді покладе весь сайт (white screen of death). Якщо використовуєте Code Snippets, плагін сам відловить фатальну помилку та деактивує сніпет. Якщо правите functions.php напряму, тримайте під рукою FTP-доступ, щоб відкотити файл.
Якщо на сайті встановлено кешувальний плагін (WP Rocket, W3 Total Cache), скиньте кеш після додавання коду. Інакше старі HTML-копії сторінок без нового мета-тега robots віддаватимуться відвідувачам і пошуковикам кілька годин або днів.
Більш детальний розбір усіх можливостей Yoast SEO, від встановлення до тонкого налаштування мета-тегів, дивіться в нашому посібнику з налаштування Yoast SEO для WordPress.
⁉️🤔 Часті запитання
Чому Yoast SEO прибрав вбудовану опцію noindex для підсторінок?
Google навчився розпізнавати пагіновані серії через теги
rel="prev"іrel="next"і спрямовувати користувачів на першу сторінку. Yoast вирішив, що примусовий noindex на підсторінках скорочує обходи та заважає переіндексації старих статей через посилання з paginated-сторінок. Офіційна довідка Yoast підтверджує: налаштування видалили з інтерфейсу, але фільтрwpseo_robotsзалишився для програмного керування.
Фільтр wpseo_robots все ще підтримується у 2026 році?
Так. Фільтр
wpseo_robotsпрацює в актуальних версіях Yoast SEO (24.x, 2026 рік) і задокументований у Metadata API на developer.yoast.com. Важлива зміна: до версії 19.8 фільтр дозволяв повернутиfalseдля видалення мета-тега robots. Починаючи з 19.8, поверненняfalseігнорується, фільтр очікує тільки рядок ('noindex,follow'або$robots). Обидва варіанти коду зі статті повертають рядок і повністю сумісні.
Чи спрацює код, якщо у сайта кастомна структура пагінації?
Функція
is_paged()спирається на стандартний query-параметр WordPresspaged. Якщо пагінація реалізована через кастомний параметр (наприклад,?pg=2або віртуальний скролінг), умова не спрацює. Для кастомної пагінації замінітьis_paged()на перевірку конкретного query_var:get_query_var('custom_page_var'). Плагіни на кшталт WP-PageNavi працюють через стандартнийpaged, конфлікту немає.
Через скільки Google прибере paginated-сторінки з індексу?
У середньому від 2 до 6 тижнів. Швидкість залежить від розміру сайту та частоти обходів: на сайті зі щоденними обходами Googlebot переобійде основні розділи за 7-10 днів, на невеликому блозі зі щотижневими обходами, за місяць. Прискорити можна через ручний запит переобходу в Search Console (розділ «Індекс» → «Сторінки» → вибір URL → «Запросити індексування»), але Google обробляє такі запити в порядку черги.
Чи можна закрити пагінацію через robots.txt замість noindex?
Технічно так:
Disallow: */page/*у robots.txt заборонить обхід paginated-URL. Але це гірше, ніж noindex. Причина: robots.txt блокує обхід сторінки, а не її індексацію. Якщо на paginated-сторінку ведуть зовнішні посилання, Google може проіндексувати її як «сторінку без опису». При цьому посилання з самої сторінки теж не будуть обійдені, ви втратите передачу ваги на пости.noindex, followвирішує обидва завдання: сторінка не індексується, але посилання з неї обходяться.
Чи варто закривати пагінацію від індексу у вашому випадку
Відповідь зводиться до двох факторів: розмір сайту та наявність краулінгового бюджету як дефіцитного ресурсу.
Якщо у вас 50 постів і три категорії, не переймайтеся. Google розбереться, які сторінки показувати у видачі, а зайві сам відсіє як малоцінні. Фільтр wpseo_robots у цьому сценарії, надмірне ускладнення.
Якщо у вас 500+ постів, десятки категорій, активний блог із тегами та архівом дат, пагінація створює сотні й тисячі URL, які пошуковик обходить замість свіжих статей. Вмикайте варіант 2 (архіви) або варіант 1 (усе), перевіряйте результат через вихідний код і Search Console, і дайте Google 3-4 тижні на переобхід.
Код оборотний: закоментували фільтр, через місяць усі paginated-сторінки повернуться в індекс. Жодних необоротних наслідків.



