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 sunar.
Google’ın resmî dokümantasyonuna göre Indexing API yalnızca JobPosting (iş ilanları) veya bir VideoObject içine yerleştirilmiş BroadcastEvent (canlı yayınlar) yapılandırılmış verisi içeren sayfaların taranması için kullanılabilir. Bu kapsam dışındaki kullanımlar Google’ın yönergelerinin dışındadır: bildirimler spam denetiminden geçer ve API’yi kötüye kullanma girişimleri (örneğin kotayı aşmak için birden fazla hesap kullanmak) erişimin iptaliyle sonuçlanabilir. Genel web sayfaları, blog yazıları ve standart e-ticaret sayfaları Google’da güncel XML site haritaları (sitemap) ve iç bağlantılarla keşfedilir. IndexNow protokolü ise Google tarafından desteklenmez; Bing, Yandex, Seznam ve Naver gibi katılımcı arama motorlarına bildirim gönderir.
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ıyoruz.
1. Google Cloud Projesi ve Servis Hesabı Kurulumu
- 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 sahip (owner) olarak ekleyin. Google’ın ön koşullar sayfasına göre servis hesabının mülkte yetkilendirilmiş sahip olması gerekir; salt kullanıcı izni yetmez. service-account.jsondosyasını asla açık repolarda (GitHub vb.) paylaşmayın; sunucuda depo dışında, yalnız uygulamanın okuyabildiği bir konumda ya da bir gizli anahtar yöneticisinde saklayın. Aşağıdaki örnek, anlatımı sade tutmak için dosyayı doğrudan okur.
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://example.com/kariyer/kidemli-seo-uzmani-is-ilani/', // JobPosting içeren bir iş ilanı sayfası
];
notifyBatch(sampleUrls);
3. Kota Sınırları ve İndeksleme Beklentileri
- Varsayılan Günlük Kota: Google’ın kota sayfasına göre Indexing API, proje başına günlük varsayılan 200 yayın (publish) isteği hakkı tanır;
URL_UPDATEDveURL_DELETEDistekleri bu kotaya birlikte sayılır ve kota Pasifik saatiyle gece yarısı sıfırlanı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?
Hayır. Google’ın resmî yönergelerine göre API yalnızca iş ilanı (JobPosting) ve VideoObject içindeki canlı yayın (BroadcastEvent) sayfaları için kullanılabilir; diğer sayfa türleri için kullanmak yönergelerin dışındadır. Diğer sayfalar için XML site haritası, iç bağlantılar ve gerektiğinde Search Console URL Denetimi 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.
Özet
Indexing API’yi yalnızca JobPosting veya canlı yayın (BroadcastEvent) içeren sayfalar için kullanın; her denemede içerik kapsamını ve API yanıtını ayrı kaydedin. Diğer sayfalar için XML site haritası ve iç bağlantılarla ilerleyin, genel erişim kontrolleri için teknik SEO kontrol listesini kullanın.