SEO-аудит с помощью LLM: автоматизация анализа кода и данных Search Console
Я — Денис Шохирев, Enterprise AI architect из Эрлангена. В DennisCraft AI Studio за последние полгода я внедрил 14 production AI-агентов для B2B-клиентов DACH, включая автоматизированные SEO-аудиты на стеке Claude, Supabase, n8n и self-hosted Postgres. На одном из проектов для финтех-компании я столкнулся с реальной проблемой: ручная проверка SEO-кода и данных Search Console занимала десятки часов и не выявляла часть критических ошибок в шаблонах и API-интеграциях. Автоматизация на базе LLM и ле
Я — Денис Шохирев, Enterprise AI architect из Эрлангена. В DennisCraft AI Studio за последние полгода я внедрил 14 production AI-агентов для B2B-клиентов DACH, включая автоматизированные SEO-аудиты на стеке Claude, Supabase, n8n и self-hosted Postgres. На одном из проектов для финтех-компании я столкнулся с реальной проблемой: ручная проверка SEO-кода и данных Search Console занимала десятки часов и не выявляла часть критических ошибок в шаблонах и API-интеграциях. Автоматизация на базе LLM и легковесных инструментов анализа позволила сократить время аудита и повысить качество отчётов.
Требования к production SEO-аудиту в B2B
В B2B-сегменте, особенно в регламентированных рынках DACH, SEO-аудит — это не просто чек-лист на title и robots.txt. Ошибки в структуре шаблонов, дублях, hreflang, API-интеграциях или неправильной обработке ошибок могут привести к потере трафика и штрафам. Решение должно быть воспроизводимым, масштабируемым и интегрируемым в CI/CD пайплайн.
Архитектура автоматизированного аудита: инструменты и паттерны
Компоненты стека
| Компонент | Цель | Реальный инструмент |
|---|---|---|
| LLM-интерпретация | Анализ кода шаблонов, генерация гипотез | Claude Code |
| Статический анализ | Поиск паттернов ошибок | semgrep, bandit |
| Доступ к данным Search Console | Извлечение позиций, CTR, ошибок | Google Search Console API |
| Оркестрация | Автоматизация пайплайна | n8n |
| Хранилище результатов | История аудитов, отчёты | Supabase/Postgres |
Паттерн оркестрации через n8n
n8n управляет запуском аудита: триггер — push в main ветку или расписание, затем последовательно вызываются этапы анализа кода, извлечения данных Search Console, генерации отчёта через LLM. Такой подход позволяет повторно использовать пайплайн для разных проектов и заказчиков.
Статический анализ кода: шаблоны, middleware, API
Анализ HTML-шаблонов и middleware
semgrep позволяет быстро выявлять типовые ошибки: дублирующиеся title/description, отсутствие canonical, некорректные hreflang. Я использую кастомные правила для поиска ошибочных блоков.
rules:
- id: missing-canonical
pattern: |
<head> ...
not: <link rel="canonical" ...>
message: "Отсутствует canonical"
languages: [html]
severity: WARNING
Проверка API-интеграций
bandit помогает выявлять незащищённые места в Python-бэкенде (например, некорректная обработка user input в форматировании URL для SEO-страниц). В одном случае bandit поймал отсутствие escape в динамических URL, что приводило к XSS.
bandit -r ./project/backend/seo
LLM для генерации гипотез и аннотирования багов
Claude Code используется не для генерации кода, а для интерпретации результатов анализа и поиска неочевидных паттернов. Например, LLM может сопоставить данные о падении CTR из Search Console с изменениями в шаблонах и предложить возможные причины: неверный robots meta, ошибки в Open Graph, сломанные breadcrumbs.
from anthropic import Anthropic
client = Anthropic()
prompt = f"""
Вот diff шаблона: {diff}
Вот падение CTR по Search Console: {ctr_drop}
Определи возможные причины и дай рекомендации.
"""
response = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=400,
messages=[{"role":"user","content":prompt}]
)
print(response.content)
Пример: связывание паттерна падения CTR с ошибкой в шаблоне
На одном из проектов LLM сопоставил уменьшение CTR по группе страниц с внедрением нового cookie banner, который перекрывал основной контент. Такой паттерн был неочевиден без анализа diff шаблонов и данных Search Console одновременно.
Интеграция с Google Search Console API
Через Google Search Console API можно автоматизировать сбор данных по позициям, CTR, ошибкам индексации по всем страницам сайта. Я использую n8n для извлечения сырых данных, после чего обрабатываю их через LLM для выявления аномалий.
import requests
from google.oauth2 import service_account
from googleapiclient.discovery import build
SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']
SERVICE_ACCOUNT_FILE = 'key.json'
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = build('searchconsole', 'v1', credentials=credentials)
response = service.searchanalytics().query(
siteUrl='https://client-site.de',
body={
'startDate': '2024-03-01',
'endDate': '2024-04-01',
'dimensions': ['page'],
'rowLimit': 1000
}).execute()
print(response['rows'])
Сохранение истории и отчётов: Supabase/Postgres
Результаты аудита, баги, рекомендации и ключевые метрики сохраняются в self-hosted Postgres через Supabase. Это позволяет строить дашборды, отслеживать динамику и автоматизировать рассылку отчётов.
FAQ
Какую LLM использовать для интерпретации багов?
В production у меня лучше всего показал себя Claude Code (Anthropic). GPT-4 тоже подходит, но требует более строгих промптов и дополнительных проверок.
Можно ли полностью исключить ручную проверку?
Нет. LLM и статический анализ сокращают рутину, но финальный отчёт я всегда смотрю сам, особенно в критичных интеграциях.
Сколько времени занимает полный цикл аудита?
В среднем — 20–40 минут на сайт (до 1000 страниц) при полной автоматизации. Ручной аудит такого же объема занимал 4–6 часов.
Какие паттерны ошибок чаще всего встречаются?
Дубли title, пропущенные canonical, неправильные robots meta, XSS в URL параметрах, ошибки в hreflang, некорректные Open Graph.
Как автоматизировать регулярные аудиты?
Оркестрация через n8n с запуском по расписанию или при пуше в main. Итоги — в Supabase/Postgres и дашборд для мониторинга.
На каком этапе у вас чаще всего всплывают критические SEO-ошибки — в шаблонах, API, или интеграции с Search Console? Мне реально интересно услышать опыт других. Я делаю бесплатный 30-минутный аудит стека для DACH-команд, строящих AI в регламентированных рынках. Пишите в LinkedIn или @ger_dennis_ai.
Turn your process into an AI system
Fixed price. Production quality. DACH B2B focus.