# Пагинация в каталоге магазина: ?page=, «показать ещё» и canonical

Адрес материала: https://shopseo.ru/tehnika/paginaciya/
Тема страницы: Как настроить пагинацию каталога для Яндекса и Google: адреса страниц, canonical, сортировки и параметры, кнопка «показать ещё» и бесконечная прокрутка без потери товаров.

Три вывода:
- Каждая страница пагинации — отдельный адрес, на который ведёт обычная ссылка, иначе товары с глубоких страниц теряются.
- Сортировки и вид списка не создают новых страниц: их склеивают canonical и Clean-param.
- «Показать ещё» и бесконечная прокрутка допустимы, если под ними есть настоящие адреса страниц.


Пагинация нужна поиску не ради самих страниц 2, 3 и 10, а ради товаров, которые на них лежат: через неё робот находит карточки, до которых нет других ссылок. Поэтому главное правило простое — у каждой страницы списка есть собственный постоянный адрес и обычная HTML-ссылка на неё. Сортировки, вид списка и число товаров на странице, наоборот, новых страниц для поиска создавать не должны.

## Три типичные ситуации

Чтобы не путаться в настройках, полезно сначала понять, какой у вас случай. На практике встречаются три схемы, и у каждой свои слабые места.

**Классическая нумерация.** Под списком товаров ссылки «1 2 3 … 12». Самый понятный для робота вариант. Проблемы обычно с дублями: первая страница открывается и по адресу категории, и по `?page=1`.

**Кнопка «показать ещё».** Товары догружаются под уже показанными. Удобно на телефоне, но если кнопка работает только скриптом и не меняет адрес, робот видит одну первую страницу, а всё, что дальше, для него не существует.

**Бесконечная прокрутка.** То же самое, только без кнопки. Риски те же, плюс тяжёлая страница после долгой прокрутки и невозможность вернуться к месту, где покупатель остановился.

## Адреса страниц

Схема адресов должна быть одна на весь каталог. Оба варианта ниже рабочие, выберите один и придерживайтесь его:

```
https://shop.example/catalog/kurtki/
https://shop.example/catalog/kurtki/?page=2
https://shop.example/catalog/kurtki/?page=3

или

https://shop.example/catalog/kurtki/
https://shop.example/catalog/kurtki/page-2/
https://shop.example/catalog/kurtki/page-3/
```

Первая страница существует только по адресу категории. Если CMS умеет отдавать её же по `?page=1` или `/page-1/`, настройте 301-редирект на чистый адрес. Несуществующая страница, например `?page=999` при двенадцати реальных, должна отдавать код 404, а не копию первой страницы или пустой список с кодом 200.

## Canonical на страницах пагинации

Здесь чаще всего ошибаются. Соблазн понятен: поставить на все страницы `?page=N` canonical на первую страницу, чтобы «не было дублей». Но страница 5 — не копия страницы 1: на ней другие товары. Если поисковая система примет такой canonical, она может перестать обходить глубокие страницы, и товары на них останутся без входящих ссылок.

Надёжный вариант — canonical на саму себя:

```html
<!-- на https://shop.example/catalog/kurtki/?page=3 -->
<link rel="canonical" href="https://shop.example/catalog/kurtki/?page=3">
```

Чтобы страницы пагинации не конкурировали с первой за запрос категории, сделайте их заголовки отличными и менее «продающими»:

```
title:  Куртки детские — страница 3 | {магазин}
H1:     Куртки детские, страница 3
```

Текст категории, баннеры и блок популярных фильтров выводите только на первой странице. Google с 2019 года не использует разметку `rel="prev"` и `rel="next"` как сигнал, поэтому опираться на неё не стоит; ссылки на соседние страницы в самом списке важнее.

## Сортировки, вид и число товаров

Параметры вроде `?sort=price_asc`, `?view=list` или `?count=48` показывают те же товары в другом порядке. Для поиска это копии, и робот не должен тратить на них время.

| Параметр | Пример | Меняет набор товаров? | Что сделать |
|---|---|---|---|
| Номер страницы | `?page=3` | Да | Индексировать, canonical на себя |
| Сортировка | `?sort=price_asc` | Нет | Canonical на страницу без сортировки, Clean-param |
| Вид списка | `?view=list` | Нет | Canonical, Clean-param, лучше хранить в cookie |
| Товаров на странице | `?count=48` | Частично | Canonical на вариант по умолчанию, Clean-param |
| Метки рекламы | `?utm_source=…` | Нет | Clean-param, canonical |

Для Яндекса такие параметры перечисляют в Clean-param, и робот склеивает адреса с основным:

```
User-agent: Yandex
Clean-param: sort&view&count /catalog/
```

Параметр `page` в Clean-param не добавляйте: он меняет содержимое, и склейка уберёт из индекса нужные страницы. Для Google ту же задачу решает canonical, Clean-param он не читает. Если сортировка сочетается с фильтрами, правила для фильтров разобраны на странице о [фасетной навигации](https://shopseo.ru/tehnika/filtry/).

## Как сделать «показать ещё» и бесконечную прокрутку безопасными

Схема, при которой удобство не мешает индексации:

1. Под кнопкой «показать ещё» в HTML лежит обычная ссылка на следующую страницу: `<a href="/catalog/kurtki/?page=2">`. Скрипт перехватывает клик и догружает товары, а робот просто переходит по ссылке.
2. При догрузке адрес в строке браузера меняется на `?page=2`, `?page=3` через History API. Покупатель может поделиться ссылкой или вернуться к месту, где остановился.
3. Каждая такая страница открывается напрямую и отдаёт свои товары в исходном HTML, без выполнения скриптов.
4. Под бесконечной прокруткой остаётся классическая нумерация в подвале списка — для робота и для тех, кто хочет перейти сразу к концу.

Чем больше товаров догружено на одной странице, тем тяжелее она становится. Это заметно по показателям отзывчивости на телефонах, подробнее — в материале о [скорости каталога](https://shopseo.ru/tehnika/skorost-kataloga/).

## Сколько товаров на странице

Чем больше товаров на одной странице, тем меньше страниц пагинации и тем ближе к первой странице оказываются все карточки. Но перегруженная страница медленнее грузится. Разумный компромисс подбирают по категории: в разделе с крупными фото одежды товаров на странице меньше, в разделе крепежа с компактными строками — больше. Если в категории сотни страниц, это повод не увеличивать число товаров, а разделить её на подкатегории — как это сделать, описано на странице о [структуре каталога](https://shopseo.ru/tehnika/struktura-kataloga/).

## Как проверить

Откройте страницу 3 любой крупной категории и посмотрите исходный код: есть ли список товаров без выполнения скриптов, какой canonical, какие title и H1. В Яндекс Вебмастере проверьте через «Страницы в поиске», не исключены ли страницы пагинации как дубли первой, а в «Статистике обхода» — нет ли среди обходимых адресов массы сортировок. В Google Search Console инструмент проверки URL покажет, какой canonical выбрал Google для страницы пагинации и совпадает ли он с вашим. Полный обход раздела по блокам удобно делать по чек-листу [аудита магазина](https://shopseo.ru/praktika/audit-magazina/).

## Проверить в своём магазине

- У каждой страницы пагинации постоянный адрес, на который ведёт обычная HTML-ссылка.
- Первая страница доступна только по адресу категории, `?page=1` перенаправляет на него.
- Canonical на страницах пагинации указывает на саму страницу, а не на первую.
- Несуществующие номера страниц отдают код 404.
- Сортировки, вид списка и метки склеены через canonical и Clean-param, параметр `page` не склеен.
- Кнопка «показать ещё» меняет адрес и опирается на настоящую ссылку на следующую страницу.

## Вопросы владельцев магазинов

### Нужно ли закрывать страницы пагинации тегом noindex?

Обычно нет. Noindex на страницах пагинации со временем может привести к тому, что робот реже ходит по ссылкам с них, и глубокие товары теряют входящие ссылки. Лучше оставить страницы открытыми, сделать им отличные от первой страницы заголовки и убрать с них текст категории.

### Может ли страница 2 обогнать первую страницу категории в поиске?

Такое случается, когда страницы пагинации слишком похожи на первую: тот же title, тот же H1, тот же текст. Если на страницах 2 и дальше в заголовке есть номер, а текст и продающие блоки остаются только на первой, поисковой системе проще выбрать для запроса правильную страницу.

### Подходит ли бесконечная прокрутка для каталога магазина?

Подходит, если под ней есть настоящие адреса страниц и обычные ссылки на них, а адрес в браузере меняется при догрузке. Без этого робот видит только первую порцию товаров, а покупатель теряет место в списке при возврате с карточки.

### Что делать, если сортировки уже попали в индекс?

Поставьте на страницы с сортировкой canonical на адрес без параметра, добавьте параметр в Clean-param для Яндекса и уберите ссылки с сортировкой из тех мест, где их видит робот, например из карты сайта. Адреса выпадут из индекса постепенно, после повторного обхода.

