SEO интернет-магазина: каталог, фильтры и карточки

Внутренний поиск магазина

Внутренний поиск магазина ищет SKU по строке внутри каталога и почти никогда не должен становиться документом Поиска.

Кирилл Бабийчук · обновлено · 5 мин чтения

Внутренний поиск магазина — выдача по строке внутри каталога: Woo отдаёт ?s=&post_type=product, OpenCart — route=product/search, Битрикс — поиск по инфоблоку. Это не /?s= блога WordPress, не ветка каталога и не фасет. Какие узлы заводить — структура каталога. Как ветка становится документом — SEO категорий. Рамка витрины — в SEO интернет-магазина.

Поиск нужен посетителю, который не знает путь по дереву. Для Google и Яндекса тот же URL — бесконечное пространство запросов. Его не продвигают как посадочную. Если строка стабильно ищут с улицы, заводят настоящую ветку, а не оставляют /search/?q= в индексе.

Строка каталога, не поиск сайта

Поиск магазина отвечает на вопрос «какой SKU подходит под эту фразу». Он смотрит название, артикул, свойство, иногда текст карточки. /?s= WordPress ищет записи и страницы темы. Смешивать их в одном шаблоне — значит показывать статью блога в выдаче «купить насос» и карточку в выдаче «доставка». Архитектура WP — на хабе WordPress SEO, не здесь.

Категория — заранее выбранный тип товара. Фасет и фильтр — заранее названные измерения уже выбранной ветки, это фильтры и фасеты. Пагинация нумерует уже известный список, не создаёт новый запрос: пагинация каталога. Поиск каждый раз собирает новый список из произвольной строки. Поэтому ?q=красные+кроссовки+42 — не «ещё одна категория», а сессия витрины.

Подсказки, «часто ищут» и облако запросов, если они ведут обычной ссылкой на /search/?q=, сами кормят робота хвостом. Либо не индексируете шаблон поиска, либо не ставите такие ссылки в подвал.

Почему выдачу поиска не индексируют

Любая строка даёт новый URL. Часть пустая, часть повторяет уже живую ветку, часть собрана из опечаток и артикулов. Search Central в гайде по фасетным URL просит не отдавать роботу бесконечные комбинации: обход жрёт лимит, карточки находятся позже. То же верно для поиска: параметр запроса не ограничен списком свойств.

Правило 2007 года «обязательно закрыть внутренний поиск» Google убрал из Search Essentials. Закрывать всё равно стоит по двум практическим причинам, о которых говорит тот же Search Advocacy: робот может принять поиск за бесконечный обход, а проиндексированная выдача поиска — удобный вход для спама на взломанном шаблоне. Для уже попавших в индекс URL сначала ставят noindex (робот должен загрузить страницу, чтобы увидеть директиву), и только потом, если нужно экономить обход, — Disallow в robots.txt. Закрыть robots.txt раньше noindex — оставить в выдаче голый URL без сниппета: Google это прямо описывает в справке по блокировке индекса.

Яндекс в справке «Как скрыть от обхода страницы, которые не нужны в поиске» даёт тот же набор: noindex / X-Robots-Tag, Disallow, либо 403/404/410. Пустую выдачу поиска не держат как 200 с текстом «ничего не найдено», если этот URL вообще доступен роботу: это тонкая страница, которую кабинет потом показывает как малоценную.

Блок SearchAction / sitelinks search box Google выключил 21 ноября 2024 (блог Search Central, 21 октября 2024, Джон Мюллер). Разметка WebSite + potentialAction больше не рисует строку под сниппетом. Это не повод открывать поиск магазина в индексе и не повод чистить разметку имени сайта: имя сайта живёт на другом фрагменте WebSite.

Когда строка становится веткой

Если одну и ту же фразу вбивают снова и снова и под неё уже есть устойчивый набор SKU, это не «популярный поиск», а недостающий узел дерева. Заводят категорию с своим URL, своим каноникалом и своим текстом — по правилам структуры и SEO категорий. URL поиска при этом остаётся служебным: 301 на ветку, если фраза совпала один в один, или noindex, если совпадение неточное.

Поиск не заменяет карточку и не чинит пустую ветку. «Найдите у нас насос» на главной, которое ведёт только в /search/?q=насос, прячет и категорию, и карточку. Робот должен находить SKU с ветки и из фида, не из хвоста запросов. Если поиск — единственный путь к части ассортимента, это дыра витрины: постановка — SEO-аудит.

Пагинация внутри результатов поиска — всё ещё поиск, не пагинация категории. На неё те же noindex и те же запреты на сортировку. Не каноникальте /search/?q=насос&page=2 на категорию насосов: это разные задачи, и такой каноникал только путает набор плиток.

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

Чем поиск магазина отличается от /?s= WordPress?

Поиск магазина ищет SKU в каталоге. /?s= ищет записи и страницы сайта. Общий шаблон смешивает два индекса и отдаёт роботу хвост, который не является ни карточкой, ни веткой.

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

Почти никогда. Шаблон закрывают noindex. Если URL уже в индексе, сначала директива на самой странице, потом при необходимости Disallow. Стабильный спрос выносят в настоящую категорию.

Поможет ли SearchAction вернуть строку в выдаче Google?

Нет. Sitelinks search box Google убрал 21 ноября 2024. Разметка не ошибка, но и не канал трафика. Поиск магазина остаётся инструментом витрины.

Что делать с пустым поиском?

Не держать его как индексный 200. Покажите человеку подсказки и живые ветки, а роботу — noindex или 404, если запрос не существует как ассортимент.