WordPress sitenizde SSL sertifikasını etkinleştirdikten sonra karşılaşabileceğiniz en yaygın sorunlardan biri Karışık İçerik (Mixed Content) hatasıdır. Bu hata, sitenizin ana sayfası güvenli HTTPS protokolüyle yüklendiğinde ancak bazı kaynaklarının (görseller, script'ler, stiller veya medya dosyaları) hâlâ eski HTTP adresiyle çağrılması durumunda ortaya çıkar. Bunun sonucunda tarayıcıda güvenlik uyarısı görüntülenir, site adresinin yanında yeşil kilit simgesi bulunmaz ve ciddi durumlarda bazı öğeler tamamen engellenir.
Bu makalede, tarayıcı konsolunu kullanarak sorunlu kaynakları nasıl tespit edeceğinizi, WordPress'te bunları nasıl düzelteceğinizi ve bu hatanın tekrar oluşmasını nasıl önleyeceğinizi öğreneceksiniz. Bu rehber, yakın zamanda SSL'i etkinleştiren veya karışık içerik hatasıyla uğraşan herkes için faydalıdır.
Karışık İçerik Hatası Neden Oluşur?
Tarayıcınız bir HTTPS sayfasını açtığında, güvenli bağlantının korunması için sayfadaki tüm kaynakların HTTPS üzerinden yüklenmesi gerekir. Bir görsel veya script bile HTTP adresi kullanıyorsa, tarayıcı bunu karışık içerik olarak tanımlar. Bu durum genellikle şu nedenlerden biriyle oluşur:
- WordPress ayarlarındaki site adresi (WordPress Address ve Site Address) hâlâ HTTP olarak kaydedilmiştir.
- Veritabanındaki görseller ve medya dosyaları eski HTTP adresleriyle saklanmıştır.
- Tema veya eklentiler HTTP içeren sabit (hardcoded) adreslere sahiptir.
- CSS veya JavaScript dosyaları doğrudan harici kaynaklardan HTTP ile yüklenir.
Tarayıcıların karışık içerikle iki şekilde başa çıktığını bilmek önemlidir: pasif kaynaklar (görseller gibi) genellikle uyarıyla yüklenirken, aktif kaynaklar (script'ler ve iframe'ler gibi) tamamen engellenir. Bu nedenle, bu hatayı düzeltmek sitenizin sağlığı ve güvenliği için kritik öneme sahiptir.
Adım 1: Tarayıcı Konsoluyla Sorunlu Kaynakları Bulma
Herhangi bir işlem yapmadan önce, hangi kaynakların karışık içerik hatasına neden olduğunu tam olarak bilmeniz gerekir. Bunun için en iyi araç tarayıcı konsoludur (Developer Tools). Bu yöntem tüm modern tarayıcılarda (Chrome, Firefox, Edge) neredeyse aynıdır.
Konsolu Açma ve Hataları Görüntüleme
- Sitenizin ana sayfasını tarayıcıda açın.
F12tuşuna basın veya tarayıcı menüsünden Developer Tools seçeneğini seçin.- Console sekmesine gidin.
- Konsol filtresinde Errors veya Warnings seçeneğini etkinleştirin.
Karışık içerikle ilgili hatalar genellikle şu şekilde görüntülenir:
Mixed Content: The page at 'https://example.com' was loaded over HTTPS, but requested an insecure resource 'http://example.com/wp-content/uploads/2023/image.jpg'. This request has been blocked.
Bu mesaj, sorunlu kaynağın adresini tam olarak gösterir. Birden fazla hata varsa, bunları bir metin dosyasına kopyalayın; böylece daha sonra toplu olarak düzeltebilirsiniz.
Engellenen Kaynakları Bulmak için Network Sekmesini İnceleme
Bazen konsol tüm hataları göstermeyebilir. Tam emin olmak için Network sekmesine gidin ve Name sütununu inceleyin. HTTP ile yüklenen kaynaklar genellikle kırmızı renkte veya uyarı işaretiyle görüntülenir. Network arama çubuğunda mixed filtresini kullanarak yalnızca sorunlu kaynakları görebilirsiniz.
Adım 2: WordPress Ayarlarındaki Adresleri Düzeltme
İlk ve en basit adım, WordPress ayarlarındaki site adresinin doğru olduğundan emin olmaktır. Bunu iki şekilde yapabilirsiniz:
WordPress Yönetim Paneli'nden Düzeltme
Ayarlar → Genel yoluna gidin ve şu iki alanı kontrol edin:
- WordPress Adresi (WordPress Address)
- Site Adresi (Site Address)
Her ikisi de https:// ile başlamalıdır. Hâlâ http:// ise, bunları düzeltin ve değişiklikleri kaydedin. Bu işlemden sonra site birkaç saniyeliğine erişilemez olabilir; endişelenmeyin, bu normaldir.
wp-config.php Dosyasından Düzeltme
Yönetim paneline erişiminiz yoksa veya daha güvenli bir yöntem istiyorsanız, wp-config.php dosyasına şu kodu ekleyebilirsiniz:
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
example.com ifadesini kendi gerçek alan adınızla değiştirdiğinizden emin olun. Bu yöntem, özellikle ayar değişikliğinden sonra site erişilemez hale geldiğinde kullanışlıdır.
Adım 3: Veritabanındaki Kayıtlı Adresleri Düzeltme
WordPress ayarları sorunun yalnızca bir kısmını çözer. Birçok görsel, bağlantı ve eski içerik veritabanında HTTP adresleriyle saklanmıştır. Bunları düzeltmek için birkaç yöntem vardır:
Arama ve Değiştirme Eklentilerini Kullanma
Veritabanını düzeltmenin en iyi ve en güvenli yolu, Better Search Replace veya Velvet Blues Update URLs gibi eklentileri kullanmaktır. Bu eklentiler, veritabanındaki tüm kayıtları aramanıza ve değiştirmenize olanak tanır.
Better Search Replace eklentisiyle çalışma adımları:
- Eklentiyi kurun ve etkinleştirin.
- Araçlar → Better Search Replace bölümüne gidin.
- Search for alanına
http://example.comdeğerini girin. - Replace with alanına
https://example.comdeğerini girin. - Tüm veritabanı tablolarını seçin.
- Önce bulunan öğe sayısını görmek için Dry Run seçeneğini etkinleştirin.
- Öğe sayısı makul ise, Dry Run'ı devre dışı bırakın ve işlemi çalıştırın.
Önemli Not: Veritabanında herhangi bir değişiklik yapmadan önce mutlaka sitenizin yedeğini alın. Bunu hosting kontrol panelinizden veya yedekleme eklentileriyle yapabilirsiniz.
SQL Sorgusuyla Manuel Düzeltme
phpMyAdmin erişiminiz varsa ve SQL biliyorsanız, şu sorguyu çalıştırabilirsiniz:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://example.com', 'https://example.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://example.com', 'https://example.com');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://example.com', 'https://example.com');
wp_ ön ekinin sitenizde farklı olabileceğini unutmayın. Bu sorguyu yalnızca metin içeriği olan tablolarda çalıştırın; ilgisiz tablolarda çalıştırmak veritabanına zarar verebilir.
Adım 4: Tema ve Eklentileri İnceleme
Bazen sorun temadan veya eklentilerden kaynaklanır. Bazı temalar dosyalarında sabit HTTP adresleri içerir. Bunları bulmak için:
- Görünüm → Tema Düzenleyici bölümüne gidin (yalnızca yönetici erişiminiz varsa).
header.php,footer.phpvefunctions.phpdosyalarını açın.- Tarayıcı aramasını kullanarak (Ctrl+F)
http://ifadesini arayın. - Bulduğunuz her öğeyi
https://olarak değiştirin.
Eklentiler için önce tüm eklentileri devre dışı bırakın ve hatayı kontrol edin. Hata düzelirse, eklentileri tek tek etkinleştirerek sorunlu eklentiyi bulun. Ardından eklentiyi güncelleyin veya geliştiricisiyle iletişime geçin.
Adım 5: Gelecekte Hatanın Tekrarlanmasını Önleme
Hatayı düzelttikten sonra sorunun tekrar oluşmadığından emin olmalısınız. Birkaç önleyici çözüm vardır:
HSTS Başlığını Kullanma
HSTS'yi (HTTP Strict Transport Security) etkinleştirerek tarayıcıyı her zaman HTTPS kullanmaya zorlarsınız. Bunu .htaccess dosyasına şu kodu ekleyerek yapabilirsiniz:
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</IfModule>
HSTS'yi yalnızca SSL'in tamamen doğru olduğundan emin olduktan sonra etkinleştirin; aksi takdirde kullanıcılar uzun süre sitenize erişemeyebilir.
SSL Eklentilerini Kullanma
Really Simple SSL gibi eklentiler, HTTP adreslerini otomatik olarak HTTPS'ye dönüştürebilir ve güvenli olmayan kaynakların yüklenmesini engelleyebilir. Bu eklentiler, çok fazla içeriğe sahip siteler için oldukça kullanışlıdır.
Karışık İçerik Düzeltirken Yapılan Yaygın Hatalar
Bu hatayı düzeltme sürecinde kullanıcılar genellikle birkaç yaygın hata yapar:
- Yalnızca WordPress ayarlarını değiştirmek: Bu, sorunun yalnızca bir kısmını çözer. Veritabanındaki adresler hâlâ HTTP olarak kalır.
- Yanlış arama ve değiştirme kullanmak: Alan adını yanlış girerseniz, site verilerinize zarar verebilirsiniz. Her zaman Dry Run kullanın.
- Harici kaynakları göz ardı etmek: Bazı script'ler ve fontlar harici CDN'lerden yüklenir. CDN HTTPS desteklemiyorsa, kaynağı değiştirmeniz gerekir.
- Hatayı tamamen düzeltmeden HSTS'yi etkinleştirmek: Bu, kullanıcıların siteye uzun süre erişimini engelleyebilir.
Özet
SSL etkinleştirildikten sonra karışık içerik hatasını düzeltmek, dikkat ve sabır gerektiren çok adımlı bir süreçtir. Tarayıcı konsolunu kullanarak sorunlu kaynakları tespit edebilir, ardından WordPress ayarlarını, veritabanını ve tema dosyalarını düzelterek sorunu tamamen çözebilirsiniz. En önemli nokta, her değişiklikten önce sitenizin yedeğini almak ve değişiklikleri adım adım uygulamaktır.
Yakın zamanda SSL'i etkinleştirdiyseniz ve bu hatayla karşılaştıysanız endişelenmeyin; bu çok yaygın bir sorundur ve bu makaledeki adımları izleyerek çözülebilir. WordPress siteniz için güvenli ve istikrarlı bir barındırma hizmetine ihtiyacınız varsa, varsayılan olarak SSL ve modern güvenlik protokollerini destekleyen ServerNet hosting hizmetlerinden yararlanabilirsiniz.