AI для SEO: LLM в анализе и оптимизации сайта

ИИ не заменит SEO-специалиста. Но избавит его от двух-трёх дней механической работы в неделю. Разберём конкретные задачи — что работает, что нет и как это запустить.

Кластеризация ключевых слов

Классический подход: выгружаете 500‑2000 ключей из Wordstat или Ahrefs, вручную (или через платный инструмент) группируете по интенту и теме. Дни работы.

С LLM:

import anthropic
import json

client = anthropic.Anthropic()

def cluster_keywords(keywords: list[str]) -> dict:
    prompt = f"""
Вот список ключевых слов для сайта веб-студии:
{chr(10).join(keywords)}

Сгруппируй их по смысловым кластерам.
Для каждого кластера:
- название кластера
- интент (информационный/транзакционный/навигационный)
- список ключей

Верни JSON без пояснений.
"""
    response = client.messages.create(
        model="claude-opus-4-5",
        max_tokens=4096,
        messages=[{"role": "user", "content": prompt}]
    )
    return json.loads(response.content[0].text)

Подаёте батчами по 100 – 150 ключей (иначе качество падает). На 1000 ключей уходит $0.10 – 0.30 и 5 минут.

Что проверять руками: граничные случаи. AI иногда объединяет «разработка сайта» и «разработка мобильного приложения» в один кластер — это разные страницы с разной конкуренцией.

Генерация мета-тегов в масштабе

Для 100+ страниц писать title и description вручную — неделя работы. С API — час.

import anthropic
import csv

client = anthropic.Anthropic()

def generate_meta(url: str, page_title: str, content_snippet: str) -> dict:
    response = client.messages.create(
        model="claude-opus-4-5",
        max_tokens=256,
        system="""Ты SEO-специалист. Пишешь мета-теги для русскоязычных сайтов.
Title: до 60 символов, ключевое слово ближе к началу.
Description: 140-160 символов, призыв к действию, уникальное преимущество.""",
        messages=[{
            "role": "user",
            "content": f"""URL: {url}
Заголовок страницы: {page_title}
Текст страницы (фрагмент): {content_snippet[:500]}

Верни JSON: {{"title": "...", "description": "..."}}"""
        }]
    )
    return json.loads(response.content[0].text)

# Читаем из CSV, пишем результат
with open("pages.csv") as f, open("meta_output.csv", "w") as out:
    reader = csv.DictReader(f)
    writer = csv.DictWriter(out, fieldnames=["url", "title", "description"])
    writer.writeheader()

    for row in reader:
        meta = generate_meta(row["url"], row["title"], row["content"])
        writer.writerow({"url": row["url"], **meta})
        print(f"Done: {row['url']}")

Стоимость: ~$0.002 на страницу с claude-opus‑4 – 5. 500 страниц — $1.

Обязательно: после генерации проходитесь по выборке из 10 – 15% страниц. AI иногда превышает лимит символов или вставляет нерелевантный ключ.

Анализ контента конкурентов

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

import httpx
from bs4 import BeautifulSoup
import anthropic

client = anthropic.Anthropic()

def analyze_competitor(url: str, target_query: str) -> dict:
    # Получаем текст страницы
    r = httpx.get(url, headers={"User-Agent": "Mozilla/5.0"}, timeout=15)
    soup = BeautifulSoup(r.text, "lxml")

    # Убираем навигацию, футер, скрипты
    for tag in soup(["script", "style", "nav", "footer", "header"]):
        tag.decompose()

    text = soup.get_text(separator="\n", strip=True)[:6000]

    response = client.messages.create(
        model="claude-opus-4-5",
        max_tokens=1024,
        messages=[{
            "role": "user",
            "content": f"""Запрос: "{target_query}"
URL: {url}

Текст страницы:
{text}

Проанализируй и верни JSON:
{{
  "h1": "заголовок страницы",
  "structure": ["список H2 заголовков"],
  "covered_topics": ["темы, которые раскрыты"],
  "missing_topics": ["важные темы, которые НЕ раскрыты"],
  "content_depth": "поверхностный/средний/глубокий",
  "word_count_estimate": 1500
}}"""
        }]
    )
    return json.loads(response.content[0].text)

На выходе: сводная таблица по конкурентам. Видно, что все пишут про одно и то же, а про X никто не написал — это ваша точка входа.

Предложения по внутренней перелинковке

Подаёте список URL сайта с title и мета-описаниями. Claude определяет тематические связи и предлагает, какие страницы стоит линковать между собой.

Работает лучше, чем ручной аудит на сайтах от 50 страниц. Ограничение: модель не видит реальный трафик и авторитетность страниц — это надо добавлять руками из GSC.

Генерация контентных брифов

Один из лучших сценариев применения LLM в SEO. Вы задаёте запрос + целевую аудиторию + конкурентный анализ (из предыдущего шага) → получаете структуру статьи с разделами, вопросами для раскрытия, рекомендуемым объёмом.

Бриф не заменяет журналиста или эксперта, но сокращает время на его подготовку с 2 часов до 15 минут.

Что AI делает хорошо, что плохо

Работает:

  • кластеризация при чётких критериях
  • генерация черновиков мета-тегов (финальная проверка за человеком)
  • выявление структурных паттернов у конкурентов
  • брифы для информационных статей

Не работает:

  • предсказание позиций и трафика
  • технический SEO-аудит (это инструменты: Screaming Frog, Ahrefs)
  • оценка реальной поисковой ценности кластера без данных
  • замена понимания алгоритмов поисковика

Инструменты

Задача Инструмент
Кластеризация ключей Claude API + Python или Surfer SEO
Мета-теги в масштабе Claude API + скрипт
Анализ контента Claude API + httpx + BeautifulSoup
Контентные брифы Claude API или Frase.io
Внутренняя перелинковка Claude API + данные из Screaming Frog

SaaS-решения (Surfer, Frase) удобнее для тех, кто не хочет писать код. API даёт больше гибкости и дешевле при больших объёмах.

Есть идея? Реализуем

Разрабатываем проекты, которые решают задачи бизнеса — от лендинга до сложного сервиса. Расскажите о своей задаче, подберём решение.

Написать в Telegram

20.03.2026

Нужна консультация?

Оставьте свои контактные данные, или свяжитесь с нами удобным для вас способом

Привет! Меня зовут Багира. Пишите, я все передам хозяевам!

Привет! Меня зовут Багира. Пишите, я все передам хозяевам!

Нажимая кнопку «Принять», вы соглашаетесь на сбор cookie. Мы используем их для обеспечения функционирования веб-сайта, аналитики действий и улучшения качества обслуживания. Если Вы не хотите, чтобы эти данные обрабатывались, отключите cookie в настройках браузера или прекратите использовать сайт.
Принять