Intrusive Interstitials Pop-up Kontrolü

SEOBAZ SEO 16 Nisan 2026
Intrusive Interstitials Pop-up Kontrolü
⚡ ÖZET

Intrusive interstitial, mobil arama sonuçlarından gelen kullanıcının sayfa içeriğine erişimini engelleyen katman öğesidir. 2026 itibarıyla müdahaleci ara sayfa kullanan mobil sayfalar, sayfa deneyimi sinyalleri kapsamında 3 ila 5 pozisyon sıralama kaybına maruz kalmaktadır. GDPR ve KVKK çerez banner'ları gibi yasal zorunluluklar istisna tutulurken viewport'un yüzde 15'ini aşan banner'lar ve tam ekran modal pencereler algoritmik risk taşır. Seobaz teknik SEO çerçevesinde pop-up yönetimi, CI/CD pipeline entegrasyonuyla otomatik boyut denetimi gerektiren kritik bir optimizasyon alanıdır.

🧠 Bu Rehberi 5 Farklı AI ile Test Et

Her modelin GEO karakterine göre özel prompt hazırlandı. Tıkla, kopyalansın ve ilgili AI açılsın.

Intrusive interstitial, kullanıcının sayfa içeriğine erişimini kısmen veya tamamen engelleyen araya giren katman öğesidir. 2026 itibarıyla sayfa deneyimi güncellemesi kapsamında müdahaleci ara sayfa kullanan mobil sayfalar, aynı sorguyu hedefleyen rakiplerine kıyasla ortalama 3 ila 5 pozisyon geride sıralanmaktadır. Bu durum, pop-up yönetimini bir pazarlama kararı olmaktan çıkarıp doğrudan organik görünürlüğü etkileyen bir teknik SEO disiplinine dönüştürdü.

Müdahaleci Ara Sayfa Tanımı ve Kapsam Sınırları

Müdahaleci ara sayfa, kullanıcı arama sonuçlarından bir sayfaya geçtiğinde içeriğin önünü kapatan veya erişimi geciktiren her tür katman öğesini kapsar. Tam ekran kaplayan modal pencereler, sayfanın yüzde 50'sinden fazlasını örten banner alanları ve içeriğe erişim için kapatılması gereken overlay katmanları bu tanıma girer.

Dikkat edilmesi gereken nokta, kullanıcının organik arama sonucundan gelmesidir. Site içi navigasyonla erişilen sayfalardaki pop-up'lar bu sınıflandırmaya dahil değildir. Ceza mekanizması yalnızca arama motoru sonuç sayfasından (SERP) tıklama ile gelen ilk etkileşimde devreye girer. Dolayısıyla iç sayfa geçişlerinde gösterilen ara katmanlar algoritmik risk taşımaz.

Müdahaleci Sayılmayan İstisna Kategorileri

Her pop-up müdahaleci değildir. Yasal zorunluluk gerektiren ara katmanlar istisna kapsamındadır. GDPR ve KVKK uyumlu çerez onay banner'ları, yaş doğrulama ekranları ve giriş duvarı (login wall) gerektiren içerikler bu kategoride yer alır.

Çerez onay banner'ının istisna sayılması için ekranın tamamını kaplamaması ve içeriğe erişimi tamamen engellememesi gerekir. Sayfanın alt kısmında sabit konumlandırılmış, yüksekliği ekranın yüzde 15'ini aşmayan bir çerez banner'ı istisna kapsamında kalır. Aksine, çerez tercihlerini seçtirmek amacıyla tam ekran overlay kullanan tasarımlar müdahaleci sınıfına girer ve algoritmik riske maruz kalır.

Algoritmik Ceza Mekanizmasının Teknik İşleyişi

Sayfa deneyimi sinyalleri, sıralama algoritmasına bağımsız bir sinyal grubu olarak dahil edilir. Müdahaleci ara sayfa tespiti, Googlebot'un sayfa render işlemi sırasında DOM yapısını analiz etmesiyle gerçekleşir. Render sonucunda viewport'un yüzde 50'sinden fazlasını kaplayan sabit konumlu (fixed/sticky) veya modal tipli öğeler tespit edildiğinde negatif sinyal üretilir.

Bu tespit yalnızca ilk görüntüleme anında yapılmaz. JavaScript ile zamanlayıcıya bağlanmış pop-up'lar da render pipeline'ında çalıştırılır. setTimeout ile 3 saniye sonra tetiklenen bir modal, Googlebot'un render süresine bağlı olarak yakalanabilir. Dolayısıyla pop-up'ı geciktirmenin algoritmik riskten kaçınmayı garanti etmediği bilinmelidir.

Pop-up Tetikleme Zamanlaması ve Güvenli Eşikler

Kullanıcı sayfaya geldikten hemen sonra gösterilen pop-up'lar en yüksek riski taşır. Zamanlama açısından güvenli eşik, kullanıcının sayfayla aktif etkileşime geçtiği andır. Scroll derinliği yüzde 50'yi aştığında veya sayfada en az 30 saniye geçirdikten sonra tetiklenen pop-up'lar, kullanıcı deneyimini minimal düzeyde bozar.

JavaScript tarafında scroll tabanlı tetikleme şöyle kurgulanır:

    
const observer = new IntersectionObserver((entries) => {
  if (entries[0].isIntersecting) {
    showNewsletterPopup();
    observer.disconnect();
  }
}, { threshold: 1.0 });

const trigger = document.getElementById('scroll-trigger-50');
if (trigger) observer.observe(trigger);      
    

Bu kod, sayfanın yüzde 50 derinliğine yerleştirilen bir gizli öğe görünür hale geldiğinde pop-up'ı tetikler. disconnect() çağrısı, pop-up'ın yalnızca bir kez gösterilmesini sağlar. Aynı mantık, zaman tabanlı tetikleme için setTimeout yerine requestIdleCallback kullanılarak optimize edilebilir.

Exit-Intent Tetikleyicinin Mobil ve Masaüstü Farkı

Masaüstünde fare imlecinin tarayıcı üst kenarına yaklaşmasıyla tetiklenen exit-intent pop-up'lar, kullanıcının sayfadan ayrılma niyetini yakalayan yaygın bir tekniktir. Bu tetikleme yöntemi içeriğin önünü kapamadığı sürece müdahaleci sayılmaz çünkü kullanıcı zaten sayfayı terk etmek üzeredir.

Mobil cihazlarda fare imleci bulunmadığı için exit-intent doğrudan uygulanamaz. Mobil ortamda "geri butonu" veya "tab değiştirme" davranışı exit-intent alternatifi olarak kullanılır. beforeunload veya visibilitychange event'leri bu niyeti yakalamaya çalışır:

    
document.addEventListener('visibilitychange', () => {
  if (document.visibilityState === 'hidden' && !popupShown) {
    schedulePopupForReturn();
  }
});     
    

Ancak beforeunload event'ine bağlanan pop-up'lar bazı tarayıcılarda engellenir. Bu nedenle mobil exit-intent stratejisi, kullanıcının geri döndüğünde (visibility visible) pop-up göstermek üzere kurgulanmalıdır.

Tam ekran modal yerine sayfanın üst veya alt kısmında sabit konumlandırılmış banner kullanmak, algoritmik riskten kaçınmanın en yaygın yoludur. Banner'ın güvenli alan eşiği, ekranın yüzde 15'ini aşmamaktır. 375 piksel yüksekliğindeki bir mobil ekranda bu değer yaklaşık 56 pikseldir.

CSS tarafında bu sınırı kontrol altında tutmak için:

    
.promo-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  max-height: 15vh;
  overflow: hidden;
  z-index: 1000;
}   
    

max-height: 15vh tanımı, banner yüksekliğini viewport yüksekliğinin yüzde 15'iyle sınırlar. Bu değer her ekran boyutunda oransal olarak korunur. Banner içindeki metin ve butonlar bu alana sığmalıdır, taşma durumunda overflow: hidden görsel bozulmayı engeller.

Mobil ekranda yüzde 15 eşiğini aşan ve aşmayan iki farklı banner tasarımını yan yana karşılaştıran bir şema.

Çerez Onay Banner'larında KVKK ve GDPR Uyumlu Tasarım

Çerez onay mekanizması yasal zorunluluktur ve algoritmik istisna kapsamındadır. Ancak bu istisna, tasarımın keyfi boyutlarda olabileceği anlamına gelmez. Tam ekran çerez overlay'i kullanan siteler, yasal istisna gerekçesiyle algoritmik cezadan muaf tutulmamaktadır.

Uyumlu çerez banner'ı sayfanın alt kısmında konumlandırılmalı, kapatma butonu açıkça görünür olmalı ve kullanıcı tercihi localStorage veya cookie ile saklanmalıdır. Tercih kaydedildikten sonra banner bir daha gösterilmemelidir:

    
if (!localStorage.getItem('cookie_consent')) {
  document.getElementById('cookie-banner').style.display = 'flex';
}

document.getElementById('accept-cookies').addEventListener('click', () => {
  localStorage.setItem('cookie_consent', 'accepted');
  document.getElementById('cookie-banner').style.display = 'none';
});
    

Bu yapı, onay veren kullanıcıya banner'ı tekrar göstermez. İkinci ziyarette localStorage kontrolü banner'ı DOM'da gizler ve hem kullanıcı deneyimi hem de sayfa performansı korunur.

Newsletter Pop-up Stratejisi ve Dönüşüm Dengesi

E-posta listesi büyütmek için kullanılan newsletter pop-up'ları, SEO ve pazarlama ekipleri arasında sürekli gerilim yaratan bir konudur. Pazarlama ekibi agresif tetikleme ister, SEO ekibi algoritmik riski vurgular. Doğru strateji her iki amacı da karşılayan orta yolu bulmaktır.

İlk ziyarette pop-up göstermemek temel kuraldır. İkinci veya üçüncü sayfa görüntülemede tetikleme yapmak, kullanıcının siteye ilgi gösterdiğini doğrular ve pop-up'ın dönüşüm oranını artırır. Session storage ile sayfa görüntüleme sayısı takip edilir:

    
let pageViews = parseInt(sessionStorage.getItem('pv') || '0') + 1;
sessionStorage.setItem('pv', pageViews.toString());

if (pageViews >= 3 && !localStorage.getItem('newsletter_dismissed')) {
  showNewsletterModal();
}
    

Bu yaklaşım, organik aramadan gelen kullanıcının ilk sayfasında pop-up göstermez. Üçüncü sayfa görüntülemesinde tetikleme yapar ve kullanıcı banner'ı kapattığında localStorage kaydıyla bir daha göstermez.

Scroll-Triggered Slide-In Paneller

Tam ekran modal yerine sayfanın kenarından kayan (slide-in) paneller, müdahaleci sınıfına girmeden kullanıcı dikkatini çekmenin etkili bir yoludur. Sağ alt köşeden kayan küçük bir panel, ekranın yüzde 10'undan azını kaplar ve içeriğe erişimi engellemez.

CSS ve JavaScript ile slide-in panel uygulaması:

    
.slide-panel {
  position: fixed;
  bottom: 16px;
  right: 16px;
  width: 320px;
  max-width: calc(100vw - 32px);
  transform: translateX(120%);
  transition: transform 0.3s ease;
  z-index: 900;
}

.slide-panel.visible {
  transform: translateX(0);
}
    

Bu panel viewport'un küçük bir bölümünü kaplar, içerikle etkileşimi engellemez ve kapatma butonu ile kolayca gizlenebilir. Müdahaleci interstitial tanımının dışında kaldığı için algoritmik risk taşımaz. Dönüşüm oranı açısından ise tam ekran modal'ın yüzde 60 ila 70'i kadar performans gösterir.

Interstitial Reklam Yönetimi ve Ad Experience Report

Reklam amaçlı interstitial'lar en yüksek riskli kategoridir. Coalition for Better Ads standartları, mobil cihazlarda tam ekran araya giren reklamları "kabul edilemez" olarak sınıflandırır. Chrome tarayıcısı Better Ads Standards'a uygun olmayan reklamları doğrudan engelleyebilir.

Ad Experience Report, Search Console içinde Güvenlik ve Manuel İşlemler bölümünde yer alır. Bu rapor, sitenin reklam deneyiminin Better Ads Standards'a uygun olup olmadığını gösterir. "Başarısız" statüsü, Chrome'un sitedeki tüm reklamları filtrelemeye başlayabileceği anlamına gelir. Raporun düzenli kontrol edilmesi ve uyarı çıktığında reklamların anında düzeltilmesi, hem reklam gelirini hem de organik sıralamayı korur.

Web Vitals Üzerindeki Pop-up Etkisi

Pop-up açıldığında DOM'a eklenen yeni öğeler Cumulative Layout Shift (CLS) tetikler. Özellikle sayfanın üst kısmında beliren banner'lar içeriği aşağı iter ve CLS değerini 0.1 eşiğinin üzerine taşır. Sabit konumlandırılmış (fixed) pop-up'lar ise içeriği itmez, dolayısıyla CLS üretmez.

Pop-up'ın JavaScript yükü Interaction to Next Paint (INP) değerini de etkiler. Ağır animasyonlar, büyük DOM eklentileri ve senkron script çalıştırmaları kapatma butonuna dokunma ile kapanma arasındaki süreyi uzatır. Pop-up DOM yapısını sayfa yüklenirken hazır tutup display özelliğiyle gizlemek hem CLS hem de INP etkisini minimize eder:

    
.modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
}

.modal-overlay.active {
  display: flex;
  align-items: center;
  justify-content: center;
}
    

Pop-up DOM'da zaten mevcuttur ve yalnızca display değeri değiştirilerek gösterilir. Yeni DOM öğesi eklenmediği için layout recalculation maliyeti sıfıra yakındır.

Usta Notu: Sahadaki En Pahalı Hata

İşin mutfağında durum farklıdır: konferanslarda ve blog yazılarında pop-up cezası teorik olarak anlatılır ama sahada en sık karşılaşılan hata teknik değil organizasyoneldir. Pazarlama ekibi "dönüşüm oranımız düştü, daha agresif pop-up koyalım" der ve SEO ekibine danışmadan tam ekran modal deploy eder. İki hafta sonra organik trafik yüzde 20 düşer ve herkes algoritmik bir güncelleme olduğunu düşünür. Search Console'da Mobil Kullanılabilirlik raporuna bakan bile olmaz. Gerçek çözüm teknik değil süreçseldir: pop-up değişiklikleri SEO ekibinin onayından geçmeden production'a alınmamalıdır. Git hook veya deployment pipeline'ına pop-up boyut kontrolü ekleyen bir linting kuralı, bu organizasyonel sorunu teknik güvenceye dönüştürür.

Googlebot Render Testi ile Pop-up Görünürlük Kontrolü

Pop-up'ın Googlebot tarafından nasıl algılandığını doğrulamak için Search Console'daki URL Denetim aracı kullanılır. Hedef URL girilip "Canlı URL'yi test et" seçeneği tıklandığında Googlebot sayfayı render eder ve ekran görüntüsü oluşturur. Bu görüntüde pop-up görünüyorsa, Googlebot'un müdahaleci ara sayfayı tespit ettiği kesinleşir.

Alternatif olarak Chrome'da --user-agent parametresiyle Googlebot user-agent'ı taklit edilebilir:

    
google-chrome --user-agent="Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
    

Bu komutla açılan tarayıcıda pop-up görünüp görünmediği kontrol edilir. Googlebot user-agent'ına özel olarak pop-up gizlenmesi cloaking ihlali oluşturur ve manuel ceza riski yaratır. Pop-up ya tüm kullanıcılara gösterilmeli ya da hiçbirine gösterilmemelidir.

A/B Test ile Pop-up Formatı Optimizasyonu

Farklı pop-up formatlarının dönüşüm oranı ve SEO etkisini karşılaştırmak için kontrollü A/B testi yapılmalıdır. Test varyantları şöyle kurgulanabilir:

  • Tam ekran modal en yüksek dönüşüm oranını üretir ancak algoritmik risk taşır ve bounce rate artırır.
  • Alt banner (sticky bar) düşük risklidir, ekranın yüzde 15'ini kaplar ve orta seviye dönüşüm oranı sağlar.
  • Slide-in panel risk taşımaz, düşük alan kaplar ve tam ekran modalin yüzde 60 ila 70'i kadar dönüşüm üretir.
  • Inline CTA (içerik içi) sıfır risk taşır, içerik akışına gömülüdür ve scroll derinliğine bağlı olarak yüksek etkileşim alır.

Test süresince organik trafik değişimi, oturum süresi ve hemen çıkma oranı birlikte izlenmelidir. Yalnızca dönüşüm oranına bakarak karar vermek, organik trafik kaybını gizler.

Pop-up Kapatma Mekanizmasının UX Standartları

Kapatma butonu kullanıcının kolayca bulabileceği ve dokunabileceği konumda olmalıdır. Sağ üst köşe, konvansiyonel kapatma butonu konumudur ve kullanıcının beklentisiyle örtüşür. Buton boyutu minimum 48x48 piksel olmalıdır, aksi halde tap target ihlali oluşur.

Overlay'e (karartılmış arka alan) tıklayarak kapatma özelliği de eklenmelidir. Kullanıcının yalnızca küçük bir "X" butonunu hedeflemek zorunda kalması, özellikle mobil cihazlarda frustrasyona yol açar. Ek olarak Escape tuşu ile kapatma desteği klavye navigasyonu kullanan kullanıcılar için zorunludur:

    
document.addEventListener('keydown', (e) => {
  if (e.key === 'Escape' && modalIsOpen) {
    closeModal();
  }
});
    

Kapatma butonunun süreli olarak gizlenmesi (örneğin "5 saniye bekleyin") kullanıcı deneyimini ciddi şekilde bozar ve Better Ads Standards ihlali oluşturur. Kapatma seçeneği pop-up açıldığı anda erişilebilir olmalıdır.

Frequency Capping ve Oturum Bazlı Gösterim Kontrolü

Aynı pop-up'ın her sayfa yüklemesinde tekrar gösterilmesi, kullanıcı deneyimini en çok bozan hatalardan biridir. Frequency capping, belirli bir süre veya oturum içinde pop-up'ın kaç kez gösterileceğini sınırlar.

localStorage ile zaman damgası kaydederek 7 günlük bekleme süresi uygulanabilir:

    
const lastShown = localStorage.getItem('popup_last_shown');
const sevenDays = 7 * 24 * 60 * 60 * 1000;

if (!lastShown || Date.now() - parseInt(lastShown) > sevenDays) {
  showPopup();
  localStorage.setItem('popup_last_shown', Date.now().toString());
}
    

Bu yapı, pop-up'ı gören kullanıcıya 7 gün boyunca tekrar göstermez. Kapatma işlemi ayrıca localStorage kaydıyla takip edildiğinde, kullanıcının bilinçli reddi saygıyla karşılanmış olur. LinkedIn üzerindeki UX araştırma topluluklarında paylaşılan veriler, 7 günlük frequency capping uygulayan sitelerde pop-up dönüşüm oranının paradoksal şekilde yüzde 12 arttığını ortaya koymaktadır.

Mobil ve Masaüstü İçin Ayrı Pop-up Stratejileri

Algoritmik ceza mekanizması öncelikli olarak mobil sayfaları hedefler. Masaüstü sayfalarında müdahaleci interstitial kullanımı aynı düzeyde ceza riski taşımaz. Bu asimetri, cihaz bazlı farklı pop-up stratejileri uygulamayı mümkün kılar.

CSS media query ile cihaz tipine göre farklı pop-up formatları uygulanabilir:

    
@media (pointer: coarse) {
  .newsletter-modal {
    display: none;
  }
  .newsletter-slide-panel {
    display: block;
  }
}

@media (pointer: fine) {
  .newsletter-modal {
    display: block;
  }
  .newsletter-slide-panel {
    display: none;
  }
}
    

pointer: coarse dokunmatik cihazları, pointer: fine fare kullanan cihazları hedefler. Mobilde slide-in panel, masaüstünde tam ekran modal göstermek hem algoritmik riski ortadan kaldırır hem de masaüstünde yüksek dönüşüm oranını korur.

Structured Data ile Pop-up İçeriğinin İşaretlenmesi

Çerez onay banner'ları ve yasal zorunluluk gerektiren ara katmanlar için WebPage şemasının specialty özelliği kullanılabilir. Bu işaretleme, arama motoruna ara katmanın yasal gereklilik olduğunu dolaylı yoldan bildirir. Ancak bu işaretlemenin algoritmik cezayı engellediğine dair resmi bir doğrulama bulunmamaktadır.

Daha etkili bir yaklaşım, pop-up içeriğinin HTML'de role="dialog" ve aria-modal="true" öznitelikleriyle işaretlenmesidir. Bu ARIA etiketleri, öğenin sayfa içeriğinden bağımsız bir diyalog penceresi olduğunu hem tarayıcılara hem de tarama botlarına bildirir. Googlebot'un render motorunun ARIA özniteliklerini yorumlayabildiği, mühendislik belgelerinde doğrulanmıştır.

Otomatik Pop-up Boyut Denetimi için CI/CD Entegrasyonu

Manuel kontrol ölçeklenebilir değildir. Pop-up boyutunun viewport eşiğini aşıp aşmadığını otomatik olarak test eden bir pipeline adımı, her dağıtımda güvence sağlar. Puppeteer ile viewport boyutu ve pop-up alanı karşılaştırması yapılabilir:

    
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.setViewport({ width: 375, height: 812 });
  await page.goto('https://site.com');
  await page.waitForTimeout(5000);

  const popups = await page.evaluate(() => {
    const fixedElements = [...document.querySelectorAll('*')].filter(el => {
      const style = getComputedStyle(el);
      return (style.position === 'fixed' || style.position === 'sticky') 
             && el.offsetHeight > window.innerHeight * 0.15
             && style.display !== 'none';
    });
    return fixedElements.map(el => ({
      tag: el.tagName,
      class: el.className,
      height: el.offsetHeight,
      viewportRatio: (el.offsetHeight / window.innerHeight * 100).toFixed(1)
    }));
  });

  if (popups.length > 0) {
    console.error('Müdahaleci pop-up tespit edildi:', popups);
    process.exit(1);
  }

  await browser.close();
})();
    

Bu script, 375x812 mobil viewport'unda sayfayı açar, 5 saniye bekler ve viewport'un yüzde 15'inden fazlasını kaplayan sabit konumlu öğeleri tespit eder. Tespit durumunda CI build'i başarısız olur ve pop-up düzeltilmeden production'a alınamaz. Bekleme süresi, zamanlayıcıya bağlı pop-up'ları da yakalamak için 5 saniye olarak ayarlanmıştır.

Pop-up Performans Bütçesi ve Kaynak Yönetimi

Pop-up bileşenlerinin JavaScript ve CSS boyutu, sayfa performans bütçesinden pay alır. Ağır pop-up kütüphaneleri (bazıları 50 KB üzerinde) toplam JavaScript yükünü artırır ve Total Blocking Time (TBT) metriğini olumsuz etkiler. Yerel JavaScript ve CSS ile yazılan hafif pop-up bileşenleri, üçüncü parti kütüphanelerin yüzde 10'u kadar kaynak tüketir.

Pop-up script'inin defer veya async özelliğiyle yüklenmesi, sayfanın kritik render yolunu etkilemesini önler. Daha ileri düzeyde, pop-up script'ini yalnızca tetikleme koşulu sağlandığında dinamik olarak import etmek (import()) başlangıç yükünü tamamen ortadan kaldırır. Bu lazy loading stratejisi, pop-up'ın kullanıcı deneyimi üzerindeki performans etkisini sıfıra yaklaştırır.

🚀 Şimdi Harekete Geçin

Bu rehberi teori olmaktan çıkar — 5 farklı AI ile test et veya ekibinle paylaş.

Whatsapp