Blog Kaynaklar Hakkında Ara Konular
Next.js Troubleshooting

Düzeltme: Next.js (App Router) için Google Search Console "Sitemap Getirilemedi"

Güncellenme 10 Ekim 2025

Kategori: Next.js Troubleshooting
Paylaş

Google Search Console için Next.js sitemap sorun giderme rehberi

Eğer Next.js projeniz için Google Search Console’da “Sitemap getirilemedi” hatasını görüp kafanızı karıştırdıysanız, yalnız değilsiniz. Bu can sıkıcı Google Search Console sitemap hatası, Google’ın sitenizi düzgün bir şekilde dizine eklemesini engelleyerek görünürlüğünüzü zedeleyebilir. Next.js App Router kullanan birçok geliştirici, GSC sitemap’i okuyamadığında, tarayıcıda mükemmel bir şekilde erişilebilir görünse bile, bu Next.js sitemap sorun giderme zorluğuyla karşılaştı.

Neyse ki, geliştirici topluluğu güvenilir bir çözüm buldu. Bu rehber, bir Next.js GitHub sorununda paylaşılan yararlı bir keşfe dayanarak, “Getirilemedi” hatasını düzeltmek için tam adımları size sunuyor.

Sitemap’inizin dizine eklenmesini ve sitenizin tekrar yoluna girmesini sağlayalım. Daha fazla bilgi ve ek tartışma için GitHub sorunundaki buradaki cevabıma da göz atabilirsiniz.

Sorun: Google Neden Sitemap’i Getiremiyor?

Sorunun özü, Next.js’in yönlendirmeyi ve orta katmanı nasıl ele aldığı ile Google Search Console’un getirme denemelerini nasıl önbelleğe aldığı bir kombinasyonuna dayanıyor gibi görünüyor. GSC sitemap.xml’inize erişmeye çalıştığında, genellikle orta katmandan kaynaklanan bir müdahaleyle karşılaşabilir ve bu da isteğin başarısız olmasına neden olabilir. Bir kez başarısız olduğunda, GSC o belirli URL için başarısız sonucu önbelleğe alıyor gibi görünüyor. Temel sorunu düzelttikten sonra bile, aynı sitemap.xml URL’sini yeniden göndermek yeni bir deneme tetiklemeyebilir.

”Getirilemedi” Hatası Nasıl Düzeltilir

Bu çözüm, önbelleklemeyi, yönlendirmeyi ve orta katman çakışmalarını dört temel adımla ele alan pratik bir yaklaşım paylaşan GitHub kullanıcısı @segabrielcarvalho’dan geliyor.

Adım 1: Son Eğik Çizgi ile Yeni Bir Sitemap Getirmeye Zorla

Bu en basit ama en kritik adımdır. Google Search Console, başarısız getirme denemelerini agresif bir şekilde önbelleğe alıyor gibi görünüyor. Temiz bir sayfayla tekrar denemesini zorlamak için basit bir önbellek kırma tekniği kullanabilirsiniz.

https://your-site.com/sitemap.xml göndermek yerine, sonuna bir eğik çizgi ekleyin:

https://your-site.com/sitemap.xml/

Bu biraz farklı URL’yi göndermek, GSC’nin önbelleğini atlayacak ve yeni bir getirme tetikleyecektir. Bu basit numara, diğer düzeltmeleri uyguladıktan sonra sitemap’in başarıyla okunmasını sağlamak için genellikle yeterlidir.

Adım 2: Sitemap’i İç İçe Bir Rota’dan Sun

sitemap.ts dosyanızı app dizininin köküne yerleştirmek yerine, iç içe bir klasöre taşıyın. Bu, onu izole etmeye ve çakışma olmadan doğru bir şekilde sunulmasını sağlamaya yardımcı olur.

  1. app dizininiz içinde yeni bir sitemap klasörü oluşturun.
  2. sitemap.ts (veya sitemap.js) dosyanızı içine taşıyın.

Yeni dosya yolunuz şöyle olacak: app/sitemap/sitemap.ts

Bu, sitemap’inizin herkese açık URL’sini değiştirir. Yeni URL şöyle olacak:

https://your-site.com/sitemap/sitemap.xml

Bunu Google Search Console’a gönderirken (eğik çizgi numarasıyla birlikte!) bu yeni URL’yi kullanmayı unutmayın.

Adım 3: SEO Dosyalarınızı Orta Katmanınızdan Hariç Tutun

Orta katman güçlüdür, ancak Googlebot’in sitemap ve robots.txt gibi önemli dosyalara erişmesini yanlışlıkla engelleyebilir. Bunu önlemek için, middleware.ts dosyanızı bu dosyaları açıkça hariç tutacak şekilde güncellemeniz gerekir.

Orta katman dosyanızdaki matcher yapılandırması, orta katmanın hangi yollarda çalışacağını Next.js’e söyler. Olumsuz bir bakış açısı kullanarak, statik varlıklar ve SEO dosyaları dışındaki tüm yollarda çalışacak şekilde talimat verebilirsiniz.

İşte mevcut orta katmanınız için uyarlayabileceğiniz, hiçbir şey yapmayan ancak gerekli dosyaları doğru şekilde hariç tutan bir orta katman örneği.

middleware.ts
import type { NextRequest } from "next/server";
import { NextResponse } from "next/server";

export default function middleware(req: NextRequest) {
  // Orta katman mantığınız buraya gidebilir.
  // Başka mantığınız yoksa, sadece next() döndürün.
  void req;
  return NextResponse.next();
}

export const config = {
  matcher: [
    /*
     * Aşağıdakilerle başlayan yollar dışındaki tüm istek yollarını eşleştir:
     * - _next/static (statik dosyalar)
     * - _next/image (görsel optimizasyon dosyaları)
     * - favicon.ico (favicon dosyası)
     * - robots.txt (robots dosyası)
     * - sitemap.xml (sitemap dosyası)
     * - sitemap/ (iç içe sitemap dosyaları)
     * - site.webmanifest (web manifest dosyası)
     */
    "/((?!_next/static|_next/image|favicon\\.ico|robots\\.txt|sitemap\\.xml|sitemap/.*|site\\.webmanifest).*)",
  ],
};

Bu yapılandırma, robots.txt ve potansiyel sitemap yollarının (/sitemap.xml ve /sitemap/sitemap.xml) orta katman tarafından asla işlenmemesini sağlayarak Googlebot’i karıştırabilecek potansiyel engellemeleri veya yönlendirmeleri önler.

Adım 4: Doğru Bir robots.txt Dosyası Oluşturun

Son olarak, app dizininizde temiz ve doğru bir robots.txt dosyanız olduğundan emin olun. Bu dosya tüm kullanıcı aracılarına açıkça izin vermeli ve yeni sitemap URL’nize işaret etmelidir. public klasörünüzde bir robots.txt varsa, çakışmaları önlemek ve yalnızca app dizininizden üretilene güvenmek için en iyisi onu kaldırmaktır.

app dizininizde robots.ts veya robots.txt adında bir dosya oluşturun ve aşağıdaki içeriği ekleyin:

app/robots.ts
import { MetadataRoute } from 'next'

export default function robots(): MetadataRoute.Robots {
  return {
    rules: {
      userAgent: '*',
      allow: '/',
    },
    sitemap: 'https://your-site.com/sitemap/sitemap.xml',
  }
}

Veya statik bir dosya tercih ediyorsanız:

app/robots.txt
User-agent: *
Allow: /

Sitemap: https://your-site.com/sitemap/sitemap.xml

https://your-site.com yerine gerçek alan adınızı yazdığınızdan emin olun. Bu dosya, tarayıcıları sitemap’inizin yeni konumuna yönlendirir.

Önemli Çıkarımlar

Düzeltmeyi özetlemek gerekirse:

  1. GSC’ye gönderirken sitemap URL’nize bir son eğik çizgi (/) kullanın (önbelleği kırmak için).
  2. Sitemap dosyanızı app/sitemap/sitemap.ts gibi iç içe bir rotaya taşıyın.
  3. Orta katmanınızı robots.txt ve sitemap.xml gibi SEO dosyalarını hariç tutacak şekilde güncelleyin.
  4. robots.txt dosyanızı yeni sitemap URL’sine işaret edin.

Ayrıca, sitemap’iniz için yalnızca bir kaynağınız olduğundan emin olmak önemlidir. public klasörünüzde bir sitemap.xml varsa ve aynı zamanda app dizinizden bir tane oluşturuyorsanız, çakışmalar ortaya çıkabilir. Eski sitemap dosyalarını silin ve tek, dinamik olarak üretilen bir dosyaya sadık kalın.

Bu adımları takip ederek, “Sitemap getirilemedi” hatasını çözebilir ve Next.js sitenizin Google tarafından düzgün bir şekilde dizine eklenmesini sağlayabilirsiniz. Mutlu gönderimler

Kategori Next.js Troubleshooting
Paylaş

İlgili Yazılar

En son AI içgörülerini gelen kutunuza teslim alın

En son eğilimler, öğreticiler ve endüstri içgörüleriyle güncel kalın. Bültenimize güvenen geliştirici topluluğuna katılın.

Yalnızca yeni hesaplar. E-postanızı göndererek Gizlilik Politikası