Фасеты и полезные комбинации
В предыдущем уроке три категории отделили самостоятельные классы товаров. Но внутри категории посетитель хочет уточнять выбор: число скоростей, размер, наличие или цену. Такие признаки называют фасетами. Удобный фильтр не означает, что каждое его сочетание должно стать самостоятельной страницей поискового каталога.
В этом уроке рассмотрим кандидата «цепи для девяти скоростей» и отделим его от сортировки и случайных комбинаций. Данные «ВелоМастера» вымышленные: пять SKU, четыре модели, три категории на 11 октября 2026 года. Исходники lesson-22 находятся в архиве курса. Поисковый спрос, индексация и работоспособность фильтров не измерялись, новые товарные страницы автоматически не создаются.
Фильтр меняет выборку, а не изделие
В категории chains две модели: VM-C9 для девяти скоростей и VM-C10 для десяти. Фильтр speeds=9 оставляет VM-C9. Её цена 1290 RUB, остаток двенадцать, комплектация с замком и 116 звеньев не меняются от выбора фильтра. Другая строка URL не создаёт новую модель.
Сортировка по цене тоже не создаёт новые товары. Категория, отсортированная иначе, может содержать тот же набор записей. А фильтр наличия в текущем снимке исключит VM-C10, поскольку её нет и заказы не принимаются. Мы различаем порядок отображения, предметную совместимость и состояние предложения, потому что они отвечают на разные вопросы.
| Выборка | Что она даёт сейчас | Редакционное решение |
|---|---|---|
| Девять скоростей | Одну VM-C9 | Кандидат для оценки самостоятельной пользы |
| Сначала дешёвые | Те же две модели в порядке цены | Управление списком |
| Только в наличии | VM-C9 | Изменяемая пользовательская выборка |
| Девять скоростей и произвольная цена | Возможно тот же единственный товар | Не создавать автоматически новую страницу |
Кандидат — ещё не принятое решение публиковать страницу. Известная техническая потребность обосновывает рассмотрение, но не доказывает отдельный поисковый спрос. В нашей лаборатории нет выгрузки запросов, частотности, кликов или наблюдения за пользователями. Поэтому не пишем, что этот фасет уже приносит трафик.
Самостоятельность определяется ответом человеку
Потенциальный адрес /shop/chains/9-speed/ можно занести в редакционный реестр. До создания нужно объяснить, чем он полезнее короткого фильтра на странице chains. Если весь документ состоит из H1 и той же карточки VM-C9, новый URL может не добавить ответа. Если он раскрывает ограничения выбора на подтверждённых данных, задача становится предметнее.
Даже полезная тема не даёт разрешение выдумывать совместимость. Число скоростей в учебной модели — лишь заданный признак; реальные системы потребуют информации производителя. Страница не должна обещать «подходит всем девятискоростным велосипедам» или превращать наличие одного товара в универсальное решение.
Запишем критерии кандидата как редакционные данные:
{
"candidate_url": "/shop/chains/9-speed/",
"resulting_models": ["VM-C9"],
"demand_evidence": null,
"publication_status": "under_review",
"needs": ["independent user task", "confirmed facts", "stable navigation"]
}
Это не правило поисковой системы и не результат анализа выдачи. Запись помогает не потерять вопрос, не объявляя его решённым. В этом уроке адрес остаётся кандидатом; нет HTML, sitemap-записи и утверждения, что документ доступен по сети.
Комбинации требуют управления обходом
В большом каталоге цвета, размеры, цены и сортировки могут создавать множество сочетаний URL. Число вариантов растёт быстрее числа изделий. Если допустить повтор параметров и разный порядок фильтров, одна выборка получает несколько адресов без самостоятельного содержания.
Google описывает эту проблему и варианты управления в документации фасетной навигации. В частности, для индексируемых комбинаций важны последовательные адреса и корректный ответ для бессмысленных или пустых сочетаний. В нашей модели нет исполняемого фильтра, поэтому мы не показываем якобы полученные ответы сервера и не применяем глобальное правило к рабочему ProfessorWeb.
Для будущего интерфейса заранее определите допустимые значения, порядок и отсутствие повторов. Не стоит строить ссылку на невозможное сочетание только потому, что генератор умеет перемножить списки. Пользовательский фильтр может сообщить об отсутствии результата, а отдельный маршрут требует своей HTTP-договорённости. Это разные уровни реализации.
Robots, noindex и canonical решают разные задачи
robots.txt регулирует обход. noindex сообщает правило индексации, которое робот должен суметь прочитать. Canonical указывает предпочтительную версию связанных документов, но не является гарантированным запретом обхода или индексации. Эти инструменты нельзя объединять в одно обещание «скрыть дубли» без понимания состояния URL.
Если закрыть путь через robots.txt, робот может не прочитать расположенный на странице noindex. Поэтому сочетание директив выбирают по задаче и существующему состоянию адресов. Смысл правила noindex и доступности страницы для робота описан в Google Search Central.
Для сортировки с тем же набором содержимого можно рассматривать консолидацию с основной категорией. Для самостоятельного предметного фасета автоматический canonical на общую категорию потребует оценки сходства. Подмножество VM-C9 и весь список цепей не становятся одинаковыми только потому, что принадлежат одному разделу. Выбор канонического адреса — отдельное решение, а не механический способ избежать редакционного анализа.
Мы не записываем готовые директивы в конфигурацию магазина. Учебное after.json фиксирует кандидата и различие задач. Реальный каталог потребовал бы данные текущего обхода, фактические URL и согласованную техническую реализацию. Действия в Вебмастере, Search Console и robots сейчас не выполняются.
Цена как фасет требует заранее определить границы и единицу. «До 1500 RUB» сегодня оставит VM-C9, но после подтверждённого изменения цены состав может стать другим. Это не новая идентичность товара и не основание ежегодно менять его URL. Для фиксированной посадочной страницы редактор должен понимать, как изменяемая выборка сохраняет самостоятельную задачу, а не считать любой диапазон вечным разделом каталога.
Пустота и временное отсутствие различаются
Комбинация без подходящих моделей отличается от существующей VM-C10 с нулевым остатком. В первом случае выборка может быть бессмысленной, во втором карточка всё ещё отвечает на вопросы об изделии. Удаление всех страниц с нулём в одном поле смешало бы эти состояния и потеряло содержательные адреса.
При ручном разборе пройдите два примера. «Девять скоростей» содержит VM-C9 и требует оценки самостоятельного текста. «Девять скоростей плюс несуществующий размер шлема» смешивает свойства разных классов и не должно порождать товарную страницу. Такое упражнение помогает ограничить генерацию смыслом данных, а не количеством возможных строк.
Ожидаемый результат — понятный фильтр, один обоснованно рассматриваемый кандидат и отсутствие обещанного спроса. Следующий урок проверит сами значения, из которых получаются выборки. Если характеристики и единицы противоречат друг другу, даже аккуратная фасетная структура будет строиться на неверном основании.