Страница спам-политик Google последний раз обновлена 28 августа 2026. Раздел, который важен всем, кто генерирует страницы, звучит так:
Scaled content abuse is when many pages are generated for the primary purpose of manipulating search rankings and not helping users.
Под ним список примеров. Один из них называет ровно то, что делает спиннер:
Scraping feeds, search results, or other content to generate many pages (including through automated transformations like synonymizing, translating, or other obfuscation techniques), where little value is provided to users
Синонимизация стоит рядом с переводом как техника обфускации. Если у вас работает движок spintax, эта фраза про ваш инструмент, и вопрос не в том, осуждает ли Google его в принципе. Вопрос в том, ваши ли страницы описаны в этой фразе. Это оказывается измеримым, и замер показывает неудобное: метрики, которыми люди доказывают «уникальность» своих страниц, поощряют именно тот паттерн, который называет Google.
Как это применяют, насколько Google говорит
В 2026 году вышло три спам-обновления, каждое со своей длительностью на Search Status Dashboard: с 24 по 25 марта, с 24 по 26 июня и с 18 по 21 августа. Страница августовского инцидента говорит только, что обновление действует глобально и на все языки. Google не публикует, на какую политику опирается обновление, а ручные санкции в отчёте Search Console не знают пункта с названием scaled content abuse. Он встречается один раз, внутри пункта о серьёзных проблемах со спамом, рядом с более старым пунктом о тонком контенте без добавленной ценности.
Что Google говорит, так это как политику следует читать. Из поста марта 2024 года, который её ввёл:
This abusive practice is typically focused on creating large amounts of unoriginal content that provides little to no value to users, no matter how it’s created.
И про вопрос, который задают все:
Our new policy is meant to help people focus more clearly on the idea that producing content at scale is abusive if done for the purpose of manipulating search rankings and that this applies whether automation or humans are involved.
Нарушение не в методе. Нарушение в страницах. Значит, полезный вопрос такой: что синонимайзер на самом деле делает с набором страниц, в цифрах.
Пятьдесят страниц, один каркас
Пул — пятьдесят страниц городов для одной услуги, сантехника, примерно по 70 слов каждая, форма тысячи программатик-сайтов. В каркасе 32 места, где можно включить набор синонимов, по три варианта в каждом. Движок — открытый @spintax/core, метрика собрана из тех же двух ингредиентов, которыми его нода для n8n судит об уникальности пула: шинглы по пять слов над нормализованным текстом и сходство Jaccard между множествами шинглов. Здесь оно берётся между каждой парой страниц и усредняется. Пара одинаковых страниц даёт 1.000; страницы без общего отрезка из пяти слов дают 0.
| Включено синонимических слотов | Среднее попарное сходство | Что изменилось на странице |
|---|---|---|
| 0 | 0.599 | только название города, четыре раза |
| 4 | 0.511 | четыре фразы |
| 8 | 0.434 | |
| 16 | 0.300 | |
| 24 | 0.142 | |
| 32 | 0.037 | почти каждое второе слово |
При 32 слотах у пятидесяти страниц почти нет ничего общего, что видит шингл-метрика. На бумаге каркас может дать 3 в степени 32 различных рендеров, около 1.85e15. Каждый из них говорит одно и то же. Ни в одном нет факта, которого нет в остальных, и читатель, увидевший одну страницу, видел все. Это та самая строка, которую описывает пример из политики, и число, похожее на успех, 0.037, это число нарушения.
Теперь в другую сторону. Тот же каркас, вообще без синонимов, но пять фактов на город, привязанных к переменным: индекс, год открытия филиала, число выполненных заказов, обычное время прибытия, местный рейтинг.
| Пул | Среднее попарное сходство |
|---|---|
| Пять фактов на город, без синонимов | 0.405 |
| Факты, три формы предложения в каждом слоте, порядок предложений переставлен | 0.051 |
Страницы с фактами набирают по уникальности хуже синонимизированных: 0.405 против 0.037. По метрике подозрительны те страницы, которые говорят читателю из Бойсе что-то о Бойсе, а чисты те, которые говорят каждому городу одно и то же разными прилагательными. Оценка уникальности контента измеряет плотность вариативности. Она не измеряет, есть ли странице что сказать.
Тест удалением
Есть тест, который измеряет. Замените каждое значение, пришедшее из данных, на заглушку и померьте снова. То, что осталось, это шаблон, а шаблон и есть то, что читатель получает на каждой странице.
| Пул, значения удалены | Среднее попарное сходство |
|---|---|
| 32 синонимических слота | 0.071 |
| Пять фактов, без синонимов | 1.000 |
| Факты плюс формы предложений и порядок | 0.103 |
Пул с фактами схлопывается до 1.000: без фактов это одна страница под пятьюдесятью названиями, и это честно, потому что факты и были страницей. Синонимизированный пул остаётся на 0.071, не содержа ничего, и в этом вся суть. Он никогда не нёс информации, поэтому удаление информации его не меняет.
Правило, которое из этого следует, короткое. Удалите каждое значение, пришедшее из данных. Если осталось пятьдесят страниц, вы построили пятьдесят страниц синонимов, и пример Google называет их по имени. Если осталась одна страница, у вас один шаблон и набор данных, и страницы стоят ровно столько, сколько стоит этот набор данных. Весь эксперимент — один файл, measure.mjs, которому нужны Node и движок из npm; пул он рендерит примерно за секунду:
npm install @spintax/core@0.6.1
node measure.mjs
Где проходит граница
| Паттерн | Пример у Google | Что может сказать движок |
|---|---|---|
| Один каркас, синонимические слоты, название города | синонимизация как обфускация | ничего полезного: оценка падает по мере роста нарушения |
| Один каркас, факты на страницу из набора данных | шаблон вокруг данных; политика спрашивает, помогают ли данные | тест удалением показывает, какая часть страницы — данные |
| Несколько каркасов, факты, переставленная структура | тот же вопрос, с прозой получше | уникальность пула и линт, только форма |
| Тысячи страниц, любой из вариантов выше, никто их не читает | “many pages generated for the primary purpose of manipulating search rankings” | ничего: масштаб намерения в тексте не лежит |
Сторонние разборы августовского обновления, опубликованные GSQi 31 августа, описывают сайты последнего типа: программатик-страницы по разным странам с написанными AI разделами, один сайт с более чем 1.5 миллиона проиндексированных URL и примерно 85 процентами программатик-контента. Это цифры их трекинга, не Google, и ни один из разборов не говорит, какая политика была применена. Но форму они описывают, и эта форма — верхняя строка таблицы в масштабе.
Где это ломается
Всё выше измеряет форму. Шингл-метрику спиннер обыгрывает за вечер, это первый результат. Тест удалением спиннер обыграть не может, но его можно пройти мусорными данными: набор выдуманных рейтингов и придуманного времени прибытия его проходит и хуже синонимов. Линт находит слово, повторённое в двух слотах, и местоимение, потерявшее существительное; он не находит ложное утверждение.
И ни одна метрика не знает, зачем страницы существуют. Определение Google держится на цели, “the primary purpose of manipulating search rankings”, а цели в тексте нет. У каталога с тысячей товаров тысяча страниц, потому что у него тысяча товаров. У сайта с тысячей городов тысяча страниц, потому что кто-то вбил тысячу городов в таблицу. Движок рендерит и то, и другое.
Для чего тогда spintax
Прочтение, которое переживает цифры, такое: spintax это слой упаковки для данных, а не их замена. Переменные, условия и согласование числа существуют для того, чтобы один шаблон мог сказать правду о каждой из тысячи записей, и грамматика при этом не развалилась; гайды по авторингу на spintax.net учат именно в этом порядке: сначала данные, синонимы в последнюю очередь. Шаблон с тридцатью синонимическими слотами и одной переменной — это случай, который описывает политика. Шаблон с пятью переменными и тремя формами предложения — это товарный фид с прозой поверх. В холодных письмах та же арифметика работает в обратную сторону: вопрос там, сколь малым числом групп обходится объём рассылки; это измерено отдельно.
Инструменты держатся той же линии. Операция уникальности в ноде для n8n сообщает долю общих шинглов пула, и её документация прямо говорит, что это число может и чего не может: один шаблон даёт 0.962, шесть шаблонов при том же размере пула дают 0.017, и добавление вариантов того же шаблона это не чинит, потому что каркас задан шаблоном. Это снова строка про 32 слота, с другой стороны.
Где заканчивается ручной путь
Для одного шаблона и одной таблицы тест удалением и скрипт выше — вся работа: отрендерить, удалить, сравнить, прочитать несколько страниц глазами. Труднее становится, когда пул собирается в конвейере: модель пишет черновик шаблона, фид подаёт факты, и страницу 812 никто не читает. В этой точке проверка должна жить внутри конвейера, а не после него, и именно это делает нода Spintax для n8n: проверяет черновик, рендерит пул, прогоняет линт по каждому рендеру, меряет уникальность пула и возвращает то, что не прошло, модели с указанием проблемного токена. Движок под ней — тот же открытый пакет, которым мерила эта статья. Её проверка уникальности отдаёт footprint пула и пары почти-дубликатов, две другие агрегации, не попарное среднее, которое приводится здесь, так что её цифры читаются в своей шкале. Тест удалением в неё не встроен; он остаётся скриптом, который вы запускаете сами.