Як створити систему для масового надсилання URL до індексу Google та перевірки індексації сайтів


У цій статті ми детально пояснимо, як створили систему, які кроки виконали, та надамо робочі приклади коду.


Вступ

Кожен власник вебсайту, особливо ті, хто орієнтується на українську аудиторію, стикається з потребою моніторингу індексації сторінок та прискорення додавання нових URL до Google. У висококонкурентному середовищі, такому як ринок електронної комерції та контенту в Україні, критично важливо, щоб нові сторінки контенту чи продуктів з’являлися в результатах пошуку якомога швидше, замість того, щоб чекати тижні, поки пошуковий бот їх виявить.

Ручна перевірка індексації та надсилання посилань через Google Search Console швидко стає нудною та часозатратною задачею, особливо якщо ви керуєте інтернет-магазином із сотнями продуктів або блогом із регулярними публікаціями українською мовою.

Ми вирішили автоматизувати цей процес за допомогою інструментів Google. Для масового надсилання URL до індексу ми використали Google Indexing API, а для подальшої перевірки присутності сторінок у результатах пошуку — Google Custom Search API. Цей підхід дозволяє:

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

  • миттєво перевіряти, які сторінки вже є в пошуку, а які ні, з геолокацією, специфічною для України;

  • моніторити ефективність зусиль із SEO на українському ринку.



1. Створення проєкту Google та сервісного акаунта

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

  1. Створіть проєкт у Google Cloud Console

    1. Перейдіть на console.cloud.google.com і створіть новий проєкт (наприклад, ukraine-index). - посилання

Створення проєкту в Google

Назва проєкту

2. Створіть сервісний акаунт
У розділі IAM & Admin → Service Accounts створіть новий сервісний акаунт.

  • Призначте ім’я (наприклад, ukraine-site-ua),

  • Виберіть роль Owner  

 

Налаштування

З’явиться наступне вікно, де нічого не потрібно вказувати; просто натисніть кнопку Готово.

Натисніть Готово

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

  • client_email — електронна пошта сервісного акаунта,

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

  • інші дані автентифікації.

 

Створення ключа

Створення ключа

 

Створення JSON

Приклад ключа:

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

 

2. Увімкніть Google Indexing API
     У розділі APIs & Services → Library знайдіть Indexing API і увімкніть її для проєкту. тут

Indexing API та її увімкнення для проєкту

Скрипт Node.js для надсилання URL до індексу Google

Ми використовували Node.js та бібліотеку googleapis для автентифікації через JWT. Для українських сайтів переконайтеся, що ваш домен верифіковано в Google Search Console для України (google.com.ua).

 

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('Помилка автентифікації:', 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('Помилка надсилання пакету:', err); console.log('✅ Відповідь Google Index API:\n', body); }); });

Після запуску скрипта кожен лінк надсилається до індексу Google. Приклад відповіді:

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

Перевірка індексації за допомогою Custom Search API

Щоб перевірити, чи є URL в індексі, використовуйте параметри, специфічні для України, такі як gl=ua для геолокації:

Створіть персоналізовану пошукову систему (CSE):

Створіть тут - тут 

  • Введіть сайт example.com.ua,

  • Обмежте пошук лише цим доменом.

Персоналізована пошукова система

Персоналізована пошукова система cx

 

Отримайте ключ API  (ідентифікатор пошукової системи).

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

отримати api

номер api

Ви повинні отримати:


Ключ API = AIzaSyAk3234234234d-gZAk8wmJE4IGFo_w8
CX = e35e2de1234566c5

Скрипт для перевірки індексації в Google: 


const fs = require('fs');
const axios = require('axios');
const urls = fs.readFileSync('urls.txt').toString().split('\n');
const apiKey = 'ВАШ_КЛЮЧ_API';
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}`, gl: 'ua' }
      });

      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 запитів на день; для більших обсягів використовуйте Site Restricted API, обмежену 10 сайтами.

  • Щоб уникнути перевищення лімітів:

    • Використовуйте паузи між запитами,

    • Розділяйте URL на партії,

    • Запитуйте збільшення квоти через Google Cloud Console.

 

Ми створили повністю автоматизований процес, придатний для українських сайтів:

  • Надсилання URL до індексу Google,

  • Перевірка індексації кожної сторінки з фокусом на Україну,

  • Збереження результатів у файл,

  • Можливість інтеграції з іншими системами (CMS, Telegram-бот, Google Sheets).

Це прискорює процеси SEO для українських сайтів, економить час і робить моніторинг індексації прозорим.

Після отримання всіх API та ключів

Ми підготували готовий до використання архів, куди потрібно лише вставити отримані ключі.
 
Посилання для завантаження  - тут

 

Інструкції з встановлення та використання скрипта для перевірки індексації та надсилання URL

Вимоги

  1. Встановлений Node.js (версія 18+).
    Завантажте тут: https://nodejs.org/.
    Після встановлення перевірте:

     
    node -v npm -v
  2. Акаунт у Google Cloud Console, з верифікованим українським доменом у Google Search Console.

    • Увімкнено Indexing API.

    • Створено Сервісний акаунт і завантажено JSON-ключ.

    • Увімкнено Custom Search API і створено пошукову систему (CSE) для вашого сайту, з gl=ua для результатів, специфічних для України.

Встановлення

  1. Розпакуйте архів у зручну папку.

    Наприклад:

     
    cd ~/Desktop/ukraine-example

    2. Встановіть залежності:

     
    npm install

    🔑 Налаштування ключів

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

    • У файл service_account.json вставте ваш JSON-ключ із сервісного акаунта Google.

    • Приклад вмісту:

     
    { "type": "service_account", "project_id": "ukraine-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"; // Ключ API Google const cx = "ВАШ_CX"; // Ідентифікатор пошукової системи

    на ваші значення. Додайте gl: 'ua' для результатів, специфічних для України.

    • Ключ API: Отримано з Google Cloud Console → APIs & Services → Credentials.

    • CX: Отримано з налаштувань вашої пошукової системи.


    📄 Файли

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

    • index.js — скрипт для надсилання посилань до Google Index API.

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

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

    Надсилання посилань до індексу Google

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

    2. Перевірка індексації посилань

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

    https://example.com.ua/product/bluebonnet-nutrition-120 — ✅ Проіндексовано

    https://example.com.ua/product/1000-tart-cherry-extract-solgar-90 — ❌ Не проіндексовано

    Усі результати зберігаються у файл index-check-results.txt

    Готово!

    Тепер у вас є автоматизований інструмент для українських сайтів:

    • надсилання сторінок до індексу Google,

    • перевірка їхньої індексації з фокусом на Україну,

    • збереження результатів у файл.

    Результат

    результат виконання скрипта

    Дякуємо команді Brander за натхнення та деякі матеріали, які допомогли у написанні цієї статті. Для українських сайтів завжди перевіряйте верифікацію в Google Search Console через google.com.ua.