
Пагинация каталога больше не управляется атрибутами rel=next и rel=prev: Google официально сообщил об этом в 2019 году и добавил неприятную подробность — как индексирующий сигнал они не использовались задолго до объявления. Яндекс отдельного сигнала пагинации не применял никогда.
Ниже — чем заменить связку страниц, почему канонический адрес на первую страницу вредит каталогу, как пагинация вместе с фильтрами и метками размножает дубли, где видно, что робот застрял в бесконечных списках, и в каком порядке всё это внедрять.
Что отменил Google в 2019-м и чего у Яндекса не было никогда
Отменили одно: трактовку rel=next и rel=prev как указания считать несколько адресов одной последовательностью. Раньше по этой логике вес страниц списка сводился к первой, а карточки со всех страниц считались частью общего набора. Сейчас каждая страница живёт сама по себе.
Сами атрибуты остались валидным HTML — это стандартные типы связей между документами, их читают браузеры и вспомогательные технологии. Вырезать их не нужно, нужно перестать считать, что они решают что-то в индексации.
У Яндекса менять было нечего: в справке Яндекс.Вебмастера пагинация описана через обычные ссылки, канонические адреса и полезность страницы. Вывод для обеих систем один — страницы списка самостоятельные документы, и сделать их надо обходимыми, различимыми и не пустыми.
| Что делали по старым инструкциям | Работает ли сейчас | Что вместо этого |
|---|---|---|
| Прописывали rel=next и rel=prev, чтобы «склеить» список | как сигнал индексации — нет | оставить как разметку, не рассчитывать на неё |
| Ставили канонический адрес всех страниц на первую | во вред: дальние страницы выпадают из обхода | самоканонический адрес на каждой странице |
| Закрывали пагинацию от индексации | лишает робота пути к карточкам | оставить открытой, но различимой |
Как робот обходит большой каталог без этих атрибутов — в материале про то, как Яндекс обходит каталог из 500 страниц.
Чем заменить rel=next: обходимые ссылки на страницы 2 и 3
Замена звучит скучно, но именно она решает задачу: в коде должны быть настоящие ссылки на следующие страницы. Настоящая — та, по которой переходят без выполнения скриптов. Кнопку, подгружающую товары запросом к серверу, робот не нажимает: он идёт по адресам.
Проверяется за минуту без программиста. Вызовите просмотр исходного кода — того, что прислал сервер, а не дерева в панели разработчика, — и найдите поиском номер второй страницы. Есть конструкция с href и адресом — связь есть. Номер только внутри скрипта — связи нет.
- Ссылки на ближайшие номера и на последнюю страницу. Нумерация «1 2 3 … 40» даёт короткий путь вглубь вместо сорока переходов.
- Один вид адресов. Умеет шаблон и номер в пути, и параметр с номером — оставьте одно, со второго редирект.
- Первая страница без номера. Адрес раздела и «страница 1» не должны быть двумя рабочими адресами.
- Ссылки видны сразу. Блок, который появляется после нажатия на «ещё», в исходном коде отсутствует.
- Устойчивая сортировка. При случайном порядке состав второй страницы меняется при каждом обходе.
Канонический адрес на первую страницу — почему это вредит каталогу
Самое частое и самое дорогое решение в шаблонах: на всех страницах пагинации указать канонической первую страницу раздела. Логика кажется безупречной — товары те же, шаблон тот же. На практике это отключает от поиска половину каталога.
Канонический адрес — заявка владельца: «эта страница копия другой, показывайте другую». Поисковик воспринимает её буквально и снижает частоту обхода. Но содержимое страниц разное, а других путей к дальним карточкам часто нет: в поиск попадают первые двадцать-тридцать товаров раздела, остальные сотни — только при ссылках откуда-то ещё.
Правильный вариант — самоканонический адрес: страница указывает канонической саму себя, со своим номером и без лишних параметров. Обычно в выдаче остаётся первая, часть дальних выпадает как малоценная, и это нормально: задача пагинации — вести робота к карточкам, а не занимать места в выдаче.
| Вариант обработки | Что будет с обходом карточек | Когда уместен |
|---|---|---|
| Самоканонический адрес на каждой странице | карточки со всех страниц доступны роботу | базовый вариант для любого каталога |
| Канонический на первую страницу | дальние страницы теряют обход, карточки выпадают | практически никогда |
| Канонический на страницу «показать все» | карточки доступны, если она грузится быстро | раздел до сотен позиций |
| Запрет обхода в robots.txt | дальние карточки не видны вообще | когда у товара есть другие пути |
Разница между последними двумя строками принципиальна: запрет индексации робот видит, только зайдя на страницу, и ссылки с неё ещё какое-то время читает, а при запрете обхода не заходит вовсе.
Заголовок и описание страниц пагинации: номер обязателен
Если у сорока страниц раздела один заголовок и одно описание, вы сделали сорок почти неотличимых документов: поисковику это повод исключить их как дубли, вам — потерянный обход. Различие вносится дешевле некуда: номер в заголовке и описании со второй страницы, вида «Название раздела — страница 2». Заголовок первого уровня менять не обязательно.
Что ещё делает страницы неотличимыми: описание раздела на две тысячи знаков под товарами на каждой странице, одинаковая перелинковка и хлебные крошки. Ошибка в обратную сторону — уникальный продающий текст под каждую страницу списка: читать его никто не будет, а раздел оценят по товарам.
Бесконечная прокрутка, «показать ещё» и шаг выдачи
Бесконечная прокрутка опасна тем, что дальние порции товаров появляются после выполнения скрипта, а не приходят с сервера в исходном коде, а скрипты поисковики выполняют не всегда. В разделе восемьсот товаров, в первой порции сорок: в поиске находятся сорок карточек, остальных как будто нет. Владелец видит в карте сайта все восемьсот адресов — но карта сайта не заменяет ссылок.
Рабочее решение — гибрид. Сервер отдаёт первую порцию товаров в исходном коде, под списком стоит кнопка «показать ещё» для человека, а рядом, в том же блоке, обычная нумерованная пагинация настоящими ссылками: оформить её можно скромно, но в коде она быть обязана. Проверка — откройте адрес третьей страницы в новом окне и убедитесь, что там товары третьей страницы, а не начало списка.
Второй способ — уменьшить число страниц: двадцать товаров на странице при восьмистах позициях дают сорок страниц, шестьдесят — четырнадцать. Ограничение серьёзное: скорость, поэтому шаг увеличивают только вместе с отложенной загрузкой картинок. Страница «показать все» работает, пока раздел небольшой — порядка нескольких сотен позиций.
Для больших разделов разумнее дробить ассортимент на подкатегории и фильтры: подкатегория отвечает на конкретный запрос, а сороковая страница списка — ни на один. Как из фильтров делают посадочные страницы, я показывал в материале про фильтры в каталоге, которые приносят до 40% трафика.
Фильтры, сортировки и метки поверх пагинации: арифметика дублей
Проблема начинается, когда на пагинацию накладываются другие параметры. Сорок страниц списка, три сортировки, два вида отображения, три шага выдачи — семьсот двадцать адресов с одними товарами в разном порядке, плюс рекламные метки. Сорок нужных адресов и семьсот лишних — это и есть механизм, из-за которого робот ходит по каталогу месяцами.
Перечень источников таких адресов я собирал в материале про дубли, которые вы не видите: пагинацию, фильтры, метки и сессионные параметры; на движках вроде WordPress добавляются служебные списки — о них в разборе трёх источников дублей, о которых молчат в курсах.
Большую часть задачи решает разделение параметров на две группы. Одни меняют состав товаров — фильтры по свойствам. Другие меняют только показ: сортировка, отображение, шаг выдачи, метки, сессии; их исключают из индексации. Комбинации фильтров со спросом оформляют отдельными страницами, остальные закрывают. Забывают про порядок параметров: один набор фильтров в двух вариантах написания — это два адреса с одним содержимым.
Clean-param, Disallow и канонические адреса: что где работает
Директива Clean-param в robots.txt — инструмент Яндекса: она сообщает роботу, что параметр на содержимое не влияет и адреса с ним и без него надо считать одним. Указывается имя параметра и, при необходимости, префикс пути; синтаксис — в справке Яндекс.Вебмастера, раздел про robots.txt. Способ самый точный: адрес остаётся доступен людям, но обход на него не тратится. Google директиву игнорирует, аналога у него сейчас нет.
Disallow понимают обе системы, но инструмент грубый: попавшая под маску нужная страница пропадает вместе с лишними, а закрытый адрес поисковик всё равно может показать в выдаче — только без содержимого. Канонический адрес обе системы трактуют как рекомендацию, и он бесполезен там, где адресов сотни тысяч: робот должен зайти на каждый.
| Тип адреса | Яндекс | Если не делать ничего | |
|---|---|---|---|
| Сортировка, отображение, шаг выдачи | Clean-param | канонический без параметров, при объёме плюс Disallow | кратный рост адресов |
| Рекламные метки | Clean-param | канонический адрес без метки | дубли и разбитая статистика |
| Идентификаторы сессий | убрать в движке | убрать в движке | бесконечное число адресов |
| Страницы пагинации | самоканонические, открыты | самоканонические, открыты | терпимо при разных заголовках |
| Фильтры без спроса | Disallow по маске | Disallow по маске | десятки тысяч малоценных страниц |
Практический вывод: robots.txt магазина, работающего на обе системы, пишут разными блоками — общие запреты для всех роботов и отдельный блок с Clean-param для Яндекса. Сколько трафика реально приходит из Google, я считал в материале о том, что Google в России ещё жив.
Тонкие страницы пагинации и пустые страницы после удаления товаров
Дальние страницы почти без содержимого. Пятнадцать товаров, а обвязки — шапка, меню, фильтры, подвал — в несколько раз больше. Поисковик видит документ с малой уникальной частью и отправляет в исключённые как малоценный. При большом числе таких страниц они съедают обход.
Страница открывается, но товаров нет. Было восемьсот товаров и сорок страниц, часть распродали, осталось двести и десять — а адреса с одиннадцатой по сороковую по-прежнему отдают код успеха с пустым списком. Сюда же: подставьте номер девятьсот девяносто девять. Отдаётся пустая страница с кодом успеха — адресов бесконечно много.
| Ситуация | Правильный ответ сервера | Почему |
|---|---|---|
| Номер страницы больше числа существующих | 404, не найдено | адреса нет и не будет |
| Раздел сократился, дальние страницы опустели | 404 либо 301 на последнюю существующую | 301 сохраняет прежние ссылки |
| Раздел удалён, товары перенесены | 301 на новый раздел | сохраняет ссылки и людей из закладок |
| «Страница 1» запрошена с номером | 301 на адрес раздела без номера | убирает второй рабочий адрес одной страницы |
Отдельно против решения, которое кажется аккуратным: перенаправлять несуществующие страницы списка на главную «на всякий случай». Массовое перенаправление на нерелевантный адрес поисковик считает подменой ответа «не найдено» — об этом в материале о том, как редирект на главную вместо 404 плодит мягкие ошибки.
Краулинговый бюджет и карта сайта каталога
У робота ограниченное число обращений к сайту в единицу времени, и оно делится между всеми доступными адресами: если адресов семьсот тысяч, а полезных двадцать тысяч, новый товар ждёт очереди неделями.
В отчёте «Индексирование → Статистика обхода» Яндекс.Вебмастера видно, какие адреса робот скачивал и с каким ответом. Отфильтруйте список по фрагменту адреса пагинации и по параметрам сортировки: заметная доля обращений на них — вот и ответ. Много ответов «не найдено» там же — битые ссылки в шаблоне.
В отчёте «Индексирование → Страницы в поиске», на закладке исключённых, нужны два статуса. «Дубль» — нашёлся более подходящий аналог; массово на пагинации это одинаковые заголовки или канонические адреса на первую страницу. «Малоценная или маловостребованная страница» — на дальних страницах ожидаемо, на первых страницах разделов тревожно.
Логи сервера точнее панели, запросить их можно у хостинга. За две-три недели смотрят, как обращения роботов распределились по типам адресов, какая доля ушла на то, чего в обходе быть не должно, и встречаются ли номера страниц вне диапазона. Самый показательный измеритель — первое обращение к карточке, добавленной две недели назад.
Страницы пагинации в карту сайта я не добавляю, карточки и разделы — обязательно. Не должно быть в файле адресов с параметрами, корзины, сравнения и всего закрытого от индексации: противоречие с запретом в robots.txt панель отметит ошибкой. Ломается чаще всего дата изменения, которую движок ставит текущей всем адресам при пересборке.
Когда пагинацию каталога трогать не нужно
- Каталог помещается на одну страницу. До шестидесяти-восьмидесяти позиций хватит увеличенного шага и отложенной загрузки картинок.
- Страниц пагинации две-три. Достаточно убрать повторяющийся текст со второй и третьей и поставить самоканонические адреса.
- Сайт услуг без каталога. Пагинация есть только в блоге, и он редко настолько велик, чтобы влиять на обход.
- Товары доступны из нескольких мест. Карточка достижима помимо списка — разрыв пагинации её не обнулит.
- Каталог закрыт от поиска целиком. Тогда правят скорость и удобство, а не разметку.
Обратная сторона: есть четыре ситуации, когда пагинацией занимаются до текстов и ссылок. Больше тридцати страниц списка в разделе; прокрутка без нумерации в коде; канонические адреса на первую страницу; новые товары попадают в поиск больше месяца.
Порядок внедрения и ошибки, которые я вижу чаще всего
Порядок важен: если начать с запретов, можно закрыть от робота то, что ещё не стало доступным по другим путям.
| Шаг | Что сделать | Как проверить |
|---|---|---|
| 1. Инвентаризация | разделы, страницы списка, набор параметров | выгрузка адресов из логов |
| 2. Ссылки в коде | нумерованная пагинация ссылками, включая последнюю | поиск номера второй страницы в коде |
| 3. Канонические адреса | канонический на первую заменить самоканоническим | код второй страницы |
| 4. Заголовки и описания | номер со второй страницы, убрать текст раздела | сравнить первую и последнюю |
| 5. Ответы сервера | 404 на номера вне диапазона, 301 с «страницы 1» | подставить большой номер |
| 6. Параметры | разделить на меняющие состав и показ, Clean-param | проверка robots.txt в панели |
| 7. Карта сайта | оставить товары и разделы, убрать пагинацию | отчёт по файлам карты сайта |
| 8. Контроль месяц | следить за обходом и исключёнными страницами | обращения к карточкам растут, к параметрам падают |
Между шестым и седьмым шагом сделайте паузу хотя бы на две недели: при правках пачкой вы не поймёте, какое действие дало эффект.
- Канонический адрес всех страниц на первую. Ставится раз в шаблоне и годами держит в поиске двадцать товаров из восьмисот.
- Запрет индексации пагинации «против дублей». Дублей не будет — вместе с обходом карточек.
- Disallow по номеру страницы. Самый быстрый способ отрезать роботу путь к дальним товарам.
- Прокрутка без нумерации в коде. Ставят при редизайне, падение начинается через месяцы.
- Одинаковые заголовки на всех страницах списка. Наполняет раздел исключённых страниц.
- Пустые страницы с кодом успеха. Появляются после сокращения ассортимента и живут годами.
- Clean-param прописан, а Google не учтён. Директиву он игнорирует, дубли для него остаются.
- Два вида адресов у одной страницы. Старый вариант не отключили после переделки шаблона.
- Правки без замера. Не зафиксировав долю обращений к карточкам до изменений, результат не с чем сравнить.
Если каталог большой, сначала стоит посмотреть, где рвётся путь к товарам. Такой разбор я делаю в рамках бесплатного аудита сайта, а правки шаблона и ответов сервера — как доработку сайта. По этой же логике выстраиваю работу, когда нужно заказать SEO-продвижение каталога товаров: сначала обход и структура, потом тексты.
Коротко
- Google в 2019 году подтвердил: rel=next и rel=prev не индексирующий сигнал, у Яндекса его и не было.
- Атрибуты остаются валидным HTML и полезны браузерам, удалять не нужно — просто не рассчитывайте на них.
- Замена одна: настоящие ссылки на страницы 2, 3 и последнюю в коде, доступные без скриптов.
- Канонический адрес пагинации на первую выключает обход дальних страниц; нужен самоканонический.
- Запрет индексации и обхода убирают дубли ценой доступа к карточкам — каталогу не годятся.
- Различимость даёт номер в заголовке и описании со второй страницы и текст раздела только на первой.
- Бесконечная прокрутка без нумерации в коде оставляет в поиске только первую порцию товаров.
- Число страниц сокращают шагом выдачи вместе с отложенной загрузкой картинок; «показать все» — до нескольких сотен позиций.
- Параметры показа гасят в Яндексе через Clean-param, в Google — каноническими адресами и запретами.
- Номер вне диапазона должен отдавать 404, «страница 1» — редирект на адрес раздела, а перенаправление на главную даёт мягкие ошибки.
- Расход обхода проверяют по «Статистике обхода» и исключённым страницам со статусами «Дубль» и «Малоценная».
- Главный измеритель — за сколько дней робот доходит до нового товара; карта сайта ссылок не заменяет.
Увеличьте позиции и продажи вашего сайта
Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:
Остались вопросы по продвижению?
Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.
Связаться со мной →
Комментарии
Сергей Владимирович
Проверил исходный код каталога — номера второй страницы нет, только кнопка «загрузить ещё». В разделе тысяча двести товаров, в поиске около сорока. Два года платил за продвижение, и ни один подрядчик этого не сказал.
Анатолий Кузнецов автор
Частая находка на современных шаблонах. Прежде чем менять, проверьте второй путь к карточкам: есть ли товары в подборках, в блоках «похожие», в фильтрах-посадочных. Если есть, потери меньше, чем кажется. Задача разработчику формулируется одной фразой: выводить в блоке пагинации обычные ссылки на страницы, включая последнюю, и оставить кнопку рядом.
Марина
Не соглашусь с самоканоническими адресами. После перехода на них в исключённых вылезло полторы тысячи адресов с пометкой о малой ценности, панель выглядит пугающе. С каноническим на первую страницу отчёт был чистый.
Анатолий Кузнецов автор
Возражение справедливое: отчёт действительно становится некрасивым. Но красота отчёта не цель. Дальние страницы в исключённых как малоценные — ожидаемое состояние: свою работу они сделали, проведя робота к карточкам. Смотреть надо на другое — сколько карточек в поиске и как быстро туда попадают новые. Тревожно, если в малоценные уезжают первые страницы разделов.
Игорь
Добавлю про пустые страницы. Товар сезонный, зимой ассортимент падает втрое. Нашли в логах, что робот два года ходил по страницам с двенадцатой по тридцать пятую, а они отдавали пустой список с кодом двести.
Алексей Петрович
Вопрос про Clean-param. В адресах сортировка, метки кампаний и параметр валюты. Валюта меняет только отображение цены, товары те же. Её тоже в Clean-param или лучше убрать из адреса?
Анатолий Кузнецов автор
Лучше убрать, а выбор валюты хранить на стороне пользователя. Причина не в поиске, а в предсказуемости: одна страница существует в нескольких вариантах написания, и они расползутся по ссылкам и рассылкам. Если убрать нельзя, Clean-param закроет вопрос для Яндекса, а для Google нужен канонический адрес без параметра.
Ольга
Про шаг выдачи: увеличили с двадцати до шестидесяти товаров и получили жалобы на медленную загрузку с телефонов. Отложенную загрузку картинок включили только через месяц. Порядок важен: сначала загрузка, потом шаг.
Дмитрий
А почему нельзя просто закрыть всю пагинацию в robots.txt и отдать роботу карточки через карту сайта? Адресов в файле хватит, обновляется автоматически. Кажется, чище любых канонических адресов.
Анатолий Кузнецов автор
Так делают, и иногда это работает, но у схемы два слабых места. Первое: карта сайта сообщает адрес, а не значимость — страница без внутренних ссылок выглядит ненужной самому владельцу и в очереди на обход стоит последней. Второе: вы лишаетесь единственного механизма, который распределяет значимость внутри каталога.
Наталья Сергеевна
Полезен измеритель «за сколько дней робот доходит до нового товара». Запросила логи у хостинга: карточки за прошлый месяц — первое обращение через двадцать три дня. Раньше мне говорили, что «индексация занимает время».
Виктор
Спорный совет не писать уникальные тексты на страницах пагинации. У конкурента на каждой странице списка свой текст, и он стоит выше меня по всем запросам раздела. Значит, работает же.
Анатолий Кузнецов автор
Конкурент стоит выше по совокупности причин, и тексты на дальних страницах в ней почти наверняка не участвуют: по запросам раздела показывается первая страница, а не двадцатая. Проверьте — найдите в выдаче, каким адресом представлен его раздел. Если первой, тексты на остальных не дают ничего, кроме расходов на копирайтера.
Роман
Дополню про порядок параметров. Фильтры собирались в том порядке, как их нажимал пользователь, и один набор свойств давал шесть вариантов адреса. Зафиксировали алфавитный порядок — уникальных адресов в обходе стало в разы меньше.
Екатерина
Не поняла момент с заголовком первого уровня. Его точно не надо менять на страницах пагинации? Подрядчик настаивает, что номер нужен и в нём, иначе страницы «неуникальны».
Павел
Про два вида адресов — попадание в точку. После переезда на новый движок работали и путь со словом «страница», и параметр с номером. Полгода в обходе было вдвое больше адресов списка, чем страниц.
Андрей Николаевич
Добавлю к разделу «когда не нужно». Магазин на триста позиций, три страницы в самом большом разделе. Прочитал, выдохнул, убрал текст раздела со второй и третьей и на этом закончил.