Снимать позиции сайта в поиске Яндекса можно без дорогих сторонних сервисов, если использовать официальный Search API от Яндекс Облака и запускать скрипты через WP-CLI на том же сервере, где работает WordPress. В этой статье — практическая схема для небольшого сайта в финансовой нише, которая позволяет получать данные о позициях и частотности запросов с минимальными затратами. Мы не обещаем трудоустройства или мгновенного роста трафика, но покажем конкретные шаги, критерии выбора и грабли, которые встретятся на пути.
Зачем переходить на Search API и WP-CLI
Платные сервисы для съёма позиций берут деньги за каждый запрос, а браузерный Вордстат неудобен для массовой проверки частотности. Search API даёт прямой доступ к данным Яндекса по прозрачной цене (около 3 ₽ за сотню запросов), а WP-CLI позволяет запускать PHP-скрипты прямо на сервере без организации отдельного окружения. Это снижает затраты и упрощает автоматизацию. Однако важно понимать: API не заменяет полноценный SEO-аудит, а лишь предоставляет сырые данные, которые ещё нужно обработать.
Подготовка: что нужно до первого запуска
- Аккаунт в Яндекс Облаке и активированный Search API. Получите ключ доступа (IAM-токен или API-ключ) и сохраните его в переменных окружения, а не в коде.
- Доступ к серверу с WordPress и установленный WP-CLI. Убедитесь, что версия PHP соответствует требованиям API (обычно 7.4+).
- Список запросов для проверки позиций и частотности. Можно хранить в CSV или прямо в базе WordPress.
- Базовые знания PHP для написания скриптов и обработки ответов API.
Не храните ключи в репозитории и не выводите их в логи. Используйте переменные окружения или защищённые конфиги.
Пошаговая настройка сбора позиций
Схема состоит из трёх этапов: подготовка запросов, вызов API и сохранение результатов. Рассмотрим каждый подробнее.
1. Формирование списка запросов. Соберите фразы, по которым хотите отслеживать позиции. Для финансовой ниши это могут быть продукты, услуги или информационные запросы. Разбейте их на группы по 100–200 штук, чтобы не превышать лимиты API и упростить отладку.
2. Написание PHP-скрипта для вызова Search API. Скрипт должен отправлять POST-запрос к эндпоинту API с телом, содержащим запросы и параметры (регион, тип поиска). Пример упрощённой структуры:
<?php $apiKey = getenv('YANDEX_API_KEY'); $url = 'https://searchapi.api.cloud.yandex.net/v2/web/search'; $queries = ['купить акции', 'вклады для физических лиц']; $payload = json_encode(['query' => ['searchType' => 'SEARCH_TYPE_RU', 'queryText' => $queries]]); $ch = curl_init($url); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_POSTFIELDS => $payload, CURLOPT_HTTPHEADER => ['Authorization: Api-Key ' . $apiKey, 'Content-Type: application/json'], CURLOPT_RETURNTRANSFER => true, ]); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true); // Обработка и сохранение ?>Обратите внимание: поля запроса и ответа могут меняться, поэтому сверяйтесь с актуальной документацией. Не копируйте код без проверки.
3. Запуск через WP-CLI. Сохраните скрипт в файл, например seo-positions.php, и выполните команду wp eval-file seo-positions.php на сервере. WP-CLI загрузит WordPress, что даст доступ к функциям и базе данных, если нужно сохранить результаты в произвольную таблицу или в опции.
4. Сохранение и анализ. Результаты можно записывать в CSV или в базу WordPress. Для регулярного сбора настройте cron-задачу, которая будет вызывать WP-CLI по расписанию.
Критерии выбора и типичные ошибки
Прежде чем внедрять схему, оцените, подходит ли она вам. Критерии выбора:
- Объём запросов. Если у вас тысячи фраз, API может оказаться дешевле и гибче готовых сервисов.
- Навыки разработки. Нужен хотя бы базовый PHP и понимание работы с API.
- Требования к инфраструктуре. Скрипты запускаются на вашем сервере, поэтому нужен доступ и ресурсы.
- Бюджет. При небольших объёмах экономия может быть незначительной, но при регулярном сборе — ощутимой.
Типичные ошибки:
- Хардкод ключей. Приводит к утечкам и блокировкам. Используйте переменные окружения.
- Игнорирование лимитов API. Слишком частые запросы могут привести к ошибкам 429. Добавьте паузы и обработку исключений.
- Неверная интерпретация позиций. API возвращает результаты поиска, но не готовые позиции. Нужно самостоятельно сопоставлять URL вашего сайта с выдачей.
- Отсутствие логирования. Без логов сложно отладить скрипт и понять, почему данные не сохраняются.
- Запуск без тестирования на малой выборке. Сначала проверьте на 5–10 запросах, чтобы убедиться в корректности.
Пример из практики: при первом запуске скрипт возвращал пустой массив, потому что в запросе не был указан регион. После добавления параметра region данные появились. Всегда проверяйте обязательные поля в документации.
Что в итоге
Связка Search API и WP-CLI даёт контроль над процессом сбора позиций и частотности без ежемесячных платежей сторонним сервисам. Однако она требует технических навыков и внимательного отношения к деталям. Начните с малого: протестируйте на нескольких запросах, настройте логирование и постепенно расширяйте список. Не забывайте сверяться с документацией API, так как поля и условия могут меняться. Такой подход окупается гибкостью и пониманием каждого шага.