Поиск по сайту и SEO: как настроить внутренний поиск без мусора в индексе

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

Специалист настраивает внутренний поиск и отделяет полезные страницы от дублей

Короткий ответ: внутренний поиск должен быть удобен людям, но его результаты обычно не нужно индексировать в Яндексе и Google. Используйте один URL и один параметр запроса, добавьте страницам результатов noindex, follow, исключите их из sitemap и не создавайте индексируемые ссылки на бесконечные комбинации. Для устойчивого полезного запроса лучше сделать отдельную категорию, услугу или статью с постоянным адресом.

Так посетитель находит нужное, а робот не обходит варианты вроде ?q=доставка, ?q=доставка&page=2 и пустые страницы. Одного запрета в robots.txt недостаточно: нужны согласованные URL, метатеги, ссылки, коды ответа и аналитика.

Чем внутренний поиск отличается от Яндекса и Google

Пользователь внутреннего поиска уже находится на сайте и описывает задачу своими словами. Эти запросы показывают, чего не хватает в меню, каталоге и контенте. Внешний поисковик выбирает страницы среди множества сайтов. Внутренняя выдача для него обычно малоценна: она меняется, повторяет карточки и редко содержит самостоятельный ответ. Индексация всех вариантов создаёт множество похожих или пустых URL.

Форму поиска удалять не нужно. Важно разделить удобный интерфейс для посетителя и страницы, которые вы сознательно предлагаете внешнему поиску.

Каким должен быть URL поиска

Выберите один формат, например:

https://example.ru/search/?q=seo-audit

Один параметр отвечает за запрос. Не добавляйте без необходимости идентификатор сессии, источник перехода, случайный токен и несколько названий одного фильтра. Убирайте пробелы по краям, объединяйте повторяющиеся пробелы и ограничивайте длину строки. Пользователь должен видеть, что именно искала система.

Для поиска подходит GET: результат можно открыть повторно и отправить ссылкой. Сам GET-параметр не делает страницу индексируемой - это задаётся отдельно.

Если сайт уже создаёт разные варианты адресов, составьте карту URL от формы, автодополнения, фильтров, сортировки и пагинации. Общий порядок работы с такими адресами разобран в материале про URL-параметры и SEO.

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

В большинстве случаев - нет. Для HTML-страницы результатов базовая директива выглядит так:

<meta name="robots" content="noindex, follow">

noindex просит поисковые системы не включать страницу в результаты. follow разрешает обход обычных ссылок с неё, хотя поисковики сами решают, как учитывать такие ссылки.

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

Результаты поиска не добавляют в sitemap.xml. Там должны быть только постоянные страницы, которые вы хотите видеть в поиске.

Не указывайте canonical со всех результатов на главную или каталог: выдача по запросу «доставка» не является их дублем. Для закрытой через noindex страницы self-canonical обычно не нужен. Если шаблон добавляет canonical автоматически, проверьте его адрес.

Когда запрос стоит превратить в отдельную страницу

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

Такая страница оправдана, если:

  1. запрос важен посетителю и связан с задачами бизнеса;
  2. под него есть стабильный набор товаров, услуг или экспертный ответ;
  3. содержимое можно регулярно поддерживать;
  4. интент отличается от уже существующих страниц;
  5. можно подготовить понятные заголовок, описание, основной текст и внутренние ссылки.

Например, посетители часто ищут «SEO-аудит интернет-магазина», а есть только общая страница аудита. Если услуга отличается по составу работ и проблемам, создайте отдельную посадочную. Если нет, улучшите общую страницу и сделайте её заметнее.

В магазине частый запрос может стать категорией или подборкой. Но не объявляйте посадочными все сочетания цвета, размера, цены и сортировки. Сначала оцените спрос и ценность комбинации. Тот же принцип действует для фасетной навигации без дублей.

Пошаговая настройка внутреннего поиска

1. Опишите реальные сценарии

Запишите, что ищут посетители: услугу, артикул, вопрос, документ или адрес. Проверьте мобильную и десктопную версии, опечатки, сокращения, синонимы и раскладку. На небольшом сайте важнее точное совпадение и понятный выход из пустой выдачи, чем сложный алгоритм.

2. Ограничьте область поиска

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

3. Настройте единый маршрут

Пусть форма ведёт на один endpoint, например /search/, а все компоненты используют один параметр. Пагинация добавляет только номер страницы, сортировка - поддерживаемое значение. Не принимайте параметры, которые ни на что не влияют.

Проверьте кодирование кириллицы, кавычек, дефисов, символов + и &. Один запрос не должен превращаться в несколько адресов из-за разных вариантов кодирования.

4. Задайте индексацию в шаблоне

Добавьте noindex, follow в исходный HTML или HTTP-заголовок. Если директива появляется после выполнения JavaScript, проверьте исходный ответ для робота.

Исключите поисковые URL из sitemap, RSS и блоков «популярное». Не создавайте кликабельный каталог запросов с неограниченным числом адресов.

5. Обработайте пустую выдачу

Страница /search/ без параметра должна показать форму и подсказку, а не ошибку. Ей также нужен noindex.

Если совпадений нет, сохраните фразу и предложите проверить написание, открыть разделы или задать вопрос. Такая выдача может отвечать 200, но должна быть noindex. Несуществующему постоянному URL нужен 404 или 410, а не шаблон поиска.

6. Настройте порядок результатов

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

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

7. Подключите аналитику без лишних данных

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

Регулярно смотрите:

  • запросы без результатов;
  • результаты без кликов;
  • частые переформулировки одного намерения;
  • темы, после которых посетитель обращается или уходит;
  • страницы, которые находят только через поиск.

Если важная услуга доступна только через поиск, ей не хватает внутренних ссылок. Проверьте её вместе с аудитом страниц-сирот.

8. Ограничьте нагрузку и злоупотребления

Задайте максимальную длину строки, лимит частоты и тайм-аут. Экранируйте вывод, используйте параметризованные запросы. Ошибка не должна раскрывать структуру базы, путь на сервере или стек.

Автодополнение запускайте после нескольких символов и задержки. Отменяйте устаревший запрос, если человек продолжил печатать. Не смешивайте персональные результаты разных посетителей.

Пример для сайта услуг

Допустим, в журнале есть запросы «проверить индексацию», «цена аудита» и «переезд сайта». По первому поиск показывает инструкцию и услугу, но не создаёт публичную посадочную /search/?q=проверить+индексацию. По второму первым идёт раздел с принципом расчёта, по третьему - профильная статья и услуга.

Проверьте, доступны ли эти страницы без поиска. Спрятанную инструкцию свяжите с другими материалами, а на коммерческую страницу добавьте принцип расчёта. Результаты поиска остаются noindex и отсутствуют в sitemap. Достойную отдельного входа тему оформляют как постоянную страницу.

Частые ошибки

Индексировать каждый запрос

В индекс попадают опечатки, пустые страницы и одинаковые карточки. Закройте шаблон, а постоянные страницы создавайте после проверки интента.

Закрыть всё в robots.txt

Запрет обхода не удаляет уже известный URL и мешает роботу увидеть noindex. Меняйте правила поэтапно, проверяйте кабинеты вебмастеров и логи.

Поставить canonical на главную

Поисковая выдача не является копией главной. Такой canonical не останавливает генерацию адресов.

Показывать одинаковые карточки на любой запрос

Человек не понимает, нашёл ли сайт ответ. Нулевой результат обозначьте прямо и предложите следующие действия.

Оставить бесконечную пагинацию

Ограничьте цепочку фактическим числом результатов. Адрес за последней страницей не должен изображать полезный ответ. Подробности - в гайде про пагинацию и SEO.

Хранить все поисковые фразы без фильтра

Посетитель может ввести личные данные. Нужны маскирование, ограничение доступа и срок хранения.

Считать только количество запросов

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

Чек-лист перед запуском

  • форма работает на мобильном и десктопном экране;
  • используется один URL и один параметр запроса;
  • ввод нормализуется без изменения смысла;
  • результаты получают noindex, follow в исходном HTML или HTTP-заголовке;
  • robots.txt не противоречит выбранной схеме;
  • поисковые URL отсутствуют в sitemap.xml;
  • пустой запрос и ноль результатов обработаны понятно;
  • пагинация заканчивается на последней реальной странице;
  • заголовок и описание результата помогают выбрать страницу;
  • специальные символы безопасно обрабатываются и экранируются;
  • запросы к базе параметризованы, действуют лимит частоты и тайм-аут;
  • аналитика не собирает лишние персональные данные;
  • проверены частые запросы, опечатки, синонимы и раскладка;
  • полезные запросы ведут на постоянные страницы;
  • после запуска проверены HTML, коды ответа, логи и кабинеты вебмастеров.

FAQ

Нужно ли закрывать внутренний поиск в robots.txt?

Не всегда. Робот должен увидеть noindex, а запрет обхода может этому помешать. Сначала подтвердите директиву, затем ограничивайте новые комбинации.

Какой код ответа нужен странице без результатов?

Нормальная выдача с нулём совпадений может отвечать 200, но должна быть noindex. Несуществующей постоянной странице нужен 404 или 410.

Нужен ли canonical на странице поиска?

Обычно нет. Не указывайте главную или каталог ради заполнения тега. Важнее единый URL, noindex и отсутствие в sitemap.

Можно ли индексировать популярные запросы?

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

Что собирать в аналитике поиска?

Запрос, число результатов, выбранную позицию и URL перехода. Чувствительные строки исключайте, доступ и срок хранения ограничивайте.

Что делать, если поиск создал тысячи URL?

Найдите источники ссылок, унифицируйте параметры, удалите лишние варианты, добавьте noindex, исключите адреса из sitemap и проверьте логи.

Заменяет ли поиск меню и перелинковку?

Нет. Важные услуги, категории и статьи должны быть доступны по обычным HTML-ссылкам.

Как понять, что поиск стал лучше?

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

Что делать дальше

Выгрузите URL текущей формы и запросы без результатов. Выберите единый адрес, настройте noindex и пустую выдачу. После запуска проверьте исходный HTML, коды ответа, sitemap, логи и статус URL во внешних инструментах.

Если нужна помощь с техническим аудитом, структурой страниц и контролем индексации, напишите в Telegram. Для подготовки структуры, черновиков, FAQ и редакторской проверки можно использовать нейросеть XelaGroup, сохраняя финальную проверку за человеком.