# Каннибализация, которую не видит Ahrefs

> Лексические инструменты сравнивают слова. Но две страницы конкурируют по СМЫСЛУ — даже без общих слов. Как мы ловим семантическую каннибализацию на…

_Source: https://seomatrix.ai/ru/blog/semantic-cannibalization/ · Updated: 2026-06-26_

---

Коротко: классические анти-дубль-инструменты сравнивают **слова**. Но две страницы могут конкурировать по **смыслу**, не имея общих слов (перефраз), или одна страница так глубоко раскрывает чужую тему, что **перетягивает** её цитирование. Мы ловим это на эмбеддингах.

## Где лексика слепнет

Шинглы и пересечение слов хорошо находят дословные дубли. Но:

- **Перефраз** — тот же смысл, другие слова → лексическое сходство ≈ 0, а конкуренция за один интент реальная.
- **Тематическая тень** — страница A нацелена на запрос X, но её тело так раскрывает тему Y, что начинает конкурировать со страницей B (профильной по Y) за релевантность Y.

Ни то, ни другое не видно инструменту, который смотрит на совпадение строк.

## Что мы сделали — три семантических аудита

Все три считают близость в **векторном** пространстве (провайдер-агностично: Voyage / OpenAI / локальные эмбеддинги; векторы кешируются).

- **`dup-scan --semantic`** — пары страниц с высоким косинусом, которые лексический проход пропустил (перефраз → MERGE/301).
- **`entity-shadow`** — латентная каннибализация: A «затеняет» B.
- **`link-equity --semantic`** — **siteRadius** (разброс вокруг центроида сайта), смысловые off-topic-выбросы и **semantic-gap-сироты** (страница, далёкая по смыслу от всех остальных).

## Как работает entity-shadow

Тут важна не «похожесть вообще», а **направление**. Для каждой страницы мы отдельно эмбеддим её **PRIMARY** (target_keyword + title) и её **BODY**. Страница **A затеняет B**, когда:

1. `cosine(A.body, B.primary)` — высокий (тело A раскрывает тему B);
2. `cosine(A.primary, B.primary)` — низкий (A заявляет другую тему);
3. **разрыв** между ними ≥ порога.

Именно разрыв — сигнал: длинное тело против острого ключа даёт умеренный косинус, поэтому абсолютное сходство тут не различает, а разница «тело-vs-ключ» — да. Проверить, как ИИ видит вашу страницу, можно бесплатным инструментом [Как тебя видит ИИ](/ru/tools/ai-view/).

> **Калибровано на реальных корпусах** — Пороги выставлены не «на глаз»: на живом корпусе (фотоиндустрия, 86 статей) кросс-близость топилась около 0.77, поэтому мы перешли на gap-driven пороги (cross ≥ 0.45, primary < 0.65, gap ≥ 0.10) → ~4 осмысленных пары, ~5% шума.

## Чем это отличается от обычного дубль-скана

- **dup-scan (лексика)** → дословные/почти-дословные дубли.
- **dup-scan --semantic** → перефраз.
- **entity-shadow** → A заявляет тему X, но крадёт цитирование темы Y у B (не дубль вообще).
- **cocoon intent-cannibalization** → два «спока» делят интент по метаданным.

## Что с этим делать

- Дубль/перефраз → склеить (301) в сильнейшую версию.
- Тень → **дифференцировать**: сузить тело A к его теме X, а раскрытие Y отдать странице B (и сослаться на неё).

## Коротко

- Лексика ловит дословное; смысл и «тень» — нет.
- Эмбеддинги ловят перефраз (`dup-scan --semantic`) и латентную каннибализацию (`entity-shadow`).
- entity-shadow смотрит на разрыв «тело-vs-ключ», а не на абсолютное сходство.
- Решение: дубль → склеить; тень → дифференцировать.

## Источники

- Собственные семантические аудиты **seo·matrix** (`dup-scan --semantic`, `entity-shadow`, `link-equity --semantic`), калиброванные на живых корпусах.
- Почему смысл важнее слов для ИИ-извлечения: ответ собирается из пассажей в эмбеддинг-пространстве — материалы *US v. Google* (2025) о FastSearch/RankEmbed и наш разбор [«SEO vs GEO»](/ru/blog/seo-vs-geo-2026/).

## FAQ

### Чем семантическая каннибализация отличается от обычной?

Лексические инструменты сравнивают слова. Но две страницы могут конкурировать по смыслу даже без общих слов — это видно только в пространстве эмбеддингов, а не по пересечению ключей.

### Как вы её находите?

Тремя аудитами на эмбеддингах: dup-scan (близкие дубли), entity-shadow (страница затеняет целевую сущность другой) и siteRadius (разброс тем сайта вокруг центра).

### Что делать с найденными парами?

В зависимости от типа — объединить, чётко дифференцировать или перелинковать. Отчёт сразу группирует находки по действию.

