сейка.ru
§ 10.03 · Инструменты

Самописные скрипты и API: когда стоит писать своё

Python + API Вебмастера/Метрики/YandexGPT для задач, которые не решают коробочные инструменты.

Если знаете Python — Сейка покажет, что можно сделать своими руками лучше любого коробочного инструмента.

Коробочные SEO-инструменты решают типовые задачи: собрать семантику, отследить позиции, сделать технический аудит. Но в каждом серьёзном проекте возникают нетиповые задачи, для которых готовых инструментов либо нет вообще, либо они работают плохо. Тут на помощь приходит Python плюс несколько API плюс немного времени на разработку. Сейка разберёт типичные сценарии и подходы.

Когда стоит писать своё

Несколько ситуаций, когда самописный скрипт оправдан.

Когда коробочное решение не справляется. Объём данных больше, чем поддерживает коробка. Нужна нестандартная логика, специфичная для вашего бизнеса. Нужна интеграция с CRM, BI-системой, другими внутренними инструментами. Цена коробочного решения для вашего масштаба выше, чем стоимость разработки собственного.

Когда автоматизация даёт большую отдачу. Регулярные ручные операции (раз в день, раз в неделю), которые можно автоматизировать. Алёрты на изменения, которые могут быть упущены при ручном мониторинге. Кастомные отчёты для руководства или клиентов, которые невозможно выгрузить из стандартных интерфейсов.

Когда экспериментируете. Тестируете GEO-стратегию, и нужен специфический мониторинг попадания в Нейро. Анализ ниши, для которого нет готовых инструментов. Исследовательские задачи на стыке SEO и других дисциплин.

Примеры скриптов

Несколько типичных скриптов, которые имеет смысл иметь в SEO-арсенале.

Алёрт на падение позиций

Раз в день скрипт через Yandex.Webmaster API получает позиции по ключевым запросам, сравнивает с предыдущим днём, отправляет уведомление в Telegram или email если падение больше 5 позиций сразу по 3+ запросам.

positions_today = get_positions_from_webmaster_api()
positions_yesterday = load_from_db()
falls = [k for k in positions_today if positions_today[k] - positions_yesterday[k] > 5]
if len(falls) > 3:
    send_telegram(f"Падение по {len(falls)} запросам: {falls}")

Сложность разработки: один день. Польза: ловите проблемы до того, как они станут катастрофой через неделю-две.

Регулярный аудит сайта

Раз в неделю скрипт обходит ключевые страницы сайта и проверяет HTTP-статусы (200 везде или есть ошибки), Title / description / H1 (на месте, уникальные), микроразметку (валидная), скорость загрузки, размер DOM. При проблемах — алёрт.

Сложность: два-три дня. Используется Screaming Frog как библиотека или Selenium / Playwright для полноценного рендеринга.

Конкурентный мониторинг

Раз в неделю проверяет позиции в SERP по ключевым запросам — кто в топ-10, что нового появилось, какие сниппеты у конкурентов. Через парсинг SERP (внимание: Яндекс не любит автоматический парсинг, используйте через прокси с ротацией или платные API парсинга).

Мониторинг попадания в Нейро

На ключевые запросы скрипт периодически проверяет SERP, ищет Нейро-блок, проверяет список источников в нём.

serp_html = fetch_serp("как стать источником цитат для нейро")
neuro_block = parse_neuro_block(serp_html)
if neuro_block:
    sources = extract_sources(neuro_block)
    is_my_site_cited = any("seyka.ru" in s for s in sources)
    if not is_my_site_cited:
        log("Не попали в Нейро по запросу X")

Это пока редко делает кто-то в Рунете — индустрия GEO-мониторинга только формируется, и собственный скрипт часто эффективнее, чем ожидание готовых решений.

Кластеризация с LLM-помощью

Гибридный подход: SERP-кластеризация Topvisor плюс ручная проверка крайних случаев плюс LLM (YandexGPT) для анализа неоднозначных кейсов.

clusters = topvisor_clusterize(keywords)
for cluster in clusters:
    if cluster.size > 50:
        analysis = yandexgpt_check_cluster(cluster.keywords)
        if analysis.has_mixed_intents:
            cluster = split_by_llm_suggestion(cluster, analysis)

Автогенерация микроразметки

Скрипт обходит существующие страницы сайта, парсит контент, генерирует JSON-LD на основе обнаруженных паттернов. Если есть <h1>, автор, дата — это Article. Если есть Q&A структура — это FAQPage. Если есть пошаговая структура — это HowTo.

Это часто решает половину работы по добавлению микроразметки на старых сайтах с большим объёмом контента.

GEO-видимость дашборд

Кастомный дашборд через Metabase, Apache Superset или Tableau. Источники: API Вебмастера, API Метрики, собственный мониторинг Нейро. Метрики: позиции, CTR, видимость в Нейро по группам запросов, трафик в разрезе каналов. Отчётность для руководства проекта или клиентов агентства.

Сложность: одна-две недели на хорошую первую версию.

API, которые стоит знать

Yandex.Webmaster API (yandex.ru/dev/webmaster/). Позиции, показы, клики по запросам. Список URL в индексе. Внешние ссылки и их анализ. Уведомления о фильтрах. Бесплатно для собственных сайтов.

Yandex.Metrika API (yandex.ru/dev/metrika/). Все отчёты Метрики через REST. Логи визитов с детализацией до уровня отдельных сессий. Конверсии и цели. Бесплатно.

YandexGPT API (cloud.yandex.ru/docs/foundation-models/). Подробнее в статье про YandexGPT API.

Yandex Cloud Functions. Для запуска ваших скриптов в облаке вместо собственного сервера. Дёшево, удобно, не нужно поддерживать инфраструктуру.

Topvisor / Rush Analytics API. Платные API SEO-сервисов для агрегации данных в свои дашборды.

YML и прайс-листы. Не «API» в классическом понимании, но стандарт для интеграции с Яндекс.Маркетом и другими прайс-агрегаторами.

Технологии

Python (рекомендую). Основные библиотеки: requests, beautifulsoup4, selenium, pandas, aiohttp. Для масштабного парсинга — scrapy. Для асинхронности — aiohttp плюс asyncio. Для дашбордов — streamlit, dash.

Альтернативы. Node.js, если у вас уже фронтенд-стек на JavaScript. Go для очень масштабных задач с высокой производительностью. PHP, если уже есть PHP-стек в проекте.

Python — самый «дешёвый» по входу и широте экосистемы для SEO-задач.

Cron и serverless. Для регулярного запуска скриптов. Локальный cron на VPS, Yandex Cloud Functions по расписанию, GitHub Actions для совсем простых задач без сложной инфраструктуры.

Сейка подсказывает

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

Подводные камни

Парсинг SERP. Яндекс не любит автоматический парсинг своей выдачи. Если будете слать прямые HTTP-запросы к серверу — быстро прилетит captcha или временный блок IP. Решения: платные сервисы парсинга (Topvisor, Rush Analytics через их API); через прокси с ротацией; через специализированные сервисы (Bright Data, ScraperAPI).

Лимиты API. У Yandex.Webmaster, Метрики, YandexGPT есть свои лимиты — запросов в день и в минуту, объём данных за период, платные тарифы для большего. Учитывайте лимиты при дизайне скриптов, не пишите код, который пытается обходить все ограничения за один раз.

Поддержка скриптов. Скрипт, написанный шесть месяцев назад, может перестать работать — API изменилось, структура парсимого сайта изменилась, что-то ещё. Закладывайте время на регулярную поддержку, не считайте скрипт «закончил и забыл».

Осторожно

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

Что не делать

Не пишите всё с нуля. Используйте существующие библиотеки, не изобретайте парсинг HTML или клиенты для API.

Не игнорируйте обработку ошибок. API падает, страницы недоступны, парсинг ломается на нестандартных случаях. Обрабатывайте все эти ситуации явно, а не «потом разберёмся».

Не храните ключи API в коде. Только в переменных среды (environment variables), и .env в .gitignore.

Не парсьте Яндекс без прокси и rate-limit. Получите бан IP, причём не всегда временный.

Не считайте самописные скрипты «бесплатными». Они стоят: время разработки плюс время поддержки плюс риски поломки в критический момент.

Короче говоря

Самописные скрипты решают то, что коробочные инструменты не могут, и часто экономят существенные деньги на масштабе. Типичные сценарии: алёрты на падение позиций, регулярный аудит сайта, конкурентный мониторинг, отслеживание попадания в Нейро, кастомные дашборды для отчётности. Базовый стек: Python плюс API Вебмастера/Метрики/YandexGPT плюс cron или serverless для запуска. Парсинг SERP — через платные сервисы или прокси с ротацией. Лимиты API учитывать в дизайне скриптов. Поддержка скриптов — это постоянная работа, не разовая.

Это закрывает раздел Инструменты — и весь гид. Если вы дочитали до этого места, спасибо. Сейка приглашает дополнять и присылать поправки на seyka@alternex.ru.

Источники

документация API Яндекс.Вебмастера, Метрики, YandexGPT; материалы Habr про автоматизацию SEO; кейсы из vc.ru.

Бесплатный AI SEO анализ

Сделайте аудит сайта прямо сейчас

Спросите Сейку напрямую — конкретный ответ по вашему сайту обычно быстрее, чем читать всю серию.

Убедитесь, что вы согласны с нашими Условиями использования и Политикой обработки персональных данных.