Mixed Content (Karışık İçerik) Hatası Nedir?
Mixed Content hatası, HTTPS ile güvenli şekilde yüklenen bir web sayfasının içinde HTTP (güvensiz) protokolüyle yüklenen kaynaklar bulunduğunda ortaya çıkar. Bu durum sayfanın güvenliğini zayıflatır ve tarayıcılar uyarı verir veya kaynakları tamamen engeller.
2026 itibarıyla Chrome ve diğer modern tarayıcılar, mixed content konusunda çok katı kurallar uygulamaktadır. Aktif mixed content (JavaScript, CSS, iframe) tamamen engellenir, pasif mixed content (resimler) ise uyarı ile gösterilir veya otomatik olarak HTTPS'e yükseltilir.
Mixed Content Türleri
1. Aktif Mixed Content (Engellenir)
Sayfa içeriğini değiştirebilen veya hassas veri toplayabilen kaynaklar:
<script src="http://...">— JavaScript dosyaları<link rel="stylesheet" href="http://...">— CSS dosyaları<iframe src="http://...">— iframe gömmeleri- XMLHttpRequest / Fetch API ile HTTP çağrıları
<object>,<embed>kaynakları
Aktif mixed content tarayıcı tarafından otomatik olarak engellenir ve sayfa bozulabilir.
2. Pasif Mixed Content (Uyarı Verilir)
Sayfa içeriğini değiştiremeyen ancak gizlilik riski oluşturan kaynaklar:
<img src="http://...">— Resimler<audio src="http://...">— Ses dosyaları<video src="http://...">— Video dosyaları
Chrome 86+ sürümünden itibaren pasif mixed content da otomatik olarak HTTPS'e yükseltilir (auto-upgrade). Yükseltilemezse engellenir.
Mixed Content Nasıl Tespit Edilir?
Yöntem 1: Chrome DevTools
- Sayfayı Chrome'da açın → F12 ile DevTools'u açın
- Console sekmesinde "Mixed Content" uyarılarını arayın
- Security sekmesinde genel durum özetini görün
- Network sekmesinde "mixed-content:all" filtresi uygulayın
Yöntem 2: Why No Padlock Aracı
whynopadlock.com adresine domain adresinizi girerek tüm mixed content sorunlarını listeleyin.
Yöntem 3: Site Genelinde Tarama
# Screaming Frog veya benzeri SEO araçlarıyla
# tüm sayfaları tarayarak HTTP referanslarını bulun
# Veritabanında HTTP URL'leri arama (WordPress örneği)
SELECT * FROM wp_posts WHERE post_content LIKE '%http://%';
# Genel MySQL arama
SELECT * FROM content_table WHERE content LIKE '%src="http://%' OR content LIKE '%href="http://%';
Mixed Content Çözüm Yöntemleri
1. Content-Security-Policy ile Otomatik Yükseltme
En hızlı ve etkili çözüm. HTTP kaynakları otomatik olarak HTTPS'e yükseltilir:
# Nginx
add_header Content-Security-Policy "upgrade-insecure-requests" always;
# Apache (.htaccess)
Header always set Content-Security-Policy "upgrade-insecure-requests"
# HTML meta tag
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
⚠️ Dikkat: Bu yöntem, HTTP kaynağın HTTPS'te de mevcut olduğunu varsayar. Kaynak HTTPS'te yoksa yüklenemez.
2. URL'leri Manuel Düzeltme
Tüm http:// referanslarını https:// olarak güncelleyin:
# Veritabanında toplu güncelleme (dikkatli kullanın!)
UPDATE posts SET content = REPLACE(content, 'http://www.example.com', 'https://www.example.com');
UPDATE posts SET content = REPLACE(content, 'http://cdn.example.com', 'https://cdn.example.com');
3. Protokol-Bağımsız URL Kullanma
URL'leri protokol belirtmeden yazarak tarayıcının mevcut protokolü kullanmasını sağlayın:
<!-- Yerine: -->
<img src="http://cdn.example.com/image.jpg">
<!-- Şunu kullanın: -->
<img src="//cdn.example.com/image.jpg">
4. CDN ve Harici Kaynaklar
- CDN sağlayıcınızın HTTPS desteği olduğundan emin olun
- Google Fonts, jQuery CDN gibi popüler kaynaklar zaten HTTPS destekler
- HTTPS desteklemeyen harici kaynakları yerel olarak barındırın
WordPress'te Mixed Content Çözümü
- Really Simple SSL eklentisi ile otomatik düzeltme
- Better Search Replace eklentisi ile veritabanında toplu URL değişikliği
- wp-config.php'de
define('FORCE_SSL_ADMIN', true);ekleyin - Ayarlar → Genel'de site URL'lerinin https:// ile başladığından emin olun
Sonuç
Mixed content hatası web sitenizin güvenlik algısını ve SEO performansını doğrudan etkiler. Content-Security-Policy header'ı ile hızlı bir çözüm uygulayabilir, ardından tüm HTTP referanslarını kalıcı olarak HTTPS'e güncelleyebilirsiniz. Düzenli olarak Chrome DevTools Security sekmesini kontrol ederek yeni mixed content sorunlarını önleyin.