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

Источники данных и квоты ​

Каждое число, которое печатает инструмент, приходит из API провайдера или из собственного обхода. У каждого источника есть жёсткие лимиты, и инструмент сообщает о них, а не делает вид, что данные полные. Путь по умолчанию использует только бесплатные тарифы; платный провайдер не требуется.

См. также: Отчёты и диффы, Обход и аудит, Автоматизация и доставка, MCP и навыки агентов.

Матрица возможностей ​

ИсточникЧтениеЗапись (с подтверждением)АутентификацияБесплатная квотаЗадержка данных
Google Search ConsoleАналитика поиска, сайты, карты сайта, URL InspectionОтправка карты сайта; в 0.5.2 возвращает WRITE_DISABLEDBearer-токен доступа (webmasters.readonly для чтения, webmasters для карт сайта)1 200 запросов/мин на сайт и на пользователя; 50 000 строк/день/сайт/тип; URL Inspection 2 000/день, 600/мин2–3 дня
Yandex WebmasterСводка, история SQI, индексирование, URL в поиске и события, запросы, диагностика, битые ссылки, карты сайтаОчередь переобхода; в 0.5.2 возвращает WRITE_DISABLEDOAuth-токен, scope webmaster:hostinfoБесплатно; глобальные RPD/RPS не опубликованы; аналитика запросов нестабильна примерно выше 10 тыс. запросов/часОколо 4 дней
Yandex MetrikaВизиты, источники трафика, поисковые фразы, страницы входа, целиНетOAuth-токен, scope metrika:read5 000 запросов/день/пользователь; 30 rps/IP; 3 параллельно; /stat/v1/data 200 запросов за 5 минут; до 100 тыс. строк, 20 метрик и 10 измерений на запросReporting API; сэмплирование сообщается
Bing WebmasterСтатистика запросов, позиции и трафик, ошибки обходаОтправка IndexNow (работает); путь отправки карты сайта не подключёнОдин API-ключ на пользователяБесплатно; около 10 тыс. отправок URL/день/домен, 500 за пакетВ API нет статистики по окнам
Chrome UX Report (CrUX)Полевые p75 LCP, INP и CLSНетAPI-ключ150 запросов/мин на проект, увеличить нельзяСкользящее окно 28 дней
PageSpeed Insights (PSI)Лабораторная диагностика Lighthouse, устаревший блок полевых данныхНетAPI-ключ необязателен; без ключа работает с меньшей квотойОколо 25 тыс. запросов/деньЖивой лабораторный запуск
GA4 (опционально)Органические страницы входа, сессии, ключевые событияНетУчётные данные Google Analytics Data APIДействует квота провайдераОриентировочно; порогование может скрывать строки
Собственный обходСтраницы, проблемы, граф ссылок, покрытие карты сайтаНетНетЛокальноТекущий запуск
ЛогиТриаж ботов по User-Agent для JSON access-логов nginx; не доказательство проверенного краулераНетЛокальный файлЛокальноОкно лога

GA4 — необязательная точка интеграции, а не часть пути по умолчанию. Поставляемые провайдеры: GSC, Yandex Webmaster, Yandex Metrika, Bing, CrUX и PSI. Платные адаптеры для SERP и ссылок (DataForSEO, SerpApi и другие) запланированы или только описаны; в 0.5.2 ни один не поставляется.

Аутентификация ​

bash
lv24-seo auth status --json
lv24-seo auth set --provider gsc --stdin
lv24-seo auth login --provider gsc
lv24-seo auth logout --provider gsc

auth set принимает gsc, yandex, metrika, bing, crux, psi, smtp и telegram. Секрет читается из stdin или скрытого запроса, сохраняется в системный keychain, а команда печатает только {provider, stored, source}. Значение никогда не выводится, не попадает в логи и не записывается в seo.toml. Если недоступны ни keychain, ни файловый fallback, команда завершается ошибкой WRITE_DISABLED.

ПровайдерПеременная окружения
GSCLV24_SEO_GSC_TOKEN
Yandex WebmasterLV24_SEO_YANDEX_WEBMASTER_TOKEN
Yandex MetrikaLV24_SEO_YANDEX_METRIKA_TOKEN
BingLV24_SEO_BING_API_KEY
CrUXLV24_SEO_CRUX_API_KEY
PSILV24_SEO_PSI_API_KEY
SMTPLV24_SEO_SMTP_PASSWORD
TelegramLV24_SEO_TELEGRAM_BOT_TOKEN

Порядок разрешения: окружение, затем опциональный keychain, затем файловый fallback с явным включением. Значения из окружения всегда побеждают и доступны только для чтения: auth set и auth logout отказывают, пока соответствующая переменная установлена. Сначала снимите её в оболочке.

Поддержка keychain приходит из опционального extra:

bash
pip install "lv24-seo[secrets]"

Без keychain headless-fallback — это data/secrets.json с режимом 0600, включаемый только через LV24_SEO_ALLOW_FILE_SECRETS=1. Пока fallback активен, каждый запуск предупреждает; в Windows режим не обеспечивается файловой системой.

Учётные данные — это вручную поставляемые токены доступа и API-ключи. Инструмент не выполняет OAuth-handshake, не обновляет токены и не обменивает ключ сервисного аккаунта на токен доступа. auth status сообщает только наличие и источник хранения; API-вызов не выполняется, поэтому наличие не доказывает валидность или права.

Квоты, задержка и усечение ​

Квоты провайдеров ограничиваются консервативными клиентскими token bucket до отправки запроса. Ответ 429 или исчерпанная квота становятся типизированной ошибкой, а не частичным успехом. Основные лимиты, которые нужно учитывать:

  • Аналитика GSC ограничена 50 000 строк на день, сайт и тип поиска. Последняя страница, точно заполнившая лимит, помечается truncated: true с rows_cap_50000; меньший лимит вызывающего даёт предупреждение с его значением. Полная страница не доказывает, что за лимитом нет строк.
  • Группировка GSC теряет строки. Никогда не сравнивайте сумму ответа с группировкой по page с суммой ответа по query и не запрашивайте оба измерения, чтобы сравнить с негруппированным итогом.
  • Yandex Webmaster отдаёт топ-3 000 запросов за период, до 500 на страницу, и не поддерживает соединение запроса со страницей. Отсутствующие строки неизвестны, а не нулевые.
  • Yandex Metrika по умолчанию сэмплирует (accuracy=medium). Сэмплированный ответ несёт ограничение sampled и предупреждение; сохраняйте флаг точности вместе со значением.
  • CrUX возвращает 404, если у URL слишком мало трафика; это становится low_traffic, а не нулевой оценкой.
  • PSI — лабораторные данные. Не усредняйте лабораторные запуски и не смешивайте их с полевыми данными CrUX.
  • У статистики Bing нет окна дат в API, поэтому отчёт не показывает сравнение с предыдущим периодом для Bing.

Каждый ограниченный ответ несёт одни и те же поля честности: truncated, total, возраст данных в днях (data_age_days) и limitations[]. rows — число возвращённых строк, а не итог. total присутствует, только когда провайдер или хранилище могут его сообщить.

Стабильные коды ограничений:

КодЗначение
rows_cap_50000GSC достиг лимита 50 000 строк; полная последняя страница потенциально усечена
no_query_page_joinПровайдер не может соединить запросы со страницами в одном наборе
top_3000_queriesДанные запросов Yandex ограничены топ-3 000
sampledMetrika вернула сэмплированные данные
low_trafficУ CrUX слишком мало трафика для URL или origin
degraded_hostYandex сообщает, что хост загружен не полностью
one_url_per_callURL Inspection обрабатывает один URL за вызов, без пакета
no_per_url_sitemap_errorsYandex не раскрывает детали ошибок карты сайта по URL
token_expiringСрок действия учётных данных близок к концу
paid_providerСтрока пришла из платного адаптера
partial_responseПровайдер вернул неполный ответ

Никакого скрейпинга SERP ​

Инструмент никогда не скрейпит страницы результатов Google или Yandex, не обходит CAPTCHA и не автоматизирует карточку Yandex Business или ответы на отзывы через браузерную сессию. Данные позиций и запросов приходят из API GSC и Yandex Webmaster. Если провайдер не раскрывает метрику, она остаётся неизвестной.

Опциональные платные адаптеры работают со своим ключом и выключены по умолчанию. Они обязаны использовать тот же конверт результата и помечать строки paid_provider; путь по умолчанию от них не зависит. Данные провайдеров не перепродаются и не публикуются повторно: отчёты генерируются локально для владельца сайта.

Окна с учётом часового пояса ​

report.timezone — это IANA-зона (по умолчанию Europe/Minsk), используемая для окон отчёта и stats, окон MCP по умолчанию и локальных границ дня. Данные провайдеров остаются привязанными к датам и не конвертируются. Неверная зона отклоняется при валидации конфигурации с CONFIG_INVALID; неподдерживаемое значение никогда не подменяется молча.

Генераторы расписаний применяют ту же зону там, где бэкенд это поддерживает. Cron зависит от CRON_TZ, systemd записывает зону в OnCalendar, а XML Task Scheduler несёт фиксированное смещение с предупреждением о DST. См. Автоматизация и доставка.

Source: _source/engine-data-sources.md, _source/engine-cli.md, _source/engine-config.md, _source/engine-releases-0.5.2.md.