TrueURL
TrueURL

Menü

Ücretsiz yönlendirme aracı

Meta refresh kontrolü

Her yönlendirme bir HTTP durum kodu değildir. TrueURL zincirdeki her sayfanın HTML kodunu okur; meta refresh etiketlerini ve JavaScript yönlendirmelerini hedef URL'leri ve gecikmeleriyle birlikte bulur.

Meta refresh yönlendirmesi nedir?

Meta refresh, tarayıcıya saniye cinsinden bir gecikmenin ardından başka bir URL'yi yüklemesini söyleyen bir HTML etiketidir:

<meta http-equiv="refresh" content="0; url=https://example.com/new-page">

Gecikme 0 olduğunda normal bir yönlendirme gibi davranır. Daha uzun bir gecikmede ziyaretçiler, eskinin “yönlendiriliyorsunuz” sayfalarında olduğu gibi önce sayfayı görür. JavaScript yönlendirmeleri aynı işi location.href = '...' veya location.replace('...') gibi kodlarla yapar. İkisi de istemci taraflı yönlendirmedir (client-side redirect): sunucu 200 OK ile yanıt verir, yönlendirmeyi tarayıcı yapar.

TrueURL istemci taraflı yönlendirmeleri nasıl tespit eder

TrueURL, 2xx durum koduna sahip her HTML yanıtında sayfanın ilk 256 KB'lık bölümünü meta refresh etiketi ve basit, koşulsuz JavaScript yönlendirmeleri için tarar. Meta refresh gibi çalışan Refresh HTTP başlığı da tespit edilir. Bir yönlendirme bulduğunda etiketi veya betik parçasını, çözümlenmiş hedef URL'yi ve gecikmeyi gösterir, adımı meta refresh veya JavaScript olarak etiketler ve zinciri hedeften sürdürür. Yalnızca aynı sayfayı yeniden yükleyen bir refresh yönlendirme değildir ve yok sayılır.

Sayfanın kendisine bakmak için Gelişmiş ayarlarda iki türün takibini de ayrı ayrı kapatabilirsiniz. TrueURL JavaScript çalıştırmaz: sayfadaki betikleri okur ve sayfa yüklendiğinde her zaman çalışan, sabit bir URL'ye giden yönlendirmeleri tanır; bunlar ya hemen ya da üst düzey bir setTimeout içinde çalışır. Tıklama, onay seçimi veya ekran boyutu gibi bir koşula bağlı olan ya da hedef URL'yi kodla oluşturan yönlendirmeler tespit edilmez. HEAD yerine GET kullanın; çünkü HEAD yanıtlarında taranacak gövde yoktur.

Arama motorları istemci taraflı yönlendirmeleri nasıl değerlendirir

  • Anında meta refresh (gecikme 0): Google bunu 301 gibi kalıcı bir yönlendirme olarak değerlendirir.
  • Gecikmeli meta refresh: geçici yönlendirme olarak değerlendirilir; bu yüzden orijinal URL genellikle dizinde kalır.
  • JavaScript yönlendirmeleri: Google bunları ancak sayfayı oluşturduktan (render) sonra görür ve bu, taramadan çok sonra gerçekleşebilir. Diğer birçok tarama botu ve bağlantı önizleme botlarının çoğu JavaScript'i hiç çalıştırmaz.

Google, yapılandırabildiğiniz her yerde sunucu taraflı yönlendirmeleri, bunun mümkün olmadığı yerlerde ise yedek çözüm olarak meta refresh'i önerir; örneğin 301 gönderemeyen statik hosting'lerde.

Erişilebilirlik ve kullanıcı deneyimi

Zamanlı yönlendirmeler bir erişilebilirlik sorunudur: ekran okuyucu kullananlar veya yalnızca yavaş okuyanlar, sayfa beklenmedik şekilde değiştiğinde nerede kaldıklarını kaybeder. WCAG, zamanlı bir meta refresh'i hata (F40) olarak listelerken gecikmesi 0 olan anında bir yönlendirmeyi kabul edilen bir teknik (H76) sayar.

HTML ile yönlendirmeniz gerekiyorsa 0 gecikme kullanın, yeni URL'yi gösteren bir canonical etiketi ekleyin ve tarayıcısı refresh'i takip etmeyen ziyaretçiler için sayfaya yeni URL'ye giden görünür bir bağlantı koyun.

Rehberler

Sık sorulan sorular

Meta refresh, 301 gibi SEO değeri aktarır mı?

Google anında bir meta refresh'i (gecikme 0) kalıcı yönlendirme olarak değerlendirir; yani pratikte 301'e çok benzer şekilde çalışır. Gecikmeli bir refresh geçici sayılır. Diğer tarama botları meta refresh'i daha az güvenilir şekilde işleyebilir; bu yüzden hosting'iniz izin verdiği sürece sunucu taraflı bir 301 kullanın.

Sayfa tarayıcımda yönlendirirken yönlendirme kontrol aracım neden 200 gösteriyor?

Yönlendirme HTTP yanıtında değil, sayfanın HTML veya JavaScript kodunda gerçekleşir. curl -L gibi yalnızca durum kodlarını takip eden araçlar 200 sayfasında durur. TrueURL sayfa içeriğini tarar ve istemci taraflı yönlendirmeyi ayrı bir adım olarak gösterir.

Meta refresh'te hangi gecikme kullanılmalı?

Amaç yönlendirmekse 0. Herhangi bir gecikme, onu Google için geçici bir yönlendirmeye dönüştürür, ziyaretçileri bekletir ve erişilebilirlik sorunlarına yol açar. Gecikme yalnızca önce bir mesaj göstermesi gereken bir sayfada anlamlıdır ve o sayfada devam etmek için net bir bağlantı da bulunmalıdır.

TrueURL her JavaScript yönlendirmesini tespit edebilir mi?

Hayır. Yalnızca hedef URL'si sabit olan ve sayfanın HTML kodunda yer alan basit, koşulsuz yönlendirmeleri tespit edebilir; örneğin location.href = '...', window.location = '...' veya location.replace('...'). Üst düzey bir setTimeout içindekiler de buna dahildir. Harici betik dosyalarındaki, koşullara bağlı, kullanıcı eylemleriyle tetiklenen veya hesaplanan bir URL kullanan yönlendirmelerin çalışması için gerçek bir tarayıcı gerekir. Yönlendirdiğini bildiğiniz bir sayfada zincir duruyorsa nedeni büyük olasılıkla budur.

Bir site neden 301 yerine meta refresh kullanır?

Genellikle HTTP yönlendirmesi gönderemediği için: yönlendirme kuralı tanımlanamayan statik hosting, bir sayfa oluşturucu (page builder) veya eski bir CMS. Bazı link kısaltıcılar ve tıklama izleyiciler de önce analiz betiklerini çalıştırabilmek veya hedef sitenin gördüğü yönlendiren (referrer) bilgisini kontrol edebilmek için HTML yönlendirmeleri kullanır.

HEAD isteği meta refresh'i tespit eder mi?

Hayır. HEAD yanıtında başlıklar vardır ama gövde yoktur; dolayısıyla taranacak HTML de yoktur. HEAD ile kontrol ettiğinizde TrueURL sizi uyarır; bu araç için GET kullanın.