Перейти к содержимому

Дубли страниц каталога - канонический адрес, пагинация, фильтр

Убираем ситуацию, когда один товар доступен по четырём адресам: назначаем основной, разбираемся с пагинацией и закрываем бесконечный фильтр.

Решение

Проверяем страницу по всем её адресам:

Окно терминала
for u in /catalog/telefony/ /catalog/telefony /catalog/telefony/index.php \
'/catalog/telefony/?PAGEN_1=1'; do
printf "%s %s\n" "$(curl -o /dev/null -s -w '%{http_code}' "https://example.org$u")" "$u"
done
# четыре ответа 200 на одну страницу - это четыре её копии для поиска

Дубль появляется не из содержимого, а из адреса. Один и тот же список товаров, доступный по четырём адресам, для поиска выглядит как четыре разные страницы с одинаковым текстом.

Назначаем канонический адрес:

$APPLICATION->IncludeComponent('bitrix:catalog', 'main', [
'SET_CANONICAL_URL' => 'Y', // компонент проставит адрес сам
// ...остальные параметры вызова
]);
// для своих страниц то же самое ставят строкой в head
$APPLICATION->AddHeadString('<link rel="canonical" href="' . $canonical . '">');

Канонический адрес называет ту страницу, которую нужно считать основной. Остальные копии при этом остаются доступными покупателю, но перестают спорить между собой за место в выдаче.

Разбираемся со страницами пагинации:

// на второй и следующих страницах списка
$APPLICATION->SetPageProperty('title', 'Телефоны - страница ' . $pageNum);
// канонический адрес страницы 2 указывает на неё саму, а не на первую
$canonical = $sectionUrl . '?PAGEN_1=' . $pageNum;

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

Закрываем комбинации фильтра:

- страницы фильтра закрывают от обхода, кроме отобранных посадочных
- отобранным задают свой заголовок, описание и текст
- служебные параметры сортировки и показа убирают из индексации целиком

Фильтр порождает бесконечное число адресов. В индекс пускают только те комбинации, ради которых страница действительно создавалась, а остальные закрывают до того, как обход съест бюджет на сам каталог.

Старые адреса после смены структуры отдают постоянную переадресацию на новые. Ответ «страница не найдена» на месте прежнего адреса теряет и накопленный вес, и покупателя из закладок.

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

Дубли стоит проверять после каждой правки адресов, а не раз в год. Смена шаблона адреса в комплексном компоненте плодит их сотнями за один вечер.

Типичные проблемы

Из индекса выпали страницы пагинации.

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

Товар доступен по двум разным путям.

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

Поиск обходит комбинации фильтра вместо каталога.

Страницы фильтра открыты для обхода без ограничений. Открытыми оставляют только отобранные посадочные комбинации фильтра, а все остальные адреса закрывают.

Один раздел отвечает и со слешем, и без него.

Сервер отдаёт содержимое по обоим адресам с одинаковым ответом. Один из двух вариантов адреса переадресуют на другой, выбранный за основной вариант.

После смены адресов трафик просел.

Старые адреса отвечают «не найдено» вместо постоянной переадресации на свои новые пути. Соответствие старых и новых путей готовят до выкладки.

Частые вопросы

Как выбрать основной адрес товара?

Обычно путь через основной раздел каталога. Главное - выбрать один раз и не менять без причины.

Закрывать ли фильтр от индексации целиком?

Нет: часть комбинаций стоит открыть как посадочные страницы. Остальное закрывают.

Нужен ли канонический адрес на первой странице?

Нужен: он отсекает варианты с параметрами и служебными хвостами. Указывает при этом сам на себя.

Чем проверять дубли?

Обходом сайта своим скриптом или сервисом вебмастера. Совпадающие заголовки и описания видны сразу.

Смежное

Первоисточник