SEO için Headless CMS

Headless CMS SEO'su tek bir şeye bağlıdır — ön yüzün nasıl render ettiğine. SSG/SSR vs. CSR, metadata, canonical'lar, sitemap'ler, ISR tuzakları, AI tarayıcıları ve geçişler.

İlk yayın tarihi: 25 Haz 2026 · Son güncelleme: 21 Ağu 2026 · Advanced
Diller
Bu sayfada 1 kanıt sinyali

Headless CMS, SEO için ne iyi ne de kötüdür — ön yüzünüzün kullandığı render modu her şeyi belirler. SSG ve SSR güvenli seçeneklerdir, CSR riskli olandır ve ISR'nin bayat içerik tuzağı vardır; WordPress eklentilerinin otomatik yaptığı her şeyi (metadata, sitemap'ler, canonical'lar, robots.txt) artık açıkça siz oluşturmalısınız. Render'ı doğru yapın, önizleme ortamlarını dizinden uzak tutun ve headless, bakımsız bir WordPress sitesinden daha iyi performans gösterebilir.

TL;DR — Headless SEO’da mimari üründür: CMS arka ucu neredeyse SEO açısından nötrdür ve ön ucun oluşturma modu her şeyi belirler. SSG ve SSR tamamen oluşturulmuş HTML sunar ve güvenli seçeneklerdir; CSR en riskli olanıdır; ISR, yeniden doğrulamadan sonraki ilk istekte bayat içerik tuzağı taşır. Yoast’ın otomatik olarak yaptığı her şey — meta veriler, canonicals, site haritaları, robots.txt — artık açıkça siz oluşturursunuz ve canonical mantığı CMS → çerçeve → bileşen arasında parçalanır, bu nedenle onu tek bir SITE_URL’den oluşturma katmanında ayarlayın. Aynı ayrım, yerel ayar yönlendirmesi/hreflang ve önizleme erişimi için de geçerlidir (önce kimlik doğrulayın; noindex ikincildir, erişim kontrolü değildir). Google dinamik oluşturmayı kullanımdan kaldırdı (SSR/SSG/hidrasyon kullanın), AI tarayıcı oluşturma sağlayıcıya göre değişir ve yayınlama/yayından kaldırma olaylarının bir zamanlayıcı değil, webhook tarafından tetiklenen bir önbellek temizlemesi gerektirir.

Mimari üründür

Headless bir CMS yalnızca bir arka uçtur: içerik depolama, içerik modeli, düzenleme arayüzü ve bir API. Ön uç — Next.js, Nuxt, Gatsby, Astro, SvelteKit, Remix — REST veya GraphQL üzerinden içerik getiren ve onu işleyen ayrı bir uygulamadır. Buradaki en kullanışlı zihinsel model şudur: seçtiğiniz CMS’in doğrudan SEO etkisi neredeyse yoktur; ön uçtaki işleme kararları her şeyi belirler. Her headless SEO konuşması şu soruyla başlamalıdır: ön uç bu içeriği nasıl işliyor? Evidence for this claim A headless CMS supplies content through APIs while a separate frontend controls how pages are rendered. Scope: Contentful as a representative headless CMS architecture. Confidence: high · Verified: Contentful: What is a headless CMS?

Bu yüzden “headless SEO için kötüdür” yanlış bir çerçevedir. Headless tarafsızdır. SSR veya SSG üzerinde iyi yapılandırılmış, disiplinli meta verilere sahip bir headless site, ihmal edilmiş bir WordPress kurulumundan daha iyi performans gösterir. Varsayılan olarak istemci tarafı işlemeye geçen ve meta veri katmanını asla yeniden oluşturmayan bir headless site sessizce dağılır. Bu, JavaScript SEO rehberimde yaptığım aynı noktadır: web düz HTML’den uzaklaştı ve bir SEO olarak bununla savaşmak yerine onu benimseyebilirsiniz.

Kim neye sahip: CMS, API ve ön uç

“CMS neredeyse SEO-nötrdür” doğru bir içgüdüdür, ancak gerçek bir sahiplik haritasını atlamak için bir lisans değildir. Bir içerik modeli yapılandırılmış türleri ve alanları depolar — hepsi bu. Başlıkların, kanoniklerin, şemaların veya bağlantıların gerçekten yayınlandığını kanıtlamaz; bu yalnızca ön uç işini yaptığında gerçekleşir. Evidence for this claim A headless CMS content model defines structured types and fields, but the consuming frontend owns URL routing and the rendered HTML that titles, canonicals, schema, and links depend on. Scope: Contentful content-model docs plus Next.js metadata docs as representative frontend evidence. Confidence: high · Verified: Contentful: Data model Next.js: Metadata and OG images Sorumluluğu açıkça bölmek, en çok gördüğüm iki başarısızlık modundan kaçınır: kimse bir parçaya sahip değildir (sessizce asla oluşturulmaz) veya üç katman da ona sahip olduğunu düşünür (parçalanır, aşağıdaki kanoniklerin yaptığı gibi).

KatmanSahip olduğuSahip olmadığı
CMS içerik modeliYapılandırılmış alanlar (başlık, açıklama, slug, OG görseli, robots geçersiz kılma) ham veri olarakBu alanların HTML’de nasıl işlendiği veya hiç işlenip işlenmediği
Teslimat API’si (yayınlanmış içerik)Yalnızca yayınlanmış, üretim güvenli içeriği canlı siteye sunmakÖnizleme/yayınlanmamış içerik — bu ayrı bir API’dir
Önizleme/Yönetim API’siYayınlanmamış ve taslak içerik, kendi token’ı/ana bilgisayarı arkasındaÜretim ön ucunun asla sorgulamaması gereken herhangi bir şey
Ön uç / derleme / dağıtımSon işlenmiş HTML: <head> etiketleri, kanonik, site haritası, robots.txt, JSON-LD, iç bağlantılar, yerel yönlendirmeİçerik depolama — API’yi tüketir, modeli tanımlamaz

Ayrıca farklı olan: hangi API’yi çağırdığınız. Teslimat, yönetim ve önizleme API’leri farklı yayınlama ve yetkilendirme anlamlarına sahiptir. Üretim işleme yalnızca yayınlanmış içerik API’sini kullanmalıdır — asla yönetim veya önizleme token’ı/bitiş noktasını kullanmamalıdır; bu, yayınlanmamış içeriği veya yazma erişimini genel bir yanıta sızdırabilir. Evidence for this claim Delivery, management, and preview APIs have different publication and authorization semantics; production rendering must use the published-content API and must not expose management or preview tokens. Scope: Contentful API basics and Preview API docs as representative headless-API evidence. Confidence: high · Verified: Contentful: API basics Contentful: Content Preview API overview

Google bir JavaScript sayfasını nasıl işler

Google, JavaScript sayfalarını tarama, işleme ve dizine ekleme yoluyla işler. İstemci işlemeye bağlı sayfalar, ilk HTML yanıtında son içeriklerini açığa çıkarmazken, SSR ve SSG bu içeriği tarayıcı yürütmesinden önce yanıta koyar. Evidence for this claim Google crawls, renders, and indexes JavaScript pages, while server-side or pre-rendered HTML exposes content in the initial response. Scope: Google Search JavaScript processing; indexing is not guaranteed. Confidence: high · Verified: Google: JavaScript SEO basics

Ölçekte iki ilgili gerçek önemlidir. Google, engellenen dosyalardan JavaScript işleyemez, bu nedenle gerekli .js ve .css kaynaklarının taranabilir kalması gerekir. JS işlemek gerçekten pahalıdır — Ahrefs’te günde milyarlarca sayfa tarıyoruz ve JavaScript sayfalarını işlemek altyapımızın ciddi bir kısmını tüketiyor — bu, “Googlebot bunu işleyebilir” ifadesinin “Googlebot’un bunu işlemesini sağlamalısınız” ile aynı olmadığını hatırlatır.

Yapay zekâ tarayıcı gerçeği

Bu, 2026’nın çoğu headless SEO tavsiyesinin hâlâ gözden kaçırdığı kırışıklığıdır. Çoğu yapay zekâ tarayıcısı — ChatGPT, Perplexity ve benzerlerinin arkasındaki getiriciler — JavaScript’i çalıştırmaz. Bir Vercel çalışması bunu açıkça ortaya koydu: hiçbiri istemci tarafı içeriği işlemez, yani kritik sayfalarınız JavaScript’e bağımlı SPA’lar olarak sunuluyorsa, bu sayfalar AI araması için etkili bir şekilde görünmezdir. Google’ın kendi işleme ekibi, temel olarak tüm HTML sayfalarını işlediklerini söyledi, ancak bu Google’dır. AI görünürlüğü için SSR/SSG lüks değil; giriş ücretidir.

Dört işleme modu

SSG — Statik Site Üretimi. HTML derleme zamanında üretilir ve bir CDN’den statik dosyalar olarak sunulur. En iyi SEO senaryosu: ilk istekte tamamen işlenmiş HTML, çok hızlı TTFB. Ödünleşim tazeliktir — yeni veya değişen içerik yeniden derleme gerektirir ve büyük siteler yavaş derlemeler alır (ISR bunu kısmen çözer). Gatsby ve Astro SSG-önceliklidir; Next.js bunu rota başına destekler; Hugo klasiktir.

SSR — Sunucu Tarafı İşleme. HTML, bir sunucuda veya edge işlevinde istek başına işlenir. Mükemmel SEO: her zaman taze, ilk istekte tamamen işlenmiş HTML. Ödünleşim altyapı maliyeti ve statik dosyalardan biraz daha yüksek TTFB’dir. Next.js, Nuxt, SvelteKit ve Remix bunu yapar.

ISR — Artımlı Statik Yeniden Üretim. Statik sayfalar, yeniden doğrulama aralığından sonra arka planda yeniden üretilir. Çoğu zaman iyi SEO, tek gerçek tuzakla (sonraki bölüm). Öncelikle bir Next.js özelliği; Nuxt’un analogları vardır.

CSR — İstemci Tarafı İşleme. Minimal bir HTML kabuğu gönderilir, ardından tarayıcıdaki JavaScript içeriği getirir ve DOM’u oluşturur. Bu en kötü SEO seçeneğidir: Googlebot sayfayı işleme dalgası için sıraya almalıdır, zamanlama öngörülemez ve AI tarayıcıları ve diğer birçok bot yalnızca boş kabuğu görür. CSR, son derece etkileşimli panolar veya oturum açma gerektiren ve zaten dizine eklenmemesi gereken yalnızca kimliği doğrulanmış sayfalar için kabul edilebilir — bulunmasını istediğiniz içerik için değil. Next.js/Nuxt olmadan ham React veya Vue SPA’ları varsayılan olarak buraya düşer.

ISR bayat içerik tuzağı

Bu, kendi bölümünü hak edecek kadar yeni. ISR ile yeniden doğrulama penceresi sona erdiğinde:

  1. Sonraki gelen istek arka planda yeniden üretimi tetikler.
  2. Bu istek — Googlebot olabilir — yine de bayat önbelleğe alınmış sayfayı alır.
  3. Taze sürüm yalnızca sonraki istekte sunulur.

Sık tarama yapılan sayfalar için bu, Googlebot’un rutin olarak içeriği bir yeniden doğrulama döngüsü gerisinde görebileceği anlamına gelir. Gerçekten değişken veriler için (fiyatlar, stok seviyeleri), SSR daha güvenli bir seçimdir. ISR, saatler veya günler mertebesinde değişen içerik için harika bir orta yol — saniyeler değil.

Dinamik işleme kullanımdan kaldırıldı

Yıllar önce — 2019 civarında verdiğim konuşmalar dahil — dinamik işleme (Puppeteer veya Rendertron gibi bir şeyle botlara önceden işlenmiş bir sürüm sunmak) makul bir geçici çözümdü. Google o zamandan beri bu tutumunu tersine çevirdi. Resmi olarak, “dynamic rendering was a workaround and not a long-term solution,” (Türkçe çeviri) “Dinamik oluşturma geçici bir çözümdü; uzun vadeli bir çözüm değildi.” ve “creates additional complexities and resource requirements.” (Türkçe çeviri) “Ek karmaşıklıklar ve kaynak gereksinimleri yaratır.” Google artık bunun yerine sunucu tarafı işleme, statik işleme veya hidrasyon öneriyor. Nüansı not edin: dinamik işleme otomatik olarak gizleme değildir — Google yalnızca var olduğu için cezalandırmaz ve yalnızca kullanıcılara vs. tarayıcılara tamamen farklı içerik sunarsanız gizlemeye geçer. Ancak “gizleme değil” ve “resmi olarak kullanımdan kaldırıldı” aynı anda doğrudur. Yeni bir derlemede ona uzanmayın.

Meta veriler — eklentinin yaptığını yeniden oluşturma

WordPress’te Yoast veya Rank Math her sayfa için otomatik olarak bir başlık ve açıklama üretti. Headless’ın eklenti katmanı yoktur, bu nedenle iş açıktır:

  1. CMS içerik modeline SEO alanları ekleyin — başlık, açıklama, robots geçersiz kılma, canonical geçersiz kılma, Open Graph alanları.
  2. Bu alanları API yanıtından her sayfa şablonunun <head> bölümüne eşleyin.
  3. Framework’e özgü head yönetimini kullanın — Next.js generateMetadata (App Router) veya metadata dışa aktarımı; Nuxt useSeoMeta; Gatsby’nin <Seo> bileşeni / react-helmet; Astro’nun düzen dosyalarındaki <head> bölümü.

Yaygın hatalar: istemci tarafında enjekte edilen meta veriler hemen değil, geç (oluşturma sonrası) görülür; her sayfada asla güncellenmeyen tek bir paylaşılan düzen canonical’i (böylece her şey ana sayfaya canonicalize edilir); ve Next.js App Router’da, bozuk göreli canonical URL’ler üreten eksik bir metadataBase. Güvenilirlik kuralı basittir — HTML düzeyindeki meta veriler, JS ile enjekte edilen meta verilerden daha iyidir, çünkü Google bunu ilk getirmede görür. Helmet ve Head gibi modüller bunun için uygundur, ancak kritik etiketleri sunucu tarafında oluşturulan HTML’e ekleyin.

İçerik modelinin kendisinin yalnızca alanlara değil, kurallara da ihtiyacı vardır, yoksa yukarıdaki eşleme adımı sessizce bozulur:

  • Alan başına zorunlu vs. isteğe bağlı. Başlık ve canonical geçersiz kılma zorunlu (veya otomatik türetilmiş) olmalıdır, böylece bir sayfa asla boş bir <title> ile yayınlanamaz. Açıklama ve OG alanları, ön uçta bir yedek ile isteğe bağlı kalabilir.
  • Tanımlı bir yedek zinciri. Bir SEO alanı boşsa, ön ucun neyi ikame edeceğine önceden karar verin — açıklama için gövde alıntısı, başlık için H1 — ve bunu şablon başına gelişigüzel değil, eşleme katmanında uygulayın.
  • Yerel ayar yedeği, alan yedeğinden ayrı bir kuraldır. İçerik API’si, bir çeviri eksik olduğunda varsayılan yerel ayar değerini ikame edebilir; bu gövde için yararlıdır, ancak bir SEO alanının sessizce başka bir yerel ayarın başlığına/açıklamasına geri dönmesi genellikle yanlıştır ve ayrıca işaretlenmeye değerdir.
  • Eşleme adımında kaçış. CMS metin alanları genellikle HTML veya zengin metne izin verir; bunu bir <title>, <meta> veya JSON-LD dizesine yerleştirmeden önce temizleyin veya kaçışlayın, aksi takdirde bozuk işaretleme veya daha kötüsü, enjekte edilmiş komut dosyası gönderirsiniz.
  • Rota türü başına kabul testi. Yayından önce, normal bir girdi, boş isteğe bağlı alana sahip bir girdi ve çevirisi olmayan bir yerel ayarda sorgulanan bir girdi için oluşturulan <head> bölümünün nasıl göründüğünü doğrulayın — tek bir mutlu yol testinin yakalayamayacağı üç farklı kod yolu.

Canonical parçalanması — headless’e özgü bir risk

WordPress’te canonical tek bir yerde yaşar. Headless’te üç katmana bölünmüştür: CMS bir slug saklar, framework tam URL’yi bu slug artı ortam ayarlarından birleştirir ve bir bileşen <link rel="canonical"> etiketini owuşturur. Herhangi bir katman saparsa — bir slug değişir, bir rota deseni değişir, bir bileşen yeniden düzenlenir — canonical artık var olmayan bir URL’yi işaret edebilir. Tarihsel olarak Google, JavaScript ile eklenen canonical’leri bile dikkate almıyordu; bu bazı durumlarda gevşetildi, ancak HTML düzeyindeki canonical’ler çok daha güvenilir olmaya devam ediyor ve birden fazla çakışan etiket, Google’ı seçim yapmaya zorlar.

Çözüm: canonical mantığını CMS’nin içinde değil, oluşturma katmanında (framework) sahiplenin ve mutlak URL’leri tek bir SITE_URL ortam değişkeninden oluşturun. Tek bir doğruluk kaynağı, her zaman mutlak URL’ler, asla göreli değil.

Yerel ayar sahipliği: API yedeği vs. ön uç yönlendirmesi

Çok yerel ayarlı headless siteler, canonical’lerle aynı sahiplik karışıklığının bir versiyonuna sahiptir. İçerik API’sinin yerel ayar seçimi ve yedeği, alan değerlerini ikame edebilir — bir yerel ayar isteyin, o yerel ayarın içeriğini veya yapılandırılmış bir yedeği alın — ancak bu bir veri ikame özelliğidir, bir SEO özelliği değildir. Evidence for this claim Content API locale selection and fallback can substitute field values, but the frontend still owns locale URLs, canonicals, hreflang, x-default, and language negotiation. Scope: Contentful localization docs plus Google rendering/canonical guidance. Confidence: high · Verified: Contentful: Localization Google: JavaScript SEO basics Ön uç yine de arama odaklı her parçanın sahibidir:

  • Yerel URL’ler. Yerelin bir yolda (/es/page), bir alt alan adında veya ayrı bir alan adında olması, ön ucun verdiği bir yönlendirme kararıdır — API URL üretmez.
  • Yerel başına canonical. Her yerel sürüm, varsayılan yereli işaret etmek yerine kendisini işaret eden kendi canonical’ını alır.
  • hreflang ve x-default. Ön ucun bilinen yerel yollarından tüm alternatif dil bağlantıları kümesini oluşturun; eşleşmeyen diller için bir x-default dahil — API’nin hreflang kavramı yoktur.
  • İçerik anlaşması ve durum davranışı. Belirli bir girdi için mevcut olmayan bir yerel istendiğinde ne olacağına bilinçli olarak karar verin: varsayılan yerele yönlendirin, o yerelin URL’sinde yedek içeriği sunun veya gerçek bir 404 döndürün — ve hangisi olduğu konusunda tutarlı kalın, çünkü Google “API’nin sessizce İngilizce metin ikame etmesi” ile “bu yerel varyantın mevcut olmaması” durumlarını farklı HTTP durum kodları gerektiren farklı durumlar olarak ele alır.

Pratik tuzak: API düzeyindeki yedekleme, eksik bir çevirinin CMS önizlemesinde iyi görünmesini sağlayabilir (her zaman içerik görürsünüz, asla boş bir alan görmezsiniz), bu da yerel boşlukların genellikle ilk olarak SEO sorunları olarak ortaya çıkması anlamına gelir — yanlış hreflang altında indekslenen yanlış dil başlıkları veya hiçbir editoryal uyarı tetiklemeyen yereller arasında yinelenen içerik.

Site haritaları ve robots.txt

Yoast yoksa otomatik site haritası da yoktur. Programatik olarak oluşturun: Next.js App Router, /sitemap.xml dosyasını bir sitemap.ts dosyasından üretir (CMS’yi derleme veya istek zamanında sorgular); Nuxt’un site haritası modülleri vardır; Gatsby’nin gatsby-plugin-sitemap’i vardır; Astro’nun @astrojs/sitemap’i vardır. Yüksek yayın hacimli sitelerdeki tuzak, bayatlayan derleme zamanı statik site haritalarıdır — içerik türüne göre bölümlenmiş ISR ile yeniden oluşturulan site haritaları kullanın.

Robots.txt de açık olmalıdır — /public içinde statik bir dosya veya oluşturulmuş bir yol (Next.js’te robots.ts). Yanlış yapamayacağınız tek kural: .js veya .css dosyalarını asla engellemeyin. Bunları engellemek oluşturmayı tamamen engeller.

Yayınlamayla senkronize tutma

Önbellek ve yeniden doğrulama, yalnızca bir performans sorunu değil, aynı zamanda bir editoryal doğruluk sorunudur — zaman, etiket veya yol tabanlı geçersiz kılma, bayat içeriği tasarım gereği sunabilir, bu nedenle bir yayınlama eyleminin bir kopyayı önbelleğe alan her katmana ulaşması gerekir, yalnızca CMS’ye değil. Evidence for this claim Time-, tag-, and path-based cache invalidation can serve stale content by design, so publish, unpublish, rename, and locale changes need webhook-triggered purge and rollback handling, not a fixed timer. Scope: Next.js current cache/revalidation model. Confidence: high · Verified: Next.js: Revalidating Yayına geçmeden önce, dört olayda — yayınlama, yayından kaldırma, yeniden adlandırma/slug değişikliği ve yerel güncelleme — bunların her birine ne olduğunu yazın ve test edin:

  • API/CDN önbelleği bu girdi için.
  • Framework sayfa önbelleği (ISR/isteğe bağlı yeniden doğrulama, etiket veya yol tabanlı).
  • CDN uç önbelleği ön ucun önünde.
  • Site haritası — girdi eklendi, kaldırıldı veya yeni bir URL altında yeniden listelendi.
  • Meta veriler — eski canonical/URL tamamen kullanımdan kaldırıldı, yenisiyle birlikte çözümlenmeye bırakılmadı.
  • Geri alma — bir yayın geri alınırsa, temizlemenin yalnızca ileri değil, ters yönde de çalıştığını doğrulayın.

Tetikleyici, CMS’nin yayınlama/yayından kaldırma olayından framework’ünüzün etiket veya yol tabanlı yeniden doğrulamasını (revalidateTag, revalidatePath veya eşdeğeri) çağıran bir web kancası olmalıdır, sabit bir zamanlayıcı değil — bir zamanlayıcı, bu dört olayın tamamının anında güncellemek yerine bir sonraki döngüyü beklemesi anlamına gelir.

İç bağlantılar ve yapılandırılmış veriler

İç bağlantılar gerçek <a href> etiketleri olmalıdır. JavaScript ile gezinme yapan bir <div onClick> veya <span> taranamaz — Googlebot yalnızca gerçek çapaları takip eder. Ve JS ile oluşturulan bağlantılar, oluşturma dalgasına kadar keşfedilmez, bu da gecikme ekler. API odaklı içerik kendi başına bağlantı yapıları üretmez, bu nedenle ilgili yazılar, içerik haritası ve içerik içi bağlantı yüzeylerinin tümü bileşen düzeyinde bağlanmalıdır.

Yapılandırılmış veri, headless’in WordPress’ten daha kolay olduğu nadir bir yerdir: JSON-LD, sıfır istemci paketi maliyetiyle doğrudan sunucu tarafından oluşturulan bir <head> içine girer, kodda sürüm kontrolü yapılır ve eklenti çakışmaları olmaz. İçerik siteleri için olağan türler — Article/BlogPosting, BreadcrumbList, FAQPage, Organization — hepsi geçerlidir. Herhangi bir işleme değişikliğinden sonra Zengin Sonuçlar Testi ile test edin, çünkü JS enjeksiyon zamanlaması testin gördüklerini etkileyebilir.

Önizleme ve hazırlık ortamları

Headless yığınlar, sıklıkla herkese açık olarak erişilebilen önizleme ve dal dağıtım URL’leri (Vercel/Netlify önizleme dağıtımları, CMS taslak uç noktaları) üretir. Google bunları dizine eklerse, sitenizin başka bir ana bilgisayarda tam bir kopyasını görür. Çözümler: ana bilgisayar düzeyinde (ortam yapılandırmasında — yalnızca bir CSR sayfasının geç enjekte edebileceği bir meta etiket değil) bir noindex HTTP başlığı uygulayın, önizlemeleri imzalı belirteçlerin arkasına alın, hazırlık ortamının kendisini asla kurallı hale getirmemesi için ortam duyarlı kurallı URL’ler ayarlayın ve kısa ömürlü önizleme ana bilgisayarları kullanın. Beklenmeyen alan adlarının görünüp görünmediğini görmek için Search Console’u izleyin — bu sizin erken uyarınızdır.

Savunma sırasını doğru kurun, çünkü önce noindex’e uzanıp orada durmak kolaydır. noindex yalnızca Google’ın sayfayı taramasına ve etiketi görmesine izin verilirse çalışır — dizine eklemeyle ilgili bir istektir, erişim kontrolü değildir, bu nedenle sayfanın kendisi herkese açık olarak erişilebilirse kararlı bir tarayıcıya veya sızdırılmış bir bağlantıya karşı hiçbir şey yapmaz. Evidence for this claim A noindex rule is not access control and requires Google to crawl the page to see it; private headless previews should be authenticated first, with noindex as a secondary indexing safeguard. Scope: Google noindex documentation plus Contentful/Sanity preview-token separation as representative platform evidence. Confidence: high · Verified: Google: Block Search indexing with noindex Sanity: Presenting and previewing content Gerçek sınır daha yukarı akışta olmalıdır:

  1. Önce kimlik doğrulama. Önizleme ortamları, herhangi bir şey sunmadan önce imzalı bir belirteç veya oturum açma gerektirmelidir — noindex, erişilebilir kalması gereken nadir sayfa için ikincil bir güvence, birincil kontrol değildir.
  2. Ortam başına ayrı belirteçler ve ana bilgisayarlar. Önizleme ve üretim asla aynı API belirtecini veya ana bilgisayar adını paylaşmamalıdır; önizlemenin belirteci, yayınlanmamış içeriği görmesine izin verilen belirteçtir ve asla bir üretim derlemesinde yer almamalıdır.
  3. Doğru içerik perspektifini sorgulayın. Üretim kodu yalnızca yayınlanmış içeriği sorgular; yalnızca önizleme ortamı taslak/önizleme perspektifini sorgular. Bunu tersine çevirirseniz, üretim kimlik doğrulama ve noindex yerinde olsa bile yayınlanmamış girdileri sızdırabilir.

Bing ve IndexNow

Bingbot artık JavaScript’i Microsoft Edge (Chromium) kullanarak işliyor — Googlebot ile aynı web platformu teknolojisi — ancak bunu Google’dan daha az tutarlı bir şekilde yapıyor. Screaming Frog’un testleri, Bing’in JS dizine eklemesinin “uzaktan güvenilir” olmadığını buldu ve kesin sonuçları şuydu: “SEO’yu ve geceleri uyumayı önemsiyorsanız, istemci tarafı işlemeye güvenmeyin.” Bu nedenle, Bing trafiği önemliyse SSR/SSG daha da önemlidir.

Bing ayrıca bir push modeline çok yaslanır. Headless içerik güncellemeleri bir API üzerinden aktığından ve Bing’i bir WordPress eklentisinin yapacağı gibi uyarmadığından, IndexNow burada özellikle değerlidir — değişen URL’lerin anında bildirilmesi için CMS yayın web kancanıza bir IndexNow tetikleyicisi bağlayın. Fabrice Canel’in tarama ekonomisi çerçevesini akılda tutmakta fayda var: daha az, daha temiz URL daha iyidir, bu nedenle API odaklı fasetli gezinmenin binlerce kurallı hale getirilmemiş parametre URL’si oluşturmasına izin vermeyin.

Trafiği düşürmeden headless’e geçiş

Headless SEO’nun gerçekten bozulduğu yer geçişlerdir. Sektör analizlerine göre, WordPress’ten headless mimariye geçişlerde sıklıkla büyük trafik kayıpları ve uzun toparlanma süreleri görülür. Yaklaşık %50 düşüş ve yaklaşık 523 günlük toparlanma gibi rakamları kesin ölçüler olarak değil, kötü yürütülen bir geçişin ne kadar zarar verebileceğine dair yön gösteren uyarılar olarak değerlendirin. Temel nedenler öngörülebilirdir: bozuk 301’ler (özellikle herkesin eşlemeyi unuttuğu kategori, etiket ve sayfalandırılmış arşiv sayfalarında), eski CMS’den taşınmayan meta veriler ve sessizce CSR’ye dönen bir oluşturma modu. Yalnızca yazıları değil tüm URL’leri envantere alın, yayına geçmeden önce eksiksiz bir 301 eşlemesi hazırlayın, yeni ön uçtaki meta verileri ve canonical’ları doğrulayın, geçiş öncesi ve sonrasında Screaming Frog taramalarını karşılaştırın, sitemap’leri hem GSC’ye hem Bing Webmaster Tools’a yeniden gönderin ve IndexNow’u devreye alın. Tam liste için geçiş kontrol listesi sekmesine bakın.

İlgili okumalar JavaScript SEO ve işleme konularında yer alır — headless SEO aslında her ikisinin de özel bir uygulamasıdır.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.