Google Indexing API, bir sayfanın eklendiğini, güncellendiğini veya kaldırıldığını Google’a doğrudan bildirmenizi sağlayan resmî bir arayüzdür. Googlebot’un sayfayı kendi tarama takvimine göre keşfetmesini beklemek yerine, değişikliği programatik olarak iletirsiniz. Bu rehber, API’nin hangi içerik türleri için tasarlandığını, Google Cloud ve Search Console tarafındaki kurulumu, Python ile tekli ve toplu istek yöntemini, WordPress eklentisiyle kullanımı ve kota sınırlarını ele alır.
Google Indexing API Nasıl Çalışır?
API, servis hesabı üzerinden kimlik doğrulayan bir REST arayüzüdür. İstekler OAuth 2.0 ile yetkilendirilir ve https://www.googleapis.com/auth/indexing kapsamı (scope) kullanılır. Bildirimler, urlNotifications:publish uç noktasına gönderilir. İstek gövdesinde iki alan bulunur: bildirime konu olan URL ve bildirimin türü.
İki bildirim türü vardır. URL_UPDATED, bir URL’nin yeni eklendiğini veya içeriğinin değiştiğini belirtir. URL_DELETED, sayfanın artık yayında olmadığını bildirir. Google bu bildirimi aldığında ilgili URL’yi tarama kuyruğunda öne çeker. Bu işlem, sayfanın dizine girmesini garanti etmez. Sayfa kalite, erişilebilirlik ve yönerge kontrollerinden geçmek zorundadır. API yalnızca keşif ve yeniden tarama sürecini hızlandırır.
Hangi Sayfa Türleri İçin Kullanılabilir?
Resmî olarak desteklenen içerikler
Google’ın dokümantasyonuna göre Indexing API şu an yalnızca iki yapılandırılmış veri türü için tanımlıdır. Bunlardan biri JobPosting (iş ilanı) işaretlemesi içeren sayfalardır. Diğeri, BroadcastEvent özelliğiyle VideoObject içine gömülmüş canlı yayın sayfalarıdır. Bu içeriklerin ortak özelliği, kısa ömürlü olmaları ve değişikliklerin hızla yansıması gerekmesidir. Kapanan bir ilanın veya sona eren bir yayının arama sonuçlarında kalması kullanıcı deneyimini doğrudan bozar.
Diğer sayfa türlerinde risk ve alternatifler
Blog yazısı, ürün sayfası veya kategori sayfası için API’yi kullanmak teknik olarak mümkün görünse de bu kullanım desteklenen kapsamın dışındadır. Google bu tür kullanımların sonuç garantisi vermediğini ve kota ile erişim açısından sorun çıkarabileceğini belirtir. Kurumsal bir sitede sürdürülebilir olan yaklaşım, kapsam dışı sayfalar için standart yöntemleri kullanmaktır. Bunlar arasında güncel bir XML site haritası, güçlü iç link yapısı ve Search Console’daki URL denetimi aracı bulunur. Dizinleme sorunlarının nedenini görmek için Search Console sayfa dizinleme raporu rehberimizdeki hata sınıflandırmasından yararlanabilirsiniz.
Kuruluma Başlamadan Önce Gerekenler
Kurulum üç ana bileşene dayanır: bir Google Cloud projesi, bu projeye bağlı bir servis hesabı ve Search Console mülkünde bu hesaba verilmiş sahip yetkisi. Ayrıca sitenizin Search Console’da doğrulanmış olması gerekir. İstek göndereceğiniz URL’lerin 200 durum koduyla yanıt verdiğinden, robots.txt tarafından engellenmediğinden ve noindex etiketi taşımadığından emin olun. Silme bildirimi için de sayfa gerçekten 404 veya 410 dönmeli ya da noindex içermelidir. Yanıt kodlarının tarama üzerindeki etkisini HTTP durum kodları rehberimizde ayrıntılı olarak bulabilirsiniz.
Google Cloud Üzerinde Adım Adım Kurulum
Proje oluşturma
Google Cloud Console’a ilgili Google hesabınızla giriş yapın. Proje seçici menüsünden yeni bir proje oluşturun ve projeye yönetimi kolaylaştıracak açık bir ad verin. Birden fazla alan adı yönetiyorsanız her biri için ayrı proje kullanmak, kotaları ve yetkileri birbirinden yalıtmak açısından daha düzenli bir yapı sağlar.
Indexing API’yi etkinleştirme
Oluşturduğunuz projede API Kitaplığı bölümünü açın, “Web Search Indexing API” servisini bulun ve etkinleştirin. Bu adım atlanırsa tüm istekler servisin devre dışı olduğunu belirten bir hata mesajıyla reddedilir.
Servis hesabı ve JSON anahtarı oluşturma
IAM ve Yönetici bölümündeki Servis Hesapları ekranından yeni bir hesap oluşturun. Indexing API için Google Cloud tarafında özel bir rol ataması zorunlu değildir. Gerçek yetkilendirme Search Console tarafında yapılır. Hesabı oluşturduktan sonra “Anahtarları yönet” menüsünden yeni bir anahtar ekleyin ve biçim olarak JSON seçin. İndirilen dosya, kimliğinizi taşıyan özel anahtarı içerir. Bu dosyayı herkese açık bir depoda veya web sunucusunun erişilebilir bir dizininde saklamayın.
Search Console’da sahip yetkisi verme
JSON dosyasındaki client_email alanında servis hesabının e-posta adresi yer alır. Search Console’da ilgili mülkün Ayarlar bölümünden Kullanıcılar ve izinler sayfasına gidin ve bu adresi Sahip yetkisiyle ekleyin. Yetki “Tam” ya da “Kısıtlı” olarak verilirse API istekleri 403 hatasıyla sonuçlanır. Mülk türü de önemlidir. Alan adı mülkü yerine URL öneki mülküne yetki verdiyseniz, gönderdiğiniz URL’lerin bu önek kapsamında olması gerekir.
Python ile Indexing API Kullanımı
Ortam ve kütüphaneler
Python 3 kurulu bir ortamda, sanal ortam (virtual environment) oluşturmanız temiz bir bağımlılık yönetimi sağlar. Eski örneklerde sıkça görülen oauth2client kütüphanesi artık bakımı yapılmayan bir pakettir. Yeni projelerde google-auth ve google-api-python-client paketlerini tercih etmenizi öneririm. İkisi de pip ile kurulur. Kimlik bilgileri, JSON dosyasından servis hesabı kimliği olarak yüklenir ve indexing kapsamıyla sınırlandırılır.
Tek URL gönderimi
Tek URL için akış şöyledir: Önce JSON anahtar dosyasından kimlik bilgileri yüklenir ve kapsam tanımlanır. Ardından yetkilendirilmiş bir HTTP istemcisi veya “indexing” servisi için v3 sürümüyle oluşturulmuş bir istemci hazırlanır. Son olarak urlNotifications.publish metoduna, URL ve “URL_UPDATED” türünü içeren bir gövde gönderilir. Başarılı bir istek 200 yanıtı ve bildirim zamanını içeren bir meta veri döndürür. Dosya adını ve URL’yi kod içine sabit yazmak yerine yapılandırma dosyasından veya ortam değişkeninden okumak, hem güvenlik hem bakım açısından daha doğru bir uygulamadır.
Toplu URL gönderimi
Birden çok URL için istemci kütüphanesinin batch özelliği kullanılır. Bir toplu istek nesnesi oluşturulur, her URL için ayrı bir publish çağrısı bu nesneye eklenir ve tek seferde çalıştırılır. Her çağrının sonucu bir geri çağırma (callback) fonksiyonuna düşer. Burada hataları günlüğe yazmak önemlidir, çünkü bir gruptaki bazı URL’ler başarılı olurken diğerleri reddedilebilir.
Dikkat edilmesi gereken bir nokta, tek bir batch içinde en fazla 100 çağrı yapılabilmesidir. Bazı eski anlatımlarda bu sayı 1000 olarak geçse de resmî dokümantasyon 100 sınırını belirtir. Üstelik batch kullanmak günlük kotayı artırmaz. Gruptaki her URL ayrı bir istek olarak sayılır.
Silme ve durum sorgulama
Bildirim türünü “URL_DELETED” olarak değiştirdiğinizde Google’a sayfanın kaldırıldığı iletilir. Bu bildirimi yalnızca gerçekten yayından kalkmış sayfalar için kullanın. Gönderilen bir URL’nin Google tarafından en son ne zaman bildirildiğini görmek için urlNotifications.getMetadata metodundan yararlanabilirsiniz. Bu metot, URL için kayıtlı son güncelleme ve silme bildirimlerinin zaman bilgisini döndürür. Bu bilgi, bildirimin Google’a ulaştığını doğrular. Sayfanın dizine girdiğini ise yalnızca Search Console’daki URL denetimi gösterir.
WordPress’te Eklentiyle Kullanım
Kod yazmak istemeyen ekipler için WordPress ekosisteminde Indexing API’ye bağlanan eklentiler mevcuttur. Rank Math’in “Instant Indexing” modülü ve benzer çözümler bunların başında gelir. Kurulum mantığı değişmez: Google Cloud projesi, etkin API, servis hesabı ve Search Console sahip yetkisi yine gereklidir. Eklenti yalnızca JSON anahtarını yüklediğiniz bir arayüz sunar.
Eklenti ayarlarında JSON anahtarını yapıştırır veya dosya olarak yüklersiniz. Hangi yazı türlerinin otomatik bildirileceğini seçersiniz. Yazı yayımlandığında ya da güncellendiğinde bildirim kendiliğinden gider. Manuel gönderim ekranında her satıra bir URL yazılır ve eylem olarak yayımlama/güncelleme, kaldırma veya durum sorgulama seçilir. İş ilanı sitesi işletiyorsanız bu otomasyon güçlü bir avantaj sağlar. Kapsam dışı yazı türlerini bildirim listesinden çıkarmak ise kota tüketimini ve olası politika ihlallerini önler.
Eklenti kullanırken JSON anahtarının veritabanında saklandığını unutmayın. Yönetici hesaplarında iki aşamalı doğrulama kullanmak, eklentilerin güncel tutulması ve gereksiz kullanıcıların yönetici yetkisinden arındırılması, anahtarın korunması için temel güvenlik önlemleridir. Teknik tarama ve erişim yönetimi konularında daha geniş bir çerçeve için teknik GEO yaklaşımını ve botların siteyi nasıl işlediğini anlatan içeriği de inceleyebilirsiniz.
Kota ve Limitler
Indexing API varsayılan olarak sınırlı kotayla gelir. Güncel değerleri Google Cloud Console’daki Kotalar sayfasından kontrol etmeniz gerekir, çünkü değerler zamanla değişebilir. Aşağıdaki tablo, yaygın varsayılan sınırları özetler.
| Kota türü | Varsayılan sınır | Kapsam |
|---|---|---|
| Günlük yayımlama bildirimi | 200 istek | publish uç noktası (güncelleme ve silme dahil) |
| Dakikalık toplam istek | 380 istek | Projedeki tüm uç noktalar |
| Dakikalık meta veri sorgusu | 180 istek | getMetadata uç noktası |
| Batch başına çağrı | 100 çağrı | Toplu istek yapısı |
Günlük 200 sınırı aşıldığında 429 hatası alırsınız. Daha yüksek kota için Google Cloud Console üzerinden artış talebi iletilebilir. Talebin değerlendirilmesinde API’nin kapsam içi kullanımı belirleyici olur. Büyük hacimli ilan sitelerinde URL’leri önceliklendirmek, yani önce yeni yayımlanan ve süresi dolan ilanları göndermek, kotayı verimli kullanmanın en pratik yoludur.
Sık Karşılaşılan Hatalar ve Çözümleri
İstek reddedildiğinde hata kodu sorunun kaynağını doğrudan gösterir. En sık görülen durumlar şunlardır:
- 403 Permission denied servis hesabının Search Console’da sahip olarak eklenmediğini veya mülk türünün URL ile uyuşmadığını gösterir. E-posta adresini ve yetki düzeyini kontrol edin.
- 403 API has not been used / disabled mesajı, Indexing API’nin ilgili projede etkinleştirilmediğini belirtir. Doğru projede olduğunuzdan emin olun.
- 429 Quota exceeded günlük veya dakikalık kotanın aşıldığı anlamına gelir. İstekleri zamana yayın ve üstel geri çekilme (exponential backoff) uygulayın.
- 401 Unauthorized hatası, JSON anahtarının geçersiz, süresi dolmuş veya kapsamının yanlış tanımlanmış olduğunu işaret eder.
- 400 Invalid argument genellikle hatalı biçimlendirilmiş URL’den ya da geçersiz bildirim türünden kaynaklanır. URL’nin tam ve mutlak olduğunu doğrulayın.
Uygulamada Dikkat Edilmesi Gereken İlkeler
Bildirimi yalnızca anlamlı bir değişiklik olduğunda gönderin. Aynı URL’yi arka arkaya tekrar tekrar göndermek hızlandırma sağlamaz, yalnızca kotayı tüketir. İş ilanı sayfalarında yapılandırılmış verinin eksiksiz olduğunu, “validThrough” gibi alanların güncel tutulduğunu ve süresi dolan ilanlarda silme bildiriminin zamanında gönderildiğini kontrol edin. Canlı yayın sayfalarında da yayın bittiğinde işaretlemenin buna göre güncellenmesi gerekir.
Gönderim sonrasında Search Console’daki URL denetimi aracıyla sayfanın son tarama tarihini ve dizin durumunu doğrulayın. Bildirim gönderilmiş ama sayfa dizine girmemişse sorun genellikle API’de değil, içeriğin kalitesinde, kanonik etiketlerde veya erişim kısıtlamalarındadır. Botlara yönelik erişim kurallarını yönetirken robots.txt ile yapay zekâ botlarının yönetimi konusundaki yaklaşımı da bir referans olarak değerlendirebilirsiniz. Teknik kurulumun kurumsal bir SEO stratejisine nasıl yerleştirileceği konusunda ise SEO uzmanı perspektifiyle hazırlanmış içeriklerimiz ve profesyonel SEO hizmeti çerçevemiz kapsamlı bir bakış sunar.
Değerlendirme
Google Indexing API, doğru içerik türüyle ve doğru kurguyla kullanıldığında kısa ömürlü sayfaların arama sonuçlarındaki görünürlüğünü belirgin biçimde iyileştiren bir araçtır. Başarılı bir uygulama; temiz bir Google Cloud kurulumuna, Search Console’da doğru yetkilendir
mesine, kapsam içi sayfalara odaklanan bir gönderim stratejisine ve düzenli izlemeye dayanır. Anahtar dosyasının güvenliği, kota tüketiminin takibi ve hata kodlarının günlüğe alınması, sistemin uzun vadede kesintisiz çalışmasını sağlayan operasyonel alışkanlıklardır.
Bu API, Google’ın genel dizinleme sürecinin yerine geçen bir kısayol değildir. Resmî olarak tanımlanmış iş ilanı ve canlı yayın içerikleri için hız kazandıran, geri kalan sayfalar için ise site haritası, iç link mimarisi, sunucu yanıt kodları ve içerik kalitesi gibi temel unsurların yerini almayan tamamlayıcı bir mekanizmadır. Python ile yazılmış bir otomasyon da WordPress eklentisi de aynı ilkeye dayanır: doğru URL’yi, doğru bildirim türüyle, doğru zamanda iletmek. Bu disiplin korunduğunda dizinleme süreci öngörülebilir hâle gelir. Teknik SEO çalışmalarınız da daha ölçülebilir ve sürdürülebilir bir zemine oturur.