О чем эта статья
Программное SEO, или programmatic SEO, — автоматизированное создание посадочных из структурированных данных по повторяемому шаблону. Создавайте страницу для поиска, когда у нее есть самостоятельная задача и актуальные сведения, которые помогают ее решить, а запросы с той же задачей относите к одной группе. Для технических копий выберите основной адрес и настройте 301, а если нужны оба URL, укажите основной через canonical.
Перед массовым запуском проверьте на небольшом наборе посадочных, как шаблон отбирает данные и получает ли робот содержимое. После обхода оцените через Яндекс Вебмастер, участвуют ли нужные страницы в поиске, а через Яндекс Метрику — целевые действия посетителей.
Кому поможет эта статья
SEO-специалистам, которые планируют страницы по характеристикам товаров, регионам или другим параметрам и выбирают сочетания для продвижения.
Разработчикам и ответственным за данные, которые настраивают генерацию страниц, обновление полей и обработку лишних адресов.
Содержание
Представьте: магазин водонагревателей готовит новый каталог, и разработчик предлагает создать страницы для всех возможных сочетаний объема, способа установки, бренда и города доставки. Вы открываете первые несколько страниц и видите, что заголовки у них разные, а товары внутри ровно те же самые. Сталкивались когда-нибудь с такой ситуацией?
Каким продуктам подходят страницы из данных
Чтобы строить посадочные под такие запросы, нужны сведения, с которыми посетитель выберет объект или выполнит действие.
До сборки каталога вам нужно определить, какие сведения нужны клиенту при выборе и кто будет их поддерживать. К примеру, в каталоге агентств SE Ranking страницы формируются на основе профилей участников, а значит, на данных самих компаний. Чтобы вам было проще выбрать подходящее агентство, можно сравнить их по услугам, расположению, размеру команды, ценам и отзывам.
Собственный каталог можно разложить по сценариям использования, как сделано в категориях шаблонов Notion. Там вы можете выбрать уже готовый шаблон под свою задачу. К сентябрю 2026 года Ahrefs оценивал месячный органический трафик этих категорий Notion из Google примерно в 204 тысячи посещений, а число ранжирующихся URL — около 600. Для своего каталога используйте тот же принцип отбора — посадочная предлагает подходящие объекты и помогает ими воспользоваться.
Посадочные также используют как часть инструмента. Например, на странице интеграции Gmail и Notion уже есть сценарии, по которым письма переносятся в базу, а еще можно выбрать триггер и действие. А вот если у какой-то пары приложений сценария нет, делать для нее отдельную посадочную только потому, что оба сервиса значатся в базе, не стоит.

Магазину нужно подобрать подходящий ассортимент. Представим, что в каталоге есть шесть вариантов объема, четыре способа установки, десять брендов и двадцать городов доставки. Если все это перемножить, выйдет 4800 сочетаний. Только не все они окажутся полезными: где-то получатся пустые подборки, где-то одну и ту же задачу назовут по-разному, а страницы некоторых городов будут повторять друг друга по условиям.
Подготовьте подборку запросов, чтобы узнать, какие страницы по ним отвечают в Яндексе. Для этого пригодится сбор и кластеризация семантического ядра. Сведите запросы «бойлер 50 литров» и «водонагреватель 50 л» в одну подборку. А запрос о выборе объема потребует объяснения, которого список товаров не дает.
Указывать регион нужно только тогда, когда от него действительно зависит предложение для покупателя. Тогда на странице города расскажите, как быстро привезут заказ, есть ли товар на местном складе и на каких условиях проводится монтаж. Если магазин доставляет по всей России, региональные страницы должны отражать территорию, где вы реально работаете. А если в разных городах ничего не отличается, проще оставить одну общую подборку и добавить к ней описание условий доставки.
Чаще всего лишние страницы в таких проектах появляются из-за городов. Сделать сотню страниц «водонагреватели в Казани», «в Самаре» и так далее легко, но если цена, сроки и условия везде одинаковые, для Яндекса это одна страница в ста копиях. Такие страницы обычно выпадают из поиска как малополезные, и работа уходит впустую. Отдельная страница города нужна, когда на ней есть то, чего нет на общей: свой склад, свои сроки, свой монтаж.
Эдуард Трубченинов, основатель агентства поискового продвижения PrivateSEO
Раньше активно использовалась механика «поддоменов», где на каждом отдельном домене под каждый отдельный регион делали свой сайт. Сейчас достаточно единого сайта со списком товаров (для И-М). Региональность определяется зачастую за счет реальных адресов на странице «контакты», филиалы на картах (2gis, яндекс карты, google maps) и доп.информации в карточках о «способах доставки». Либо используются «подпапки», если есть различия в ассортименте товаров в разных локациях.
Иван Сиваков, Senior SEO компании WSS. Специалист в области E-commerce, Fintech, Medicine, AIO
Как собрать данные и дать каждому URL свою задачу
Договоритесь о полях и обновлении базы
Если в исходном поле ошибка, шаблон повторит ее на каждой странице, где это поле используется. Допустим, в одной выгрузке объем указан в литрах, а в другой в миллилитрах: товары отберутся неправильно. То же и с наличием. Если пустое место в данных о складе превращается в «есть в наличии», покупателю предлагают то, что магазин выполнить не сможет.
Для подборки понадобятся пять групп данных.
Идентификатор модели, категория и характеристики, в том числе объем и способы установки.
Цена и наличие из той системы, где магазин на самом деле их обновляет.
Условия доставки и монтажа для выбранного региона.
Источник каждого поля, время последней успешной проверки и правило на случай пропуска значения.
Связи с карточкой товара, брендом и другими подборками, чтобы пользователю было проще продолжить выбор.
У каждого источника должен быть ответственный за него, а также четкая частота обновления. Наличие нужно обновлять, когда меняются сведения в учетной системе, а размеры корпуса, когда исправляется карточка. Дату на странице меняйте только после проверки данных. Если выгрузка не прошла, а дата все равно обновилась по расписанию, проблема останется незамеченной.
Это касается и HTTP-заголовка Last-Modified, и тега lastmod в Sitemap: они должны меняться при изменении содержимого, а не при каждом запуске генератора. Если страница не менялась, сервер отвечает роботу кодом 304 Not Modified, и тот тратит обход на обновленные адреса. Когда генератор каждую ночь ставит свежую дату всем подборкам, Яндекс и Google заново скачивают весь каталог, а новые посадочные попадают в индекс позже. Google к тому же учитывает lastmod, только если он стабильно соответствует реальным изменениям. Кроме того, он рекомендует отдавать заголовок ETag.
Ольга Костенко, SEO-маркетолог, руководитель агентства okostenko.agency
Источниками для посадочных могут быть база, профили участников, открытые наборы данных и API. С внешними данными сначала разберитесь с условиями использования и сохраните информацию об их происхождении.
Еще до генерации объедините дубли, чтобы товар, который у двух поставщиков называется по-разному, не занимал в подборке два места. Каждому сочетанию параметров тоже нужен постоянный идентификатор, например «водонагреватели, 50 литров, вертикальная установка». Тогда при другом порядке фильтров или синониме основной адрес страницы останется прежним.
Индексируемую посадочную генератор создает, когда выполнены три условия: 1) сочетание входит в отобранную группу запросов, 2) для него есть подходящие товары, 3) обязательные поля заполнены и проверены. Если строка базы не соответствует хотя бы одному из них, страница из нее автоматически не публикуется.
Сначала проверьте отличие задачи, затем пишите текст
Посмотрите, что сможет сделать клиент на будущей странице. Подборка вертикальных водонагревателей на 50 литров нужна, чтобы удобно сравнить размеры, цены и условия покупки подходящих моделей, и в ней должны оставаться только те товары, которые можно установить именно так. Поясните, как требования к установке следуют из характеристик моделей.
А вот если шаблон просто выводит весь ассортимент и лишь подставляет в текст слова «вертикальный» и «50 литров», посетителю придется выяснять, как устанавливать модель, уже в карточке товара. Поправьте условия выборки, чтобы список действительно соответствовал характеристикам из заголовка.
Сравнивайте близкие посадочные по составу объектов и задаче. Если две страницы отвечают на одинаковый запрос и дают одинаковый выбор, оставьте одну.
Кейс по теме: в апреле 2025 года SearchPilot опубликовал тест обогащения страниц данными. Магазин решал, объединять ли страницы о питании с карточками товаров, но проверка показала разные поисковые задачи. Поэтому магазин сохранил страницы и добавил данные из карточек, таблицы и связанные товары. За почти шесть недель тест с группой сравнения показал почти 20% прироста органического трафика из Google на измененных страницах о питании.
Используйте связи данных в навигации
Подборке нужно найти свое место в структуре сайта и во внутренней перелинковке. Путь посетителя может выглядеть так: из общей категории он попадает к нужному объему, из подборки заходит в карточку товара, а из карточки переходит к другим подходящим моделям. Ссылки ведут на выбранные основные адреса, чтобы разные пути по каталогу не создавали новые варианты одной страницы.
Также обязательно свяжите название бренда в карточке товара с подборкой. В сентябре 2026 года SearchPilot опубликовал тест ссылок на брендовые подборки: название бренда сделали ссылкой, и страницы, на которые она вела, получили рост органического трафика.
Теперь проверьте связи в своей базе. Там, где отношения между объектами пока обозначены только текстом, добавьте ссылки для перехода к нужному выбору.
Удобный формат для этого — блок тегов над листингом категории. Это статические ссылки, которые ведут на отобранные посадочные. Каждая ссылка должна быть элементом <a> с атрибутом href прямо в HTML. Google в документации указывает, что переходит только по таким ссылкам, а переход по клику через JavaScript робот может не обнаружить.
Теги часто заводят вручную или выводят из всех значений фильтров, и со временем они перестают совпадать с опубликованными страницами. Ссылки начинают вести на снятые с публикации или закрытые от индексации сочетания, а новые подборки остаются без входящих ссылок.
Поэтому нужно выводить в блоке только сочетания, которые прошли условия генерации, и строить адрес по постоянному идентификатору подборки. Тогда при снятии страницы тег исчезнет автоматически, а новая подборка сразу получит ссылку из категории.
Ольга Костенко, SEO-маркетолог, руководитель агентства okostenko.agency
Что проверить на тестовом наборе перед масштабированием
Предлагаем начать с 30 подборок, которые должны индексироваться, и сразу сделать так, чтобы каждый шаблон был представлен в разных вариантах: пусть там окажутся и широкие, и узкие подборки, с разным количеством товаров и с местными условиями.
Заодно добавьте в проверку несколько особых случаев: к примеру, адрес пустого фильтра, техническую копию страницы с аналитической меткой, комбинацию, где пропущено одно из полей, и страницу, на которой товар временно закончился. Чтобы потом оценить индексацию, сохраните отдельный список, в котором останутся только те URL, которым положено участвовать в поиске.
Первым делом посмотрите на страницу глазами посетителя: от заголовка и сравнения товаров до кнопки покупки или заявки. Заголовок должен отражать выбранный отбор, а данные должны совпадать с источником. Убедитесь, что сравнение действительно помогает выбрать товар, а кнопка срабатывает. Если нужно пояснение, отдайте нейросети только проверенные поля с данными.
Следующий шаг — техническая приемка. Пройдитесь по списку и проверьте все по порядку.
Нужные посадочные страницы должны отвечать кодом HTTP 200 и быть доступными для робота, а запрета индексации на них быть не должно.
Title и H1 должны ясно передавать задачу страницы, а в метаданных не должно быть пустых переменных и неверных характеристик.
Поисковик видит все данные. Сравните исходный HTML с тем, что получается после JavaScript-рендеринга. Это особенно важно, если товары подгружаются уже после открытия страницы.
Основной адрес должен совпадать в ссылках, в Sitemap и в настройках canonical. Заодно убедитесь, что синонимы и разный порядок фильтров не плодят новые посадочные страницы.
На каждую подборку должны вести ссылки из подходящих разделов, а ссылки на товары и на соседние подборки должны работать.
Аналитика фиксирует целевое действие и позволяет связать его с источником визита и с первой страницей этого визита.
Соберите технические ошибки по списку URL
Одну посадочную вы проверите вручную — заголовки, ответ сервера, правила индексации. А теперь таких страниц 30. Чтобы увидеть повторяющуюся ошибку шаблона, соберите общий отчет через «Аудит сайта» PR-CY. Сервис обходит заданные URL, собирает значения полей и отмечает технические проблемы.
Откройте проект своего сайта или создайте его. Для нашего теста передайте сервису список из 30 полных адресов, которые вы выбрали для индексации.
В «Настройках» проекта откройте «Аудит сайта» и включите «Мой список страниц». Вставьте URL, каждый с новой строки. Для нашего каталога адрес выглядит как https://example.com/catalog/50-litrov/.
Оставьте включенным только этот источник страниц. Обход найденных ссылок и использование Sitemap отключите.
Сохраните настройки. В модуле «Аудит» откройте «Сводка» и нажмите «Новая проверка».
Когда сервис завершит обход, откройте «Страницы сайта». Сверьте состав отчета с исходным списком — сервис должен проверить все 30 адресов.

В сводке аудита будет число страниц с каждой проблемой, а подробности — в результатах проверки адресов. Нажмите на URL. В этом разделе можно сравнить Title и H1, HTTP-код, canonical и запреты на индексацию. Так вы поймете, встречается ли ошибка во всей группе или только на одной посадочной странице.

Для поиска повторяющихся заголовков нажмите «Добавить фильтры», выберите «Неуникальный title» и примените фильтр. Остальные проблемы проверяйте по очереди, при этом нужно сбрасывать прошлый отбор. Фильтры работают через И — если одновременно выбрать дубли Title и запрет индексации, в списке останутся только страницы с обеими проблемами.

Представим, что у подборок вертикальных и горизонтальных моделей оказался одинаковый Title: «Водонагреватели 50 литров». Отчет покажет, что заголовок повторяется, и перечислит затронутые URL.
Теперь сравните товары на этих страницах. При разном ассортименте заголовкам не хватает способа установки, а при одном общем списке проверяйте условия отбора в шаблоне.
Проверьте через «Проверку страницы» в Вебмастере, получает ли поисковик товарный список. Если нужные данные появляются на странице только после выполнения JavaScript, сравните отчет краулера с тем, как страницу отрисовывает Яндекс.
Исправьте причину и повторите проверку
До правок скачайте исходный отчет через «Экспорт» в формате XLSX. Проблемные URL и значения полей из него перенесите в задание вместе с причиной, исполнителем и ожидаемым результатом.

Результаты можно выгрузить через меню. Там есть PDF и пункт «Экспорт», который скачивает файл XLSX. В выгрузке остаются исходные результаты, так что ими удобно пользоваться при постановке задачи, а потом сравнить их с тем, что получилось после правок.
Теперь про наш пример. У подборок вертикальных и горизонтальных водонагревателей совпадает Title, поэтому в шаблон заголовка стоит добавить способ установки, взяв его из данных подборки. Тогда заголовок на каждом URL будет соответствовать тому ассортименту, который на странице выбран. Когда шаблон изменен, перепроверьте всю тестовую группу целиком.
Если в базе указаны неверные характеристики, передайте это тому, кто ведет каталог. Если же условия выборки подтягивают в подборку неподходящие модели, исправлять отбор товаров должен разработчик.
Когда правки будут внесены, запустите «Новую проверку» с тем же списком из 30 URL. Смотрите сразу на три вещи: остались ли в отчете все адреса, обновилась ли дата и исправлены ли нужные поля. В нашем случае заголовок должен различать способы установки, а список товаров на странице должен соответствовать условиям отбора подборки.
Остальные технические задачи разбирайте в том же порядке. Перечень проверок для разных заданий вы найдете в руководстве по аудиту сайта.
Когда пройдете приемку, включите нужные адреса в Sitemap и сообщите Яндексу о новых или измененных страницах через переобход либо IndexNow. На следующем шаге проверяйте фактическую индексацию и спрос.
Как находить дубли, отслеживать индексацию и оценивать результат
Выберите решение для каждого типа лишних URL
У технических копий, похожих подборок и страниц без самостоятельного спроса разные причины появления.
Если один документ доступен по двум вариантам адреса, выберите основной. Для /catalog/50-litrov и /catalog/50-litrov/ настройте 301 на принятый вариант и обновите внутренние ссылки. При устранении дублей со слешем Яндекс рекомендует перенаправление.
Для контентных копий, которые должны оставаться доступными по разным адресам, используйте rel="canonical". Он указывает предпочтительную версию страницы. Подборке вертикальных моделей с самостоятельной задачей оставьте собственный основной адрес.

GET-параметры передают значения в части адреса после ?. Параметр, который не меняет содержимое страницы и, например, только передает метку рекламного источника, в Яндексе можно объявить незначащим через Clean-param. В Яндекс Вебмастере с декабря 2025 года доступна «Настройка GET-параметров». Перед исключением сравните адреса с параметром и без него. volume=50 меняет ассортимент — обработать его как метку utm_source нельзя.
Если настройка GET-параметров в Вебмастере противоречит robots.txt, Яндекс применяет правило, запрещающее индексирование URL с параметром. Поэтому настройки нужно согласовать.
Обратите внимание, что clean-param и «Настройка GET-параметров» работают только в Яндексе, не в Google. Поэтому выводите в шаблоне canonical на адрес без незначащих параметров.Google считает canonical подсказкой, а не обязательным правилом. Чтобы он ее учел, внутренние ссылки и Sitemap должны вести только на адреса без меток. Яндекс тоже учитывает canonical, но Clean-param для него полезнее: робот не будет раз за разом скачивать копии с метками.
Ольга Костенко, SEO-маркетолог, руководитель агентства okostenko.agency
Подборку, которая нужна посетителю внутри сайта, но не предназначена для поиска, можно исключить метатегом robots noindex. Чтобы робот увидел запрет индексирования страницы, URL должен оставаться доступным для обхода.
Noindex требует загрузки страницы. Поэтому не выводите все возможные сочетания фильтров в сквозной навигации. Для служебных адресов можно заранее прописать в robots.txt запрет на обход, а нужные посадочные страницы оставить открытыми для роботов. Не забудьте заглянуть в Вебмастер и убедиться, что эти адреса действительно исключены.
Пустая подборка и товары, которых временно нет в наличии, это разные случаи, и правила для них лучше сделать разными.
Если такого сочетания фильтров не существует, не отдавайте его в поиск: страница с типовым заголовком и пустым списком никому не поможет.
Когда товары закончились ненадолго, задайте себе вопрос: чем страница все еще может быть полезна? Например, можно указать срок поступления, дать возможность оформить заказ или показать подходящие альтернативы.
Если же URL удален насовсем и страницы с тем же назначением у вас нет, пусть он возвращает код 404 или 410. А если человек может решить свою задачу на другой странице, лучше настроить на нее перенаправление.
Разберите причины исключения в Яндексе
После обхода сопоставьте тестовый список со страницами в поиске и причинами исключения в Вебмастере. Если Вебмастер исключил URL как дубль, найдите второй адрес и сравните содержимое и технические правила. На страницах со статусом «Малоценная или маловостребованная» проверьте доступность содержимого роботу, соседние подборки и запросы под этот выбор.
Статус «Малоценная или маловостребованная» часто понимают как «плохой текст» и начинают дописывать описания. Но у подборок, которые собраны из данных, причина обычно другая: такое сочетание просто никто не ищет. Прежде чем переписывать страницу, проверьте в Вордстате, есть ли спрос по ее запросу. Если спроса нет, страницу лучше закрыть от индексации и оставить для навигации, а силы потратить на подборки, которые ищут.
Эдуард Трубченинов, основатель агентства поискового продвижения PrivateSEO
Нарушения и примененные Яндексом меры проверяйте в разделе «Безопасность и нарушения».
Кейс по теме: в ноябре 2024 года на 20 новых доменах разместили 2 000 материалов без редакторской доработки. Результаты этого эксперимента SE Ranking с массовыми AI-статьями опубликованы в 2026 году. За первые 36 дней в Google индексировалось около 71% AI-страниц, но в феврале 2025 года их доля в топ-100 снизилась с 28 до 3%. Через 16 месяцев после запуска существенного восстановления авторы не наблюдали.
В медицинской тематике этот эффект проявляется еще быстрее и жестче, потому что Яндекс и Google применяют повышенные требования к сайтам категории YMYL. Массовая генерация страниц о симптомах и лечении без участия врача-редактора — почти гарантированный путь к просадке.
Ксения Зайцева, SEO-специалист по медицинским сайтам
Свяжите показы и клики с целевым действием
В выгрузке запросов Вебмастера сопоставьте URL с запросами, регионами, показами и кликами. Так можно увидеть, какая подборка появляется по нужной задаче и не получает ли ее трафик соседняя страница. Разбивайте данные на группы: по объемам, способам установки, регионам. Тогда ошибка в одном шаблоне не растворится в общей сумме.
В Метрике выделите визиты из поиска Яндекса, которые начались на тестовых посадочных. Затем проверьте достижение настроенной цели — для магазина задайте цель заказа, а для каталога агентств — отправки заявки. Допустим, за выбранный период на тестовых подборках начались 600 визитов из поиска Яндекса, в 18 из них посетители отправили заявку. Тогда конверсия составляет 18 ÷ 600 × 100% = 3%.
Если вам нужно объединить несколько выгрузок, сначала приведите их к единой детализации, скажем, до URL и дня.
Прежде чем масштабировать проект, проведите техническую приемку. Проверьте, что страницы находятся в поиске по нужным вам задачам и что посетитель действительно может совершить целевое действие. А чтобы оценить динамику, сопоставьте ее с похожими страницами, которые вы не трогали, и не забудьте про сезонность.
Проверьте, не стали ли посадочные дорвеями
Дорвеи — это промежуточные страницы, созданные ради охвата похожих запросов. Они не помогают посетителю решить его задачу, а просто перенаправляют его на одну и ту же конечную страницу.
Представьте десятки страниц «монтаж водонагревателя в городе», где меняется только название города, нет местных условий, а кнопка ведет на общую страницу услуги. Клиенту придется заново выяснять, работает ли компания в его городе.
В Яндексе бесполезная автоматическая генерация, агрегаторы без уникального сервиса и малоинформативные результаты отбора товаров названы среди признаков некачественного сайта. Для проектов с трафиком из Google также действуют правила о дорвеях и массовом малоценном контенте.
Перед следующей партией выберите одну проблемную группу и устраните причину ошибок в данных, выборке или обработке адресов. Затем проверьте ее еще раз и решите, какие сочетания можно добавлять дальше.
FAQ
Как подготовить русскую и английскую версии подборки?
Дайте переводам разные URL, например /ru/catalog/50-litrov/ и /en/catalog/50-litres/. На обеих версиях разместите в head ссылки на языковые варианты через link rel="alternate" с атрибутами hreflang="ru" и hreflang="en". Каждая версия должна ссылаться на обе, включая себя. Яндекс больше не поддерживает языковые связи через Sitemap, поэтому включите эти элементы в шаблон.
Куда должен указывать canonical на второй странице каталога?
Для второй страницы с другим набором товаров задайте собственный canonical, например https://example.com/catalog/50-litrov/?page=2. Первая страница не содержит весь этот ассортимент, а Яндекс игнорирует указание при существенно разном содержимом.
Нужно ли создавать новые URL, если меняется шаблон каталога?
Нет, новые адреса не понадобятся. Достаточно сохранить связь между идентификатором подборки и ее URL, и тогда новый генератор продолжит выпускать уже существующие страницы. Перед релизом выгрузите заголовки, canonical и коды ответов, а после релиза сравните эти же поля для старых адресов. Так вы сможете заметить, например, запрет индексации, который случайно перекочевал в новый шаблон из тестовой среды.
Трафик часто проседает при смене шаблона или движка, и чаще всего виноваты адреса. Новый генератор строит URL по своей логике, старые подборки начинают отдавать 404, а перенаправления никто не настроил. Поэтому до релиза выгрузите все адреса, которые сейчас приносят трафик, а после релиза пройдите по этому списку: каждый адрес должен открываться как раньше или вести 301 на свою замену.
Эдуард Трубченинов, основатель агентства поискового продвижения PrivateSEO
Какую микроразметку лучше добавить на страницу, где представлено несколько товаров?
Саму подборку опишите через ItemList, а каждую отдельную модель — через Product. Для упорядоченного списка используйте ListItem с position и ссылкой на карточку в item. Передавайте в разметку те же цены и наличие, которые посетитель получает в карточках. Если стоимость не поступила из базы, уберите это поле и из разметки.