Если на сайте в GeneratePress архивы категорий, тегов или кастомных таксономий разрастаются до десятков страниц, часто появляется одна и та же проблема: в индексе остаются слабые страницы пагинации, а основной архив начинает конкурировать сам с собой. При этом полностью отключать архивы нельзя — они нужны и пользователям, и поисковым системам.
Ниже разберём рабочий сценарий: как убрать пагинацию именно там, где она не нужна, не ломая шаблоны GeneratePress и не создавая новых дублей.
Когда пагинацию архивов действительно стоит отключать
Речь не про все архивы подряд. В GeneratePress это имеет смысл, если:
- в архиве мало записей и вторая страница почти пустая;
- страницы пагинации индексируются, но не дают полезного трафика;
- в архиве есть дубли заголовков, описаний или хлебных крошек на страницах 2+;
- нужно оставить только первую страницу архива как основную посадочную;
- вы используете кастомную логику вывода записей и пагинация мешает.
Если архив большой и реально полезный, отключать пагинацию не стоит. В таком случае лучше работать с мета-тегами, canonical и качеством контента на страницах архива.
Диагностика: что именно ломается
Сначала проверьте, что проблема именно в пагинации, а не в шаблоне GeneratePress или плагине SEO. Откройте несколько страниц архива:
/category/news//category/news/page/2//tag/wordpress/page/3/
Смотрите на три вещи:
- есть ли у страниц 2+ уникальный контент;
- не меняется ли заголовок только формально, без пользы;
- не появляются ли одинаковые title и description на разных страницах архива.
Если в Search Console уже есть много страниц вида /page/2/ и они не получают кликов, это хороший кандидат на отключение или переосмысление пагинации.
Как отключить пагинацию архивов в GeneratePress точечно
В GeneratePress удобнее не трогать саму тему, а добавить фильтр в дочернюю тему или через небольшой mu-plugin. Так решение переживёт обновления.
Вариант 1: скрыть пагинацию только на выбранных архивах
Если нужно убрать пагинацию, например, только у одной категории, можно ограничить вывод через условие. Самый безопасный путь — не ломать запрос, а скрыть навигацию и оставить только первую страницу архива.
<?php
add_action( 'wp', function () {
if ( is_category( 'news' ) ) {
remove_action( 'generate_after_main_content', 'generate_posts_navigation' );
}
} );Этот пример работает только если у вас в конкретной сборке GeneratePress пагинация выводится через стандартный хук темы. Перед внедрением проверьте, что навигация действительно идёт через тему, а не через плагин или кастомный шаблон.
Если у вас используется собственный шаблон архива, иногда проще отключить пагинацию на уровне запроса и вывести только ограниченное число записей.
Вариант 2: ограничить архив одной страницей через pre_get_posts
Подходит, если вы хотите, чтобы архив показывал только первую порцию записей и не имел страниц 2, 3, 4. Это уже влияет на сам запрос.
<?php
add_action( 'pre_get_posts', function ( $query ) {
if ( is_admin() || ! $query->is_main_query() ) {
return;
}
if ( $query->is_category( 'news' ) ) {
$query->set( 'posts_per_page', 12 );
$query->set( 'no_found_rows', true );
}
} );Здесь важно понимать ограничение: если включить no_found_rows, WordPress перестанет считать общее число записей для пагинации. Это хорошо, если вы сознательно убираете страницы 2+, но плохо, если где-то ещё на этом архиве нужна навигация.
Что выбрать: код, плагин или компромисс
| Подход | Когда подходит | Минус |
|---|---|---|
| Код в дочерней теме | Нужно точечно отключить пагинацию на конкретных архивах | Требует аккуратной проверки условий |
| Плагин для SEO/чистки | Нужно ещё и убрать дубли, мета-данные, лишние архивы | Может быть избыточным для одной задачи |
| Компромисс: оставить пагинацию, но закрыть страницы 2+ | Архив полезен, но вторые страницы не нужны в индексе | Проблема не исчезает для пользователя |
Если задача шире, чем один архив, имеет смысл посмотреть в сторону Clearfy Pro: он помогает с технической чисткой WordPress, в том числе с дублями и лишними сущностями. Но если нужен именно точечный контроль в GeneratePress, код обычно надёжнее. Ссылка на продукт: Clearfy Pro.
Проверка результата после внедрения
После изменений не ограничивайтесь визуальной проверкой. Нужна техническая.
- Откройте архив и убедитесь, что навигация исчезла или стала недоступна.
- Проверьте URL
/page/2/— он должен либо отдавать 404, либо не быть доступным по логике вашего решения. - Посмотрите исходный код страницы: нет ли старых ссылок на пагинацию.
- Проверьте Search Console на новые ошибки сканирования и изменение количества страниц в индексе.
Если вы меняли запрос через pre_get_posts, полезно проверить, не сломались ли виджеты, блоки или сторонние фильтры, которые тоже опираются на текущий архивный запрос.
Мини-чек-лист перед выкладкой
- сделан бэкап файлов и базы;
- изменения вынесены в дочернюю тему или mu-plugin;
- проверены только нужные архивы, а не весь сайт;
- страницы пагинации не используются в навигации из других мест;
- кэш очищен после правки.
Частые ошибки и как их исправить
Ошибка 1: отключили пагинацию через CSS. Это не решает проблему. Страница остаётся доступной для сканирования и индексации.
Ошибка 2: правят шаблоны GeneratePress напрямую. После обновления темы изменения пропадут. Используйте дочернюю тему или mu-plugin.
Ошибка 3: отключили пагинацию, но оставили старые ссылки в sitemap. Тогда поисковик продолжит ходить по неактуальным URL. Проверьте sitemap и кэш SEO-плагина.
Ошибка 4: применили no_found_rows ко всем запросам. Это может сломать обычные архивы, поиск и некоторые блоки, где нужна корректная навигация.
Ошибка 5: забыли про каноникал. Если страницы 2+ остаются доступными, canonical должен быть осмысленным. Иначе дубли никуда не денутся.
Что делать, если архив нужен, но страницы 2+ не нужны в индексе
Это частый компромисс для GeneratePress: архив оставляем, пагинацию не убираем, но закрываем вторые и последующие страницы от индексации через SEO-плагин или шаблонные мета-теги. Такой вариант лучше, когда архив полезен пользователю, а поиску достаточно первой страницы.
Если хотите не только убрать дубли, но и подчистить лишние элементы WordPress, можно сочетать настройку GeneratePress с инструментами технической оптимизации. Главное — не смешивать задачи: тема отвечает за вывод, SEO-плагин — за индексацию, код — за логику запроса.
Практический вывод
В GeneratePress проще и безопаснее отключать пагинацию точечно, а не глобально. Для одного-двух архивов достаточно небольшого кода. Если же у вас много дублей, лишних архивов и технического мусора, лучше сначала определить, что именно нужно убрать: навигацию, индексацию или сам запрос. От этого зависит, будет ли решение чистым или создаст новые проблемы.