Cloudflare Workers SEO: tarama ve performans rehberi

Cloudflare Workers üzerinde teknik SEO değişikliklerinin nasıl yapılacağını öğrenin: fetch işleyicisi; canonical, hreflang ve JSON-LD eklemek için HTMLRewriter; KV destekli yönlendirmeler; Cache API, uç önbellek ve Cache-Control arasındaki fark; cloaking sınırı ve Bot Fight Mode'un Googlebot'u nasıl engelleyebileceği.

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

Cloudflare Workers SEO, Cloudflare'in sunucusuz çalışma zamanında teknik SEO uygulamaktır: Bir Worker yalnızca rotasıyla eşleşen istekleri görür ve bu isteklerin her biri, isteği, yanıt üstbilgilerini ve yanıt gövdesini yeniden yazdığınız tek bir fetch işleyicisinden geçer. Gövde, HTMLRewriter aracılığıyla yeniden yazılır. Bu, CMS dağıtımı yapmadan canonical etiketi eklemenin, hreflang'i düzeltmenin veya JSON-LD eklemenin gerçek mekanizmasıdır ve eksik, yinelenen ya da HTML olmayan durumlarda da idempotent çalışmalıdır. Büyük ölçekli yönlendirmeler KV veya D1'de tutulmalıdır; küçük kümeler için Bulk Redirects/Rules daha basittir. Ancak sistemlerin çakışmaması için her URL'ye tek bir sahip atayın. Üç ayrı şey aynı "cache" adıyla anılır: Workers Cache API, Cloudflare uç önbelleği ve kaynağın Cache-Control üstbilgisi. Bunları birbirine karıştırmak, eklenen bir etiketin görünmediği izlenimine yol açar; sorunu önbellek anahtarı, katman, TTL ve geçersiz kılma üzerinden teşhis edin. Kesin kural cloaking'dir: Googlebot'a ve kullanıcılara aynı mantığı uygulayın. Workers'a özgü en yaygın kullanıcı kaynaklı sorun, WAF izin kurallarınızın erişemediği bir işlem hattında çalışan Bot Fight Mode'un Googlebot'u engellemesidir. SEO'yu etkileyen her değişikliği, kaydedilmiş sürüm meta verileri ve test edilmiş bir geri alma yöntemiyle yayınlayın; ardından GSC URL Inspection ve CF-Cache-Status üstbilgisiyle doğrulayın. Genel kavram için Edge SEO merkezine bakın.

TL;DR — Bir Cloudflare Worker yalnızca yapılandırılmış rotasıyla eşleşen istekleri görür ve her isteği tek bir fetch işleyicisinde yakalar. Burada sırayla üç işlem yaparsınız: isteği, yanıt üstbilgilerini ve HTMLRewriter aracılığıyla yanıt gövdesini yeniden yazarsınız. “Canonical eklemek” veya “başlığı düzeltmek” ifadelerinin arkasındaki gerçek mekanizma budur. Yeniden yazma işlemi idempotent olmalı ve yalnızca sorunsuz senaryoda değil; eksik, yinelenen ve HTML olmayan yanıtlarla da test edilmelidir. Büyük ölçekli yönlendirmeler KV’de (hızlı anahtar araması) veya D1’de (ilişkisel) tutulur; Bulk Redirects/Rules küçük kümeler için daha basittir. Genellikle sunucu düzeyindeki yönlendirmeler yerine uç düzeyindeki yönlendirmeleri tercih ederim. Ancak her URL için tek bir sahip seçin; aynı yolda bir Worker yönlendirmesi, Bulk Redirect ve kaynak yönlendirmesi birlikte tetiklenebilir. Üç farklı şey “cache” adıyla anılır: Workers Cache API (caches.default), Cloudflare uç önbelleği ve kaynak Cache-Control. Bunları karıştırmak, “etiketim görünmedi” sorununun en yaygın nedenidir. Bayat içeriği tahmin yürüterek değil; önbellek anahtarı, katman, TTL ve geçersiz kılma üzerinden teşhis edin. Google’ın ETag / If-None-Match / 304 rehberi, yanıtın sahibi olan bir Worker için doğrudan uygulanabilir. Cloaking sınırı şudur: her isteği gönderen için aynı mantık uygulanmalıdır. Workers’a özgü en yaygın kullanıcı kaynaklı sorun, WAF Ruleset Engine dışında çalışan Bot Fight Mode’dur; bu nedenle sıradan “allow” kuralları ona erişemez. SEO’yu etkileyen her değişikliği kaydedilmiş sürüm meta verileri, test edilmiş bir geri alma yöntemi ve bir durdurma koşuluyla yayınlayın; ardından GSC URL Inspection ve CF-Cache-Status ile doğrulayın.

Bu makale neyi kapsar (ve neyi kapsamaz)

Bu makale, Edge SEO merkezinin uygulayıcılara yönelik, kod düzeyindeki eşlikçisidir. Genel tanım, platform karşılaştırma tablosu (Workers, Akamai, Fastly, Lambda@Edge, Vercel, Netlify), Snippets ile Workers arasındaki seçim ve cloaking kuralının ayrıntılı açıklaması merkezde yer alır. Bunları burada yeniden ele almıyorum. Bu sayfa, özellikle Cloudflare Workers konusuna bir seviye daha derinden yaklaşır: bu sitenin kendi Worker’ının da çalıştığı ve wrangler.toml dosyasındaki run_worker_first üzerinden bağlandığı çalışma zamanını, “edge compute etiket ekleyebilir” gibi soyut ifadeler yerine gerçek API’lerle açıklar.

Koddan önce bir not: Google’ın Cloudflare-Workers’a özel bir dokümantasyonu yoktur. Bunu yöneten resmi yönergeler (gizleme politikası, HTTP önbellekleme, CDN taraması) geneldir ve herhangi bir uç uygulaması için geçerlidir. Bunu açıkça söylemeyi, var olmayan bir Google dokümanı varmış gibi ima etmeye tercih ederim.

Bir Worker istek/yanıt yolunda nasıl konumlanır

Bir Worker, V8 izolatlarında çalışan sunucusuz bir betiktir. Yönlendirildiği her istek bir fetch işleyicisinden girer. Evidence for this claim A Cloudflare Worker receives HTTP requests through a fetch handler. Scope: Cloudflare Workers handlers. Confidence: high · Verified: Cloudflare Workers: Fetch handler “Yönlendirildiği” bu cümlede gerçek bir iş yapıyor: bir Worker yalnızca yapılandırılmış rotası veya özel alan adıyla eşleşen istekleri görür — diğer her şey fetch işleyicisine hiç ulaşmaz. İki rotanın aynı URL ile eşleşebildiği durumlarda, daha spesifik desen öncelik kazanır; bu nedenle bir Worker’ın belirli bir URL için davranışına güvenmeden önce rotanın gerçekten eşleştiğini doğrulayın ve o rotada hangi dağıtılmış sürümün canlı olduğunu kontrol edin (Wrangler ortamları ve kademeli yayınlar, trafiği sunan sürümün her zaman editörünüzdeki sürüm olmadığı anlamına gelir). İşleyicinin içinde sırayla üç farklı şey yapabilirsiniz:

  1. İsteği kaynağınıza gitmeden önce yeniden yazın.
  2. Yanıt başlıklarını geri dönerken yeniden yazın.
  3. Yanıt gövdesiniHTMLRewriter aracılığıyla — yeniden yazın.

En temel yapı şöyledir:

export default {
  async fetch(request, env, ctx) {
    // 1. (optionally) inspect/modify the request
    const response = await fetch(request);   // hit the origin

    // 2. rewrite headers
    const headers = new Headers(response.headers);
    headers.set("X-Robots-Tag", "index, follow");

    // 3. rewrite the body with HTMLRewriter (see next section)
    return new Response(response.body, { ...response, headers });
  },
};

Cloudflare Workers araştırmalarından yola çıkarak “edge SEO” terimini ortaya atan SALT.agency ekibi, araçlarını bir filtre zinciri biçiminde oluşturdu: istek filtresi, yanıt filtresi ve gövde filtresi. Bu, aynı üç aşamalı modelin adlandırılmış hâlidir. Bu üç aşamayı zihninizde ayrı tutmak, Worker kodunun anlaşılır kalmasını sağlar.

HTMLRewriter ile HTML yeniden yazma

HTMLRewriter, Cloudflare’in akış tabanlı HTML ayrıştırıcısıdır ve her “etiket ekleme” işleminin arkasındaki gerçek API’dir. Evidence for this claim Cloudflare HTMLRewriter provides selector-based handlers that can transform streamed HTML elements. Scope: Cloudflare Workers HTMLRewriter API. Confidence: high · Verified: Cloudflare Workers: HTMLRewriter .on(selector, handler) ile öğe işleyicileri kaydedersiniz; işleyici de getAttribute / setAttribute, prepend / append, setInnerContent ve replace yöntemlerine erişir. Akış tabanlı çalıştığı için belgenin tamamını belleğe yüklemezsiniz.

Canonical etiketi ekleme veya düzeltme

class CanonicalHandler {
  constructor(url) { this.url = url; }
  element(el) { el.setAttribute("href", this.url); }
}

const rewriter = new HTMLRewriter()
  .on('link[rel="canonical"]', new CanonicalHandler("https://example.com/preferred/"));

return rewriter.transform(response);

Sayfada hiç canonical etiketi yoksa mevcut bir etiketi düzenlemek yerine head öğesine bir işleyici bağlar ve append ile yeni bir etiket eklersiniz. Her iki durumda da canonicalization konusundaki dersi unutmayın: rel=canonical bir komut değil, ipucudur. Worker bunu platformun tamamında tutarlı biçimde ayarlamanızı sağlar, ancak son kararı yine Google verir.

Yukarıdaki CanonicalHandler, etiketin zaten bulunduğunu ve yanıtın HTML olduğunu varsayar. Üretim ortamında bu iki koşul da garanti değildir. Yanlış uygulama, sayfada tek canonical etiketi yerine iki tane bulunmasına yol açabilir. Böyle bir yeniden yazma işlemini yayınlamadan önce idempotent hâle getirin ve şu durumlarla test edin:

  • Mevcut canonical etiketi yok — işleyiciniz bu durumu algılamalı ve hiçbir öğeyle eşleşmeyen link[rel="canonical"] seçicisinde sessizce hiçbir şey yapmamak yerine head içine append ile bir etiket eklemelidir.
  • Zaten yinelenen veya hatalı biçimlendirilmiş bir canonical etiketi var — fazladan etiketi kaldıracağınıza mı, yoksa yeniden yazma işleminizin ikinci bir etiket eklemesine izin mi vereceğinize karar verin. İkincisi bir uç durum değil, gerçek bir hatadır; yinelenen canonical etiketleri sık rastlanan kullanıcı kaynaklı sorunlardandır.
  • Yanıt HTML değil — aynı Worker’dan geçen bir API rotası, görsel veya yönlendirme yanıtı kesinlikle HTMLRewriter ile işlenmemelidir. Dönüşümü yalnızca gerçekten denetlediğiniz rotalar ve içerik türleriyle sınırlandırın.
  • Dönüşüm aynı yanıtta iki kez çalışıyor (yeniden deneme veya iç içe bir fetch) — ikinci bir etiket eklemediğini doğrulayın.

hreflang alternatiflerini ekleme veya düzeltme

Yapılandırmanın yönettiği aynı mekanizma kullanılır. Her locale için head içine bir link[rel="alternate"] eklersiniz. Alternatifleriniz locale bazında ve ilişkisel yapıdaysa bu yapılandırmanın yeri D1’dir; düz bir arama tablosuysa KV yeterlidir. Önemli nokta, HTMLRewriter’ın bunları her isteği gönderen için aynı biçimde eklemesidir; kullanıcı aracısına göre dallanmazsınız.

JSON-LD yapılandırılmış veri ekleme

new HTMLRewriter().on("head", {
  element(head) {
    head.append(
      `<script type="application/ld+json">${JSON.stringify(schema)}</script>`,
      { html: true }
    );
  },
});

Ölçekte sorun yaratan CPU limitleri

Karşı çıktığım rakip iddialarından biri “milisaniyenin altında, hiçbir kısıtlama yok” söylemidir. Gerçek sınır CPU süresidir: ücretsiz planda 10 ms, ücretli planda 30 ms (fetch beklenirken geçen duvar saati süresi sayılmaz; CPU süresi sayılır). Tipik yeniden yazma işlemlerinde bunu hiç fark etmezsiniz. Ancak çok büyük sayfalarda yoğun HTMLRewriter geçişleri yaparken bu, korkutma amacıyla söylenen bir şey değil, tasarımda hesaba katılması gereken gerçek bir kısıtlamadır.

Uçta yönlendirmeler: KV vs D1 vs Kurallar

Genellikle yönlendirmelerin sunucuda olması yerine uçta (CDN seviyesinde) olmasını tercih ederim — bu, iş yükünü kaynağınızdan alır ve sayfa hiç oluşturulmadan önce uygulanır. Özellikle Cloudflare’da, Ahrefs’teki SEO için yönlendirmeler rehberimde birkaç seçeneğiniz olduğunu belirttim: tek veya toplu yönlendirmeler, yönlendirme kuralları, sayfa kuralları veya anahtar-değer çiftleri olan Worker’lar — veya bir yönlendirme eklemek için başlıkları değiştiren bir Worker.

Worker tabanlı bir tablo için KV doğal evdir: URL’ye göre anahtarlanan hızlı, nihai olarak tutarlı bir anahtar araması.

export default {
  async fetch(request, env) {
    const url = new URL(request.url);
    const target = await env.REDIRECTS.get(url.pathname);   // KV namespace
    if (target) return Response.redirect(target, 301);
    return fetch(request);
  },
};

Yönlendirmeler ilişkisel olduğunda (örneğin sorgulamak istediğiniz locale veya segment bazlı SQL verileri varsa) D1 kullanın. Bir Worker’ın ne zaman gereğinden fazla karmaşık olduğunu da bilin: küçük ve statik bir yönlendirme kümesi için Cloudflare’in Bulk Redirects veya Redirect Rules özellikleri daha basittir ve hiç kod gerektirmez. Elli yönlendirme için kendi KV Worker’ınızı yazmayın.

Belirli bir URL için tek bir sahip seçin ve bir Worker yönlendirmesinin, bir Toplu Yönlendirmenin, bir Yönlendirme Kuralının ve bir kaynak yönlendirmesinin aynı yola uygulanmasına izin vermeyin — bunlar aynı istekte tetiklenebilen ayrı sistemlerdir ve birden fazlası eşleştiğinde, temiz bir yönlendirme yerine öncelik sırasını hata ayıklıyorsunuz demektir. Herhangi bir yere bir yönlendirme eklemeden önce, diğer sistemlerde o yol için zaten bir tane olup olmadığını kontrol edin ve katmanı eşleşme karmaşıklığına (basit 1:1 ve desen tabanlı), ölçeğe ve kimin gözlemlemesi veya geri alması gerektiğine göre seçin — bir Worker yönlendirmesi kodunuzda ve günlüklerinizde yaşar; bir Toplu Yönlendirme veya Kural panelde yaşar ve teknik olmayan birinin denetlemesi veya geri alması daha kolaydır.

Önbelleğe alma: aynı kafa karıştırıcı adla üç farklı şey

Bu, rakip sayfaların atladığı bölümdür ve en çok “değişikliğim neden görünmedi” kafa karışıklığını yaratan bölümdür. Önbellek kelimesini paylaşan üç ayrı katman vardır:

  • Workers Cache APIcaches.default ve caches.open(). Bu, kodda okuyup yazdığınız, Worker kapsamında programlanabilir bir önbellektir.
  • Cloudflare uç önbelleği — varlıklarınızı sunan CDN önbelleği. Cache API’den farklıdır.
  • Kaynak Cache-Control — kaynağınızın (veya Worker’ınızın) ayarladığı ve yukarıdakilerin her ikisini ve Googlebot’un ne yaptığını etkileyen başlıklar.

Bunları birbirine karıştırırsanız, bir değişikliğin dağıtılmadığına yemin edersiniz, oysa sadece temizlemediğiniz bir katmandan sunuluyordur.

Bir değişiklik gerçekten görünmediğinde, tahmin etmeyin — katman katman teşhis edin:

  1. Önbellek anahtarı. İki isteğin aynı önbellek girdisiyle eşleşip eşleşmediğini hangi istek nitelikleri belirliyor? Bunlar URL; önbellek anahtarınıza dahil edilmişse üstbilgiler veya çerezler olabilir. Önbellek anahtarında bulunmayan bir niteliğe göre değişen yeniden yazma işlemi yanlış varyantı sunabilir.
  2. Yanıtı sunan katman. Uç önbelleğin yanıt verip vermediğini veya isteğin Worker’ınıza ulaşıp ulaşmadığını görmek için CF-Cache-Status (HIT/MISS/EXPIRED/DYNAMIC) değerini kontrol edin.
  3. Konum/durum. Cloudflare önbelleği veri merkezlerine dağıtılmıştır; bir temizleme işlemi veya yeni dağıtım, tüm uç konumlarını mutlaka anında geçersiz kılmaz.
  4. TTL ve onu belirleyen kural. TTL’yi bir önbellek kuralının mı, kaynağınızdan gelen bir Cache-Control üstbilgisinin mi, yoksa Worker’ınızın ayarladığı bir üstbilginin mi denetlediğini doğrulayın.
  5. Geçersiz kılma. Belirli URL’yi mi, tüm önbelleği mi temizlediniz, yoksa TTL’nin dolmasını mı beklediniz? Worker’a ait bir Cache API girdisinin (caches.default) ayrıca açıkça delete() ile silinmesi gerekir; CDN önbelleğini temizlemek bu girdiyi etkilemez.

Googlebot’un ETag / If-None-Match / 304 ile yaptıkları

Worker’ınız yanıtı üretiyor veya yeniden yazıyorsa önbellek üstbilgilerinin sahibidir. Dolayısıyla Google’ın Aralık 2024 tarihli HTTP önbellekleme rehberi sizin için doğrudan uygulanabilir niteliktedir. Google, ETag/If-None-Match ve Last-Modified/If-Modified-Since aracılığıyla sezgisel HTTP önbelleklemeyi destekler; hataya daha az açık olduğu için ETag kullanımını önemle tavsiye eder ve tarayıcının gönderdiği ETag eşleştiğinde sunucunuzun gövdesiz bir 304 Not Modified yanıtı döndürmesi gerektiğini belirtir. Yanıt üreten bir Worker tam olarak bunu uygulayabilir: bir ETag hesaplayabilir, bunu If-None-Match ile karşılaştırabilir ve doğrudan 304 döndürebilir. Böylece işlem gücünden tasarruf eder ve Googlebot’a hızlı, önbelleğe alınabilir bir sinyal verir.

max-age yeniden tarama takası

Google ayrıca tarayıcıların belirli bir URL’yi ne zaman yeniden tarayacaklarına karar vermelerine yardımcı olmak için Cache-Control: max-age ayarlamayı düşünmenizi önerir. HTML’i yeniden yazan bir Worker açısından sorun şudur: Worker tarafından eklenen etiketleri yeni değişmiş bir sayfada agresif bir max-age kullanmak, Googlebot’un az önce yayınladığınız güncellemeyi görmesini geciktirebilir. Yeniden yazılmış HTML’e uzun bir önbellek ömrü verip konuyu unutmayın.

Gizleme sınırı, Workers’a uygulandı

Workers açısından kesin kural şudur: her isteği gönderen için aynı mantığı çalıştırın. Google’ın spam politikası, sıralamaları manipüle etmek amacıyla kullanıcılara ve arama motorlarına farklı içerik sunmayı cloaking olarak tanımlar ve özellikle yalnızca isteği gönderen bir arama motoru olduğunda metin veya anahtar kelime eklemeyi örnek gösterir.

Birkaç açıklama, çünkü insanlar burada aşırıya kaçıyor:

  • User-Agent’ı incelemek kendiliğinden cloaking değildir. Bot trafiğini günlüğe kaydetmek veya önbelleğe alınmış bir yanıtı herhangi bir istemciye daha hızlı sunmak sorun değildir. Sınır, sıralamaları manipüle etmek amacıyla isteği gönderenin kimliğine göre içeriğin farklılaştırılmasıdır.
  • Workers üzerinde sayfa bazlı A/B testi yapılabilir. Kullanıcıları URL’ye göre ayırmak ve her isteği göndereni aynı şekilde ele almak meşrudur. İsteği kimin gönderdiğine göre, yani bot ile insan arasında ayrım yapmak ise meşru değildir.

Güvenli yaklaşımın uygulamalı bir örneği bu sitenin kendi önizleme geçididir: bir çerez gizli değerle eşleşmediği sürece tüm /preview/ yollarına 404 döndüren bir Worker kullanılır. Doğru çereze sahip olmayan herkese, Googlebot dahil, aynı 404 yanıtını verir. Güvenli yapı tam olarak budur: botlardan bir şeyi gizleyip kullanıcılara başka bir şey göstermez; tek bir kuralı herkese eşit biçimde uygular.

Workers üzerinde düzgün biçimde oluştursanız bile yalnızca botlara yönelik bir ön işleme adımına güvenmeyin. Google, dinamik oluşturmayı geçici bir çözüm olarak nitelemiş ve uzun vadeli bir çözüm olmadığını belirtmiştir; yalnızca botlar için ön işleme yapan bir Worker da kullanımdan kaldırılan bu yaklaşımı devralır.

Bir Worker Googlebot’u nasıl yanlışlıkla engelleyebilir veya yavaşlatabilir

Bu, Workers’a özgü biçimde kendi ayağınıza sıkmanın en yaygın yoludur ve genellikle sorun Worker kodunuzda değildir.

Bot Fight Mode, Ruleset Engine dışında çalışır

Bot Fight Mode (ve Super Bot Fight Mode), Googlebot dahil meşru tarayıcıları yanlışlıkla tehdit olarak algılayabilir. Buradaki tuzak şudur: Bot Fight Mode, WAF Ruleset Engine’den ayrı bir işlem hattında değerlendirilir. Bu nedenle sıradan WAF “allow” veya “skip” özel kurallarınız onu geçersiz kılamaz. Bot Fight Mode Googlebot’a doğrulama adımı uyguluyorsa bunu bir izin kuralıyla düzeltemezsiniz; modun kendisini değiştirmeniz veya devre dışı bırakmanız gerekir. (Bu özelliğe güvenmeden önce güncel işleyişi Cloudflare’in Bot Fight Mode ve Super Bot Fight Mode belgelerinden doğrulayın; bot ürünleri değişebilir.)

Doğrulanmış botlar özel kural deseni

Cloudflare, cf.client.bot alanını ve bir doğrulanmış botlara izin deseni sunar; böylece özel kurallarınızda bilinen iyi tarayıcılara izin verebilirsiniz — WAF tarafı için yararlıdır, ancak (yukarıdaki gibi) Bot Fight Mode’a ulaşmaz.

CDN’nin kendisi nötrden olumluya

Yaygın yanılgıyı açıklığa kavuşturalım: CDN olarak Cloudflare SEO’ya zarar vermez. Google’ın 2024 tarihli Crawling December çalışması, bir CDN algıladığında Google’ın tarama hızını artırdığını; ancak CDN’nin WAF veya bot kuralları aracılığıyla Googlebot’u yanlışlıkla engelleyebileceğini ve bot doğrulama ara sayfası yerine 503 yanıtı vermenin daha iyi olduğunu belirtir. Risk altyapının kendisi değil, yanlış yapılandırılmış bir Worker veya bot ayarıdır.

Googlebot’un gerçekte ne aldığını doğrulama

Herhangi bir Worker dağıtımından sonra, bir tarayıcının gerçekte ne aldığını doğrulayın — varsaymayın:

  • GSC URL Inspection → Test Live URL. Sayfayı Google gibi getirir ve oluşturulmuş HTML’i gösterir; böylece eklediğiniz canonical/hreflang/JSON-LD verilerinin gerçekten mevcut olduğunu doğrulayabilirsiniz.
  • HTML ile birlikte CF-Cache-Status değerini kontrol edin. HIT / MISS / EXPIRED, yeni bir Worker yanıtına mı yoksa önbelleğe alınmış bir yanıta mı baktığınızı gösterir. Bu, aslında önbellek katmanından kaynaklanan bir “değişiklik görünmedi” sorununu yakalamanın en hızlı yoludur.
  • Doğrudan Googlebot olarak getirin. Googlebot’un kullanıcı aracısıyla istek gönderip yanıtları karşılaştırın. Ancak yalnızca dizenin eşleşmesi kimliği kanıtlamaz; gerçek Googlebot’u, Google’ın yayımladığı aralıkları kullanarak ters ve ileri DNS sorgularıyla doğrulayın (Scripts sekmesine bakın).

Workers’a özel dağıtım hijyeni

Başarılı bir wrangler deploy komutu, betiğin gönderildiğini söyler — Googlebot’un doğru işlenmiş çıktıyı aldığını söylemez. SEO’yu etkileyen her Worker değişikliğini yalnızca bir gönderim değil, kaydı tutulan bir sürüm olarak ele alın:

  • Rotalarınızın kapsamını daraltın. Bir Worker’ı varsayılan olarak /* üzerinde çalıştırmayın. wrangler.toml içindeki rota desenlerini yalnızca gereken yollarla eşleştirin; böylece bir hata tüm sitenizi devre dışı bırakamaz.
  • Ölçek sözü vermeden önce güncel sınırları kontrol edin. CPU süresi, alt istek sayısı ve betik boyutu sınırları plana göre değişir ve zamanla güncellenir. Belirli bir sınıra göre yeniden yazma tasarlamadan önce, hatırladığınız bir sayıya güvenmek yerine Cloudflare’in güncel sınırlar sayfasını doğrulayın.
  • Her yayın için sürüm meta verilerini kaydedin. Cloudflare’in versions and deployments modeli her dağıtımın kaynak sürümünü, uyumluluk tarihini, binding’lerini ve rotalarını izler. Hangi rotada hangi sürümün canlı olduğunu kaydedin; böylece “Worker X yapıyor” iddiası, editörünüzdeki kodla değil gerçekten dağıtılmış sürümle karşılaştırılabilir.
  • Wrangler ortamlarıyla sürümleyin ve geri alın. Önce hazırlık ortamına dağıtın, yüzde bazında kademeli yayın yapın ve önceki sürüme anında dönebilme olanağını koruyun.
  • Yayını izlemek için kapsamı belirlenmiş günlükler kullanın; sınırlarını unutmayın. Cloudflare’in Workers Logs özelliği ve canlı günlük izleme, kademeli bir yayında hata ayıklamaya yardımcı olabilir. Ancak günlükler örneklenir ve sınırlı süre saklanır; bunları tüm tarayıcı ziyaretlerinin eksiksiz kaydı olarak değil, yakaladıkları isteklere ilişkin kapsamlı kanıt olarak değerlendirin.
  • Bir durdurma koşulu belirleyin ve gerekmeden önce geri alma işlemini test edin. Hangi gözlemlenen davranışın (hata oranı, noktasal kontrolde yanlış yanıt veya tarama hızında düşüş) yayını durduracağını önceden belirleyin ve geri alma yolunun çalıştığını varsaymak yerine doğrulayın.
  • Önbelleği temizlemeyi dağıtımın bir parçası yapın. Üç önbellek katmanı devrede olduğundan temizleme/geçersiz kılma işlemini sonradan düşünülecek bir konu değil, yeniden yazma işlemini yayınlamanın açık bir adımı hâline getirin.

Bir Bing notu ve ileriye dönük bir şey

Bing’in de Cloudflare/edge’e özgü bir rehberi yoktur. Ancak Worker dağıtımı anında gerçekleşirken tarama aynı hızda gerçekleşmediği için IndexNow doğal bir tamamlayıcıdır. Worker tarafından yönetilen bir yönlendirme tablosu veya etiket değişikliği yayınlanır yayınlanmaz IndexNow’ı tetikleyerek Bing’in ve katılımcı diğer arama motorlarının içeriği kısa sürede yeniden taramasını sağlayın. Ayrıca Cloudflare’in uçta zorunlu canonicalization’ı bir ürün özelliği olarak sunduğu “Redirects for AI Training” özelliğine de göz atmaya değer: doğrulanmış AI eğitim tarayıcıları tek bir ayarla canonical URL’nize 301 ile yönlendirilir. Bu, kendi Worker’ınızda canonical mantığını elle yazmakla yararlı bir karşılaştırma sunar. Ayrıca “tarayıcılara kullanıcılardan farklı içerik sunma” yaklaşımına Microsoft’un Cloudflare’in diğer AI tarayıcı özellikleri bağlamında kamuoyu önünde kuşkuyla yaklaştığını hatırlatır; bot koşuluna bağlı her Worker için iyi bir sağduyu kontrolüdür.

Daha geniş resim için — platform karşılaştırması, Snippets vs. Workers, geliştirici kuyruğu ve yönetişim açıları — Edge SEO merkezine geri dönün.

Add an expert note

Pin an expert quote

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