На второй странице каталога другие товары, но canonical указывает на первую. Canonical — указание рекомендуемого основного адреса для поисковой системы. Иногда причина — общий код, который удаляет из URL все параметры сразу. Он убирает рекламные метки вместе с номером страницы и делает разные списки похожими на один адрес.
Не исправляйте это добавлением ещё одного canonical. Сначала найдите действующий источник тега, определите номер страницы и договоритесь о главном адресе каждого списка. Инструкция ниже относится к каталогу Bitrix с постраничной навигацией; для бесконечной прокрутки сначала нужны отдельные доступные URL списков.
Что проверить у первой и второй страницы
Откройте раздел и перейдите на следующую страницу по его настоящей ссылке. Сохраните оба полных URL. В исходном HTML каждого найдите canonical и выпишите его значение. Затем сравните товары: действительно ли вторая страница показывает следующий набор, а не повторяет первый.
Если браузер после перехода меняет содержимое без нового адреса, сначала разберите навигацию. Canonical не создаст отсутствующий маршрут. Если адрес меняется, но прямое открытие второй страницы возвращает первый набор, проблема может быть в обработке параметра или кешировании списка.
В рекомендациях Google по пагинации для отдельных страниц последовательности указаны собственные URL и canonical. Первая страница не должна становиться основным адресом всех остальных только потому, что они относятся к одному разделу.
Учебный пример с PAGEN_1
Представим раздел /catalog/fans/, где товары 1–20 находятся на первой странице, а 21–40 — на второй. Это вымышленный пример. В конкретной настройке ссылка второй страницы имеет вид /catalog/fans/?PAGEN_1=2. Номер после PAGEN зависит от действующей навигации; его нужно получить из настоящей ссылки сайта.
Для выбранного правила ожидаемый HTML второй страницы выглядит так:
<link rel="canonical"
href="https://example.com/catalog/fans/?PAGEN_1=2">Первая страница использует /catalog/fans/. Вариант второй страницы с рекламной меткой должен рекомендовать основной адрес второй страницы, сохраняя её номер. Адрес example.com здесь учебный: в рабочем документе замените его реальным основным доменом.
Если на странице два независимых списка с разными пагинаторами, не копируйте PAGEN_1 из примера. Разработчик должен определить, какой параметр управляет основным каталогом и что меняет второй список. Иначе можно случайно включить в canonical номер отзывов вместо страницы товаров.
Где найти источник canonical в Bitrix
Попросите разработчика проверить параметры компонента каталога, шаблон сайта, SEO-модуль и собственный код. Найдите, кто создаёт тег и откуда берёт значение. Иногда стандартный механизм работает одновременно с ручной строкой в шапке: тогда исправление одного источника оставляет второй неправильный тег.
Метод CMain::SetPageProperty устанавливает свойство текущей страницы. Само присваивание свойства с именем canonical не является универсальным способом вывести link. Чтобы оно появилось в head, действующая тема или компонент должны использовать это свойство соответствующим образом.
В задаче разработчик должен показать всю цепочку: расчёт основного адреса, место сохранения значения и место вывода тега. В собственном шаблоне могут потребоваться другие способы подключения. Владельцу не нужно вставлять вызов в случайный PHP-файл: важнее получить проверенный публичный результат без дублей.
Как разделить номер страницы и лишние параметры
Составьте таблицу параметров: номер страницы меняет набор товаров, рекламная метка не меняет, сортировка меняет порядок. Для каждого определите правило. Не удаляйте все GET-параметры одной командой и не сохраняйте их все автоматически. Обе крайности создают неожиданные основные адреса.
Общие различия фильтров, сортировки и рекламных меток разобраны в руководстве по параметрам URL.
Если выбранная сортировка показывает тот же набор и не должна участвовать в поиске отдельно, её правило согласуют отдельно. Для фильтра с другим товарным составом нужно решение о самостоятельной подборке. Canonical второй страницы должен учитывать смысл страницы, а не только наличие вопросительного знака в URL.
Проверьте страницу с несколькими параметрами в разном порядке. При одинаковом содержимом она должна рекомендовать один выбранный основной URL. Полный адрес формируют с корректным протоколом и доменом; нельзя брать непроверенное имя хоста из произвольного запроса и получать canonical на чужой домен.
Для первой страницы решите, используется ли номер 1 в URL. Внутренние ссылки и canonical должны поддерживать выбранную форму последовательно. Если первая страница доступна и с параметром, и без него, обработайте оба варианта по согласованному правилу, сохранив доступ к следующим страницам.
Как проверить навигацию после исправления
Из первой страницы перейдите во вторую и третью, затем назад. На каждом шаге сравните URL, товары и canonical. Откройте второй адрес в новом окне без предыдущей сессии. Результат должен совпасть с переходом из каталога.
Проверьте исходный HTML: ссылки пагинации должны вести на доступные адреса, а не только вызывать клиентскую функцию. Затем посмотрите публичный ответ без авторизации. Если номер страницы сохранился, но товары повторяются, задача не закончена: canonical правильно описывает адрес с неправильным содержимым.
Добавьте проверку последней существующей страницы и заведомо лишнего номера. Поведение за пределами списка зависит от реализации, но его нужно согласовать. Случайное возвращение первого набора для любого огромного номера создаёт новые дубли и мешает понять, где каталог заканчивается.
Как проверить добавление соседнего блока
Если шаблон страницы содержит несколько списков, проверьте каталог после добавления нового соседнего блока на копии сайта. Имя параметра основной навигации нельзя считать постоянным без проверки. Откройте настоящую ссылку второй страницы и сравните её с расчётом canonical. Изменение номера вспомогательного пагинатора не должно неожиданно менять основной адрес каталога или возвращать первую страницу товаров.
Как оформить задачу и приёмку
Передайте исполнителю три настоящих URL, значения canonical до исправления и список контрольных товаров по страницам. Укажите основную навигацию и исключения: первая страница, фильтр, сортировка, рекламная метка и несуществующий номер. Запишите версию компонента и модулей, которые участвуют в выводе тегов.
Работа принята, когда каждая существующая страница показывает свой набор, canonical соответствует выбранному основному URL, лишние параметры обрабатываются по таблице, а тег выводится одним источником. Для третьей страницы нужен собственный пример: два успешных адреса не доказывают работу общей функции на произвольном номере.
Дополнительные страницы можно проверить с помощью технического аудита сайта, а полезные страницы фильтра разобраны в инструкции для умного фильтра Bitrix. Реакцию Google и Яндекса оценивайте отдельно по свежим данным. Приёмка PHP-правки подтверждает структуру сайта, но не обещает, что поисковик уже выбрал все указанные основные адреса.