Перейти к содержимому
Content 365
Назад

SEO-агент на n8n для трёх сайтов: архитектура, расходы и ошибки на повторных запусках

Обложка статьи «SEO-агент на n8n для трёх сайтов: архитектура, расходы и ошибки на повторных запусках»

Когда SEO оптимизация продвижения сайта перестаёт давать привычный результат, обычно приходит желание сразу отдать всё нейросети: пусть посмотрит страницы и скажет, что чинить. Анастасия Никулина, руководитель отдела контента в IT-компании, пошла другим путём и описала его в статье на Хабре. Она собрала на n8n SEO-агента для трёх сайтов. Языковая модель в нём работает лишь на двух узких участках, всё остальное делают выгрузки, правила и таблица с историей.

Поводом стало падение поискового трафика летом 2025 года. По словам автора, за несколько месяцев блоги почти откатились к показателям 2024 года, а просадку почти на 40% не объясняли ни кризис в отрасли клиентов, ни сезонность. Подрядчики предлагали расширять семантику, переписывать метатеги и докупать ссылки. Бизнес-задачу это, по её оценке, не решало.

Ниже — конспект статьи с упором на три вещи: как устроен агент, во что он обходится и какие ошибки вылезли на повторных запусках. Код и промпт в оригинале приведены целиком, здесь только их смысл.

Архитектура: от выгрузок до трёх сообщений в Telegram

Начала автор с итога, а не с инструментов: что она хочет получать раз в неделю. Получилось три отчёта. Технический — ошибки сканирования, индексация, редиректы, пропавшие метатеги. Обзорный — самые посещаемые страницы, поисковый трафик, поведение, позиции и динамика. Контентный — какие SEO-материалы растут или проседают, почему страница попала в поле зрения и какие гипотезы проверить. Для подробностей нужна отдельная база с историей каждой страницы.

Из этих требований сложилась цепочка из шести слоёв:

n8n автор выбрала, потому что не разработчик и не хотела поднимать и обслуживать свой сервис. Платформа показывает весь сценарий визуально, подключает API, Google Таблицы и Telegram, а там, где нужна логика, позволяет вставить ноду с JavaScript. Код для таких нод она писала вместе с ChatGPT и прямо об этом говорит: архитектура и правила её, реализация многих частей — модели.

У каждого источника нашлась своя ловушка. Screaming Frog выгружает CSV с внутренними HTML-страницами в папку на Google Диске, дата в имени файла помогает n8n найти свежий отчёт. Первый парсер, предложенный ChatGPT, работал на чистых данных и ломался на реальных: запятые, кавычки и переносы строк внутри значений разносили поля по чужим столбцам. Парсер переписали по примерам битых строк.

Вебмастер отдаёт показы, клики, CTR, среднюю позицию и связанные запросы, но с задержкой. Если агент запускается 15 сентября, а последние данные в API за 13-е, то «последние семь календарных дней» дают два дня с нулями. Логику поменяли: агент сначала находит последнюю дату с данными, от неё отсчитывает неделю и берёт предыдущую неделю для сравнения.

Как SEO оптимизация продвижения сайта обходится правилами и арифметикой

Главная мысль статьи: модель старательна и по умолчанию обработает всё, что ей дали, включая новости, HR-материалы и страницы, закрытые от индексации. Контекста бизнеса она не знает, поэтому решения, которые можно описать правилом, автор описывает правилом.

Первый пример — индексация. На одном из ранних запусков Screaming Frog нашёл 197 HTML-страниц, из них 11 закрыты от индексации. Десять оказались нормальными служебными страницами, проверять нужно было одну. В отчёте проблемы сгруппированы по исполнителю: редакции — добавить Description на 7 URL, SEO — проверить индексацию 1 URL, служебные страницы с ожидаемым noindex остаются в таблице без срочной задачи.

Второй пример — поведенческие показатели из Метрики по страницам входа из органики за 30 дней. Один визит со 100% отказов — не статистика. Поэтому введены пороги:

Визиты из поискаКак используются отказы, глубина, время
1–4не интерпретируются
5–9только как слабый дополнительный сигнал
10 и большеучитываются, но осторожно

Третий — система баллов. После фильтрации остаётся около 50 SEO- и продуктовых страниц, и агент считает каждой приоритет:

СигналБаллы
нет Title+40
нет Description+30
нет H1+30
20+ показов, но нет кликов+35
позиция в топ-10, CTR ниже 3%+30
позиция 11–20+20
показы снизились на 30% и больше+15
средняя позиция ухудшилась минимум на 2+15
клики были и исчезли+20
5–9 визитов и плохое поведение+5
10+ визитов и высокий процент отказов+15
10+ визитов и низкая глубина+10

Страница с итогом меньше 20 баллов в глубокий анализ не идёт. Нулевой трафик сам по себе баллов не даёт, иначе молодые и низкочастотные статьи вечно стояли бы в очереди. Нужен ещё один сигнал: исчезнувшие показы, позиция у первой страницы выдачи, показы без кликов. Автор подчёркивает, что цифры подобраны под её сайт и объём данных и готовой формулой не являются. Переносится принцип: дешёвая детерминированная логика сужает выборку до 5–7 кандидатов, и только они идут к сильной модели.

Ошибки на повторах: память вместо повторной классификации

Модель понадобилась там, где правила не справились. В разделе публикаций лежит 113 URL, и по адресу SEO-статью не отличить от новости, PR, видео или HR-материала. Правил по URL и словам в заголовках стало слишком много, а все случаи они всё равно не покрывали. Модель по заголовку, описанию и тексту относит страницу к одной из групп: SEO или продукт, медиа, новость / PR / бренд, не удалось определить. Первый проход сделала дешёвая модель, пачками по десять, примерно за пять-шесть минут.

Ошибка всплыла на повторах. Спрашивать модель каждую неделю заново — значит каждый раз платить за тот же ответ, и ответ при этом плавает. На одних и тех же страницах один запуск дал 57 SEO / продукт, 17 медиа и 39 новостей / PR, другой — 52, 20 и 41.

Решение — таблица в Google Таблицах как внешняя память агента. В ней вкладка со всеми публикациями (URL, Title, H1, Description, тип, участие в SEO-анализе, источник классификации, метрики, сигналы, дата обновления), еженедельные показатели, кандидаты на глубокий анализ, ответы модели, настройки и ручные поля. Ручные поля автор называет принципиальными: если она сама отнесла страницу к SEO-контенту, агент не может через неделю это переписать.

Перед запуском агент проверяет, знает ли он страницу. Если она в таблице и основные признаки не изменились, берётся сохранённая классификация, и ветка с моделью не запускается вовсе. На контрольном прогоне все 113 публикаций оказались известны системе, новых и изменённых страниц ноль, новых обращений к модели ноль.

Ещё одна защита от повторов — уникальная метка для еженедельной сверки. Строка с показами, кликами, CTR и позицией получает ключ из даты конца недели и URL. Повторный запуск в ту же неделю находит ключ и обновляет строку вместо создания дубля. На одном тесте история сохранилась по 52 страницам.

Две слабости автор признаёт сама. Изменение страницы определяется по Title и H1, поэтому переписанное тело статьи при прежних заголовках агент не заметит. В планах — хеш содержимого, короткий отпечаток текста, который меняется при любой правке. Вторая слабость: сценарий скачивает HTML всех 113 страниц до проверки по таблице и только потом выясняет, что классифицировать ничего не нужно. Правильный порядок — сначала сверить URL, Title и H1, затем скачивать только новые и изменённые страницы. Для первой версии это не было критичным.

Сильная модель на пять–семь страниц и промпт без запретов

К этапу глубокого анализа агент уже знает о странице почти всё: тип, технические проблемы, трафик за 30 дней, показы, клики, CTR, позицию, динамику, связанный запрос, баллы и причину попадания в очередь. Не хватает самого текста. Первая версия очистки брала первые 2500 символов HTML, и модель иногда получала только меню и телефон из шапки. Новая версия ищет <article>, затем <main>, в крайнем случае <body>, вырезает шапку, навигацию, подвал, боковые блоки, формы, скрипты и стили и передаёт до 6500 символов содержательной части.

Задача в промпте узкая. «Сделай SEO-аудит» даёт стандартный список, применимый к любой странице. Вместо этого модель получает роль аналитика B2B SaaS в строительной отрасли и инструкции: опираться только на переданные данные, к каждому выводу называть сигнал, отмечать недостаток выборки, выбрать одну наиболее вероятную гипотезу и предложить не больше трёх действий для её проверки с ожидаемым результатом. Ответ приходит в JSON с полями под гипотезу, рекомендации, причины, эффект, приоритет и уверенность, его разбирает следующий узел и пишет в таблицу.

Первый прогон на дешёвой модели был технически чистым — семь страниц на входе, семь корректных JSON на выходе. По содержанию — нет. Модель рассуждала о Description, которого не было во входных данных, делала уверенные выводы по восьми визитам, говорила о конверсии без данных о конверсии. Один запрос со словом «отзывы» из Вебмастера превратился у неё в план: добавить отзывы, вынести слово в Title, поставить разметку.

ChatGPT предложил лечить это списком запретов. Автор отказалась: чем длиннее список «не делай», тем больше внимания модель уделяет перечисленному. Правила она сформулировала утвердительно и сменила модель на более сильную. На тех же семи страницах та сама отмечала, что 29 или 34 показов мало для выводов по CTR, различала «управление затратами» и «затраты на управление», а по «отзывам» предложила сначала проверить долю этого запроса в реальной семантике.

Итог работы — ТЗ для копирайтера. В примере из статьи оно расписывает цель переработки, аудиторию, что сохранить и что переделать, фрагмент структуры, требования к тому, как текст будет читаться в нейроответах, вопросы к эксперту и отдельный список того, что нельзя придумывать: динамику цен, экономию, сроки, функции продукта без подтверждения.

Сколько стоит агент и что он даёт

Расходы на инфраструктуру автор приводит на момент публикации:

ИнструментРасход
n8n Cloudоколо €75 в месяц
API моделейобычно около $10 в месяц
Screaming Frog SEO Spider€245 в год
Keys.soоколо 5300 ₽ в месяцы, когда нужен

Keys.so в базовой схеме необязателен, его подключают под отдельные гипотезы. Для Screaming Frog автор упоминает сложности с оплатой из России и называет альтернативы — SiteAnalyzer и Netpeak Spider, — но оговаривает, что с ними проект не собирала.

Сравнивать эту сумму с предложениями подрядчиков от 180 тысяч рублей в месяц за проект она считает неправильным: у SEO-специалиста есть опыт, стратегия и ответственность за результат, агент их не заменяет. Эффект она считает во времени. Раньше на SEO у отдела хватало ресурса на два-четыре материала в месяц. По расчёту трудозатрат автоматизация предварительной аналитики потенциально позволяет выйти на восемь-десять. На тестах такой темп получался, но на длинной дистанции автор его не гарантирует. Роста трафика, CTR или лидов она не заявляет: для этого нужно накопить историю и внедрить рекомендации.

Коротко

Что из этого следует

Схема переносится на любой регулярный анализ, где данных много, а решений мало: контент-аудит, мониторинг упоминаний, разбор комментариев. Порядок тот же. Сначала описать свой ручной процесс, потом отдать арифметику коду, завести хранилище для того, что уже решено, и подключать модель только там, где нужен смысл текста.

Для тех, кто уже запускает похожие сценарии, полезнее всего проверить поведение на повторах. Платит ли сценарий модели за ответ, который она давала неделю назад? Не меняется ли этот ответ от запуска к запуску? Может ли автоматика переписать решение, принятое человеком вручную? У автора все три проблемы проявились не на первом запуске, а на втором и следующих.

Конкретные пороги и баллы из статьи переносить не стоит: автор подбирала их под свой B2B-сайт и объём трафика. На небольшом блоге 20 показов могут быть заметной величиной, на крупном — шумом. Переносится сама идея — проверять, хватает ли выборки, прежде чем делать выводы, и не давать нулевому трафику самому по себе поднимать страницу в очередь.


Источник: Как я собрала на n8n SEO‑агента для трех сайтов: данные, правила и немного нейросети


Поделиться статьёй:

Предыдущая статья
Пластилиновая анимация нейросетью: как собрать рекламный ролик от сценария до монтажа
Следующая статья
Автоматизация бизнеса с помощью ИИ: конспект кейса о помощнике магазина на локальной 9B-модели