Internal toolAI Automation EngineerInternal Tools EngineerBackend Automation Engineer

SEO Strategy Bot — автоматический аудит и PDF-отчёты

Задача

Автоматизировать подготовку SEO-аудита и коммерческого предложения клиенту — от парсинга сайта до готовой PDF-презентации.

⚡

Проблема

SEO-специалист тратит 2–4 часа на подготовку аудита для одного клиента: проверяет технические параметры вручную, скриншотит страницы, копирует данные в презентацию. При 5–10 новых клиентах в месяц это съедает всё время.

💡

Инсайт

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

Моя роль

Лично отвечал за декомпозицию процесса, архитектуру краулера и очередей, AI-assisted реализацию, критерии качества PDF, проверку и поддержку

Результат

Для типового аудита до 50 страниц подготовка PDF из 20 слайдов сократилась примерно с 3 часов до 5 минут

Внутренний инструмент автоматизации подготовки аудитов и коммерческих материалов.

Проверено: 1 сентября 2026 г.
ReactNode.jsBullMQRedisPuppeteerSocket.IOPostgreSQLHelmet
Архитектура решения

Основной поток данных и обработки

Публично описанный контур системы
Архитектура SEO Strategy Bot: URL, краулер BFS или Sitemap, анализаторы, PostgreSQL, BullMQ и Redis, React-слайды, Puppeteer и PDF
Компоненты и связи показаны без закрытых данных и эксплуатационных реквизитов.

Личная зона ответственности

  • Декомпозиция процесса подготовки SEO-аудита
  • Архитектура краулера, очередей и генератора PDF
  • Критерии качества отчёта и проверка итогового документа
  • Деплой и поддержка внутренних сценариев

Как проверялось решение

  • Проверка аудита на сайтах разного типа и объёма
  • Контроль очередей и повторной обработки ошибок
  • Ручная сверка данных и итоговой PDF-презентации

Работая SEO-специалистом, я много раз проходил один и тот же путь: потенциальный клиент просит оценить его сайт. Открываешь PageSpeed Insights, Screaming Frog, смотришь Search Console, проверяешь Schema.org, анализируешь конкурентов. Два-три часа работы — и ещё час на то, чтобы упаковать это в презентацию.

Большую часть этого времени занимает не мышление, а механическая работа. Я решил её устранить.

Анализ: где реально теряется время

Я разбил процесс подготовки аудита на шаги и замерил:

Шаг Вручную С инструментом
Техническая проверка (robots, sitemap, битые ссылки) 30–40 мин 2–3 мин
PageSpeed Desktop + Mobile 20 мин авто
Анализ Schema.org 15–20 мин авто
Скриншоты страниц 20–30 мин авто
Сборка презентации 60–90 мин авто

Главная точка потери — не сбор данных, а финальная упаковка. Специалист сидит и вставляет цифры в слайды, форматирует, подбирает иллюстрации. Это и нужно убрать.

Инсайт: презентация — это и есть продукт

Клиент не видит терминал с результатами парсера. Клиент видит PDF-отчёт. Значит, качество PDF — это качество твоей работы в его глазах. Я понял: нужно не просто генерировать данные, а генерировать документ, который можно отправить клиенту без доработки.

Решение: конвейер от URL до PDF

Введён URL
  → Crawler (BFS или Sitemap, до 50 страниц)
    → Параллельный анализ (PageSpeed, безопасность, Schema.org, SEO)
      → Очередь BullMQ (Puppeteer в фоне)
        → React-рендеринг слайдов
          → PDF 1080×1920 px, 20 слайдов

Ключевые технические решения

Краулер с двумя режимами. BFS-обход (breadth-first) для сайтов без sitemap — идёт по ссылкам, собирает страницы до глубины 2. Sitemap-режим для корректных сайтов — парсит XML и берёт URL напрямую. Ограничение 50 страниц — осознанный баланс между полнотой и скоростью.

BullMQ + Redis для тяжёлых задач. Скриншоты через Puppeteer и анализ Core Web Vitals — ресурсоёмкие операции. Очередь позволяет принять запрос мгновенно, а обработку вести в фоне без блокировки сервера. Пользователь видит прогресс в реальном времени через Socket.IO.

PDF как React-компонент. Каждый слайд — это React-компонент с Tailwind-стилями. Puppeteer рендерит их в браузере и снимает скриншот нужного разрешения. Это позволяет контролировать визуал на уровне кода, а не через WYSIWYG-редактор.

Кэширование с TTL 24ч. Если для одного домена аудит уже запускался — результаты сохранены. Повторный запрос отдаёт готовый PDF мгновенно. Это важно при работе с агентством, где несколько менеджеров могут проверять один и тот же сайт.

Защита от SSRF. Краулер принимает произвольные URL — это потенциальная точка атаки. Реализована проверка на приватные IP-диапазоны и localhost перед каждым запросом. Helmet обеспечивает HTTP-заголовки безопасности.

Что анализируется

  • PageSpeed (Desktop + Mobile): LCP, CLS, TBT
  • robots.txt и sitemap.xml: наличие, корректность, доступность
  • Битые ссылки и медиа-файлы
  • Заголовки безопасности: CSP, X-Frame-Options, Mixed Content
  • Schema.org (JSON-LD): наличие и валидность разметки
  • SEO-параметры: H1–H6, ALT у изображений, CTA-элементы, mobile-friendly

Результат

Подготовка аудита для клиента: с 3 часов до 5 минут. Выходной документ — PDF-презентация из 20 слайдов, которую можно сразу отправить.

Для агентства с потоком входящих заявок это принципиальная разница: специалист занимается стратегией, а не форматированием.

Как считается результат

Сравнивается время ручной подготовки типового аудита и время автоматизированного прохода для одинакового объёма входных данных.

Ограничения

Заявленное время зависит от размера сайта, доступности страниц и набора включённых проверок.

Связанный материал
Прочитать технический разбор
Похожая задача

Нужно автоматизировать похожий процесс?

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