If-modified-since istek başlığı, Googlebot’un bir sayfanın son ziyaretinden bu yana değişip değişmediğini doğrulamasına olanak tanır ve hiçbir güncelleme yoksa HTTP 304 Not Modified durumunu alır. Bu mekanizma, sunucunun tüm sayfa içeriğini yeniden göndermesini engeller, bu da önemli miktarda bant genişliği ve işleme kaynağından tasarruf sağlar. Bu protokolü uygulayarak, arama motorlarının sınırlı tarama bütçelerini gereksiz veriler yerine en güncel ve değerli içeriğinize odaklamalarını sağlarsınız.
Googlebot bir URL’yi ziyaret etmeye karar verdiğinde, sitenizi anlamak için her zaman tam HTML gövdesini indirmesine gerek yoktur. Web sunucunuz koşullu istekleri destekleyecek şekilde yapılandırılmışsa, tarayıcı tarafından sağlanan zaman damgasını algılayabilir ve anında yanıt verebilir. Bu el sıkışma, veritabanınız ve uygulama mantığınız üzerindeki gereksiz yükü önleyen, donanımınızın daha fazla eşzamanlı kullanıcı isteğini işlemesine olanak tanıyan verimli web mimarisinin temel bir yönüdür.

304 durumu siteniz için neden önemlidir?
Bir arama motoru botu sitenizi ziyaret ettiğinde, HTML, CSS ve görselleri indirmek için sunucu kaynaklarını tüketir. Bir sayfa değiştirilmediyse, tam yanıtı göndermek verimsizdir. 304 durum kodunu kullanmak, kaynağın aynı kaldığını belirtir ve tarayıcıya önbelleğe alınmış sürümüne güvenmesini söyler.
Bant genişliğinden tasarruf etmenin ötesinde, 304 yanıtı tam 200 OK aktarımından önemli ölçüde daha hızlıdır. Sunucunun arka uç komut dosyalarını çalıştırmasına veya veritabanlarını sorgulamasına gerek olmadığından, gidiş-dönüş süresi en aza indirilir. Bu gecikme süresindeki azalma, Googlebot’un zaman aşımı kısıtlamaları nedeniyle bir isteği terk edebileceği büyük envanterlere sahip siteler için hayati önem taşır.
Tipik bir yüksek trafikli ortamda, aşırı tam sayfa istekleri sunucu doygunluğuna yol açabilir. Statik içerik kontrollerini web sunucusu düzeyine boşaltarak, uygulama katmanının gereksiz isteklerle tıkanmasını önlersiniz. Bu verimlilik, tarayıcının yeni, değiştirilmiş sayfaları daha hızlı keşfetmesi için alan yaratır.

- İçerik oluşturmayı atlayarak sunucu CPU ve bellek kullanımının azaltılması.
- Yüksek trafikli web siteleri için bant genişliği tüketiminin azaltılması.
- Googlebot’un yeni sayfaları daha hızlı keşfetmesini sağlayan daha hızlı tarama verimi.
- Aşırı istek hacminden kaynaklanan sunucu tarafı hata olasılığının düşürülmesi.
Googlebot if-modified-since başlığını nasıl kullanır?
Googlebot, sayfalarınızın son değiştirilme tarihini izler. Sonraki ziyaretler sırasında, son başarılı taramanın zaman damgasını içeren bir if-modified-since başlığı gönderir. Sunucunuz daha sonra bu zaman damgasını gerçek dosya değiştirme tarihiyle karşılaştırır.
Mantık basittir: kaynağın Last-Modified zaman damgası istekteki tarihten daha yeniyse, sunucu yeni içerikle 200 OK gönderir. Tarihler aynıysa veya dosya daha eskiyse, sunucu 304 durumu döndürür. Bu kontrol web sunucusu düzeyinde, genellikle uygulama katmanı isteği işlemeden önce gerçekleşir.
Bu etkileşim, sunucunuzun zaman damgalarını doğru bir şekilde saklama ve karşılaştırma yeteneğine büyük ölçüde bağlıdır. Sunucunuz bu başlıkları her zaman görmezden gelecek şekilde yanlış yapılandırılmışsa, Googlebot’u değişmemiş sayfaları yeniden işlemeye zorluyorsunuz demektir, bu da tarama bütçenizin kötü bir kullanımıdır.
Sunucu tarafı mantık gereksinimleri
Sunucunuz bu başlığı doğru şekilde okuyacak şekilde yapılandırılmalıdır. Dosya sağlanan tarihten bu yana güncellenmediyse, sunucu boş bir gövde ile 304 yanıt kodu döndürür. Dosya değiştiyse, güncellenmiş içerikle birlikte tam 200 OK durumunu döndürmeye devam eder.
Alien Road bu teknolojiyi nasıl uygular?
Alien Road’da, sunucu tarafı önbelleğe almanın ve koşullu isteklerin amaçlandığı gibi çalıştığını doğrulamak için derin teknik denetimler gerçekleştiriyoruz. Googlebot isteklerinin statik veya değişmeyen içerik için 304 yanıtları alıp almadığını görmek için sunucu günlüklerini inceliyoruz. Tipik bir çalışmada, sunucuların başlığı görmezden geldiği ve tam indirmeleri zorladığı, kaynakları boşa harcadığı yanlış yapılandırmaları belirliyoruz. Daha sonra geliştiricilere verimliliği artırmak için sunucu yanıt mantığını güncellemeleri için özel talimatlar veriyoruz.
E-ticaret müşterileriyle çalışırken, ürün sayfalarının her gün tamamen yeniden tarandığını sıklıkla görüyoruz. Doğru ETag ve Last-Modified başlıklarını etkinleştirerek, bu belirli sayfalar için veritabanındaki yükü önemli bir oranda azaltıyoruz. Bu iyileştirmeleri, 304’ün 200 yanıtına oranını izlemek için sunucu erişim günlüklerini analiz ederek izliyor, Googlebot’un zamanını statik sayfalar yerine taze güncellemelerle geçirmesini sağlıyoruz.
Sürecimiz, dahili teşhis komut dosyalarını kullanarak canlı sayfaların yanıt başlıklarını kontrol etmeyi içerir. Daha sonra, kontrollü koşullar altında sunucunun davranışını gözlemlemek için if-modified-since başlığını simüle ediyoruz. Bu, Googlebot ziyaret ettiğinde beklenen 304 durumunu almasını sağlar, optimizasyonumuzun aktif olduğunu ve amaçlanan verimliliği sağladığını doğrular.
Uygulamadaki yaygın tuzaklar nelerdir?
Yanlış sunucu saati ayarları, hatanın en sık görülen nedenidir. Sunucu saatiniz kayarsa veya tarayıcının beklediğinden farklı bir saat dilimi kullanırsa, karşılaştırma mantığı başarısız olur. Ayrıca, bazı içerik yönetim sistemleri bu başlıkları her istekte değişen dinamik parametrelerle geçersiz kılar, bu da 304 durumunu döndürmeyi imkansız hale getirir.
Bir diğer yaygın hata, geliştiriciler her sayfa yüklemesinde belge değişikliğini tetikleyen ‘geçerli zaman’ ekranı veya oturum tabanlı çerez kontrolü gibi dinamik öğeler eklediğinde meydana gelir. Sayfanın gerçek içeriği aynı olsa bile, bu küçük dinamik eklemeler sunucunun sayfayı değiştirilmiş gibi görmesine neden olabilir ve her seferinde tam 200 OK yanıtını zorlayabilir.
Yük dengeleyicilerin veya CDN yapılandırmalarının başlıkları kaynak sunucuya ulaşmadan önce kaldırdığı sorunları sıklıkla görüyoruz. Tüm altyapınızın, uçtan arka uca kadar, bu koşullu istek başlıklarını koruyacak ve onurlandıracak şekilde yapılandırıldığından emin olmak önemlidir.
Googlebot tarama zaman aşımı sorunları, sunucunuz belirli bir zaman dilimi içinde bir isteğe yanıt veremediğinde meydana gelir ve bu da eksik dizine eklemeye yol açar.
Google Search Central
Sunucu başlıklarınızı nasıl doğrulayabilirsiniz?
Sunucunuzun davranışını manuel olarak test etmek için curl gibi komut satırı araçlarını kullanabilirsiniz. Başlık dahil bir sayfa isteyerek, altyapınız tarafından döndürülen yanıt kodunu inceleyebilirsiniz. Bu, sunucunuzun canlı trafik verilerine ihtiyaç duymadan koşullu isteği doğru bir şekilde yorumladığını doğrular.
Bu teşhis adımı, değişiklikleri üretime almadan önce çok önemlidir. Yerel olarak test ederek, canlı sitenizdeki tarama davranışıyla ilgili yaygın sorunlara yol açabilecek kazara yanlış yapılandırmaları önlersiniz.
- Terminalinizde ‘curl -I -H “If-Modified-Since: ” ‘ komutunu çalıştırın.
- Yanıt kodunun 200 yerine 304 olduğunu kontrol edin.
- Content-Length başlığının 304 yanıtında sıfır olduğunu veya atlandığını doğrulayın.
- Ekstra dinamik başlıkların önbellek doğrulama mantığını kaldırmadığından emin olun.
Bu hafta nereden başlamalı
En sık taranan sayfaları belirlemek için son 48 saate ait sunucu günlüklerinizi gözden geçirin. Bu yüksek hacimli sayfalara 304 uygulama testleri için öncelik verin. Sunucunuz şu anda değişmemiş sayfalar için 200 döndürüyorsa, koşullu istek işlemeyi etkinleştirmek için altyapı ekibinize danışın. Bu basit ayarlama, genellikle önemli site mimarisi değişiklikleri gerektirmeden küçük tarama bütçesi kısıtlamalarını çözer.