Как создать систему массовой отправки URL в Google Index и проверки индексации сайта


В этой статье мы подробно расскажем, как мы создали систему, какие шаги выполняли, и покажем рабочие примеры кода.


Введение

Каждый владелец сайта сталкивается с необходимостью мониторинга индексации страниц и ускоренного добавления новых URL в Google. В условиях высокой конкуренции важно, чтобы новые материалы или карточки товаров появлялись в поиске как можно быстрее, а не ждали неделями, пока их обнаружит поисковый бот.

Ручная проверка индексации и отправка ссылок через Google Search Console быстро превращается в рутинную и затратную по времени задачу. Особенно если у вас интернет-магазин с сотнями товаров или блог с регулярными публикациями.

Мы решили автоматизировать этот процесс с помощью инструментов Google. Для массовой отправки ссылок в индекс используется Google Indexing API, а для последующей проверки наличия страниц в поиске — Google Custom Search API. Такой подход позволяет:

  • упростить массовую индексацию новых страниц;

  • мгновенно проверять, какие страницы уже в поиске, а какие ещё нет;

  • контролировать эффективность SEO-работ.



1. Создание проекта и сервисного аккаунта Google

Первый шаг — подготовка аккаунта для работы с API:

  1. Создаём проект в Google Cloud Console

    1. Переходим на console.cloud.google.com и создаём новый проект (например, example-index). - ссылка

Создание проекта в гугл

Название проекта

2.Создаём Service Account
В разделе IAM & Admin → Service Accounts создаём новый сервисный аккаунт.

  • Даем имя (например, vitaminator-com),

  • Выбираем роль Owner  

 

Настройка

Дальше будет окно, в котором ничего не нужно указывать, просто нажать кнопку Готово.

жму готово

Создаем и Скачиваем JSON с ключом
После создания сервисного аккаунта генерируем ключ в формате JSON. В нём содержатся:

  • client_email — адрес сервисного аккаунта,

  • private_key — приватный ключ,

  • остальные данные для аутентификации.

 

Создание ключа

Создание ключа

 

Создание Json

Пример ключа:

 {
  "type": "service_account",
  "project_id": "example-index",
  "private_key_id": "abc123",
  "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
  "client_email": "example@example-index.iam.gserviceaccount.com",
  ...
}

 

2.Включаем Google Indexing API
     В разделе APIs & Services → Library находим Indexing API и включаем его для проекта. тут

ndexing API и включаем его для проекта

Скрипт Node.js для отправки URL в Google Index

Мы использовали Node.js и библиотеку googleapis для аутентификации через JWT.

 

const fs = require('fs'); const { google } = require('googleapis'); const request = require('request'); const key = require('./service_account.json'); const jwtClient = new google.auth.JWT( key.client_email, null, key.private_key, ['https://www.googleapis.com/auth/indexing'] ); const batch = fs.readFileSync('urls.txt').toString().split('\n'); jwtClient.authorize((err, tokens) => { if (err) return console.error('Auth error:', err); const items = batch.map(url => ({ 'Content-Type': 'application/http', 'Content-ID': '', body: 'POST /v3/urlNotifications:publish HTTP/1.1\n' + 'Content-Type: application/json\n\n' + JSON.stringify({ url, type: 'URL_UPDATED' }) })); const options = { url: 'https://indexing.googleapis.com/batch', method: 'POST', headers: { 'Content-Type': 'multipart/mixed' }, auth: { bearer: tokens.access_token }, multipart: items }; request(options, (err, resp, body) => { if (err) return console.error('Error sending batch:', err); console.log('✅ Ответ Google Index API:\n', body); }); });

После запуска скрипта каждая ссылка отправляется в Google Index. Пример ответа:

{ "urlNotificationMetadata": { "url": "https://vitaminator.com.ua/product/bluebonnet-nutrition-120" } }

Проверка индексации через Custom Search API

Для проверки, есть ли URL в индексе:

Создаём Custom Search Engine (CSE):

Создаем по ссылке - тут 

  • Вводим сайт exaple.com,

  • Ограничиваем поиск только этим доменом.

Custom Search Engine

Custom Search Engine cx

 

Получаем API Key  (идентификатор поисковой системы).

https://console.cloud.google.com/apis/credentials

get api

api numper

В итоге у вас должен быть:


Api key = AIzaSyAk3234234234d-gZAk8wmJE4IGFo_w8
CX = e35e2de1234566c5

Скрипт для проверки индекса в Гугл : 


const fs = require('fs');
const axios = require('axios');
const urls = fs.readFileSync('urls.txt').toString().split('\n');
const apiKey = 'ВАШ_API_KEY';
const cx = 'ВАШ_CX';

(async () => {
  for (const url of urls) {
    try {
      const resp = await axios.get('https://www.googleapis.com/customsearch/v1', {
        params: { key: apiKey, cx, q: `site:${url}` }
      });

      const status = resp.data.items && resp.data.items.length > 0 ? '✅ в индексе' : '❌ нет в индексе';
      console.log(`${url} — ${status}`);
      fs.appendFileSync('index-check-results.txt', `${url} — ${status}\n`);
      
      // Пауза 1 секунда, чтобы не превышать лимит
      await new Promise(r => setTimeout(r, 1000));
    } catch (e) {
      console.error('Ошибка проверки:', e.response?.data || e.message);
    }
  }
})();

Лимиты и квоты

  • Google Indexing API — 200 запросов в день по умолчанию.

  • Custom Search API — бесплатная квота 100 запросов в день.

  • Чтобы не превышать лимиты:

    • Используем паузы между запросами,

    • Разделяем URL на пакеты,

    • Можно запросить увеличение квоты через Google Cloud Console.

 

Мы создали полностью автоматизированный процесс:

  • Отправка URL в Google Index,

  • Проверка индексации каждой страницы,

  • Запись результатов в файл,

  • Возможность интеграции с другими системами (CMS, Telegram-бот, Google Sheets).

Это ускоряет SEO-процессы, экономит время и делает мониторинг индексации прозрачным.

После получения всех API и Ключей

Мы подготовили готовый архив где вам нужно просто вставить полученные ключи
 
Ссылка на скачивание  - тут

 

Инструкция по установке и использованию скрипта проверки индексации и отправки URL в Google

Требования

  1. Установленный Node.js (версии 18+).
    Скачать можно тут: https://nodejs.org/.
    После установки проверьте:

     
    node -v npm -v
  2. Аккаунт в Google Cloud Console.

    • Включён Indexing API.

    • Создан Service Account и скачан JSON-ключ.

    • Включён Custom Search API и создана поисковая система (CSE) с вашим сайтом.

Установка

  1. Распакуйте архив в удобную папку.

    Например:

     
    cd ~/Desktop/exemple

    2.Установите зависимости:

     
    npm install

    🔑 Настройка ключей

    1. Ключ сервисного аккаунта (Indexing API)

    • Файл service_account.json — сюда вставьте ваш JSON-ключ от Google Service Account.

    • Пример содержимого:

     
    { "type": "service_account", "project_id": "vitaminor-index", "private_key_id": "abc123", "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n", "client_email": "your-service-account@project-id.iam.gserviceaccount.com" }

    ⚠️ Этот файл нельзя публиковать в открытом доступе, он только для вас.

    Ключи Custom Search API

    Откройте файл chekindex.js и замените строки:

     
    const apiKey = "ВАШ_API_KEY"; // Google API Key const cx = "ВАШ_CX"; // Custom Search Engine ID

    на ваши значения.

    • API Key: берётся в Google Cloud Console → APIs & Services → Credentials.

    • CX: берётся в настройках вашей Custom Search Engine.


    📄 Файлы

    • urls.txt — список URL для проверки и отправки в индекс.
      Каждый адрес с новой строки.

    • index.js — скрипт отправки ссылок в Google Index API.

    • chekindex.js — скрипт проверки индексации через Custom Search API.

    • index-check-results.txt — сюда автоматически сохраняются результаты проверки.

    Отправка ссылок в Google Index

    Запускайте скрпит из папки, конманда: 
     
    node index.js
    Пример ответа:✅ Ответ Google Index API: { "urlNotificationMetadata": { "url": "https://vitaminator.com.ua/product/example" } }

    2. Проверка индексации ссылок

     
    node chekindex.js
    Пример результата:

    https://vitaminator.com.ua/product/bluebonnet-nutrition-120 — ✅ в индексе

    https://vitaminator.com.ua/product/1000-tart-cherry-extract-solgar-90 — ❌ нет в индексе

    Все результаты сохраняются в файл index-check-results.txt

    Готово!

    Теперь у вас есть автоматизированный инструмент:

    • отправка страниц в индекс Google,

    • проверка их индексации,

    • сохранение результатов в файл.

    Результат

    результат работы скрипта

    Спасибо команде Brander за вдохновение и некоторые материалы, которые помогли при написании статьи.