Yeni bir sayfa yayınladınız. Link açılıyor, sitemap’e de girmiş görünüyor ama Google’da yok. En sinir bozucu kısım şu: bu durumu genelde günler sonra fark ediyorsunuz.
Bu yazıda n8n ile bu süreci otomatikleştiriyoruz. Sitemap’ten URL’leri alıyoruz, Google Search Console üzerinden “Google’da görünüyor mu?” sorusunu soruyoruz ve Google’da çıkmayan sayfaları tespit edebileceğimiz bir yapı kuruyoruz.
Bu otomasyonla ne yapacağız?
- Sitenizin sitemap.xml dosyasını belirli aralıklarla çekeceğiz.
- Sitemap içindeki URL’leri tek tek ayıklayacağız.
- Her URL için Google Search Console üzerinden index durumunu sorgulayacağız.
- Google’da görünmeyen veya sorunlu URL’leri ayıklayacağız.
- Sonuçları aksiyon alınabilir hale getireceğiz.
Böylece “Google’da çıkmayan sayfalar” konusu tesadüfe kalmayacak. Otomasyon çalışacak, sen sadece veriye bakıp karar vereceksin.
Şimdi ilk SEO otomasyonumuza başlayalım. Ben bu yapıyı veriodakliseo.com için kuruyorum.
Başlamadan önce n8n’nin bilgisayarınızda çalışıyor olması gerekiyor. Eğer henüz kurmadıysanız, n8n Windows’a nasıl kurulur? rehberimde anlattığım şekilde n8n’yi kurup çalıştırın.
Workflow ekranına girebildiğiniz anda hazırsınız.
Başlamadan Önce: Gerekenler
- Çalışır durumda bir n8n kurulumu.
- Sitenizin sitemap adresi (/sitemap.xml veya /sitemap_index.xml).
- Google Search Console erişimi olan bir Google hesabı.
- Sonuçları kaydetmek için Google Sheets (opsiyonel).
Bu dört madde hazırsa otomasyonu kurmaya başlayabiliriz.

1. Adım: Otomasyonu Zamanlamak (Schedule Trigger)
Öncelikle yeni bir workflow açıyoruz. Ardından Add first step butonuna tıklıyoruz. Arama kutusuna schedule veya cron yazıp Schedule Trigger node’unu seçiyoruz.
- Trigger Interval: Days
- Days Between Triggers: 1
- Trigger at Hour: Midnight (veya size uygun bir saat)
Bu node ile otomasyonu günde bir kez otomatik olarak başlatıyoruz.
2. Adım: Sitemap’i Çekmek (HTTP Request)
Şimdi sitemap’i alıyoruz. Bunun için Schedule Trigger node’unun sağına bir HTTP Request node ekliyoruz.
- Method: GET
- URL: https://veriodakliseo.com/sitemap_index.xml
Bu adımda sitemap dosyasını n8n içine alıyoruz.
3. Adım: Sitemap Verisini Okunabilir Hale Getirmek (XML → JSON)
Bu noktada XML formatındaki sitemap’i işleyebilmek için bir XML node ekliyoruz.
- Operation: XML to JSON
Böylece sitemap verisini JSON formatında okumaya başlıyoruz.
4. Adım: Sitemap Index İçindeki Alt Sitemap’leri Ayıklamak
Sıradaki adımda sitemap index içindeki alt sitemap’leri ayıklıyoruz. Bunun için bir Split Out node ekliyoruz.
- Field to Split Out: sitemapindex.sitemap
Bu adım sayesinde her alt sitemap ayrı bir item haline geliyor.
5. Adım: Alt Sitemap Dosyalarını Tek Tek Çekmek
Şimdi her alt sitemap dosyasını tek tek çekiyoruz. Bunun için bir HTTP Request node daha ekliyoruz.
- Method: GET
- URL: Expression →
{{$json["loc"]}}
Bu aşamada artık her sitemap dosyasını ayrı ayrı işliyoruz.
6. Adım: Gerçek Sayfa URL’lerini Çıkarmak
6.1 XML’i JSON’a Çeviriyoruz
Alt sitemap dosyaları da XML formatında geliyor. Bu yüzden tekrar bir XML node ekliyoruz.
- Operation: XML to JSON
6.2 URL’leri Tek Tek Ayıklıyoruz
Şimdi gerçek sayfa URL’lerini almak için bir Split Out node ekliyoruz.
- Field to Split Out: urlset.url
Bu noktada sitemap’ten gelen tüm gerçek sayfa URL’leri elimizde.
7. Adım: Gerçek Hayat İçin Zorunlu Sınır (Limit Node)
Bu noktada önemli bir gerçek devreye giriyor. Google Search Console URL Inspection API, çok sayıda URL’nin tek seferde sorgulanması için tasarlanmamıştır.
Bu nedenle burada bilinçli olarak bir Limit node ekliyoruz.
Split Out (urlset.url) node’unun sağına bir Limit node ekliyoruz.
- Limit: 5 (ilk denemeler için ideal)
Bu sınırı koyarak otomasyonun stabil çalışmasını sağlıyoruz.
Limit Konusu: Neden Bazen 100 Çalışır, Bazen Çalışmaz?
Bu otomasyonu kurarken ilginç bir durumla karşılaşıyoruz. Limit değeri 100 olduğunda bazı çalıştırmalarda sonuç alıyoruz, bazı çalıştırmalarda ise akış yarıda kesiliyor.
Bu bir çelişki değil. Çünkü Google Search Console URL Inspection API her URL için aynı hızda ve tutarlılıkta yanıt vermek zorunda değil.
Daha önce crawl edilmiş ve sorunsuz URL’ler genellikle hızlı yanıt verir. Buna karşılık yeni veya nadiren taranan URL’ler hiç yanıt dönmeyebilir.
Dolayısıyla yüksek limit değerleri bazen çalışır, ancak stabil değildir.
8. Adım: Google Search Console ile URL Inspection
Artık Google’a doğrudan soruyoruz. Bunun için Google Search Console node’unu ekliyoruz.
- Resource: Site
- Operation: Inspect URL
- Site URL Mode: Pick From My Verified Sites
- Inspection URL: Expression →
{{$json["loc"]}}
Bu node sayesinde her URL için Google’dan resmi index durumunu alıyoruz.
En Zor Eşik: Google Search Console Yetkilendirmesi
Bu otomasyonda en çok vakit alan kısım sitemap okumak değildir. Asıl zorlayan bölüm, Google Search Console yetkilendirmesidir.
Ancak burada yaşanan problemlerin büyük bölümü kullanıcı hatasından değil, Google’ın OAuth sisteminin varsayılan güvenlik davranışlarından kaynaklanır.
Bu eşiği geçtiğimizde artık “Google’da var mı?” sorusunu tahminle değil, veriyle cevaplıyoruz.

Bu Noktada Bilinçli Olarak Duruyoruz
Sonuç olarak bu yazının amacı tek çalıştırmada her şeyi çözmek değildir. Amacımız, sitemap’ten gelen bir URL’nin Google’da gerçekten olup olmadığını resmi veriye dayanarak kontrol etmektir.
Bir sonraki yazıda bu otomasyonu batch ve zamanlama mantığıyla gerçek hayatta sorunsuz çalışacak hale getireceğiz.
Serideki önceki yazı:
n8n’de Veri Nereden Gelir, Nereye Gider?
Resmi kaynak:
Google URL Inspection API Dokümantasyonu







n8n kullanılarak harika şeyler yapılabilir… teşekkürler anlatım için.
Değerli yorumunuz için teşekkür ederim Sercan Bey. n8n gerçekten de verimliliği bambaşka bir boyuta taşıyor. Bu otomasyonun iş akışınıza katkı sağlamasına sevindim. Uygulama sırasında takıldığınız bir yer olursa sormaktan çekinmeyin.