Зачем пагинация нужна поиску
Постраничная навигация выглядит как элемент интерфейса, но её роль в поиске — транспортная.
Робот попадает на элементы каталога по ссылкам. Товар, который лежит на седьмой странице списка и больше нигде не упоминается, достижим ровно одним маршрутом: главная — категория — страницы со второй по седьмую — карточка. Разорвите этот маршрут в любом месте, и товар исчезнет из индекса не потому, что он плох, а потому, что до него не дошли.
Отсюда правильная постановка задачи. Вопрос «как ранжировать страницы пагинации» почти всегда не тот вопрос: сами по себе они собирают мало показов и редко на это претендуют. Вопрос, который имеет значение, — доходит ли робот по ним до конца списка.
Это же объясняет, почему в теме так много вреда от разумно выглядящих решений. Закрыть страницы списка от индексации, склеить их каноническим адресом, перевести на подгрузку по кнопке — каждое из этих действий по отдельности логично и каждое обрывает маршрут.
Что именно ломается
| Решение | Как выглядит замысел | Что происходит на самом деле |
|---|---|---|
| Canonical со всех страниц на первую | Убрать дубли из индекса | Страницы со второй перестают обходиться, элементы теряются |
noindex на страницах списка | Не засорять выдачу | Обход постепенно урежается, вглубь каталога робот заходит реже |
Disallow для параметра страницы | Сэкономить бюджет обхода | Маршрут вглубь закрыт полностью, экономия обернулась потерей |
| Прокрутка без ссылок в HTML | Современный интерфейс | Для робота список заканчивается на первой порции |
| Ссылки только «вперёд» и «назад» | Минималистичная навигация | До конца длинного списка робот идёт слишком долго и часто не доходит |
Общий механизм у всех строк один: замысел касается страниц списка, а последствия — элементов, на которые эти страницы ссылаются. Владелец сайта смотрит на категорию, видит, что она в порядке, и не связывает с ней пропажу товаров.
Проверять это удобнее не по спискам, а по элементам: сколько карточек получает показы и какая доля от общего числа это составляет.
Три схемы разбивки и что с ними делает робот
Классическая нумерация. У каждой страницы свой адрес, все они доступны по обычным ссылкам. Робот обходит их независимо друг от друга, порядок значения не имеет. Схема самая предсказуемая и по-прежнему самая надёжная.
Кнопка «показать ещё». Первая порция в HTML, остальные подгружаются по нажатию. Работает для поиска только при одном условии: за кнопкой стоят настоящие адреса, и в разметке присутствуют обычные ссылки на них. Если подгрузка идёт запросом без изменения адреса, всё, кроме первой порции, для робота отсутствует.
Бесконечная прокрутка. То же самое, что предыдущая схема, но без явного действия пользователя. Отдельная сложность в том, что состояние прокрутки не сохраняется в адресе: человек не может дать ссылку на то, что нашёл, а робот не может вернуться в ту же точку.
Общее правило для двух последних схем формулируется просто: интерфейс может быть любым, но под ним должны лежать адресуемые страницы, ссылки на которые видны без исполнения скриптов. Как проверить, что видит робот в исходном коде, описано в техническом аудите.
Разметка, которая работает
Набор правил короткий.
Canonical каждой страницы — на себя. Со второй страницы — на вторую, с третьей — на третью, с учётом того, что параметры сортировки в адрес канонического не входят. Логика та же, что в общем разборе канонических адресов: страницы разные, склеивать их нечем.
Заголовок и описание различаются между страницами. Достаточно указания номера. Одинаковые метатеги на сорока страницах — источник массовых предупреждений в панели вебмастера и повод для системы считать страницы дублями.
Ссылки на соседние и на несколько удалённых страниц. Навигация только «вперёд» и «назад» делает последнюю страницу каталога недостижимой за разумное число переходов. Ссылки на первую, последнюю и промежуточные сокращают путь — это тот же приём, что и в перелинковке.
Первая страница списка без номера в адресе. Вариант с явной единицей должен переадресовываться на базовый адрес категории, иначе появляется дубль на ровном месте — механика описана в структуре адресов.
Параметры сортировки и фильтров не смешиваются с номером страницы. Сортировка не создаёт нового содержимого, номер страницы создаёт. Первое канонизируется, второе — нет.
Как проверить свою пагинацию
Две команды показывают, видит ли робот переходы вглубь и что указано на второй странице.
curl -s 'https://example.com/catalog/' \
| grep -oE 'href="[^"]*page[=/][0-9]+[^"]*"' | sort -u | head -n 20
curl -s 'https://example.com/catalog/page/2/' \
| grep -iE '<link[^>]*canonical[^>]*>|<meta[^>]*robots[^>]*>'
Разбор ответов:
- Первая команда вернула несколько разных адресов — ссылки на другие страницы присутствуют в исходном HTML. Это основное, что требуется от навигации.
- Первая команда вернула пусто — ссылок в коде нет, навигация собирается скриптом. Для робота список заканчивается на первой порции, и всё остальное достижимо только из других мест сайта.
- Вторая команда показала
canonical, ведущий на/catalog/— та самая ошибка со склейкой на первую страницу. Значение нужно исправить на адрес самой второй страницы. - Вторая команда показала
<meta name="robots" content="noindex">— страницы списка закрыты от индексации. Это осознанное решение, если элементы имеют другие входы, и авария, если не имеют. - Обе команды отработали, но адреса в выводе первой отличаются от того, что открывается в браузере — навигация подменяется скриптом поверх исходной разметки, и проверять придётся оба варианта.
Массово то же самое собирается краулером по всем категориям сразу, а факт обхода глубоких страниц роботом подтверждается только серверными журналами.
В индексе только первые страницы категорий, дальше пусто. Проверьте canonical на второй странице и наличие ссылок в исходном HTML. Обе причины дают одинаковую картину, а лечатся по-разному, поэтому смотреть надо оба места.
Товары из конца каталога не появляются в поиске месяцами. Маршрут до них слишком длинный: робот не доходит до тридцатой страницы списка. Сократите путь — добавьте ссылки на промежуточные страницы, разбейте категорию на подкатегории, добавьте элементы в карту сайта.
Панель показывает тысячи страниц-дублей с параметрами. Номер страницы смешался с сортировкой и фильтрами, и комбинации перемножились. Разведите их: сортировку канонизируйте на базовый адрес, номер страницы оставьте самостоятельным.
После перехода на бесконечную прокрутку упал трафик карточек, а не категорий. Категории остались на месте, потому что их адреса не менялись. Пропали входы вглубь. Верните адресуемые страницы под интерфейсом прокрутки — сам интерфейс можно оставить.
Где пагинация не нужна и где она не поможет
Разбивка на страницы решает задачу объёма. Там, где объёма нет, она создаёт проблемы вместо того, чтобы решать.
Список из полутора десятков элементов делить не нужно: одна страница обходится проще, чем три, и человеку удобнее. Разбивка по три-четыре элемента на страницу, встречающаяся в шаблонах блогов, — чистый вред: она умножает число адресов и растягивает маршрут до старых материалов.
Не поможет она и там, где корень проблемы в структуре каталога. Категория на четыреста позиций с сорока страницами списка — это не задача пагинации, а сигнал, что нужны подкатегории. Пагинация переносит нагрузку с одной страницы на сорок, но общий путь до элемента не сокращает.
Отдельная граница — скорость. Страницы списка обычно самые тяжёлые на сайте: много изображений, фильтры, скрипты. Медленная страница пагинации замедляет весь маршрут вглубь, и это ощущается сильнее, чем медленная карточка; про измерение — в разборе скорости загрузки.
И последнее ограничение: пагинация не влияет на то, ранжируется ли сам элемент. Она отвечает только за то, дойдёт ли до него робот. Если товар в индексе, но показов нет, причина лежит в другом месте.
Спорное место
Совет «оставляйте страницы пагинации открытыми» звучит уверенно, но у него есть цена, о которой обычно молчат. Открытые страницы списка тратят обход, попадают в отчёты как малополезные и иногда конкурируют с самой категорией в выдаче по её же запросам.
Рекомендация всё равно остаётся такой, потому что альтернатива хуже. Но честнее сформулировать её как выбор меньшего вреда, а не как правило: мы соглашаемся на лишние адреса в базе ради того, чтобы элементы каталога оставались достижимыми.
Есть и ситуация, где выбор меняется. Если у товаров есть независимые входы — из карты сайта, из подборок, из связанных материалов, — закрытие страниц списка перестаёт быть опасным и снимает мусор из индекса. Проблема в том, что проверить наличие таких входов труднее, чем поставить директиву, и именно поэтому по умолчанию советуют не трогать.
Частые вопросы
Нужно ли ставить canonical со второй страницы на первую?
Закрывать ли страницы пагинации от индексации?
Работают ли атрибуты rel next и rel prev?
Что лучше для поиска — постраничная навигация или бесконечная прокрутка?
Нужна ли страница «показать все»?