Мы разрабатываем систему автоматической проверки индексации, которая при появлении новой страницы отправляет её на индексацию, отслеживает статус и уведомляет о проблемах. Инженеры нашей команды имеют 7+ лет опыта в SEO-инженерии и настраивали индексацию для проектов от 100 до 1 млн страниц. Используем Google Indexing API и Search Console API, гарантируем стабильность и прозрачную отчётность.
Новая страница опубликована — это не значит, что Google её нашёл. Бот может обойти её через 3 часа, а может через 3 недели: зависит от crawl budget сайта, структуры sitemap, частоты обновлений. На крупных проектах с десятками новых страниц в день ручная проверка через «site:» или GSC не масштабируется.
Как работает Google Indexing API?
Официальный способ форсировать проверку индексации. Изначально создан для страниц с разметкой JobPosting/BroadcastEvent, но на практике работает для любых URL и значительно ускоряет попадание в индекс. По нашим данным, Google Indexing API сокращает время до первой индексации в среднем в 3–5 раз по сравнению с пассивным ожиданием обхода.
Настройка сервисного аккаунта:
- Google Cloud Console → IAM → Service Accounts → Create
- Создать ключ JSON
- В Google Search Console добавить сервисный аккаунт как Owner (не Viewer — иначе API вернёт 403)
Код отправки запроса на индексацию:
from google.oauth2 import service_account from googleapiclient.discovery import build SCOPES = ['https://www.googleapis.com/auth/indexing'] KEY_FILE = 'service-account-key.json' credentials = service_account.Credentials.from_service_account_file( KEY_FILE, scopes=SCOPES ) service = build('indexing', 'v3', credentials=credentials) def request_indexing(url: str, update_type: str = 'URL_UPDATED') -> dict: response = service.urlNotifications().publish( body={'url': url, 'type': update_type} ).execute() return response Учтите квоту: 200 запросов/день для обычных сайтов. При необходимости можно запросить расширение через Google Search Console.
Почему Sitemap ping недостаточен?
Простой пинг https://www.google.com/ping?sitemap=... сообщает Google о наличии новой карты сайта, но не гарантирует, что все новые страницы будут обработаны. Bing, Yandex поддерживают протокол IndexNow, но для Google он не работает. Однако Sitemap ping остаётся базовой мерой, которую мы всегда включаем в систему как обязательный слой.
Для эффективности важно, чтобы lastmod в Sitemap обновлялся при каждом изменении страницы — иначе Google игнорирует его как статичный. Мы автоматизируем это на стороне CMS.
| Метод | Скорость | Сложность настройки | Суточная квота | Поддержка Google |
|---|---|---|---|---|
| Sitemap Ping | Низкая (дни–недели) | Очень низкая | Неограничена | Да |
| Google Indexing API | Высокая (часы–дни) | Средняя | 200 запросов (можно расширить) | Да |
| IndexNow | Средняя (дни) | Низкая | 10 000 URL/день | Нет |
Проверка статуса индексации
Отправить URL — половина задачи. Нужно знать, попала ли страница в индекс. Для этого используем GSC URL Inspection API:
def check_indexing_status(site_url: str, page_url: str) -> dict: service = build('searchconsole', 'v1', credentials=credentials) result = service.urlInspection().index().inspect( body={'inspectionUrl': page_url, 'siteUrl': site_url} ).execute() inspection = result.get('inspectionResult', {}) index_status = inspection.get('indexStatusResult', {}) return { 'verdict': index_status.get('verdict'), 'coverage_state': index_status.get('coverageState'), 'last_crawl_time': index_status.get('lastCrawlTime'), 'robots_txt_state': index_status.get('robotsTxtState'), } Ключевые coverageState: Submitted and indexed (успех), Crawled - currently not indexed (бот обходил, но не добавил), Discovered - currently not indexed (найдена, но не обработана).
| Типичная причина отказа | Решение |
|---|---|
| Страница заблокирована в robots.txt | Удалить запрет или добавить исключение |
| Установлен мета-тег noindex | Убрать тег |
| Слишком много редиректов | Оптимизировать цепочку редиректов |
| Низкое качество контента | Улучшить уникальность и полезность |
| Недостаточно внутренних ссылок | Добавить ссылки с релевантных страниц |
Каждую из этих проблем мы отслеживаем в логах и выводим рекомендации.
Автоматизация полного цикла
Система работает по цепочке: публикация → очередь → отправка Indexing API → пауза 48 ч → проверка статуса → повторная отправка при неудаче → уведомление. Для хранения очереди используем PostgreSQL:
CREATE TABLE indexing_queue ( id SERIAL PRIMARY KEY, url TEXT NOT NULL UNIQUE, submitted_at TIMESTAMPTZ, last_checked_at TIMESTAMPTZ, status VARCHAR(64), coverage_state TEXT, attempts INT DEFAULT 0, created_at TIMESTAMPTZ DEFAULT NOW() ); Уведомления о проблемах отправляются в Telegram или Slack. Если страница не проиндексирована за 7 дней, генерируется alert с указанием причины.
Интеграция с CMS
На WordPress — хук publish_post:
add_action('publish_post', function($post_id) { $url = get_permalink($post_id); // Отправка в Indexing API через очередь wp_schedule_single_event(time() + 60, 'submit_url_to_indexing_api', [$url]); }); Для Laravel используем Events/Listeners с отложенными заданиями. Система поддерживает кастомные CMS по вашему API. Закажите интеграцию под вашу CMS — мы настроим систему за 1–5 дней.
Что входит в работу
- Аудит текущей схемы индексации (Sitemap, robots.txt, скорость обхода)
- Подключение Google Indexing API и настройка сервисного аккаунта
- Разработка очереди отправки с мониторингом статуса
- Интеграция с вашей CMS через хуки или API
- Настройка уведомлений (Telegram, Slack, e-mail)
- Документация по эксплуатации и передача доступов
- Техническая поддержка в течение месяца после запуска
Сроки и стоимость
Базовая настройка (Sitemap ping + Indexing API при публикации) — 1–2 рабочих дня. Полноценная система с мониторингом, очередью и алертами — 3–5 дней. Стоимость рассчитывается индивидуально в зависимости от сложности интеграции и количества страниц. Оценим ваш проект за один рабочий день — получите консультацию по автоматизации индексации и узнайте, как ускорить попадание страниц в поиск.







