Короткий ответ: каждой части списка нужны постоянный URL, self-canonical, HTML-ссылки и предсказуемый состав. Page=1 не должен дублировать категорию, а номер за границей — отвечать пустой страницей с кодом 200. Фильтры, сортировки и размер выдачи проектируют отдельно, иначе их комбинации создадут множество похожих URL.
Не закрывайте всю цепочку в robots.txt и не направляйте canonical всех страниц на первую: робот может потерять путь к глубоким элементам. Корректная схема не гарантирует индексацию каждого номера; она создаёт понятную структуру без дублей и бесконечного обхода параметров.
Что считать пагинацией
Пагинация делит список на части: /catalog/, /catalog/?page=2, /catalog/?page=3. Фильтр меняет состав выдачи, сортировка — порядок. Механизмы могут сочетаться, но для сочетаний нужны правила.
До разработки составьте карту URL: категория, вторая и последняя страницы, page=1, сортировки, фильтры и ошибочные номера. Для каждого задайте статус, canonical, robots, sitemap и внутренние ссылки.
Базовая схема
- Каждая часть списка открывается по своему URL без предварительного клика или запуска сценария.
- Страница 2 канонизирует страницу 2, страница 3 — страницу 3.
- Начало списка доступно по одному адресу;
page=1не образует индексируемую копию. - Переходы имеют
href. JavaScript улучшает интерфейс, но не остаётся единственным способом продолжить просмотр. - Номер за пределами списка возвращает статус отсутствия, а не пустой шаблон с кодом 200.
Как настроить пагинацию
1. Выберите единый формат URL
Подойдут и параметр ?page=2, и путь /page/2/. Важнее единообразие внутренних ссылок, canonical, редиректов и серверной логики. Нормализуйте регистр, завершающий слеш, порядок и кодирование параметров: ?page=2&sort=popular и ?sort=popular&page=2 не должны становиться разными страницами лишь из-за порядка.
Все ссылки на начало ведите на чистый URL категории. Если ?page=1 уже доступен, обычно уместен 301-редирект на базовый адрес. Проверьте, что он не создаёт цепочку.
2. Оставьте ссылки в HTML
Кнопка «Показать ещё», обращающаяся к API, удобна пользователю, но не всегда даёт роботу путь к продолжению. Поэтому части списка должны иметь доступные URL и обычные ссылки. Необязательно показывать сотни номеров: достаточно первой, предыдущей, соседних, следующей и последней страницы.
При бесконечной прокрутке пагинация остаётся технической основой. Прямое открытие URL должно показывать нужную часть, а обновление — сохранять состояние. JavaScript лишь подгружает элементы и обновляет адрес.
Проведите обход без JavaScript, затем с рендерингом. Если продолжение находится только во втором случае, навигация чрезмерно зависит от клиента. Подробнее — в статье о JavaScript SEO и рендеринге.
3. Настройте canonical по содержимому
Canonical всех страниц на первую — ошибка: четвёртая часть содержит другие элементы и не является точной копией первой. Базовый вариант — self-canonical каждой рабочей страницы на её чистый URL.
Сортировка или вид отображения могут канонизироваться на основной URL номера, если набор тот же. Фильтр с самостоятельным спросом нельзя сводить к общей категории, если он развивается как посадочная.
Canonical — сигнал о предпочтительном адресе, а не запрет на обход. Он не заменяет редирект для page=1, не удаляет мусорные URL и не исправляет ссылки, которые их создают. Сверить canonical с robots и sitemap поможет чек-лист технической гигиены сайта.
4. Определите индексируемый контур
Универсального правила нет. Проверьте:
- есть ли на продолжениях уникальные доступные элементы;
- находятся ли они по другим внутренним ссылкам;
- получают ли страницы показы и входы;
- конкурируют ли они с основной категорией;
- насколько стабилен порядок;
- возникают ли пустые или почти пустые хвосты.
Если странице назначен noindex, робот должен открыть URL и прочитать директиву. Не блокируйте этот адрес в robots.txt: метатег может остаться недоступен. Noindex также не заменяет устранение источников бесконечных параметров.
5. Разведите фильтры и сортировки
Сортировкам обычно не нужны индексируемые URL, SEO-ссылки и записи в sitemap. Для них задают согласованный canonical и ограничивают комбинации.
Фильтры оценивайте отдельно. Категория плюс город иногда становится посадочной, а случайная комбинация многих признаков — тонкой страницей. Составьте конечный список разрешённых URL, остальные сочетания не открывайте как бесконечный граф.
Пагинация наследует статус фильтра. Если фильтр — посадочная, его страницы продолжают этот список и канонизируются внутри него. Если фильтр технический, пагинация не должна размножать его на сотни адресов.
6. Обработайте границы списка
Если в категории пять страниц, page=9999 не должен отвечать кодом 200 и сообщением «ничего не найдено». Обычно нужен 404 или иной предусмотренный статус отсутствия.
Если последняя страница исчезла, обновите навигацию и sitemap, проверьте доступность карточек, затем меняйте ответ бывшего URL. Не перенаправляйте неверный номер на начало: точной замены у пустого хвоста нет. Page=1 — отдельный случай.
Порядок элементов должен быть стабильным. Иначе карточки скачут между страницами, временно дублируются или выпадают. При равных значениях основного критерия добавьте устойчивый вторичный критерий, например ID.
7. Согласуйте sitemap и перелинковку
В sitemap включайте только канонические индексируемые URL. Сортировки, дубли первой страницы и случайные параметры там не нужны. Приоритетны конечные карточки, услуги и статьи.
Не заставляйте робота проходить длинную цепочку ради важного материала. Используйте рубрики, подборки, связанные материалы и контекстные ссылки. Практические принципы собраны в гайде по внутренней перелинковке для SEO.
Пример: каталог из 240 услуг
Каталог показывает по 24 позиции и состоит из десяти страниц. Интерфейс умеет сортировать услуги и менять размер выдачи. Без правил появляются несколько версий каждого номера, page=1 и пустые хвосты.
Основными становятся размер 24 и порядок по умолчанию. Начало открывается по /services/, продолжение — по /services/?page=2 и далее. ?page=1 получает 301-редирект на /services/. Каждая существующая страница имеет self-canonical. Ссылки «предыдущая» и «следующая» присутствуют в HTML; JavaScript может перехватывать клик и обновлять список без перезагрузки.
Сортировки остаются пользовательскими режимами: их нет в sitemap и внутренних SEO-ссылках. Недопустимый размер выдачи и номер больше десяти возвращают 404. У каждой услуги есть отдельная ссылка, её канонический URL включён в sitemap.
После релиза проводят обход без JavaScript и с рендерингом, сверяют коды, canonical и серверные логи. Цель — не добиться индексации ровно десяти страниц, а сохранить доступность услуг и не отправлять робота по бесконечным комбинациям.
Ограничения и контроль по данным
Даже идеальная настройка не гарантирует индексацию каждого URL. Оценивайте обход, логи и доступность конечных карточек, а не один отчёт.
В логах разделите запросы к чистым страницам, page=1, рабочим номерам, пустым хвостам, фильтрам и сортировкам. Смотрите частоту обхода и коды ответа. Если робот тратит запросы на тысячи сортировок, ищите источник адресов в ссылках, шаблоне или интерфейсе. Если он редко доходит до карточек, проверяйте глубину и дополнительные маршруты. Подробнее — в материале про логи сервера для SEO.
В аналитике разделяйте категорию и продолжения. Слабый трафик глубокой страницы не доказывает, что её нужно закрыть: она может обеспечивать доступ к элементам.
Частые ошибки
- Canonical всех страниц на первую. Разные части объявляются дублями.
- Блокировка в robots.txt. Робот не видит содержимое, ссылки и директивы.
- Навигация только через JavaScript. В HTML нет доступного следующего URL.
- Индексация всех комбинаций. Пагинация перемножается с фильтрами, сортировками и размером выдачи.
- Отдельный
page=1. Возникает дубль категории. - Код 200 у пустого хвоста. Любой номер выглядит существующим.
- Нестабильный порядок. Появляются дубли и временные пропуски.
- Чрезмерная глубина. Важные карточки доступны лишь после множества переходов.
- Проверка только интерфейса. Он может скрывать неверные статусы и отсутствие ссылок в исходном HTML.
- Ожидание гарантированной индексации. Техническая схема создаёт условия, но не управляет решением поисковика.
Практический чек-лист
- выбран единый формат URL;
page=1не создаёт индексируемый дубль;- существующие номера открываются напрямую и отвечают 200;
- номер за границей возвращает статус отсутствия;
- рабочие страницы имеют self-canonical;
- соседние страницы связаны без зависимости от JavaScript;
- бесконечная прокрутка опирается на постоянные URL;
- сортировки и размер выдачи не создают бесконечный индекс;
- полезные фильтры отделены от технических;
- sitemap содержит выбранные канонические URL;
- карточки доступны по обычным внутренним ссылкам;
- важные элементы не зависят от чрезмерной глубины;
- обход с JavaScript и без него даёт ожидаемые URL;
- логи не показывают постоянный обход мусорных параметров;
- после изменения списка проверена последняя страница;
- правила включены в документацию и регрессионные тесты.
Как поставить задачу разработчику
Приложите таблицу с базовым URL, страницей 2, page=1, сортировкой, разрешённым фильтром, пустым и слишком большим номером. Для каждого примера укажите ожидаемые status, canonical, robots, ссылки и наличие в sitemap.
Критерии приёмки: ссылки есть в HTML; прямое открытие и обновление сохраняют нужную часть; ошибка API не даёт пустую страницу с 200; параметры нормализуются; карточки находятся без сценариев.
Черновик таблицы и тест-кейсов можно подготовить в нейросети XelaGroup, но итог проверяйте запросами к серверу, краулером и логами. Если нужен разбор конкретного каталога с приоритетами исправлений, напишите в Telegram.
FAQ
Нужно ли закрывать пагинацию от индексации?
Не автоматически. Сначала определите её роль в обнаружении элементов и изучите данные. Для одной категории разумно оставить цепочку открытой, для другой — ограничить индексируемый контур. Robots.txt не заменяет проектирование URL.
Можно ли ставить canonical со второй страницы на первую?
Обычно нет: наборы элементов различаются. Базовый вариант — self-canonical. Исключение возможно только при реальной эквивалентности содержимого.
Нужны ли rel="next" и rel="prev"?
Их можно оставить как дополнительную семантику, если это соответствует требованиям проекта, но строить на них стратегию не стоит. Постоянные URL, обычные ссылки и корректные статусы важнее. Перед внедрением сверьтесь с актуальной документацией нужных поисковых систем.
Как совместить пагинацию и бесконечную прокрутку?
Каждая порция получает постоянный URL и доступные ссылки. JavaScript подгружает элементы и при необходимости обновляет адрес, но прямое открытие и перезагрузка воспроизводят нужное состояние.
Добавлять ли страницы пагинации в sitemap.xml?
Только если они входят в индексируемый контур. Конечные карточки и статьи в любом случае должны иметь собственные канонические URL и внутренние ссылки. Sitemap не заменяет навигацию.
Что делать, если товары часто меняют позиции?
Используйте стабильную сортировку по умолчанию. После изменений проверяйте последние страницы, дубли и пропуски. Для динамичного каталога особенно важны прямые ссылки на карточки и актуальный sitemap.
Как понять, что всё работает?
Сравните обход до и после: канонические URL, пустые страницы, дубли, глубину карточек и мусорные параметры. Затем проверьте логи и индексацию. Признак исправной схемы — полезные элементы доступны, а технический шум сокращается; заданного числа URL в индексе не требуется.

