Skip to main content
Back to blog

SEO Kılavuzu Adım 7: Güvenlik — 2026'da Google'ın Beklentisi

·11 dk okuma·by LANGR SEO

SEO Kılavuzu Adım 7: Güvenlik

Bu, 13 Adımlı SEO Kılavuzunun 7. adımıdır. Güvenlik, yalnızca kullanıcıları korumakla ilgili değildir — arama sıralamalarınızı doğrudan etkiler. Google, 2014'ten beri HTTPS'yi bir sıralama sinyali olarak kullanıyor ve beklentiler yalnızca artmıştır.


Çoğu site sahibi güvenliği ikili bir durum olarak düşünür: "SSL'im var, bu yüzden güvendeyiz." Gerçekte, Google onlarca güvenlik sinyalini değerlendirir. Doğru güvenlik başlıklarına, geçerli sertifikalara ve karışık içerikten uzak olan siteler, yalnızca temel bir SSL sertifikasına sahip olan sitelerin önünde yer alır - diğer tüm şeyler eşit olduğunda.

İyi haber: Çoğu güvenlik düzeltmesi bir kez yapılandırma ile halledilir. Bir kez ayarlayın ve bu, sıralamalarınızı kalıcı olarak korur.

SSL Yapılandırması

SSL (teknik olarak TLS) sunucunuz ile ziyaretçileriniz arasındaki bağlantıyı şifreler. 2014'ten beri, Google HTTPS'yi açıkça bir sıralama sinyali olarak doğrulamıştır. 2026'da HTTPS'ye sahip olmamak yalnızca bir sıralama sorunu değildir — Chrome, HTTP sitelerini adres çubuğunda "Güvenli Değil" olarak işaretleyerek kullanıcı güvenini yok eder.

Doğru SSL için gereksinimler:

| Gereksinim | Neden | Nasıl Kontrol Edilir | |-------------|-----|--------------| | Geçerli sertifika | Süresi dolmuş = tarayıcı uyarısı = çıkış yapan kullanıcılar | Süre dolum tarihini kontrol et | | Tam zincir | Tamamlanmamış zincirler bazı cihazlarda başarısız olur | SSL Labs testi | | TLS 1.2+ | Eski sürümlerin bilinen zayıflıkları var | SSL Labs testi | | SHA-1 yok | Kullanımdan kaldırıldı, tarayıcılar bunu reddeder | Sertifika detayları | | SAN kapsamı | www ve non-www her ikisi de kapsanmalıdır | Sertifika detayları | | Otomatik yenileme | Süre dolma felaketlerini önler | Let's Encrypt / sağlayıcı yapılandırması |

SSL puanlaması:

100% = Geçerli sertifika + Tam zincir + TLS 1.3 + Güçlü şifre + Otomatik yenileme
  0% = Süresi dolmuş veya eksik sertifika

Yaygın SSL hataları:

  1. Sertifika süresi dolmadan bildirim verilmesi — Süre dolmadan en az 30 gün önce izleme kurun (Adım 6)
  2. Tamamlanmamış sertifika zinciri — Sunucu, yalnızca yaprak sertifikayı değil, ara sertifikaları da göndermelidir
  3. Karışık içerik — HTTPS sayfası HTTP kaynaklarını yükler (resimler, scriptler, stil dosyaları)
  4. Yeniden yönlendirme döngüleri — Yanlış yapılandırılmış CDN/proxy nedeniyle oluşan HTTP → HTTPS → HTTP döngüleri
  5. Non-www ve www uyumsuzluğu — Sertifika biri kapsarken diğeri kapsamaz

Hızlı kazanım: Alan adınızı SSL Labs üzerinden çalıştırın (ssllabs.com/ssltest). "A" derecesinin altındaki her şey, harekete geçirebileceğiniz sorunlar içerir. Çoğu barındırma sağlayıcısı bunları bir tıklama ile düzeltir.

Güvenlik Başlıkları

Güvenlik başlıkları, sitenizi yüklerken tarayıcılara nasıl davranmaları gerektiğini bildiren HTTP yanıt başlıklarıdır. Bu başlıklar, tüm saldırı kategorilerini önler — ve Google'ın tarayıcıları bunları kontrol eder.

Temel güvenlik başlıkları:

İçerik Güvenliği Politikası (CSP)

CSP, en güçlü güvenlik başlığıdır. Tarayıcılara, sayfalarınızda hangi kaynakların (scriptler, stiller, resimler, fontlar) yüklenmesine izin verildiğini açıkça belirtir.

Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://api.example.com; frame-ancestors 'none';

CSP'nin önlediği saldırılar:

  • Cross-site scripting (XSS) saldırıları
  • Veri enjeksiyon saldırıları
  • Clickjacking (via frame-ancestors)
  • Yetkisiz script çalıştırma (kriptopara madencileri, reklam enjeksiyonları)

CSP dağıtım stratejisi:

  1. Content-Security-Policy-Report-Only ile başlayın (bloklamadan ihlalleri kaydeder)
  2. Raporları 1-2 hafta izleyin
  3. Geçerli kaynakları beyaz listeye alın
  4. Zorunlu moda geçin
  5. Sürekli ihlal kaydı için report-uri veya report-to ekleyin

X-Frame-Options

Sitenizin diğer alan adlarında iframe'lerde yerleştirilmesini önler (clickjacking koruması).

X-Frame-Options: DENY

Aynı köken çerçevelemesine izin vermeniz gerekiyorsa:

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options

Tarayıcıların MIME türü taraması yapmasını önler (dosyaları beyan edilen türlerden farklı türler olarak yorumlamasını önler).

X-Content-Type-Options: nosniff

Bu satır, bir .jpg dosyasının içinde tarayıcının çalıştırabileceği gizli JavaScript içermesi durumunda meydana gelen saldırıları önler.

Referrer-Policy

Kullanıcıların sitenizdeki bağlantılara tıkladıklarında ne kadar referans bilgisi gönderileceğini kontrol eder.

Referrer-Policy: strict-origin-when-cross-origin

Bu, aynı köken istekleri için tam URL gönderirken, çapraz köken istekleri için yalnızca kökeni (domain) gönderir. Analiz ihtiyaçları ile gizliliği dengeleyerek ayarlanır.

Permissions-Policy

Hangi tarayıcı özelliklerinin (kamera, mikrofon, konum bilgisi vb.) sitenizde kullanılabileceğini kontrol eder.

Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()

Kullanmadığınız özellikleri devre dışı bırakmak, üçüncü taraf scriptlerin bunları istismar etmesini önler.

Başlık uygulama örneği (Next.js):

// next.config.js
module.exports = {
  async headers() {
    return [{
      source: '/(.*)',
      headers: [
        { key: 'X-Content-Type-Options', value: 'nosniff' },
        { key: 'X-Frame-Options', value: 'SAMEORIGIN' },
        { key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' },
        { key: 'Permissions-Policy', value: 'camera=(), microphone=(), geolocation=()' },
        { key: 'Strict-Transport-Security', value: 'max-age=31536000; includeSubDomains; preload' },
      ]
    }]
  }
}

Başlık uygulaması (Apache .htaccess):

Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Başlık uygulaması (Nginx):

add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Hızlı kazanım: Yukarıdaki 5 başlığı sunucu yapılandırmanıza ekleyin. Bu 5 dakikanızı alır ve herhangi bir tarama aracında güvenlik duruşunuzu anında iyileştirir.

HSTS Preload

HTTP Strict Transport Security (HSTS), tarayıcılara alan adınız için her zaman HTTPS kullanmalarını söyler — hatta ilk talep gerçekleşmeden önce bile. HSTS olmadan, sitenizi ilk ziyaret eden kullanıcılar hala HTTP kullanabilir (kesintiye uğramaya açık) ve HTTPS'ye yönlendirilmeden önce bu şekilde kalabilir.

HSTS başlığı:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Üç direktif:

| Direktif | Anlamı | |-----------|---------| | max-age=31536000 | Bunu 1 yıl boyunca hatırla (saniye cinsinden) | | includeSubDomains | Tüm alt alan adlarına da uygulanır | | preload | Tarayıcı preload listelerinde dahil edilme talebi |

HSTS preload listesi:

Son derece etkili HSTS koruması. Tarayıcılar, her zaman HTTPS kullanması gereken alan adlarının yer aldığı yerleşik bir listeyle gelir. Alan adınızı hstspreload.org adresine göndermek demektir ki:

  • İlk kez ziyaret eden kullanıcılar hemen HTTPS ile karşılaşır (HTTP → HTTPS yönlendirmesi yok)
  • Saldırganlar bağlantıları düşüremez
  • Kalıcıdır (gönderildikten sonra kaldırması zor)

HSTS preload için gereklilikler:

  1. Geçerli HTTPS sertifikası
  2. Tüm HTTP yönlendirmeleri HTTPS'ye yapılmalıdır (alt alan adları dahil)
  3. max-age >= 31536000 olan HSTS başlığı
  4. HSTS başlığı includeSubDomains içerir
  5. HSTS başlığı preload içerir
  6. Tüm alt alan adları HTTPS desteklemelidir

Uyarı: Sadece tüm alt alan adlarınız HTTPS destekliyorsa preload'a gönderin. includeSubDomains direktifi, herhangi bir yalnızca HTTP alt alan adının erişilemez olacağı anlamına gelir.

Hızlı kazanım: Eğer tüm alt alan adlarınızda zaten HTTPS varsa, tam HSTS başlığını ekleyin ve hstspreload.org adresine gönderin. İşlem birkaç hafta sürer, fakat koruma kalıcıdır.

Zayıflık Taraması

Otomatik zayıflık taraması, saldırganlar bu sorunları istismar etmeden önce yığınınızdaki bilinen güvenlik sorunlarını tanımlar.

Zayıflık taraması şunları kontrol eder:

  • Güncel olmayan yazılımlar: Bilinen CVE'leri olan WordPress, eklentiler, JavaScript kütüphaneleri
  • Açık dosyalar: .env, .git, wp-config.php, veritabanı dökümleri
  • Bilgi sızıntısı: Sunucu sürümü başlıkları, hata ayıklama modu, yığın izleri
  • Varsayılan kimlik bilgileri: Auth olmadan yönetici sayfaları, varsayılan şifreler
  • Açık portlar/hizmetler: İnternete açılan gereksiz hizmetler
  • Enjeksiyon noktaları: CSRF koruması olmayan formlar, doğrulanmamış girdiler

Platform bazında yaygın zayıflıklar:

| Platform | En Yaygın Zayıflık | Düzeltme | |----------|-------------------|-----| | WordPress | Güncel olmayan eklentiler | Otomatik güncelleme + WAF | | Shopify | Üçüncü taraf uygulama izinleri | Uygulama listesini üç ayda bir denetleyin | | Next.js | Açık API yolları | Kimlik doğrulama ara yazılımı + rate limiting | | Statik siteler | CDN yanlış yapılandırması | Önbellek kurallarını gözden geçirin | | Özel | SQL enjeksiyonu | Parametreli sorgular |

Tarama sıklığı:

  • Günlük: Otomatik yüzey taraması (SSL, başlıklar, açık dosyalar)
  • Haftalık: Bağımlılık zayıflık kontrolü (npm audit, WordPress eklenti tarayıcısı)
  • Aylık: Yetkilendirilmiş test ile derin tarama
  • Her dağıtım sonrasında: Regresyon kontrolü

Hızlı kazanım: npm audit (Node.js) çalıştırın veya CMS eklentilerinizi güncel olmayan bileşenler için kontrol edin. Kritik/yüksek şiddetteki sorunları hemen düzeltin.

Karışık İçerik

Karışık içerik, bir HTTPS sayfasının kaynakları (resimler, scriptler, stiller, iframe'ler) HTTP üzerinden yüklemesi durumunda oluşur. Bu, şifrelemeyi kısmen bozuyor ve tarayıcı uyarılarını tetikliyor.

Karışık içerik türleri:

| Tür | Şiddet | Örnek | Tarayıcı Davranışı | |------|----------|---------|------------------| | Aktif | Yüksek | HTTP script, iframe, CSS | Varsayılan olarak engellendi | | Pasif | Orta | HTTP resim, video, ses | Uyarı ile yüklendi |

Aktif karışık içerik modern tarayıcılar tarafından engellenmektedir — yani scriptleriniz ve stilleriniz yüklenmeyecek. Pasif karışık içerik yüklenir ancak güvenlik uyarıları gösterir.

Karışık içeriği bulma:

  1. Chrome Geliştirici Araçları'nı açın → Konsol
  2. "Karışık İçerik" uyarılarını arayın
  3. Alternatif olarak, bir tarayıcıyla tarayın (Screaming Frog, LANGR)

Karışık içerik kaynakları:

  • İçerikte sabit kodlanmış http:// URL'leri (blog yazıları, ürün açıklamaları)
  • HTTP kaynaklarını yükleyen üçüncü taraf widget'ları
  • Gömülü içerikler (YouTube eski gömüler, sosyal medya widget'ları)
  • HTTP URL'leri ile CSS background-image
  • HTTP üzerinden yüklenen fontlar

Karışık içeriği düzeltme:

<!-- Kötü -->
<img src="http://example.com/image.jpg" />

<!-- İyi -->
<img src="https://example.com/image.jpg" />

<!-- En İyi (protokol ile ilgili, sayfa protokolüne uyum sağlar) -->
<img src="//example.com/image.jpg" />

Veritabanı düzeltmesi (WordPress):

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://yourdomain.com', 'https://yourdomain.com');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://yourdomain.com', 'https://yourdomain.com');

Hızlı kazanım: Chrome'da ana sayfanızı açın, F12 tuşuna basın, Karışık içerik uyarıları için Konsol sekmesini kontrol edin. Görünen her hatayı düzeltin — bu doğrudan Google'a görünür.

Üçüncü Taraf Script Riskleri

Yüklediğiniz her dış script, potansiyel bir güvenlik (ve performans) sorunudur. Üçüncü taraf scriptler:

  • Tehdit altına alınabilir (tedarik zinciri saldırıları)
  • Kullanıcılarınızı onay olmadan takip edebilir (GDPR ihlali)
  • Sitenizi yavaşlatabilir (render-blocking, ağ gecikmesi)
  • İşlevselliği bozabilir (sürüm güncellemeleri, kesintiler)
  • İstenmeyen içerik enjekte edebilir (yanlış giden reklam scriptleri)

Üçüncü taraf scriptlerinizi denetleyin:

| Script | Gerekli mi? | Risk Seviyesi | Alternatif | |--------|-----------|------------|-------------| | Google Analytics | Çoğunlukla evet | Düşük | Sunucu tarafı takibi | | Sohbet widget'ları | Belki | Orta | Kendinize ait çözümler | | Sosyal paylaşım düğmeleri | Nadir | Orta | Statik paylaşım bağlantıları | | A/B testi | Bazen | Yüksek | Sunucu tarafı testi | | Yeniden hedefleme pikselleri | İş kararı | Yüksek | Birinci taraf verileri | | Font CDN'leri | Kullanışlı | Düşük | Kendinize ait fontlar |

Gerekli üçüncü taraf scriptler için risk azaltma:

  1. Subresource Integrity (SRI): Hash doğrulaması, değiştirilmiş scriptlerin yüklenmesini engeller
<script src="https://cdn.example.com/lib.js"
        integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxAE+sO0..."
        crossorigin="anonymous"></script>
  1. CSP kısıtlamaları: Yalnızca bilinen alanlardan gelen scriptlere izin verin
  2. Sandboxed iframe'ler: Üçüncü taraf widget'ları izole edin
  3. Düzenli denetimler: Tüm dış kaynakların üç ayda bir gözden geçirilmesi
  4. İzleme: Sayfalarınızda yeni dış alanların belirmesi durumunda uyarı almanız

Hızlı kazanım: HTML'nizde dış bir alandan yükleyen her