Google Index'e Toplu URL Gönderme ve Site İndeksleme Kontrolü Sistemi Nasıl Oluşturulur


Bu makalede, sistemi nasıl oluşturduğumuzu, hangi adımları izlediğimizi detaylı bir şekilde açıklayacak ve çalışan kod örnekleri sunacağız.


Giriş

Her web sitesi sahibi, özellikle Türkiye'deki kitleyi hedefleyenler, sayfa indekslemelerini izleme ve yeni URL'leri Google'a hızlı bir şekilde ekleme ihtiyacıyla karşı karşıya kalır. Türkiye'nin e-ticaret ve içerik pazarında yüksek rekabet ortamında, yeni içerik veya ürün sayfalarının arama sonuçlarında mümkün olan en kısa sürede görünmesi kritik önem taşır; arama botlarının bunları haftalarca keşfetmesini beklemek yerine.

Google Search Console üzerinden manuel olarak indeksleme kontrolü yapmak ve bağlantılar göndermek, özellikle yüzlerce ürüne sahip bir çevrimiçi mağaza veya düzenli yerel yayınlar yapan bir blog yönetiyorsanız, hızla sıkıcı ve zaman alıcı bir görev haline gelir.

Bu süreci Google'ın araçlarını kullanarak otomatikleştirmeye karar verdik. Toplu URL gönderme için Google Indexing API kullandık ve sayfaların arama sonuçlarında bulunup bulunmadığını kontrol etmek için — Google Custom Search API. Bu yaklaşım şunları sağlar:

  • yeni sayfaların toplu indekslenmesini basitleştirir;

  • hangi sayfaların arama sonuçlarında olduğunu ve hangilerinin olmadığını anında kontrol eder, Türkiye'ye özgü coğrafi konumla;

  • Türkiye pazarında SEO çalışmalarının etkinliğini izler.



1. Google Projesi ve Servis Hesabı Oluşturma

İlk adım — API kullanımı için bir hesap hazırlama:

  1. Google Cloud Console'da bir proje oluşturun

    1. console.cloud.google.com adresine gidin ve yeni bir proje oluşturun (örneğin, turkey-index). - bağlantı

Google'da proje oluşturma

Proje adı

2. Servis Hesabı Oluşturun
IAM & Admin → Service Accounts bölümünde yeni bir servis hesabı oluşturun.

  • Bir isim atayın (örneğin, turkey-site-com),

  • Rol olarak Owner seçin  

 

Yapılandırma

Sonraki pencerede hiçbir şey belirtmenize gerek yok; sadece Bitti düğmesine tıklayın.

Bitti'ye tıklayın

JSON Anahtar Oluşturun ve İndirin
Servis hesabı oluşturulduktan sonra, JSON formatında bir anahtar oluşturun. Bu anahtar şunları içerir:

  • client_email — servis hesabı e-posta adresi,

  • private_key — özel anahtar,

  • diğer kimlik doğrulama verileri.

 

Anahtar oluşturma

Anahtar oluşturma

 

JSON oluşturma

Örnek anahtar:

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

 

2. Google Indexing API'yi Etkinleştirin
     APIs & Services → Library bölümünde Indexing API'yi bulun ve projeniz için etkinleştirin. burada

Indexing API ve projeniz için etkinleştirme

Google Index'e URL Göndermek için Node.js Scripti

Node.js ve googleapis kütüphanesini kullanarak JWT ile kimlik doğrulama yaptık. Türk siteleri için, alan adınızın Google Search Console'da Türkiye için (google.com.tr) doğrulandığından emin olun.

 

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('Kimlik doğrulama hatası:', 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('Toplu gönderme hatası:', err); console.log('✅ Google Index API Yanıtı:\n', body); }); });

Script çalıştırıldığında her bağlantı Google Index'e gönderilir. Örnek yanıt:

{ "urlNotificationMetadata": { "url": "https://ornek.com.tr/urun/bluebonnet-nutrition-120" } }

Custom Search API ile İndeksleme Kontrolü

Bir URL'nin indekste olup olmadığını kontrol etmek için, Türkiye'ye özgü parametreler (gl=tr) kullanın:

Özel Arama Motoru (CSE) Oluşturun:

Buradan oluşturun - burada 

  • Siteyi girin ornek.com.tr,

  • Aramayı yalnızca bu alan adına sınırlayın.

Özel Arama Motoru

Özel Arama Motoru cx

 

API Anahtarı Alın  (arama motoru tanımlayıcısı).

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

api alın

api numarası

Sonuç olarak şunlara sahip olmalısınız:


Api key = AIzaSyAk3234234234d-gZAk8wmJE4IGFo_w8
CX = e35e2de1234566c5

Google'da indeksleme kontrolü için script: 


const fs = require('fs');
const axios = require('axios');
const urls = fs.readFileSync('urls.txt').toString().split('\n');
const apiKey = 'SİZİN_API_ANAHTARINIZ';
const cx = 'SİZİN_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: 'tr' }
      });

      const status = resp.data.items && resp.data.items.length > 0 ? '✅ İndekslendi' : '❌ İndekslenmedi';
      console.log(`${url} — ${status}`);
      fs.appendFileSync('index-check-results.txt', `${url} — ${status}\n');
      
      // Limitleri aşmamak için 1 saniye duraklama
      await new Promise(r => setTimeout(r, 1000));
    } catch (e) {
      console.error('Kontrol hatası:', e.response?.data || e.message);
    }
  }
})();

Limitler ve Kotalar

  • Google Indexing API — varsayılan olarak günde 200 istek (Türk siteleri dahil global olarak geçerlidir).

  • Custom Search API — ücretsiz kota günde 100 istek; daha yüksek hacimler için 10 siteyle sınırlı Site Restricted API kullanılabilir.

  • Limitleri aşmamak için:

    • İstekler arasında duraklamalar kullanın,

    • URL'leri gruplara ayırın,

    • Google Cloud Console üzerinden kota artışı talep edin.

 

Türk siteleri için uygun tamamen otomatik bir süreç oluşturduk:

  • URL'leri Google Index'e gönderme,

  • Türkiye odaklı her sayfanın indeksleme kontrolü,

  • Sonuçları bir dosyaya kaydetme,

  • Diğer sistemlerle entegrasyon imkanı (CMS, Telegram botu, Google Sheets).

Bu, Türk siteleri için SEO süreçlerini hızlandırır, zaman kazandırır ve indeksleme izlemeyi şeffaf hale getirir.

Tüm API'ler ve Anahtarlar Elde Edildikten Sonra

Elde edilen anahtarları eklemeniz gereken kullanıma hazır bir arşiv hazırladık.
 
İndirme bağlantısı  - burada

 

İndeksleme Kontrolü ve URL Gönderme Scriptini Kurma ve Kullanma Talimatları

Gereksinimler

  1. Node.js (sürüm 18+) yüklü olmalı.
    Buradan indirin: https://nodejs.org/.
    Kurulumdan sonra doğrulayın:

     
    node -v npm -v
  2. Türk alan adınızın Google Search Console'da doğrulandığı bir Google Cloud Console hesabı.

    • Indexing API etkinleştirilmiş.

    • Servis Hesabı oluşturulmuş ve JSON anahtarı indirilmiş.

    • Custom Search API etkinleştirilmiş ve siteniz için bir arama motoru (CSE) oluşturulmuş, Türkiye'ye özel sonuçlar için gl=tr.

Kurulum

  1. Arşivi uygun bir klasöre çıkarın.

    Örneğin:

     
    cd ~/Desktop/turkey-ornek

    2. Bağımlılıkları yükleyin:

     
    npm install

    🔑 Anahtar Yapılandırması

    1. Servis Hesabı Anahtarı (Indexing API)

    • service_account.json dosyasına Google Servis Hesabı'ndan aldığınız JSON anahtarınızı ekleyin.

    • Örnek içerik:

     
    { "type": "service_account", "project_id": "turkey-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" }

    ⚠️ Bu dosya herkese açık bir şekilde paylaşılmamalıdır, sadece sizin kullanımınız içindir.

    Custom Search API Anahtarları

    chekindex.js dosyasını açın ve şu satırları değiştirin:

     
    const apiKey = "SİZİN_API_ANAHTARINIZ"; // Google API Anahtarı const cx = "SİZİN_CX"; // Özel Arama Motoru Kimliği

    kendi değerlerinizle değiştirin. Türkiye'ye özgü sonuçlar için gl: 'tr' ekleyin.

    • API Anahtarı: Google Cloud Console → APIs & Services → Credentials bölümünden alınır.

    • CX: Özel Arama Motoru ayarlarınızdan alınır.


    📄 Dosyalar

    • urls.txt — kontrol edilecek ve indekse gönderilecek URL listesi.
      Her adres yeni bir satırda.

    • index.js — Google Index API'ye bağlantı gönderme scripti.

    • chekindex.js — Custom Search API ile indeksleme kontrolü scripti.

    • index-check-results.txt — kontrol sonuçları otomatik olarak buraya kaydedilir.

    Google Index'e Bağlantı Gönderme

    Scripti klasörden çalıştırın, komut: 
     
    node index.js
    Örnek yanıt:✅ Google Index API Yanıtı: { "urlNotificationMetadata": { "url": "https://ornek.com.tr/urun/ornek" } }

    2. Bağlantıların İndeksleme Kontrolü

     
    node chekindex.js
    Örnek sonuç:

    https://ornek.com.tr/urun/bluebonnet-nutrition-120 — ✅ İndekslendi

    https://ornek.com.tr/urun/1000-tart-cherry-extract-solgar-90 — ❌ İndekslenmedi

    Tüm sonuçlar index-check-results.txt dosyasına kaydedilir.

    Tamamlandı!

    Artık Türk siteleri için otomatik bir aracınız var:

    • sayfaları Google Index'e gönderme,

    • Türkiye odaklı indeksleme kontrolü,

    • sonuçları bir dosyaya kaydetme.

    Sonuç

    script çalıştırma sonucu

    Brander ekibine, bu makaleyi yazarken yardımcı olan ilham ve bazı materyaller için teşekkürler. Türk siteleri için, Google Search Console'da google.com.tr ile her zaman doğrulama yapın.