Otopilot
Ürün Rehberleri

Cloudflare Worker SEO: Sunucu Tarafında Düzeltme

Hazırlayan Yayın: Son güncelleme:

8 dk okuma

Kısa özetCloudflare worker seo kanalı düzeltmeleri sayfa sunucudan çıkarken uygular. Otopilot ile otomatik ya da elle kurulum, test ve kaldırma adımları.

Otopilot SEO eklentileri ve bağlayıcılar: paneldeki işi sitenize taşıyan köprü sayfasının giriş alanı

Sitenizin kaynak koduna dokunmadan, Google'ın okuduğu ilk HTML'i düzeltmenin bir yolu var: sayfayı sunucudan çıkarken değiştirmek. Cloudflare worker seo yaklaşımının özü budur. Siteniz zaten Cloudflare arkasındaysa, ziyaretçiye ve arama motoru botuna giden her yanıt Cloudflare'in ağından geçer. Bu yolun üzerine yerleştirilen küçük bir betik, yanıtı yolda düzenleyebilir; başlık etiketini yeniler, meta açıklamayı değiştirir, yapısal veri ekler, robots.txt dosyasını yeniden yazar.

Otopilot'ta bu işi yapan kanala Cloudflare Worker diyoruz. Bu yazıda kanalın neyi yapıp neyi yapmadığını, nasıl kurulduğunu, güvenliğin nasıl sağlandığını ve gerektiğinde nasıl kaldırıldığını anlatıyoruz. Başlamadan bir sınırı netleştirelim: bu kanal yalnızca Cloudflare arkasında çalışan sitelere uygundur. Alan adınızın DNS'i Cloudflare'de değilse ya da trafik Cloudflare üzerinden geçmiyorsa Worker sayfanıza hiç ulaşmaz.

Pixel ile sunucu tarafı kanal arasındaki fark

Otopilot'un en kolay kurulan kanalı Pixel'dir. Sitenin baş bölümüne bir satır kod eklersiniz, düzeltmeler ziyaretçinin tarayıcısında uygulanır. Kurulumu kolaydır, ama bir sınırı vardır: değişiklikler sayfa tarayıcıda açıldıktan sonra yapılır.

Google sayfanızı iki aşamada işler. Önce sunucunun gönderdiği ilk HTML'i okur, sonra uygun gördüğünde sayfayı bir tarayıcıda çalıştırıp JavaScript'in sonucuna bakar. Google'ın kendi belgelerinde de anlatıldığı gibi bu ikinci aşama her zaman hemen gerçekleşmez. Bu yüzden Pixel ile yapılan değişikliklerin bir kısmı Google tarafından görülmeyebilir. Ayrıca tarayıcıda çalışan bir kod, sunucuda duran dosyalara ve HTTP yanıtının başlıklarına hiç dokunamaz.

Worker ise sayfa daha tarayıcıya ulaşmadan çalışır. Google ilk okumada düzeltilmiş HTML'i görür. Kanallar ekranındaki yetenek matrisinde Worker satırının "Google görür" sütununda yeşil olmasının nedeni budur.

ÖzellikPixelCloudflare Worker
Çalıştığı yerZiyaretçinin tarayıcısıCloudflare ağı, sayfa sunucudan çıkarken
Google ilk HTML'de görür müHer zaman değilEvet
Başlık, meta, yapısal veri, içerikYazabilirYazabilir
robots.txt ve site haritasıYazamazYazabilir
YönlendirmeYazamazYazabilir
Güvenlik başlıklarıYazamazYazabilir
Blog yazısı yayınıYazamazYazamaz
Uygun olduğu siteHer siteYalnız Cloudflare arkasındaki site
Kaynak kod değişikliğiBaş bölüme bir satırGerekmez

Kanallar bölümündeki Önerilen kanal ekranı, etkin kanalınız Pixel ise ve siteniz Cloudflare arkasındaysa Worker'ı listenin en üstüne alır. Hangi düzeltmelerinizin takıldığını görmek için uygulanamayan düzeltmeler yazımıza bakabilirsiniz.

Cloudflare worker seo kanalı neleri değiştirir?

Worker her istekte panelden aldığı düzeltme listesine bakar. Bu listeye manifest diyoruz. Manifest üç bölümden oluşur: sayfa bazlı kurallar, site düzeyindeki dosyalar ve yönlendirmeler.

Sayfa bazlı kurallar. Başlık etiketi, meta açıklama, canonical, meta robots, Open Graph alanları, yapısal veri, başlık etiketleri, görsel alt metinleri ve iç bağlantılar gibi değişiklikler bu bölümdedir. Worker yalnızca UTF-8 kodlanmış HTML yanıtlarına bu kuralları uygular. Sayfa çok büyükse, kodlaması farklıysa ya da düzenleme sırasında bir sorun çıkarsa sayfa olduğu gibi geçirilir.

Site düzeyindeki dosyalar. robots.txt, sitemap.xml, llms.txt ve doğrulama için kullanılan metin dosyaları Worker tarafından doğrudan sunulabilir. Sunucunuzda bu dosyalar hiç olmasa bile ziyaretçi ve bot, Worker'ın verdiği içeriği görür. Site haritası ve robots.txt kurallarını site haritası ve robots.txt rehberimizde ayrıca anlattık.

Yönlendirmeler. Eski bir adresi yenisine taşıyan 301, 302, 307 ve 308 yönlendirmeleri Worker tarafından yanıtlanır. İstek sunucunuza hiç gitmeden doğru adrese yönlendirilir.

Bunlara ek olarak Worker, belirli güvenlik ve dizin başlıklarını HTTP yanıtına ekleyebilir: Strict-Transport-Security, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy ve X-Robots-Tag. Bu listenin dışındaki başlıklara dokunmaz.

Worker'ın yapmadığı işler de var:

  • Yeni sayfa oluşturmaz; var olmayan bir adresi sıfırdan üretmez.
  • Sayfanın adresini (slug) ya da yayın durumunu değiştirmez.
  • Görselleri sıkıştırmaz, biçim dönüştürmez.
  • Tüm sayfayı baştan yazmaz; yalnızca kurala bağlı parçaları değiştirir.
  • Blog yazısı yayınlamaz.

Yönetim ve oturum açma yollarına da dokunmaz. /wp-admin, /wp-login.php, /api/ ve /admin/ ile başlayan istekler kural uygulanmadan geçirilir. Yalnızca GET ve HEAD istekleri işlenir; form gönderimleri gibi diğer istekler doğrudan sunucunuza gider.

İçerik kilidiyle koruduğunuz alanlar manifeste hiç girmez. Bir alanı kilitlediyseniz Worker o alana yazmaz.

Otomatik ve elle kurulum adımları

Worker'ı iki yoldan kurabilirsiniz. İkisi de SEO Onarım'ın Kanal & Kurulum ekranında, Cloudflare Worker kartının içindedir.

Otomatik kurulum en kısa yoldur. Panel sizden üç bilgi ister:

  1. Cloudflare'de oluşturacağınız dar yetkili bir API jetonu. Jetona yalnızca Workers Scripts için düzenleme ve Workers Routes için düzenleme izni verin ve yalnızca bu alan adıyla sınırlayın.
  2. Cloudflare hesap kimliğiniz (Account ID).
  3. Alan adınızın bölge kimliği (Zone ID).

Bu bilgileri girdiğinizde panel önce jetonun geçerli olup olmadığını Cloudflare'e sorar. Ardından Worker betiğini hesabınıza yükler ve alan adınız için bir rota tanımlar. Rota varsayılan olarak projenin başlangıç adresindeki alan adının tamamını kapsar; farklı bir kalıp kullanmak isterseniz bunu da girebilirsiniz. Aynı kalıpla daha önce tanımlanmış bir rota varsa yenisi açılmaz, mevcut rota güncellenir. Betik, panelin adresini, proje kimliğinizi ve panelin ürettiği gizli anahtarı ortam değişkeni olarak taşır. Gizli anahtar Cloudflare'de gizli değişken olarak saklanır.

Elle kurulum, jeton paylaşmak istemeyenler içindir. Panel size Worker kodunu, panel adresini, proje kimliğini ve gizli anahtarı verir. Siz Cloudflare'de bir Worker oluşturup kodu yapıştırır, üç ortam değişkenini tanımlar ve alan adınız için bir rota eklersiniz. Sitenizin hem www'li hem www'siz adresi kullanılıyorsa iki rota gerekebilir.

Hesap kimliği ve bölge kimliği Cloudflare panelinde, alan adınızın genel bakış sayfasında yer alır. İkisi de 32 karakterlik birer kimliktir; panel bu biçime uymayan bir değeri kabul etmez ve kurulumu başlatmadan uyarır. Jeton geçersizse ya da gereken izinlere sahip değilse kurulum yarıda kalmaz, hiç başlamaz: panel önce jetonu doğrular, sonra betiği yükler, en son rotayı tanımlar. Adımlardan biri yetki eksikliği yüzünden reddedilirse ekranda hangi adımın reddedildiği yazar.

Betik hesabınıza alan adınızdan türetilen, otopilot-edge ile başlayan bir adla yüklenir. Böylece Cloudflare'deki Worker listesinde hangisinin Otopilot'a ait olduğunu kolayca ayırt edersiniz. Worker kurulduktan sonra sitenizin /__otopilot/edge adresi küçük bir sağlık yanıtı döndürür; bu adres Worker'ın çalışıp çalışmadığını tarayıcıdan kontrol etmek için kullanılabilir.

İki yolda da kanal ilk anda etkin olmaz. Worker panelden ilk düzeltme listesini çektiğinde kanal etkin hale gelir; o andan sonra düzeltmeler Worker üzerinden siteye gider.

Kurulumun ardından Bağlantıyı test et düğmesini kullanın. Panel sitenizin başlangıç sayfasını açar ve Worker'ın yanıta eklediği işaret başlığını arar. İşaret varsa Worker çalışıyordur ve kaç kural uyguladığı da görünür. İşaret yoksa iki olasılık vardır: site panelden açılamadı ya da Worker sayfanın önünde değil. İkinci durumda neredeyse her zaman rota eksik ya da yanlış kalıpla tanımlanmıştır.

İmzalı istek ve güvenlik düzeni

Bir sitenin her yanıtını değiştirebilen bir betik, ciddiye alınması gereken bir yetkidir. Bu yüzden Worker ile panel arasındaki konuşma iki yönlü imzayla korunur.

Worker manifest isterken isteğine bir zaman damgası ve bu damgayla proje kimliğinden üretilmiş bir imza ekler. İmza, yalnızca panelin ve Worker'ın bildiği gizli anahtarla hesaplanır. Panel imzayı doğrular; zaman damgası birkaç dakikadan daha eskiyse ya da imza tutmazsa isteği reddeder. Manifestin kendisi de panel tarafından imzalanır; Worker imzası tutmayan bir listeyi kullanmaz. Böylece araya giren biri ne sahte bir liste isteyebilir ne de Worker'a sahte bir liste verebilir.

Worker düzeltme listesini kısa süreli olarak önbellekte tutar ve her istekte panele gitmez. Panele geçici olarak ulaşılamazsa elindeki son geçerli listeyle çalışmaya devam eder; bu liste de belli bir süreden eskiyse kullanılmaz. Herhangi bir hata, eksik ayar ya da ulaşılamayan panel durumunda site olduğu gibi geçirilir. Yani Worker'ın bozulması sitenizi kapatmaz; en kötü durumda düzeltmeler geçici olarak uygulanmaz.

Değiştirilen içerik de denetlenir. Kurallarla eklenen etiketlerde olay öznitelikleri ve tehlikeli adres şemaları kabul edilmez. Bu, panelde hazırlanan bir değişikliğin sayfanıza istemediğiniz bir betik sokmasını engelleyen bir önlemdir.

Worker'ı kaldırmak ve dikkat edilecekler

Worker'ı kaldırmak da kurmak kadar kolaydır. Otomatik kurulumla kurduysanız kaldırma işleminde panel, kayıtlı jetonla rotayı ve betiği Cloudflare hesabınızdan siler. Elle kurduysanız panel bağlantıyı kapatır; Cloudflare'deki Worker'ı ve rotayı sizin silmeniz gerekir. Her iki durumda da etkin kanal Worker ise kanal seçimi temizlenir ve bekleyen düzeltmeler yeni bir kanal seçene kadar bekler.

Kaynak koda hiç dokunulmadığı için Worker kaldırıldığında site eski haline döner. Bu bir avantajdır ama bir sonucu da vardır: Worker üzerinden yapılan düzeltmeler sunucunuzda kalıcı değildir. Uzun vadede kalıcı olmasını istediğiniz değişiklikleri, örneğin önemli sayfaların başlıklarını, ileride sitenizin şablonuna da işlemek iyi bir fikirdir. Bunun için SEO geliştirici görevleri yazımızdaki geliştirici kartlarından yararlanabilirsiniz.

Bir örnekle toparlayalım. WordPress dışı bir altyapıyla çalışan, Cloudflare arkasındaki bir kurumsal site düşünün. Proje Pixel ile başlamış, başlık ve açıklama düzeltmeleri tarayıcıda uygulanıyor. Ama robots.txt düzeltmesi ve eski bir kampanya sayfasının yeni adrese yönlendirilmesi takılı kalmış, çünkü Pixel bu alanlara yazamıyor. Kanallar bölümündeki önerilen kanal ekranı bu durumda Worker'ı ilk sıraya koyar ve kartta takılan iki düzeltmeyi çözebileceğini yazar. Worker kurulup ilk listeyi çektiğinde robots.txt Worker tarafından sunulmaya, eski adres de yeni adrese yönlendirilmeye başlar; başlık ve açıklama değişiklikleri ise artık ilk HTML'in içindedir.

Birkaç pratik not:

  • Sitede başka bir Worker çalışıyorsa rotaların çakışmamasına dikkat edin; aynı adres kalıbına tek Worker bağlanabilir.
  • Cloudflare önbelleğinde HTML sayfaları uzun süreli tutuluyorsa, düzeltmelerin görünmesi önbellek süresine bağlı olarak gecikebilir.
  • Jetonu yalnızca bu alan adı için ve yalnızca gereken iki izinle oluşturun. Hesabınızın tamamına yetki veren bir anahtar kullanmayın.

Worker kanalı, SEO Onarım'ın kanallarından biridir. Diğer kanalları ve hangisinin hangi siteye uygun olduğunu bağlantılar sayfasında, onarımın genel işleyişini ise SEO onarım sayfasında bulabilirsiniz.

Sık sorulan sorular

Sitem Cloudflare arkasında değil, Worker kullanabilir miyim?

Hayır. Worker, trafiği Cloudflare üzerinden geçen sitelerde çalışır. Siteniz Cloudflare arkasında değilse önerilen kanal ekranı altyapınıza uygun başka bir kanal önerir; Next.js ya da statik sitelerde bu genellikle GitHub kanalıdır.

Worker sitemi yavaşlatır mı?

Worker düzeltme listesini önbellekte tuttuğu için her istekte panele gitmez. Sayfa düzenlemesi Cloudflare'in ağında yapılır. Yine de her ek işlem gibi küçük bir maliyeti vardır; sitenizin hızını hız aracıyla izleyebilirsiniz.

Panel kapanırsa sitem ne olur?

Site açık kalır. Worker panele ulaşamazsa elindeki son geçerli listeyle çalışır; o liste de eskidiğinde sayfaları değiştirmeden geçirir.

Elle kurulumda gizli anahtarı nereye yazmalıyım?

Cloudflare'deki Worker ayarlarında, ortam değişkenleri bölümünde gizli (secret) türünde bir değişken olarak tanımlayın. Panel adresi ve proje kimliği düz metin değişkeni olabilir.

Kurduktan sonra kanal neden hemen etkin olmuyor?

Kanal, Worker panelden ilk düzeltme listesini çektiğinde etkin olur. Bağlantı testinde işaret başlığı görünmüyorsa rota tanımlı değildir ya da yanlış adres kalıbıyla tanımlanmıştır.

Kaynaklar

Bu sayfayı kim hazırladı?

Bu içeriği Otopilot kurucusu Ersin Dorlak, ürünü geliştiren ekiple birlikte hazırladı. Deneyimimizi kendi sitemizde ediniyoruz: otopilot.net'i de aynı panelden, 95 kurallı denetimle tarıyor ve çıkan bulguları düzeltiyoruz. Ölçmediğimiz bir rakamı ölçülmüş gibi yazmıyoruz.

Ekibimiz ve ilkelerimiz

Sitenizde aynı kontrolleri yapın

Ücretsiz site analiziyle sayfalarınızdaki teknik ve içerik sorunlarını görün. Düzeltmeleri panelde hazırlamak ve sitenize uygulamak için planları inceleyin.

İlgili yazılar

Tüm yazılar