Контент-фабрика на n8n: SEO-брифы, фактчекинг и очередь публикаций ¶
Обновлено: 2026-05-30
Импортируйте workflow, замените credentials и прогоните тестовый payload до включения production.
- Проблема: почему контент-фабрика без контроля плодит слабые статьи
- Архитектура workflow для SEO-брифов
- Контракт входных данных
- Скрипт n8n для проверки интента и фактов
- Готовый workflow JSON
- Пошаговая настройка контент-фабрики
- Тесты перед production
- Production-риски SEO-контента
- Полезные ссылки и смежные сценарии
- Критерии готовности
Проблема: без строгого брифа автоматизированный контент превращается в одинаковые статьи, слабые заголовки и непроверенные факты, которые не помогают пользователю и мешают SEO.
Решение: надежный сценарий — принимать тему через n8n, проверять интент, собирать источники, формировать редакционный SEO-бриф, добавлять LLM-разметку и ставить задачу в очередь публикации.
Проблема: почему контент-фабрика без контроля плодит слабые статьи ¶
Автоматизация контента часто начинается с простой идеи: отправить тему в LLM и получить черновик. На практике такой процесс быстро создаёт одинаковые статьи, выдуманные факты, слабые заголовки и страницы, которые конкурируют между собой. Для SEO это опаснее, чем медленная ручная подготовка: сайт получает много URL, но мало полезности.
Контент-фабрика на n8n должна работать как редакционный конвейер, а не как генератор текста. На входе нужна тема, интент, целевая страница, список обязательных блоков, источники и критерии готовности. На выходе — не абстрактный текст, а SEO-бриф, который редактор может проверить и превратить в полезную статью.
Архитектура workflow для SEO-брифов ¶
| Нода | Роль | Что проверить |
|---|---|---|
| Webhook brief request | Принимает тему и данные кластера | topic, target_url, intent, primary_keyword |
| Validate brief inputs | Проверяет полноту ТЗ | нет пустого интента, есть источники и CTA |
| Collect official sources | Собирает первоисточники | не подменять docs блогами и форумами |
| Build editor task | Готовит структуру статьи | H1/H2, LSI, payload, workflow JSON |
| Queue for publication | Отправляет задачу в Notion/CMS | статус, владелец, дедлайн |
Контракт входных данных ¶
{
"topic": "n8n Google Sheets upsert по телефону",
"cluster": "workflows/crm",
"target_url": "/workflows/google-sheets-upsert-by-phone/",
"audience": "интеграторы n8n и владельцы CRM",
"intent": "решить проблему дублей лидов",
"primary_keyword": "n8n google sheets upsert",
"must_include": [
"payload",
"Code node",
"production-риски",
"workflow JSON"
],
"sources": [
"https://docs.n8n.io/",
"https://developers.google.com/sheets/api"
],
"deadline": "2026-06-03"
}
Не передавайте в workflow только ключевое слово. Для качественного SEO-брифа нужен контекст: кто читатель, какую боль решает материал, чем страница отличается от соседних и какие блоки нельзя пропустить.
Скрипт n8n для проверки интента и фактов ¶
const src = $json.body ?? $json;
const topic = String(src.topic ?? '').trim();
const keyword = String(src.primary_keyword ?? '').trim().toLowerCase();
const intent = String(src.intent ?? '').trim();
if (!topic || topic.length < 12) {
throw new Error('Topic is too short for SEO brief');
}
const required = ['payload', 'workflow json', 'production', 'code node'];
const mustInclude = (src.must_include ?? []).map(v => String(v).toLowerCase());
const missing = required.filter(item => !mustInclude.join(' ').includes(item));
const slug = topic
.toLowerCase()
.replace(/[^a-zа-яё0-9]+/gi, '-')
.replace(/^-|-$/g, '')
.slice(0, 80);
return [{
json: {
content_status: missing.length ? 'needs_editor_review' : 'ready_for_brief',
slug,
title_angle: `${topic}: конкретная проблема и production-решение`,
search_intent: intent || 'problem-solution tutorial',
primary_keyword: keyword,
required_blocks: ['Problem/Solution', 'TOC', 'workflow JSON', 'test payload', 'risks', 'CTA'],
missing_requirements: missing,
llm_summary: `SEO-бриф для статьи: ${topic}. Интент: ${intent || keyword}`,
created_at: new Date().toISOString()
}
}];
Что делает этот Code Node
Он не пишет статью автоматически. Он проверяет, достаточно ли данных для редакционного брифа, формирует slug, обязательные блоки и статус. Если нет workflow JSON, payload или production-рисков, задача уходит на доработку до генерации текста.
Готовый workflow JSON ¶
Скачать готовый workflow JSON Скачать тестовый payload
{
"name": "Nodbot - SEO brief factory with fact-check queue",
"nodes": [
{
"name": "Webhook brief request",
"type": "n8n-nodes-base.webhook",
"purpose": "Принять тему, интент и исходные источники"
},
{
"name": "Validate brief inputs",
"type": "n8n-nodes-base.code",
"purpose": "Проверить тему, keyword, обязательные блоки и LLM-summary"
},
{
"name": "Collect official sources",
"type": "n8n-nodes-base.httpRequest",
"purpose": "Собрать ссылки на официальные документы и первоисточники"
},
{
"name": "Build editor task",
"type": "n8n-nodes-base.code",
"purpose": "Сформировать ТЗ с H1/H2, payload, рисками и CTA"
},
{
"name": "Queue for publication",
"type": "n8n-nodes-base.httpRequest",
"purpose": "Отправить бриф в Notion, CMS или трекер задач"
}
],
"connections": "Webhook → Validate → Sources → Build task → Queue"
}
Пошаговая настройка контент-фабрики ¶
- Создайте форму или внутренний webhook для подачи темы.
- Опишите обязательные поля: интент, аудитория, target URL, первичные источники.
- Подключите хранилище задач: Notion, Google Sheets, Linear, YouTrack или CMS.
- Добавьте правило, которое блокирует задачу без источников, кода, тестов и CTA.
- Сделайте отдельный статус для фактчекинга, чтобы непроверенный текст не попадал в публикацию.
Тесты перед production ¶
curl -X POST "https://YOUR-N8N-DOMAIN/webhook/content-factory-seo-briefs" \
-H "Content-Type: application/json" \
--data @content-factory-seo-briefs-payload.json
Прогоните три сценария: полный SEO-бриф, тема без источников и тема, которая пересекается с существующей страницей. В последнем случае workflow должен предложить обновление текущего URL, а не создание нового дубля.
Production-риски SEO-контента ¶
- Редакторский комментарий попал в статью. Уберите любые блоки вида “SEO-интент страницы” из публичного текста.
- LLM придумала факты. Разделяйте генерацию структуры и проверку по источникам.
- Каннибализация. Перед созданием новой темы проверяйте существующие URL кластера.
- Нет LLM-разметки. Без AI summary и LLM markdown страница хуже переиспользуется поиском и ассистентами.
- Нет владельца задачи. Контент-фабрика без ответственного быстро превращается в очередь черновиков.
Полезные ссылки и смежные сценарии ¶
Для внедрения пригодятся внутренние материалы: регрессионные тесты промптов, тестирование workflow, Notion → WordPress черновик и RSS-дайджест в Telegram. Из внешних источников используйте официальную документацию n8n и API-документы сервисов, которые подключаете к контент-процессу.
Критерии готовности ¶
- Каждая тема привязана к интенту и target URL.
- В брифе есть H1/H2, LSI, источники, code/payload и CTA.
- Новая статья не дублирует существующую страницу кластера.
- Фактчекинг отделён от генерации текста.
- LLM summary и markdown обновляются вместе с HTML.
Nodbot настроит процесс: брифы, фактчекинг, LLM-разметку, очередь публикации и контроль дублей между страницами.
Обсудить контент-процесс