Адреса ?brand=a&size=42 и ?size=42&brand=a могут показывать один результат, но система управления сайтом (CMS) оставляет оба во внутренних ссылках. Сравните товары и выбранные фильтры по обоим адресам. Перед сортировкой строки запроса отдельно проверьте повторяющиеся параметры и ссылки с цифровой подписью: их обработка зависит от приложения.
Сначала сравните товары по двум адресам
Google рекомендует согласовывать указанный canonical с другими сигналами, включая внутренние ссылки. Официальная документация.
URL с двумя переставленными параметрами ещё не является доказанным дублем. В некоторых приложениях первый или последний повтор ключа определяет результат. Начните с двух простых адресов и сопоставьте состояние интерфейса, товары, порядок выдачи и количество результатов. Затем повторите с одинаковой авторизацией и языком. Если ответы различаются, выясните, должно ли это различие существовать. Выбирать единый порядок параметров можно, когда вы убедились: перестановка не меняет товары и выбранные значения. Самостоятельный фильтр также может сохранять свой URL, даже если его параметры допускают перестановку.
Какие параметры нужно сохранить
| Параметры URL | Что они задают | Что можно менять | Что должно сохраниться |
|---|---|---|---|
| ?brand=a&size=42 | Два фильтра | Сравнить с перестановкой | Одинаковое состояние |
| ?size=42&brand=a | Те же два фильтра | Выбрать единый порядок | Один выбранный canonical |
| ?tag=a&tag=b | Повторяющийся ключ | Проверить обработку нескольких tag | Не сортировать вслепую |
| ?page=2&brand=a | Другая часть каталога | Сохранить номер | Не смешивать с первой |
Сравните URL сервера и браузера
Попросите разработчика сравнить ответ сервера на обычный запрос страницы (GET) с результатом после выполнения скриптов. История браузера может заменить адрес после загрузки через history.replaceState, но сервер по исходному адресу продолжит отдавать другую версию. Запишите исходный URL, конечный URL, HTTP-статус и canonical до и после запуска JavaScript. Если URL меняет CDN — сеть доставки страниц и файлов, — попросите разработчика сравнить ответ CDN с ответом сервера сайта. Используйте штатный способ диагностики CDN. Случайный параметр для обхода кеша может показать другую страницу, поэтому такой ответ нельзя подменять обычной проверкой.
Откройте нужную страницу и выполните в консоли браузера:
[...document.querySelectorAll('link[rel="canonical"]')].map(el => ({
записано: el.getAttribute('href'), адрес: el.href
}));По двум перестановкам параметров должен выводиться один и тот же полный canonical. При этом выбранные бренд и размер остаются прежними. Сравните результат консоли с «Просмотреть код страницы»: если сервер выводит разные теги, замена адреса через JavaScript проблему не исправила. Несколько строк в массиве означают, что canonical выводится больше одного раза.
Проверьте повторяющиеся ключи и кириллицу
Поручите разработчику испытать tag=a&tag=b, пустое size=, значение с пробелом и кириллический бренд. Метод JavaScript URLSearchParams удобен для разбора, но не принимает за вас решение о том, можно ли переставлять повторяющиеся значения. Подписанные ссылки особенно чувствительны к преобразованию: их валидатор может проверять точное представление строки. В тестовой таблице храните исходную строку и результат, затем сравнивайте смысл, а не только красоту адреса. Проверка кодирования должна показать, что выбранное пользователем значение не меняется и не становится двумя отдельными параметрами.
Исправьте генератор ссылок
Попросите разработчика использовать одну функцию построения URL в меню, фильтрах и sitemap. Задайте порядок известных ключей, обработку пустых значений и сохранение значимых исключений. Вывод canonical должен использовать выбранный результат. Редирект необязательно применять ко всем вариантам: выберите его там, где сервер действительно должен менять адрес и эквивалентность доказана. Затем проверьте, что меню и фильтр больше не создают ненормализованные варианты. Если заменить только canonical, фильтры продолжат создавать два адреса для одного набора товаров.
Как проверить, что фильтры сохранились
Откройте обе перестановки в новом приватном окне. Они должны показывать одни товары и выбранный canonical. Адрес с page=2 показывает вторую часть списка. Сохранённая ссылка с повторяющимися tag должна восстанавливать прежний набор значений.
Читайте также: Параметры URL и SEO: фильтры, UTM-метки и дубли — как не убить индексацию и Дублированный контент: как найти и исправить через canonical. Проверки сайта доступны на странице технического аудита reChecker.