
Заходишь в Яндекс.Вебмастер нового клиента — интернет-магазина автозапчастей — и видишь в индексе 48 тысяч страниц. При том что товаров в каталоге тысяч восемь, ну и категорий сотни три. Откуда ещё сорок тысяч? Открываю отчёт «Страницы в поиске», сортирую по URL — и вот они, родимые: site.ru/?s=тормозные+колодки, site.ru/search/?query=масло+5w40, и так до бесконечности. Это результаты внутреннего поиска по сайту. Тысячи пустых и полупустых страниц, которые движок нагенерил сам, а поисковик прилежно сожрал.
За 20 лет практики я вытаскивал этот мусор из индекса десятков проектов. И почти всегда картина одинаковая: владелец сайта даже не подозревает, что у него под капотом работает генератор дублей на реактивной тяге. Строка поиска стоит на сайте «чтобы было удобно», а по факту она методично убивает краулинговый бюджет и разбавляет индекс тонкими страницами, за которые Яндекс потом снижает оценку всему домену.
Разберём по-взрослому: почему страницы внутреннего поиска — это зло для SEO, как поисковик их находит, во что это выливается в цифрах и, главное, как закрыть их правильно, а не так, чтобы через месяц выстрелило себе в ногу.
Откуда вообще берутся эти страницы в индексе
Логика простая. У вас на сайте есть форма поиска — обычно в шапке, лупа и поле ввода. Пользователь вбивает запрос, жмёт Enter, и движок формирует URL вида ?s=запрос (WordPress), ?search=запрос, /search/?q=запрос или что-то похожее. На этой странице выводится список найденных товаров или статей. Формально — обычная страница с уникальным адресом. И вот тут начинается веселье.
Каждый уникальный запрос порождает уникальный URL. Пользователи ищут «колодки», «колодки передние», «колодки на ваз 2114», «колодкі» (с ошибкой), «brembo» — и на каждый чих создаётся отдельный адрес. А теперь добавьте сюда роботов. Поисковый бот находит эти ссылки не из воздуха: строку поиска иногда индексируют через GET-формы, кто-то оставляет ссылку на результаты в тексте, парсеры и агрегаторы генерят запросы автоматически, а бывает — сам сайт в подсказках или в блоке «Популярные запросы» вешает прямые ссылки на страницы результатов.
Дальше эффект снежного кома. Робот зашёл на одну такую страницу, увидел там ссылки на товары и другие запросы, пошёл по ним, нашёл новые URL с параметрами. Я на замерах видел, как за три месяца сайт средней руки набирал 30–40 тысяч мусорных адресов внутреннего поиска — при живом каталоге в пару тысяч позиций. Это классическая история про то, как индексация сайта в поисковых системах из союзника превращается в проблему.
Почему это реально вредит, а не просто «лишние строчки»
Мне часто отвечают: «Ну висят они в индексе, кому мешают?» Мешают. И вот чем конкретно.
Первое — слив краулингового бюджета. У каждого сайта есть лимит: сколько страниц робот готов обойти за сутки. Для среднего магазина это, условно, несколько тысяч обращений в день. Если половину из них бот тратит на переобход бесполезных ?s=-страниц, то на ваши новые товары, обновлённые цены и свежие статьи бюджета не остаётся. Я разбирал случай, где важные карточки товара переиндексировались раз в три недели — потому что робот всё своё время убивал на страницы поиска. Про то, как устроен обход и что такое проверка индексации сайта в Яндексе, я писал отдельно, но суть в том, что бюджет конечен.
Второе — тонкие и пустые страницы. Вбил пользователь «зелёный трактор с крыльями» — поиск ничего не нашёл, но URL создался, страница отдала код 200 и попала в индекс. Это классическая пустая страница: заголовок «По запросу ничего не найдено», ноль контента. Яндекс такие видит и запоминает. Когда доля неинформативного контента на домене переваливает за критическую массу, страдает вся хостовая оценка — падают даже нормальные страницы.
Третье — дубли. Страница поиска по «колодки» и категория «Тормозные колодки» показывают почти одинаковый список товаров. Для поисковика это дублирование контента на сайте: две страницы, борющиеся за один запрос. И часто в выдачу вылезает именно кривая страница поиска с параметром в URL вместо нормальной, оптимизированной категории. Клиент кликает, видит убогий список без описания, фильтров и SEO-текста — и уходит. Поведенческие проседают, позиция категории тоже.
Четвёртое — риск подмешивания мусора. Иногда через строку поиска на сайт заливают спам: боты вбивают запросы с ссылками на казино и аптеки, а сайт это индексирует. И у вас в индексе внезапно тысячи страниц с фармой в заголовке. Видел такое не раз — потом объясняй Яндексу, что ты не верблюд.
Как понять, есть ли у вас эта проблема
Диагностика занимает пять минут. Не надо гадать — надо смотреть в данные.
-
Оператор site в Яндексе. Вбейте в поиск site:вашсайт.ру ?s= или site:вашсайт.ру inurl:search. Если вываливаются сотни результатов — поздравляю, у вас течь.
-
Яндекс.Вебмастер, раздел «Страницы в поиске». Выгрузите весь список URL в таблицу, отфильтруйте по вхождению ?s=, search, query, ?q=. Сразу увидите объём беды.
-
«Статистика обхода» в Вебмастере. Тут видно, какие URL робот дёргает чаще всего. Если в топе обхода — страницы поиска, значит бюджет утекает прямо сейчас.
-
Логи сервера. Для больших магазинов я всегда поднимаю логи и смотрю, сколько процентов запросов бота Яндекса приходится на параметрические URL. Бывает 40–60%. Это и есть цена вопроса.
Заодно посмотрите, не путает ли вас Яндекс.Метрика, которая неправильно показывает статистику: трафик на страницы поиска иногда маскируется под органику и создаёт иллюзию, будто эти URL «работают». Не работают — они воруют.
Способы закрытия: robots.txt, noindex, canonical, Clean-param
Инструментов четыре, и у каждого своя роль. Главная ошибка новичков — хвататься за первый попавшийся и удивляться, почему не помогло. Разбираю по каждому честно, с ограничениями.
| Метод | Что делает | Когда применять |
|---|---|---|
| robots.txt Disallow | Запрещает обход (не всегда индексацию) | Массово перекрыть краулинг параметров |
| meta noindex | Выкидывает страницу из индекса | Гарантированно убрать уже проиндексированное |
| rel=canonical | Указывает на главную версию | Слабый сигнал, для подстраховки |
| Clean-param (Яндекс) | Склеивает URL с параметрами | Идеально для ?s=, ?query= в Яндексе |
Robots.txt: быстро, но с ловушкой
Самое очевидное решение — закрыть параметры в файле robots.txt для сайта. Для WordPress это выглядит так:
-
Disallow: /?s=
-
Disallow: /search/
-
Disallow: *?s=*
Плюс — робот перестаёт тратить бюджет на обход этих URL. Минус, о котором молчат туториалы: robots.txt запрещает обход, но не гарантирует удаления из индекса. Если страница уже проиндексирована и на неё есть внешние или внутренние ссылки, Яндекс может держать её в базе, просто с пометкой «содержимое недоступно». Более того — закрыв URL в robots.txt, вы лишаете робота возможности увидеть на этой странице тег noindex. Получается тупик: страница висит, а команду на удаление бот прочитать не может.
Поэтому robots.txt хорош как превентивная мера на чистом сайте или в связке с другими методами. Как единственное лекарство для уже загаженного индекса — работает медленно и неполно. Тему запретов я подробно разбирал в материале про то, стоит ли запрещать индексацию страниц категорий и архивов — там та же механика.
Meta noindex: золотой стандарт для очистки
Если страницы уже в индексе и их надо оттуда выковырять — работает meta name=«robots» content=«noindex, follow» в секции head страницы результатов поиска. Робот заходит, читает «не индексируй меня», выкидывает страницу из базы. Атрибут follow при этом разрешает боту идти по ссылкам дальше, чтобы не рвать обход каталога.
Ключевой момент: noindex и robots.txt нельзя мешать бездумно. Логика такая. Хотите ВЫЧИСТИТЬ уже проиндексированное — сначала ставите noindex и НЕ закрываете страницу в robots.txt, чтобы бот смог зайти и прочитать команду. Ждёте, пока страницы выпадут из индекса (недели две-четыре). И только ПОТОМ, когда индекс чист, добавляете Disallow в robots.txt, чтобы бот больше туда не совался. Порядок действий критичен — я видел, как люди сразу лепят и то и другое, а потом месяцами не могут понять, почему мусор не уходит.
В WordPress noindex на поиск ставится элементарно — либо через SEO-плагин (Yoast, All in One SEO — у них есть галка «noindex для страниц поиска»), либо парой строк в шаблоне через условие is_search. Для самописных движков — условие в шаблоне страницы результатов. Это, по сути, часть грамотной внутренней оптимизации сайта по шагам: закрыть служебное, открыть коммерческое.
Clean-param: точечное оружие под Яндекс
Вот про этот инструмент почему-то забывают, а он под нашу задачу подходит идеально. Директива Clean-param в robots.txt — это специфика Яндекса. Она говорит роботу: «Параметр s (или query, search) не меняет содержимое по сути — склей все URL с этим параметром в один и не плоди дубли».
Пишется так: Clean-param: s&query&utm_source в блоке для Яндекса. В отличие от жёсткого Disallow, Clean-param не просто запрещает — он передаёт склеенным страницам накопленные показатели и убирает дубли аккуратно, без потери сигналов. Для интернет-магазина, где параметров тьма (поиск, сортировка, utm-метки, фильтры), это самый чистый способ навести порядок именно в Яндексе. Под Google той же логикой работает связка canonical + настройка параметров, но раз мы говорим про Рунет и продвижение сайта в Яндексе, Clean-param — ваш основной рычаг.
Про rel=canonical скажу коротко: для страниц поиска он слабоват. Указать canonical со страницы ?s=колодки на категорию «Колодки» технически можно, но Яндекс воспринимает canonical как рекомендацию, а не приказ, и на явно разном контенте может его проигнорировать. Как подстраховка в комплекте — годится. Как единственное решение — нет.
Почему для интернет-магазинов это вопрос жизни и смерти
Для блога или сайта услуг лишние страницы поиска — неприятность. Для интернет-магазина — системная угроза. И вот почему.
У магазина изначально огромный объём URL: тысячи товаров, сотни категорий, фильтры, сортировки, пагинация. Краулинговый бюджет и так натянут. Добавьте генератор страниц поиска — и робот физически не успевает обойти важное. Новые поступления не индексируются неделями, изменения цен не подхватываются, акции проходят мимо выдачи. В сезон это прямые потери денег: завёл товар, а его в поиске нет, потому что бот занят обходом ?s=прошлогодний+запрос.
Второй момент — конкуренция страниц. В магазине страница поиска почти всегда дублирует категорию или подборку. Я вёл проект по продвижению магазина автозапчастей, где половина категорий не могла пробиться в топ, потому что Яндекс выбирал вместо них страницы внутреннего поиска — они были «свежее» по дате обхода. Закрыли поиск от индексации, склеили параметры через Clean-param — и категории через полтора месяца поехали вверх. Не магия, а высвобожденный бюджет и убранная каннибализация. Тему грамотной структуры я разбираю и в материале про внутреннюю перелинковку интернет-магазина: поиск не должен подменять нормальную навигацию.
Отдельно скажу про парадокс, который многих удивляет: иногда лучший способ поднять сайт — удалить половину страниц. Чистка индекса от мусорных URL поиска — ровно из этой оперы. Меньше страниц, но каждая осмысленная, — и хостовая оценка растёт.
Пошаговый план: как закрыть поиск правильно
Собираю всё в один рабочий алгоритм. Делайте по порядку, не перепрыгивая.
-
Диагностика. Через оператор site и Вебмастер посчитайте, сколько страниц поиска уже в индексе. Зафиксируйте цифру — по ней потом поймёте эффект.
-
Ставим noindex на все страницы результатов. Через SEO-плагин или в шаблоне по условию «это страница поиска». Обязательно content=«noindex, follow». Robots.txt на этом этапе НЕ трогаем — бот должен зайти и прочитать команду.
-
Добавляем Clean-param для Яндекса. Перечислите все параметры поиска: s, query, search, q. Это ускорит склейку дублей.
-
Ждём переиндексации. 2–4 недели. Отслеживаем в Вебмастере, как страницы поиска уходят из «Страниц в поиске» в исключённые с пометкой noindex.
-
После очистки — закрываем в robots.txt. Теперь, когда индекс чист, добавляем Disallow: /?s= и подобные, чтобы бот вообще не заходил на эти URL и не тратил бюджет.
-
Убираем прямые ссылки на результаты поиска. Проверьте блоки «Популярные запросы», подсказки, футер — если оттуда идут прямые ссылки на ?s=, робот будет их находить. Уберите или закройте атрибутом rel=«nofollow».
-
Настройте страницу «ничего не найдено». Пусть отдаёт корректный статус и не плодит пустышки — либо noindex, либо редирект на каталог.
И параллельно проверьте, не течёт ли у вас бюджет ещё где-то — через архивы, теги, календари. Часто скорость загрузки сайта и чистота индекса идут рука об руку: чем меньше мусорных URL обходит робот, тем быстрее подхватывается важное.
Чек-лист и выводы
Коротко, что забрать из статьи:
-
Страницы внутреннего поиска (?s=, /search/, ?query=) — это генератор дублей и тонких страниц, работающий без вашего ведома.
-
Главный вред — слив краулингового бюджета, каннибализация категорий и падение хостовой оценки из-за пустых страниц.
-
Для очистки уже проиндексированного — сначала noindex (robots.txt пока не трогаем), потом, после выпадения, Disallow.
-
В Яндексе главный рычаг — Clean-param: склеивает параметры без потери сигналов.
-
Canonical — только как подстраховка, самостоятельно проблему не решает.
-
Для интернет-магазинов это критично: бюджет ограничен, а мусора генерится больше всего.
Внутренний поиск — полезная штука для пользователя. Но в индексе поисковика ему не место. Закройте его грамотно — и вы удивитесь, как быстро робот начнёт обходить действительно важные страницы, а категории поедут вверх. Это одна из тех правок, которые ничего не стоят, но дают ощутимый прирост.
Хотите, чтобы ваш магазин тратил краулинговый бюджет на товары и категории — а не топил себя в тысячах пустых страниц поиска? Я занимаюсь продвижением сайтов в Яндексе уже больше 20 лет и готовлю сайты в том числе под выдачу нейросетей и AI-поиск. Разберу ваш проект, найду все течи индекса и покажу, где вы теряете трафик и заявки.
Увеличьте позиции и продажи вашего сайта
Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:
Остались вопросы по продвижению?
Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.
Связаться со мной →
Забрала: найти мусор в Вебмастере и краулером, закрыть noindex плюс Clean-param, оставить сам поиск для людей, убрать внутренние ссылки на результаты, полезные фильтры наоборот открыть, ждать пару месяцев. Чистый индекс — здоровый сайт. Спасибо!
Закрыть noindex, убрать внутренние ссылки на них, добавить Clean-param — и робот постепенно их переобойдёт и выкинет. Для ускорения в Вебмастере есть инструмент удаления URL, но массово это долго. Основной путь — noindex плюс терпение, за пару месяцев вычистится.
А если этих мусорных страниц уже тысячи в индексе, как быстрее их оттуда убрать? Просто закрыть noindex и ждать, пока выпадут, или есть способ ускорить удаление из индекса?
Виктория, закройте noindex, уберите внутренние ссылки на эти страницы, добавьте Clean-param — и робот постепенно их переобойдёт и выкинет. Для ускорения в Вебмастере есть инструмент удаления URL, но массово это долго. Основной путь — noindex плюс терпение: за пару месяцев вычистится. Мгновенно тысячи страниц из индекса не убрать, но процесс запустится.
Добавлю: проверьте, не ведут ли на страницы внутреннего поиска внутренние ссылки. Иногда движок сам линкует на результаты поиска, и робот по ним идёт. Уберите такие ссылки, иначе даже под noindex робот будет тратить на них обход. Закрывать надо комплексно.
Спасибо, пошла проверять индекс. Подозреваю, что у нас там куча мусора от поиска и фильтров, а важные страницы из-за этого обходятся редко. Закрою через noindex и Clean-param, наведу порядок. Не думала, что это так влияет на весь сайт.
После чистки мусорных страниц не ждите мгновенного эффекта: роботу надо переобойти сайт и переоценить. Обычно улучшение видно через пару месяцев. Но эффект стоит того: домен перестаёт выглядеть замусоренным, бюджет идёт на нужное. Терпение.
Автогенерируемые страницы движка вообще частый источник мусора: архивы по датам, теги, страницы авторов, результаты поиска. Многие о них не подозревают, а они раздувают индекс. Ревизия того, что реально в индексе, часто открывает неприятные сюрпризы.
Есть нюанс: иногда страницы фильтров с реальным спросом наоборот стоит открыть и оптимизировать под запросы. Красные диваны — это спрос. Но пустой внутренний поиск и мусорные комбинации — закрывать. Не всё под одну гребёнку, разбирайте по спросу.
Именно так: поиск для людей оставляем, он повышает юзабилити и удержание, а страницы его результатов закрываем от индексации. Функционал полезен, а вот его следы в индексе — мусор. Разделяйте пользу для человека и вред для индексации.
А совсем удалять функционал внутреннего поиска не надо, он полезен людям? Только закрыть от индексации результаты, а сам поиск оставить рабочим для посетителей?
Артём, сам функционал внутреннего поиска удалять не надо, он полезен людям и улучшает юзабилити. Закрываем от индексации только страницы его результатов — через noindex и Clean-param. Поиск для человека оставляем рабочим, а его следы в индексе убираем. Разделяйте пользу для посетителя и вред от мусорных URL в индексе — это разные вещи.
У нас из-за страниц внутреннего поиска в индексе висело в три раза больше страниц, чем реально на сайте. Робот ходил по мусору, а важные страницы обходил реже. Почистили — краулинговый бюджет пошёл на нужное, индексация выправилась.
Не только поиск, но и сортировки, фильтры, пагинация с параметрами плодят дубли и мусор. Один товар доступен по десяти URL с разными параметрами. Настройка канониклов и Clean-param по всем этим параметрам чистит индекс капитально.
Закрывать лучше через meta noindex, а не только robots. Robots запрещает обход, но если на страницу поиска есть ссылки, она может попасть в индекс. noindex надёжнее исключает. А для Яндекса ещё Clean-param по параметру поиска отлично помогает.
В Вебмастере посмотрите страницы в поиске и загруженные — если там куча URL с параметрами поиска, фильтров, сортировок, вот они. Плюс прогон краулером покажет все такие мусорные страницы. Обычно их находится в разы больше, чем ждёшь.
А как понять, что у меня эта проблема есть? В Вебмастере смотреть, что за страницы с параметром search в индексе, или как их вычислить?
Елена, в Вебмастере посмотрите страницы в поиске и загруженные — если там куча URL с параметром search, а также фильтров и сортировок, вот они. Плюс прогон краулером покажет все такие мусорные страницы. Обычно их находится в разы больше, чем ждёшь. Сравните число страниц в индексе с реальным числом на сайте — разрыв и есть мусор.
Классическая техническая дыра. Страницы внутреннего поиска по сайту с параметром вроде search=что-то индексируются и плодят тысячи пустых или дублирующих страниц. Робот тратит на них краулинговый бюджет, а домен выглядит замусоренным. Закрыли их от индексации — качество сайта в глазах Яндекса выросло.