Перейти к содержимому

Быстрый старт ​

LV24 SEO Optimizer — SEO-контур управления с приоритетом бесплатных источников для людей и AI-агентов. Он собирает Google Search Console, Яндекс.Вебмастер, Яндекс.Метрику, Bing/IndexNow, Chrome UX Report и PageSpeed Insights в одну нормализованную историю, добавляет ограниченный технический обход вашего сайта и превращает результат в недельные отчёты, команды CLI, MCP-инструменты и навыки агентов.

Пакет Python lv24-seo — основной движок. Настольное приложение — оболочка Tauri вокруг того же движка; она не переписывает SEO-логику и клиенты провайдеров. В пути по умолчанию нет платной платформы, парсинга выдачи и аккаунта вендора.

Путь за пять минут ​

Установите движок:

bash
uv tool install lv24-seo

Создайте рабочую область, проверьте машину и прочитайте первый снимок:

bash
lv24-seo init --property https://example.com
lv24-seo doctor
lv24-seo stats --days 7 --json

init записывает seo.toml и создаёт <config dir>/data; относительный data_dir привязывается к файлу конфигурации. doctor работает офлайн: проверяет Python, файл конфигурации, эффективный каталог данных и его область, запись в текущий каталог и наличие токенов, но не делает сетевых вызовов. stats работает только на чтение и возвращает один ограниченный конверт для панели: текущее и предыдущее окна, статус каждого провайдера, покрытие, возраст данных, усечение и ограничения.

Конверт stats содержит period, previous_period, generated_at, массив services и сводку coverage. У каждой карточки сервиса есть provider, label, configured, ready, status, metrics, previous, rows, data_age_days, truncated, limitations, warnings и error. status принимает одно из значений ok, no_data, missing_token, not_configured или error.

coverage.complete истинно только тогда, когда каждый настроенный сервис имеет статус ok, вернул строки, не усечён и ни один сервис не пропущен и не завершился ошибкой. previous есть только для сопоставимых текущего и предыдущего окон (GSC, Яндекс.Вебмастер и Метрика); Bing, CrUX и PSI возвращают null. Метрики содержат только реально полученные значения: без заполнения нулями и без сводных итогов по разным источникам.

Когда будете готовы, добавьте токен провайдера:

bash
lv24-seo auth login --provider gsc
lv24-seo auth set --provider gsc --stdin

auth set читает секрет из stdin или скрытого приглашения, но никогда из argv. Для хранения в системном keychain нужен необязательный extra secrets; установите uv tool install "lv24-seo[secrets]" или используйте переменные окружения. Наличие токена не доказывает, что он действителен и имеет нужные права.

Требования ​

  • Python 3.11 или новее. uv может сам предоставить интерпретатор, поэтому системный Python не обязателен.
  • Учётные данные провайдеров, которые вам нужны: OAuth-токен доступа GSC, OAuth-токен Яндекс.Вебмастера, Яндекс.Метрика, API-ключ Bing Webmaster и API-ключ CrUX. PageSpeed Insights работает без ключа с меньшей квотой. У всех источников по умолчанию есть бесплатный тариф.
  • Node.js 18 или новее — только для лаунчера npx @lv24/seo. Python CLI не требует Node.
  • Сетевой доступ к API провайдеров. У инструмента нет телеметрии, сам по себе он ничего не отправляет.
  • Для настольного приложения: Windows 10/11 x64 с WebView2, Linux x64 с glibc 2.35 или новее либо macOS 13 или новее.

Сейчас GSC использует вручную заданный OAuth-токен доступа; поток с сервисным аккаунтом запланирован, но не поставлен. Яндекс, Bing и другие адаптеры также используют вручную заданные токены или ключи.

По умолчанию только чтение ​

По умолчанию инструмент не меняет состояние провайдеров. stats, doctor, config show, properties, gsc query, yandex queries, yandex indexing и report diff вообще ничего не записывают. report weekly без --send только строит и сохраняет локальный снимок; crawl пишет только в локальное хранилище SQLite; init записывает seo.toml и создаёт <config dir>/data.

Операции записи к провайдерам защищены. Пробный запуск возвращает план и confirm_token; для применения нужны --allow-write и свежий --confirm <token> в течение пяти минут, а также LV24_SEO_WRITE_SECRET в окружении. При инициализированной рабочей области применяется SQLite-журнал идемпотентности: повторный токен возвращает skipped / duplicate, и провайдер вызывается один раз. Без каталога данных применение всё равно выполняется, но конверт предупреждает, что защита от повтора отключена на пять минут жизни токена. IndexNow действительно отправляет URL. Отправка sitemap в GSC и переобход в Яндексе сейчас возвращают WRITE_DISABLED, а не делают вид, что путь провайдера подключён.

MCP-сервер по умолчанию работает только на чтение; его инструменты записи помечены и защищены, а некоторые пути провайдеров всё ещё возвращают WRITE_DISABLED. Настольное приложение требует диалога подтверждения с точным именем цели, прежде чем отправить отчёт, установить задание планировщика, добавить запись MCP-клиента или выполнить запись к провайдеру.

Интерфейсы ​

ИнтерфейсЧто он даёт
CLIКаждая команда поддерживает --json, стабильный конверт и документированные коды выхода.
MCPstdio-сервер с 11 инструментами, 3 ресурсами и 3 промптами для Claude, OpenCode, Cursor и других клиентов.
Настольное приложениеОболочка Tauri 2 + React с выбором рабочей области, панелью статистики, формой настроек, выводами конфигурации, отчётами, рекомендациями и подписанными обновлениями.
АвтоматизацияГенераторы cron, systemd timer и Windows Task Scheduler, а также доставка через SMTP и Telegram.

Конверт CLI — {ok, data, meta, warnings}. meta.complete равен false, когда входные данные отсутствуют, усечены или сэмплированы, а meta.limitations объясняет, что нужно учесть перед тем, как доверять числу. Те же правила честности действуют для MCP-ответов и отчётов.

Необязательное приложение ​

Настольное приложение — превью 0.2.2 с движком lv24-seo 0.5.2. Оно полезно, когда не хочется помнить флаги: выберите seo.toml в настройках, посмотрите панель, отредактируйте конфигурацию через проверяемую форму, откройте недельный HTML-отчёт и скопируйте ограниченную рекомендацию как Markdown-промпт для агента. Windows NSIS, macOS .app и Linux AppImage умеют обновляться автоматически; portable ZIP, deb и rpm обновляются вручную. Обновлятор останавливает только запущенные им sidecar и блокируется с UPDATE_ENGINE_BUSY, если остановить не удалось.

Статус и ограничения ​

Движок — бета 0.5.2; приложение — превью 0.2.2. Известные пробелы до 1.0:

  • GSC сейчас поддерживает вручную заданный OAuth-токен доступа; поток с сервисным аккаунтом запланирован.
  • Отправка sitemap в GSC и переобход в Яндексе возвращают WRITE_DISABLED; IndexNow действительно отправляет.
  • storage.raw_retention_days зарезервирован; сырые архивы пока не пишутся.
  • В приложении 0.2.2 нет отдельного экрана Crawl, прогресса задания и отмены.
  • report indexing, report opportunities и report history запланированы, но не поставлены.
  • Логирование опционально: установите LV24_SEO_LOG_LEVEL, чтобы включить redacting-handler в CLI и mcp serve. Стабильным диагностическим интерфейсом остаётся конверт --json.

Неизвестные значения остаются неизвестными, а не заполняются. Это сделано намеренно: ограниченный ответ с явными ограничениями полезнее, чем аккуратно выглядящее число без покрытия.

Куда дальше ​

Source: _source/engine-README.md, _source/engine-cli.md, _source/desktop-README.md.