TL;DR:
- Oturum/kimlik için: HttpOnly çerez
- Küçük tercihler (tema, dil): LocalStorage/SessionStorage
- Büyük/Offline veri (katalog, makale önbelleği): IndexedDB
Hepsinde amaç, rıza, saklama süresi ve silme adımlarını netleştir. Rıza gelmeden analitik/pazarlama çalıştırma.
Giriş
“LocalStorage mı, çerez mi, IndexedDB mi?” sorusu 2025’te daha kritik. Çünkü gizlilik kuralları sıkı. Performans, SEO ve KVKK uyumu aynı anda sağlanmalı. Bu rehber, teknik detaya boğmadan doğru aracı doğru yerde kullanman için hazırlandı.
Temel Tanımlar
Çerez (cookie):
Tarayıcıda küçük bilgiler tutar; gerekirse her istekle sunucuya gider. Oturumun açık kalmasını, sepetin korunmasını ve tercihlerin hatırlanmasını sağlar.
LocalStorage / SessionStorage:
Tarayıcı içindeki anahtar–değer depoları.
- LocalStorage: Kalıcıdır; silene kadar durur.
- SessionStorage: Sekme kapanınca silinir.
Bu veriler sunucuya otomatik gitmez; yalnızca sayfadaki JavaScript erişir.
IndexedDB:
Tarayıcı içinde çalışan bir veritabanı. Büyük veri, offline kullanım ve gelişmiş arama–filtreleme için uygundur.
Hangi Yöntemi Ne Zaman Seçmeliyim?
1) Oturum ve Giriş (Login) → Çerez
- Neden? HttpOnly çerez JavaScript’tan okunamaz. XSS riskine karşı daha güvenlidir.
- Dikkat:
HttpOnly + Secure + SameSitebayraklarını ayarla. Gereksiz çerezleri kaldır.
2) Basit Kullanıcı Tercihleri → LocalStorage
- Örnek: Tema (açık/koyu), dil, çerez banner tercih sürümü.
- İpucu: Kişisel veri yoksa genelde rıza gerekmez. Yine de saklama süresini (TTL) yaz.
3) Geçici Kampanya Bilgisi → SessionStorage
- Örnek: UTM parametrelerini oturum boyunca tut.
- İpucu: Satın alma olursa ve rıza varsa analitiğe gönder; rıza yoksa gönderme.
4) Büyük/Offline Veri → IndexedDB
- Örnek: Ürün kataloğu, offline okunacak makaleler, yerel önbellek.
- İpucu: Ayarlara “Yerel veriyi temizle” butonu koy.
Kısayol:
Oturum = Çerez • Tercihler = Local/Session • Büyük/Offline = IndexedDB
KVKK ve Gizlilik
- Amaç: “Neyi, niçin tutuyorum?” net olsun.
- Rıza: Analitik, pazarlama ve kapsamlı kişiselleştirme için rıza al.
- Saklama süresi (TTL): Süre belirle; dolunca sil.
- Haklar: Kullanıcı verisini görüntüleme ve silme hakkına hızlı yanıt ver.
Not: LocalStorage veya IndexedDB kullanmak “rıza gerekmez” demek değildir. Kişisel veri veya takip amacı varsa rıza şarttır.
Güvenlik: Hızlı Karar Tablosu
- Oturum/Token → HttpOnly çerez (XSS’e karşı daha güvenli)
- Tercihler → Local/SessionStorage
- Büyük veri → IndexedDB
- Çerez ayarları →
SameSite,Secure,Path/Domaindoğru yapılandır - Genel kural → Hassas veriyi LocalStorage/IndexedDB’de saklama
Performans ve SEO Etkisi
- Çerezler her HTTP isteğine eklenebilir. Çok ve büyük çerez hız düşürür.
- LocalStorage/IndexedDB ağ isteğine eklenmez; sayfa içindeki okuma–yazma maliyeti vardır.
- Altın kural: Rıza gelmeden analitik/pazarlama script’i çalıştırma. Bu, Core Web Vitals ve SEO için iyidir.
- “Çerez Politikası”, “KVKK Aydınlatma” ve “Gizlilik Politikası” sayfalarına iç link ver. Okuyucu ve arama motoru için netlik sağlar.
Mini Senaryolar
Tema (açık/koyu): LocalStorage’a site_theme yaz. Ayarlara “Tercihleri sıfırla” ekle.
Sepet + oturum: HttpOnly çerez kullan. Pazarlama çerezleri için rızayı bekle.
UTM takibi: Oturum süresince SessionStorage’da sakla. Rıza varsa analitiğe gönder.
Offline okuma: IndexedDB’de içerik önbelleği tut. “Yerel veriyi temizle” butonunu unutma.
Silme (Erasure) ve Tercih Değiştirme
- “Verilerimi sil” butonuyla tek tıkta: çerezleri sil, Local/SessionStorage’ı temizle, IndexedDB’yi boşalt.
- Her sayfada sabit bir “Çerez tercihleri” kısayolu olsun.
- Silme ve rıza değişikliklerini zaman damgası ile logla. Denetimlerde işine yarar.
Sık Yapılan Hatalar → Hızlı Çözümler
- Rıza yokken izleme: Etiketler varsayılan kapalı olsun.
- Token’ı LocalStorage’da tutmak: HttpOnly çereze taşı.
- Belirsiz saklama süresi: Kısa bir TTL matrisi yaz (ör. zorunlu: oturum; işlevsel: 3–6 ay; analitik: 6–13 ay; pazarlama: mümkün olan en kısa).
- Eşit olmayan butonlar: “Tümünü kabul et / reddet / tercihleri yönet” eşit görünür olsun.
Kontrol Listesi (Yayın Öncesi)
- Oturum çerezi HttpOnly + Secure + SameSite
- Kişisel veri varsa rıza alınıyor
- TTL’ler belirlendi ve politika sayfasında yazıyor
- Rıza gelmeden analitik/pazarlama çalışmıyor
- “Çerez tercihleri” butonu her sayfada görünür
- “Verilerimi sil” akışı tüm depoları temizliyor
- Toplanan veri amaçla sınırlı
SSS
LocalStorage için rıza gerekir mi?
Verinin türüne bağlı. Kişisel veri veya takip amacı varsa gerekir; basit tema/dil tercihlerinde genelde gerekmez.
Çerezler SEO’yu düşürür mü?
Doğrudan hayır. Ama büyük çerezler hızı düşürür; bu da SEO’yu etkiler. Gereksizi temizle.
IndexedDB ağır mı?
Basit sitelerde gerekmez. Büyük veri ve offline senaryolarda idealdir.
Token’ı LocalStorage’da tutabilir miyim?
Önerilmez. XSS varsa çalınabilir. HttpOnly çerez daha güvenlidir.
İlgili Cerezgo rehberleri
Bu yazıdaki konuyu daha iyi tamamlamak için aşağıdaki Cerezgo içeriklerine de göz atabilirsiniz:
- Veri Sahipliği Paradigması: Kullanıcının Kendi Verisini…
- IP Adresi Kişisel Veri midir?
- 102. Yılında Cumhuriyet: 29 Ekim Gururu
- Çerez Yönetimi Başarı Hikayesi: Onvo ve Cerezgo İşbirliği
Uygulama tarafında Çerez Yönetim Aracı ve KVKK Çerez Yönetimi sayfaları bu konuyu tamamlar.

