Web sitelerinde yayınlanan dinamik içeriklerin (özellikle iş ilanları veya canlı yayın etkinlikleri gibi zamana duyarlı sayfalar) Googlebot tarafından taranması ve güncellenmesi için Google, Indexing API servisini sunmaktadır.
Google’ın resmi dokümantasyonuna göre Indexing API, öncelikli olarak JobPosting (iş ilanları) veya BroadcastEvent (canlı yayınlar) yapısal verisi içeren sayfaların anlık olarak bildirilmesi için tasarlanmıştır. Genel web sayfaları, blog yazıları ve standart e-ticaret sayfaları için ise güncel XML Site Haritaları (Sitemap) ve IndexNow protokolü temel standarttır.
Aşağıda Node.js ortamında googleapis kütüphanesini ve Google Cloud Servis Hesabını (Service Account) kullanarak API entegrasyonunun teknik kurulumunu açıklıyorum.
1. Google Cloud Projesi ve Servis Hesabı Kurulumu
[Google Cloud Console] ➔ [1. Indexing API'yi Aktif Et] ➔ [2. Servis Hesabı Aç & JSON Anahtarını İndir]
│
▼
[3. GSC'ye Servis Hesabı E-postasını Ekleyin]
- Google Cloud Console’da yeni bir proje oluşturun ve Web Search Indexing API servisini etkinleştirin.
- Hizmet Hesapları (Service Accounts) menüsünden bir hesap oluşturup
service-account.jsonözel anahtarını indirin. - İndirdiğiniz JSON dosyasındaki e-posta adresini (
...iam.gserviceaccount.com) Google Search Console > Ayarlar > Kullanıcılar ve İzinler alanına yetkilendirilmiş kullanıcı olarak ekleyin. service-account.jsondosyasını asla açık repolarda (GitHub vb.) paylaşmayın; sunucuda ortam değişkeni olarak saklayın.
2. Node.js ile Indexing API Botu Kaynak Kodu
Gerekli npm paketini yükleyin:
npm install googleapis
Aşağıdaki Node.js betiği (index-notifier.mjs), tek seferlik kimlik doğrulaması yaparak URL listesini rate-limit korumasıyla Indexing API’ye iletir:
import { google } from 'googleapis';
import fs from 'fs';
// Servis hesabı JSON anahtarını güvenli şekilde oku
const keyFile = JSON.parse(fs.readFileSync('./service-account.json', 'utf8'));
const jwtClient = new google.auth.JWT({
email: keyFile.client_email,
key: keyFile.private_key,
scopes: ['https://www.googleapis.com/auth/indexing'],
});
const indexing = google.indexing({
version: 'v3',
auth: jwtClient,
});
async function notifyUrl(targetUrl, actionType = 'URL_UPDATED') {
try {
const response = await indexing.urlNotifications.publish({
requestBody: {
url: targetUrl,
type: actionType, // 'URL_UPDATED' veya 'URL_DELETED'
},
});
console.log(`[BAŞARILI] ${targetUrl} bildirildi. Durum:`, response.status);
} catch (error) {
console.error(`[HATA] ${targetUrl}:`, error.message);
}
}
async function notifyBatch(urls) {
await jwtClient.authorize();
for (const url of urls) {
await notifyUrl(url);
await new Promise((res) => setTimeout(res, 500)); // Kota ve rate-limit koruması
}
}
// Örnek Kullanım:
const sampleUrls = [
'https://seobify.com/kariyer/kidemli-seo-uzmani-is-ilani/',
];
notifyBatch(sampleUrls);
3. Kota Sınırları ve İndeksleme Beklentileri
- Varsayılan Günlük Kota: Google Indexing API, proje başına günlük 200 URL bildirimi hakkı tanır.
- İndeksleme Garantisi: API çağrısı, Googlebot’a tarama isteği gönderir; ancak sayfanın dizine alınıp alınmayacağı içerik kalitesi, teknik sağlık ve arama politikalarına bağlıdır.
Sıkça Sorulan Sorular
Google Indexing API tüm web siteleri için standart indeksleme aracı mıdır?
Google’ın resmi yönergelerine göre API özellikle iş ilanı (JobPosting) ve canlı yayın (BroadcastEvent) sayfaları için önerilir. Diğer sayfalar için Search Console URL Denetimi ve XML sitemap gönderimi birincil yöntemdir.
Bir URL’yi günde birden fazla kez bildirmek sorun yaratır mı?
İçerik gerçekten değişmediği sürece aynı URL’yi sürekli bildirmek API kotanızın tükenmesine veya engellenmesine neden olabilir; yalnızca gerçek güncellemelerde çağrı yapılmalıdır.
Stratejik Sonuç
Node.js tabanlı API otomasyonları, zaman hassasiyeti taşıyan içeriklerin Googlebot tarafından hızla taranmasını sağlar. İleri düzey web mimarisi ve teknik altyapı ihtiyaçlarınız için web geliştirme çözümlerimizi inceleyin.