
HTTPS Geçişi Sonrası Karışık İçerik Uyarısı Alıyorum: HTTP Başlıkları ile Kaynağı Nasıl Bulurum?
Bir web sitesinin güvenliğini ve performansını artırmak amacıyla HTTPS’ye geçiş yapmak, modern web standartlarının temel bir gerekliliğidir. Hem kullanıcı güvenliği hem de arama motoru sıralamaları için kritik öneme sahip olan bu adım, genellikle sorunsuz ilerlese de bazen beklenmedik engellerle karşılaşabiliriz. Bu engellerden en yaygın ve can sıkıcı olanlarından biri de "karışık içerik" (mixed content) uyarılarıdır. Özellikle
AdSense politikaları ve genel
web sitesi güvenliği standartları açısından bakıldığında, karışık içerik uyarıları asla göz ardı edilmemelidir. Bu makalede, HTTPS geçişi sonrası ortaya çıkan karışık içerik uyarılarını HTTP başlıklarını kullanarak nasıl tespit edeceğinizi ve çözeceğinizi ayrıntılı bir şekilde ele alacağız.
Karışık İçerik Neden Önemlidir?
Karışık içerik, HTTPS üzerinden yüklenen bir web sayfasının, bazı kaynakları (görüntüler, komut dosyaları, stil sayfaları gibi) güvensiz HTTP bağlantıları üzerinden yüklemeye çalışması durumunda ortaya çıkar. Bu durum, tarayıcının güvenlik mekanizmalarını tetikler ve kullanıcılara "güvenli değil" uyarıları göstererek siteye olan güvenlerini zedeler.
Bir SEO editörü olarak, bu durumun hem kullanıcı deneyimi hem de arama motoru optimizasyonu (SEO) üzerindeki olumsuz etkilerini çok iyi biliyoruz. Google, HTTPS’yi bir sıralama faktörü olarak kabul eder ve sitenin tamamının güvenli olmasını bekler. Karışık içerik, sitenizin HTTPS sertifikasının tam potansiyelini kullanmasını engeller. Bu da sıralamalarda düşüşe veya organik trafikte azalmaya neden olabilir. Ayrıca, AdSense reklamlarının gösteriminde veya genel site performansında sorunlara yol açabilir, çünkü güvenli olmayan kaynaklar bazı tarayıcılar tarafından engellenebilir veya gecikmelere neden olabilir. Kısacası, karışık içerik uyarıları, bir an önce çözülmesi gereken teknik bir SEO sorunudur.
Karışık İçerik Nedir ve Nasıl Ortaya Çıkar?
Karışık içerik temel olarak iki ana kategoriye ayrılır:
1.
Pasif Karışık İçerik: Sitenin işlevselliğini doğrudan etkilemeyen ancak yine de güvenlik zafiyeti oluşturan içeriklerdir. Genellikle resimler, ses ve video dosyaları gibi medya öğeleri bu kategoriye girer. Tarayıcılar genellikle bu tür içerikleri yükler ancak adres çubuğunda "güvenli değil" veya "bilgi" simgesi gösterir.
2.
Aktif Karışık İçerik: Sitenin işlevselliğini ciddi şekilde etkileyebilecek, hatta potansiyel olarak kötü niyetli saldırılara açık hale getirebilecek içeriklerdir. JavaScript dosyaları, CSS stil sayfaları, iframe'ler gibi öğeler aktif karışık içeriğe örnektir. Tarayıcılar, güvenlik riski nedeniyle bu tür içerikleri genellikle engeller, bu da sayfanın tasarımının bozulmasına veya işlevselliğinin tamamen kaybolmasına neden olabilir.
HTTPS geçişi sonrası karışık içeriğin ortaya çıkmasının en yaygın nedeni, sitenin veritabanında, temalarında, eklentilerinde veya doğrudan sayfa kaynak kodlarında (HTML) eski HTTP bağlantılarının kalmasıdır. Örneğin, bir resim `

` şeklinde çağrılmaya devam ediyorsa, bu karışık içeriğe neden olur.
Karışık İçerik Uyarısını Tespit Etme Yöntemleri
Karışık içerik uyarılarını tespit etmenin ilk ve en bilinen yolu, tarayıcıların geliştirici araçlarını (Developer Tools) kullanmaktır.
1.
Tarayıcı Konsolu (Console): Çoğu tarayıcıda (Chrome, Firefox, Edge) F12 tuşuna basarak veya sağ tıklayıp "İncele" seçeneğini seçerek geliştirici araçlarını açabilirsiniz. "Console" sekmesi, genellikle karışık içerik uyarılarını açıkça belirtir ve hangi URL'nin güvensiz olduğunu gösterir. Örneğin: `Mixed Content: The page at 'https://example.com/' was loaded over HTTPS, but requested an insecure image 'http://example.com/image.jpg'. This content should also be served over HTTPS.`
2.
Screaming Frog veya Site Denetleyicileri: Teknik SEO araçları olan Screaming Frog, Ahrefs Site Audit, SEMrush Site Audit gibi araçlar da sitenizi tarayarak karışık içerik uyarılarını raporlayabilir. Bu araçlar, sitenizin genelindeki tüm sayfaları kontrol ederek kapsamlı bir liste sunabilir.
Ancak, bu yöntemler her zaman nihai kaynağı göstermeyebilir. Özellikle dinamik yüklenen içerikler, JavaScript ile enjekte edilen öğeler veya yönlendirmeler aracılığıyla gelen kaynaklarda tarayıcı konsolu size yalnızca son güvensiz URL'yi verebilir, ancak bu kaynağın ilk nerede çağrıldığını bulmak için daha derinlemesine bir inceleme gerekebilir. İşte bu noktada HTTP başlıkları devreye girer.
HTTP Başlıkları ile Kaynağı Bulmak: Adım Adım Yaklaşım
HTTP başlıkları, bir sunucu ile istemci (tarayıcı) arasındaki iletişimin temelini oluşturur ve her bir HTTP isteği ve yanıtı hakkında değerli bilgiler taşır. Bir
HTTP Header Görüntüleyici kullanarak veya tarayıcınızın geliştirici araçları içindeki "Network" sekmesini kullanarak bu başlıkları inceleyebiliriz.
1.
Tarayıcı Geliştirici Araçlarını Kullanın:* Sayfayı açın ve F12 (veya sağ tık > İncele) ile
tarayıcı geliştirici araçları penceresini açın.
* "Network" (Ağ) sekmesine gidin.
* Sayfayı yeniden yükleyin (Ctrl+R veya F5). Bu, tüm HTTP isteklerinin kaydedilmesini sağlar.
* "All" (Tümü) filtresinin etkin olduğundan emin olun ve genellikle "Scheme" (Şema) sütununda HTTP veya HTTPS olup olmadığını görebilirsiniz.
* Güvensiz (HTTP) olarak yüklenen kaynakları bulmak için "Protocol" veya "Scheme" sütununa göre filtreleme yapın veya doğrudan güvensiz URL'leri arayın.
2.
İstek Başlıklarını İnceleyin (Request Headers):* "Network" sekmesinde güvensiz olarak yüklenen bir kaynağa tıklayın.
* Sağdaki panelde "Headers" (Başlıklar) sekmesine gidin.
* Burada iki ana bölüm göreceksiniz: "General" (Genel), "Response Headers" (Yanıt Başlıkları) ve "Request Headers" (İstek Başlıkları).
* "Request Headers" bölümünde `Referer` başlığını arayın. `Referer` başlığı, isteği başlatan URL'yi gösterir. Eğer bu başlık, sitenizin bir sayfasını işaret ediyorsa, o sayfanın kodu içinde veya ilgili bir script/stil dosyasında bu güvensiz kaynağın çağrıldığını anlayabilirsiniz. Örneğin, `Referer: https://www.siteadi.com/blog/makale-adi` şeklinde bir değer görürseniz, sorun bu makalenin içeriğinde veya şablonundadır.
3.
Yanıt Başlıklarını İnceleyin (Response Headers):* Bazı durumlarda, karışık içeriğin kaynağı bir yönlendirme zinciri olabilir. Bir kaynak `http://cdn.example.com/script.js` olarak çağrılır ve bu da `http://newcdn.example.com/script.js` adresine yönlendirilirse, sorun `cdn.example.com` tarafında olabilir. `Location` başlığı, yönlendirme URL'lerini gösterir.
* `Content-Security-Policy` (CSP) başlığı, eğer sunucunuzda ayarlıysa, tarayıcıya hangi kaynakların hangi protokoller üzerinden yüklenebileceğini bildirir. Eğer bir CSP kuralı ihlal ediliyorsa, bu başlık size ipuçları verebilir. Örneğin, CSP uyarısı alıyorsanız, karışık içerik yüklenmeye çalışılan bir kaynak, CSP kurallarıyla çakışıyor demektir.
4.
Sunucu Tarafı İncelemeleri:* Bazen karışık içerik, doğrudan sitenizin kodundan değil,
sunucu yapılandırması veya bir proxy ayarından kaynaklanabilir. Örneğin, bir `mod_rewrite` kuralı veya `nginx` yapılandırması, bazı kaynakları yanlışlıkla HTTP üzerinden yönlendiriyor olabilir.
* Sunucunun gönderdiği `X-Forwarded-Proto` başlığı da, isteğin orijinal protokolünü gösterebilir ve bir ters proxy veya yük dengeleyici arkasındaki HTTPS yapılandırmasının doğru olup olmadığını anlamanıza yardımcı olabilir.
5.
Kaynak Ağacını İzleme:* "Network" sekmesinde bir kaynağa tıkladığınızda, sağ panelde genellikle "Initiator" (Başlatıcı) sekmesini de görebilirsiniz. Bu sekme, o kaynağın hangi komut dosyası, stil dosyası veya HTML etiketi tarafından çağrıldığını gösterir. Bu, özellikle JavaScript ile dinamik olarak eklenen img veya iframe etiketleri gibi durumlarda çok faydalıdır.
Bu derinlemesine inceleme yöntemleri, özellikle JavaScript veya üçüncü taraf eklentiler aracılığıyla gelen ve tarayıcı konsolunda sadece son güvensiz URL olarak görünen karışık içerik kaynaklarını bulmada oldukça etkilidir.
Sıkça Gözden Kaçan Karışık İçerik Kaynakları
Karışık içerik sorunları bazen oldukça inatçı olabilir. İşte sıkça gözden kaçan bazı kaynaklar:
*
Veritabanındaki Eski URL'ler: Özellikle içerik yönetim sistemleri (CMS) kullanıyorsanız (WordPress gibi), makale içeriklerindeki veya özel alanlardaki resim URL'leri veritabanında "http://" olarak kalmış olabilir. Bir veritabanı yedeği alıp, tüm HTTP URL'lerini HTTPS'ye değiştiren bir sorgu çalıştırmak gerekebilir.
*
Tema ve Eklenti Ayarları: Bazı temalar veya eklentiler kendi CSS, JS veya resim dosyalarını otomatik olarak çağırırken eski HTTP yollarını kullanmaya devam edebilir. Eklenti ayarlarını kontrol etmek veya güncellemeler yayınlamak sorunu çözebilir.
*
Üçüncü Taraf Komut Dosyaları: Reklam ağları (AdSense gibi), analiz araçları (Google Analytics), sosyal medya widget'ları veya diğer üçüncü taraf komut dosyaları bazen kendi içlerinde güvensiz kaynakları çağırabilir. Bu durumda, ilgili servisin HTTPS uyumlu sürümünü kullandığınızdan veya ayarlarını kontrol ettiğinizden emin olun.
*
CSS İçindeki `url()` Fonksiyonları: Stil sayfalarınızdaki `background-image: url('http://...');` gibi kullanımlar karışık içeriğe neden olabilir.
*
JavaScript ile Dinamik Yükleme: Bazen JavaScript, `

` veya `