Коротко
Клиент пожаловался: в выдаче каша — заголовок одного товара, картинка второго, описание третьего. Пока разбирал каталог, нашлось кое-что похуже: на карточке одного размера в заголовке стояли характеристики соседнего. Товар держит 50 килограммов, а ИИ уверенно отвечает покупателю «40» и ссылается на сайт производителя. Источников путаницы оказалось три, и они независимые: вариации-близнецы внутри сайта, слетевшие после смены рендеринга метаданные и один и тот же текст на сайтах перепродавцов. Разметка тут почти ни при чём — она контент описывает, а не заменяет.
Клиент написал: в поиске каша. Забиваешь артикул — а тебе выдают заголовок одного товара, картинку второго и описание третьего. Открываешь саму страницу — там всё правильно. Каждая буква на месте.
Это производитель складского оборудования из Европы, интернет-магазин при собственном производстве. Название и домен не назову — NDA. Каталог на 1900 с лишним страниц: колёса, тележки, штабелёры, стеллажи. Десять веток.
Версия у нас была очевидная. Незадолго до этого им внедрили генератор статических страниц — бэкенд стал отдавать готовую статику. Поменяли рендеринг, поехали метаданные, дело житейское. Я уже почти написал «виноват генератор».
И на всякий случай спросил, когда началось. Ответ: «да это и до него было».
В итоге источников оказалось три. Независимых. И разметкой лечится только один из них.
А по дороге вылезло четвёртое, и вот оно мне не понравилось больше всего остального: карточка, на которой ИИ уверенно сообщал покупателю чужие характеристики. Про неё отдельно, ближе к концу.
Как смотрел
Не по чужим отчётам, а руками по живому сайту: главная, три категории, листинг серии, карточка товара, четыре соседние вариации одной серии, две статьи, robots.txt, llms.txt, sitemap на 1994 адреса, HTTP-заголовки. Смотрел исходник страницы — то, что реально получает бот, а не то, что рисует браузер. За два месяца таких проходов было четыре: первый аудит и контроль после каждой волны правок.
Вариации-близнецы
Берём одну серию колёс. Три размера: 50, 60 и 75 миллиметров. У каждого свой артикул, своя цена, своя страница.
По отдельности каждая карточка сделана правильно. Свой заголовок. Своё фото. Canonical на саму себя. Product и Offer в разметке, цена, наличие. Придраться не к чему — я и не придрался, пока смотрел их по одной.
А потом положил две соседние рядом. Совпадение тела — 99%. Всё различие между страницами — девять слов. Описание для поиска вообще одно предложение, в которое подставили другое число: «...поворотную опору на штыре (75 мм, 60 кг, арт. ...)». Меняем 75 на 60 — получаем вторую страницу. Меняем на 50 — третью. И так по всему каталогу.
Поиск видит десяток почти одинаковых страниц и делает ровно то, чему его учили: считает их одной сущностью. Склеивает в кластер. А дальше собирает сниппет из того, что показалось уместным — заголовок отсюда, картинку оттуда, описание вон оттуда. Это не сбой. Это он честно отработал на том, что ему дали.
С ИИ то же самое, только заметнее. Модель отвечает покупателю не сниппетом, а фразой: «такой-то артикул, диаметр столько-то, держит столько-то». И характеристики она берёт из кластера, где три размера уже перемешались в один.
Метаданные, слетевшие после смены рендеринга
Генератор статики всё-таки был виноват. Просто не в главном.
Что он натворил: на статьях обнулился head. У всех страниц один и тот же заголовок вкладки — название компании. Нет описания. Нет картинки для превью. Нет даже видимого заголовка на странице. Статьи разные, а для машины — одна и та же.
На категориях пропала своя картинка для превью. И поиск начал выбирать её сам — брал первое подходящее фото со страницы. Отсюда и «колёса вместо тележки» в выдаче: на категории тележек стояло фото из шапки.
Сверху кэш: stale-while-revalidate на неделю. То есть даже после правки старое сидит в индексе ещё семь дней, и ты сидишь и не понимаешь, почему ничего не изменилось.
Мораль скучная, и поэтому её никто не соблюдает. Любая перекладка рендеринга — статика, новый шаблон, CDN, переезд на фреймворк — это в первую очередь риск для метаданных. Проверять надо в исходнике. В браузере всё будет выглядеть прекрасно, потому что браузеру ваш head не очень-то и нужен. А боту нужен только он.
Ваш же текст на чужих доменах
Третий слой всплыл случайно. Клиент прислал ссылку на перепродавца: «вот у них картинка в выдаче встаёт верно». И правда встаёт. У реселлера одна страница на товар, без вариаций — склеивать нечего.
А текст на этой странице — их собственный. Слово в слово с сайта производителя. Что, вообще-то, нормально: реселлеры берут описания у поставщика, так устроен рынок, никто ничего не воровал.
Только поиск не знает, кто здесь производитель. Он видит один и тот же текст на пяти доменах, выбирает одного «владельца», остальных приглушает. И владельцем не обязательно становится тот, кто товар делает.
Та самая карточка, где ИИ врал
На четвёртом проходе поймал вещь, которую в GEO-отчётах обычно не пишут, потому что она формально не про GEO.
На карточке колеса на 60 миллиметров в видимом заголовке стояли характеристики соседа: «50 мм, 40 кг». При этом title страницы верный. Разметка верная. Цена верная. Ошибся только шаблон, подставивший в заголовок данные предыдущей вариации. И это не одна страница — подтвердилось на двух разных сериях, то есть системно.
Для человека это опечатка. Он всё равно смотрит на таблицу характеристик ниже. Для ИИ это источник: заголовок страницы модель читает первым, он же главный. И на вопрос «какая грузоподъёмность у такого-то артикула» она бодро ответит покупателю неправду. Со ссылкой на сайт производителя.
Вот это, по-моему, самое неприятное во всей истории. Не то, что вас не видно. А то, что вас видно — и вы врёте.
Что помогло, а что нет
Техническую часть закрыли за два месяца, по волнам. Доступ ботам, Product и Offer на карточках, автор и дата на статьях, дата обновления на всех 1994 адресах карты сайта, вернувшийся постраничный head, свои превью на категориях, кэш на границе, заголовки безопасности. Всё это меряется и всё это выросло.
Вариации развели наполовину: у соседних размеров появились свои заголовки и свои фото. Каша в выдаче ослабла.
А вот тело страниц по-прежнему совпадает на 94,5%. Заголовок разный — смысл один. Склейка не снята. Так что честно: задача закрыта наполовину, и вторая половина — это уже не разметка. Это 1900 разных описаний, которых руками никто не напишет.
И сразу про то, чего уникальный текст НЕ делает. Он не защищает от копирования. Реселлер спарсит и новый — он же ваш покупатель, вы ему сами описания и отдаёте вместе с товаром. Уникальность гарантированно чинит ровно одно: склейку ваших собственных страниц между собой, внутри вашего сайта. Это твёрдая часть.
Кто станет «владельцем» текста между доменами — решается другим: кто раньше попал в индекс, у кого авторитетнее домен, прописана ли в разметке сущность производителя (организация, бренд, реквизиты, ссылки на соцсети) и как быстро вас переобходят.
А единственное, что реселлер физически не скопирует — это ваша фактура. Фото со своего производства. Реальные данные испытаний. Инженерные подробности, которых у посредника просто нет. Вот это и надо класть в описания, если вы производитель. Всё остальное у вас перепишут за неделю.
Проверьте свой каталог за пятнадцать минут
Пять проверок и один запрет. Ничего сложнее браузера не нужно.
Откройте три соседние вариации одной серии и сравните описания. Если различие — только цифра, для поиска это одна страница, а не три.
Сверьте видимый заголовок карточки с заголовком вкладки. Данные должны совпадать. У клиента в двух сериях не совпадали, и никто этого не замечал.
Проверьте, есть ли у категорий своя картинка для превью. Нет своей — поиск возьмёт любую со страницы, и это будет не тот товар.
Возьмите предложение из своего описания и закиньте в поиск в кавычках. Посмотрите, сколько доменов его показывают и кто идёт первым.
После любой смены рендеринга смотрите исходник страницы, а не браузер. Head едет первым и молча.
И чего делать НЕ надо: не ставьте canonical с вариаций на одну «представительную» страницу. Совет стандартный, во всех SEO-методичках есть, и для каталога с артикулами он смертельный — покупатель ищет конкретный артикул, а приземляться ему станет некуда. Дубли здесь лечатся содержанием, а не схлопыванием.
Отдельно про сроки. Метаданные и доступ чинятся за дни, но эффект вы увидите позже — сначала должен истечь кэш, потом вас должны переобойти. У этого клиента между правкой и изменением выдачи проходило от недели до трёх. Уникализация описаний идёт волнами: сначала ходовые серии и то, что ищут по артикулу, остальное потом.
В сухом остатке
Каталог — отдельный жанр, и это почти нигде не проговаривается. Все статьи про GEO написаны про сайты, где страницы разные по смыслу: блог, услуги, о компании. Там работают привычные советы — пустите ботов, отдавайте текст сразу в HTML, разметьте schema.
В каталоге страницы по смыслу почти одинаковые. Так устроен товар: одна серия, шесть размеров, и различаются они двумя числами. И вся техника может быть закрыта на отлично, а ИИ всё равно будет путать ваши позиции между собой — потому что путать их логично.
Разметка описывает контент. Она его не заменяет. Если у трёх страниц один и тот же смысл, никакая Product schema не объяснит машине, чем они отличаются.
Клиент, кстати, пришёл не с этим. Он пришёл с «нам бы в ChatGPT попадать». А чтобы попадать в ChatGPT, надо сперва перестать быть для него тремя одинаковыми страницами.
Посмотреть, что ИИ видит в вашем каталоге
Пришлю разбор по вашему сайту: что реально получают ИИ-боты, склеиваются ли карточки между собой, где в выдаче будет каша и что чинить первым. Тот же метод, что в этом кейсе. Без впаривания.
Клиент под NDA: рассказываю нишу и устройство каталога, без названия компании и домена. Все находки и цифры — из четырёх реальных аудитов, номера серий и артикулы изменены.
