Yeni Nesil GEO (AI Arama) & Google Sıralama Mimarisi

Sadece Trafik Değil, Ölçülebilir Ciro ve Büyüme Kazanın.

Algoritmaları tahmin etmeyi bırakın. Veriye dayalı Teknik SEO, Yapay Zeka (GEO) Optimizasyonu ve Performans Pazarlaması ile organik aramalarda liderliğe yerleşin.

✓ Kredi kartı gerekmez • ✓ Ücretsiz 22 Maddelik Core Web Vitals Raporu

3.8x
Ortalama Trafik Artışı
120M+
Yıllık Organik Gösterim
90+
Google PageSpeed Skoru
%98.4
Müşteri Memnuniyeti
360° Uzmanlık Alanları

Dönüşüm Odaklı Dijital Servisler

Tüm Hizmetleri İncele
Altyapı & Hız +%140 Tarama Verimliliği

Teknik SEO & Altyapı Denetimi

Site hızı, taranabilirlik, Core Web Vitals ve indeksleme sorunlarını ortadan kaldırarak Google botlarına kusursuz bir mimari sunun.

  • Derinlemesine Log Dosyası Analizi
  • Core Web Vitals & PageSpeed Optimizasyonu
  • JavaScript SEO ve Render Çözümleri
Detaylı İncele
Popüler & ROI Odaklı 3.8x Trafik Artışı

Stratejik Anahtar Kelime & Büyüme SEO

Sektörel rakip analizi ve satın alma niyeti yüksek (High-Intent) anahtar kelime hedefleri ile nitelikli organik müşteri trafiği kazanın.

  • Rakip Boşluk (Keyword Gap) Analizi
  • Arama Niyeti (Search Intent) Eşleme
  • Dönüşüm Odaklı Açılış Sayfası Optimizasyonu
Detaylı İncele
Yeni Nesil AI Arama AI Özetlerinde %85 Görünürlük

GEO (AI Arama) & İçerik Pazarlaması

ChatGPT, Google Gemini ve Perplexity gibi yapay zeka arama motorlarında markanızın otoriter kaynak olarak referans gösterilmesini sağlayın.

  • GEO (Generative Engine Optimization)
  • E-E-A-T Otorite Kriterleri Uyumu
  • Uzman Makale ve Vaka İncelemesi Üretimi
Detaylı İncele
Maksimum ROAS 5.4x Ortalama ROAS

Google Ads & Performans Pazarlaması

Arama ağı, Performance Max ve Yeniden Pazarlama kampanyaları ile reklam bütçenizi maksimum ciro ve dönüşüme (ROAS) dönüştürün.

  • Performance Max (PMax) Kampanya Yönetimi
  • Dönüşüm Takibi (Server-Side GA4 & GTM)
  • Negatif Kelime ve Bütçe Koruma Havuzu
Detaylı İncele
Yerel İşletmeler +%210 Harita Etkileşimi

Yerel SEO & Google Harita Optimizasyonu

Bölgesel aramalarda Google Maps 3-Pack paketinde 1. sıraya yerleşin ve yakınlardaki müşterileri doğrudan işletmenize çekin.

  • Google İşletme Profili (GBP) Tam Optimizasyon
  • Yerel Backlink ve Rehber Kayıtları (NAP)
  • Müşteri Yorum & İtibar Yönetimi Stratejisi
Detaylı İncele
Satış Artışı +%64 Dönüşüm Oranı

Dönüşüm Oranı Optimizasyonu (CRO)

Gelen ziyaretçileri kaybetmeyin! Isı haritaları, kullanıcı testleri ve UX iyileştirmeleri ile ziyaretçileri müşteriye dönüştürün.

  • Kullanıcı Deneyimi (UX) & Isı Haritası Analizi
  • A/B ve Çok Değişkenli Testler
  • Sepet ve Form Terk Etme Engelleme
Detaylı İncele
Kanıtlanmış Başarı

Müşterilerimizin Büyüme Sonuçları

Gerçek veriler, gerçek organik büyüme ve ölçülebilir yatırım getirisi (ROI).

Moda & E-Ticaret Markası +%320 Ciro Artışı
E-Ticaret SEO & Core Web Vitals

Moda & E-Ticaret Markası

Arama hacmi yüksek 2.500 anahtar kelimede ilk 3 sıraya yükselme ve LCP değerini 4.2 sn'den 1.1 sn'ye indirme.

+%285
Organik Trafik
3.4%
Dönüşüm Oranı
6.8x
ROAS Artışı
B2B SaaS Yazılım Şirketi Globalde 1. Sayfa
GEO (AI Engine) & İçerik Kümesi

B2B SaaS Yazılım Şirketi

Yapay zeka arama motorları ve E-E-A-T içerik stratejisiyle Amerika pazarında 140+ nitelikli demo talebi.

+%410
Nitelikli Lead
%78
AI Motor Referansı
-%45
Müşteri Edinme Maliyeti
Özel Sağlık & Estetik Grubu Google Haritalar 1. Sıra
Yerel SEO & Google Ads

Özel Sağlık & Estetik Grubu

Çok lokasyonlu harita optimizasyonu ve yüksek niyetli reklam kurgusuyla randevu sayısında rekor artış.

+%520
Harita Aramaları
2.400+
Telefon & WhatsApp
%96
Randevu Doluluğu
Lüks Gayrimenkul & Yatırım Portalı +%480 Organik Form/Lead
Gayrimenkul & Yatırım SEO

Lüks Gayrimenkul & Yatırım Portalı

Lüks konut ve ticari gayrimenkul projelerinde lokasyon bazlı programmatic SEO kurgusu ve Schema mimarisiyle nitelikli yatırımcı taleplerinde rekor artış.

+%480
Hedef Portföy Lead
2.6x
Ortalama Satış Hızı
850+
Top 3 Kelime Sayısı
Kurumsal Hukuk & Danışmanlık Bürosu Bölgesel Liderlik & Otorite
Hukuk & E-E-A-T Otorite

Kurumsal Hukuk & Danışmanlık Bürosu

Ticaret hukuku, birleşme/devralma ve tahkim aramalarında E-E-A-T uyumlu uzman makale dizisi ve güven odaklı site içi kurgu ile nitelikli kurumsal müvekkil kazanımı.

+%340
Danışmanlık Talebi
32 -> 68
Domain Otoritesi (DR)
4.2x
Organik Görünürlük
Endüstriyel Üretim & B2B İhracat 4 Kıtada İhracat Sıralaması
Uluslararası Çok Dilli SEO

Endüstriyel Üretim & B2B İhracat

İngilizce, Almanca ve Arapça hreflang altyapısı, teknik katalog optimizasyonu ve B2B toptan alım aramalarında küresel OEM ve distribütör teklif taleplerinde sıçrama.

+%290
İhracat Teklifleri
+%375
Yurtdışı Organik Trafik
+%185
Yıllık İhracat Cirosu
Butik Otel & Resort Zinciri %74 Komisyonsuz Rezervasyon
Turizm SEO & Direct Booking

Butik Otel & Resort Zinciri

OTA komisyon bağımlılığını kırmak için erken rezervasyon ve villa tatili anahtar kelimelerinde ilk sıra dominasyonu, yüksek hız ve doğrudan rezervasyon optimizasyonu.

+%215
Doğrudan Rezervasyon
₺1.8M+
Komisyon Tasarrufu
0.9 sn
Site Hızı (LCP)
Online Eğitim & EdTech Platformu 1.2 Milyon Aktif Öğrenci
GEO Arama & Rich Snippets

Online Eğitim & EdTech Platformu

Kurs sayfalarında VideoObject, Course Schema ve FAQ entegrasyonu ile Google SERP zengin sonuç dominasyonu ve yapay zeka arama motorlarında birincil referans olma.

+%310
Kurs Kayıt Oranı
%64
Google Snippet Payı
1.2M+
Organik Aylık Hit
Uluslararası Lojistik & Taşımacılık 5x Yıllık Navlun Hacmi
Dönüşüm Odaklı B2B SEO

Uluslararası Lojistik & Taşımacılık

Kombine taşımacılık, gümrükleme ve parsiyel navlun anahtar kelimelerinde rakip analiziyle 320+ sayfada ilk sayfa dominasyonu ve anlık fiyat teklif motoru CRO optimizasyonu.

+%440
Navlun Teklif Talebi
-%38
Hemen Çıkma Oranı
180+
Yeni Kurumsal Müşteri
İnteraktif Simülatör

Potansiyel SEO Büyümenizi Hesaplayın

Mevcut rakamlarınızı girin, profesyonel SEO stratejisi ile 6-12 ayda ulaşabileceğiniz projeksiyonu anında görün.

4.500
1.000 25.000 50.000+
₺1.200
₺200 ₺7.500 ₺15.000
💡 Hesaplama, sektörünüzdeki ortalama dönüşüm oranı (%2.2) ve ajansımızın gerçekleştirdiği vaka analizlerindeki medyan trafik büyüme çarpanı baz alınarak modellenmiştir.
Tahmini Aylık Trafik (12 Ay)
10.800
▲ +%140 Potansiyel Büyüme
Tahmini Ekstra Ciro / Katkı
+₺166.320
Yıllık Organik Kazanç
Kanıtlanmış Dönüşüm

Öncesi vs. Sonrası: Büyümenin Anatomisi

Teknik altyapı ve GEO stratejisinin 6 aylık süreçte yarattığı farkı inceleyin.

✕ ÖNCESİ (BAŞLANGIÇ)
Aylık Organik Trafik
4.120 ziyaretçi
  • ✗ Google 4. ve 6. sayfalarda kaybolmuş anahtar kelimeler
  • ✗ Core Web Vitals puanı 34/100 (Kırmızı Alan) ve yüksek hemen çıkma oranı
  • ✗ Yapay zeka (ChatGPT, Gemini, Perplexity) aramalarında sıfır görünürlük
  • ✗ İndekslenmeyen 404 sayfaları ve yanlış canonical yönlendirmeleri
Aylık Ciro Kaybı: Yüksek bütçeli Ads bağımlılığı
✓ SONRASI (6. AY)
Aylık Organik Trafik
142.800 ziyaretçi ▲ 34x Artış
  • ✓ Hedeflenen 84 stratejik kelimede Google 1. Sıra ve Zengin Snippet hakimiyeti
  • ✓ PageSpeed ve Core Web Vitals skoru 98/100 (Yeşil Alan)
  • ✓ GEO optimizasyonu ile ChatGPT ve Gemini cevaplarında otoriter tavsiye kaynağı
  • ✓ Sıfır tarama hatası, tam Schema.org ve kusursuz Topic Cluster link ağı
Ölçülebilir Sonuç: Reklam maliyetlerinde %60 tasarruf, organik satışta rekor
Doğrulanmış Değerlendirmeler

Müşterilerimiz Bizim İçin Ne Diyor?

Güvenilir ortaklıklar ve ölçülebilir büyüme ile sektör liderlerinin tercihi.

+%240 Organik Ciro

"ERA SEO ekibiyle çalışmaya başladıktan 4 ay sonra organik gelirimiz %240 arttı. Özellikle kategori sayfalarındaki teknik mimari ve arama niyeti optimizasyonu dönüşümlerimizi sıçrattı."

C
Caner Aksoy ✓ Doğrulanmış
E-Ticaret Direktörü
AI Aramada #1 Kaynak

"GEO ve yapay zeka arama motorları konusundaki vizyonları inanılmaz. ChatGPT ve Perplexity özetlerinde rakiplerimiz yerine bizim SaaS çözümümüz referans gösterilmeye başlandı."

E
Elif Demir ✓ Doğrulanmış
Pazarlama Müdürü
3x Nitelikli Lead

"B2B sektöründe yüksek niyetli anahtar kelimeleri tespit edip landing page tasarımlarımızı yenilediler. Gelen nitelikli form sayısı 3 katına çıktı, reklam bütçemizi yarıya düşürdük."

M
Murat Yıldırım ✓ Doğrulanmış
Kurucu Ortak
%310 Harita Etkileşimi

"Harita optimizasyonu ve yerel SEO çalışmalarından sonra kliniklerimize gelen yabancı ve yerli hasta randevularında patlama yaşandı. Google Haritalar’da bölgemizde aramalarda 1. sıraya yerleştik."

D
Dr. Zeynep Kaya ✓ Doğrulanmış
Klinik Direktörü
99/100 CWV Puanı

"Core Web Vitals ve INP metriklerindeki teknik darboğazlarımızı nokta atışı çözdüler. Sayfa açılış hızımız 0.8 saniyenin altına indi, Google organik tarama bütçemiz 4 kat daha verimli hale geldi."

K
Kerem Sungur ✓ Doğrulanmış
CTO
+%185 Global Talep

"Yurt dışı hedefli çok dilli (hreflang) SEO stratejisi sayesinde Avrupa pazarından aldığımız toptan sipariş talepleri %185 yükseldi. Raporlama şeffaflığı ve profesyonellikleri kusursuz."

S
Selin Arslan ✓ Doğrulanmış
Pazarlama & İhracat Yöneticisi
Şeffaf Fiyatlandırma

İhtiyacınıza Uygun Büyüme Paketleri

Sürpriz maliyetler olmadan, net taahhütler ve performans hedefleriyle çalışın.

Başlangıç & Büyüme

KOBİ & Yerel İşletmeler
₺10.950 %20 İndirim
₺8.750 /ay
  • Detaylı Teknik SEO & Site Hızı Denetimi
  • 20 Adet Öncelikli Anahtar Kelime Hedeflemesi
  • Google Haritalar (GBP) Tam Optimizasyonu
  • Aylık 4 Adet SEO & E-E-A-T Uyumlu İçerik
  • Aylık Performans ve Sıralama Raporu
  • E-Posta & WhatsApp Desteği
En Çok Tercih Edilen

Performans & Hakimiyet

En Çok Tercih Edilen
₺20.300 %20 İndirim
₺16.250 /ay
  • Kapsamlı Teknik SEO + Core Web Vitals Düzeltmeleri
  • 60 Adet Stratejik Anahtar Kelime & Niyet Haritası
  • GEO (AI Arama Motoru) Entegrasyonu
  • Aylık 8 Adet Otoriter İçerik + Vaka Analizi
  • Yüksek Otoriteli Doğal Basın & Backlink İnşası
  • Dönüşüm Oranı Optimizasyonu (CRO) Danışmanlığı
  • Haftalık Canlı Dashboard & Özel Stratejist Ataması

Kurumsal & E-Ticaret

Ölçeklenen Şirketler & Global
₺33.750 %20 İndirim
₺27.000 /ay
  • Sınırsız Kategori & Ürün Sayfası Teknik Mimarisi
  • Log Analizi ve Milyonluk URL Tarama Yönetimi
  • 360° Hibrit Strateji (SEO + Google Ads Yönetimi)
  • Özel AI İçerik Mühendisliği & Topic Clustering
  • Gelişmiş E-Ticaret Server-Side GA4 Ölçümlemesi
  • Rakip Tersine Mühendislik Saldırı/Savunma Planı
  • Öncelikli 7/24 Slack & Telefon Danışmanlığı
Merak Edilenler

Sıkça Sorulan Sorular

SEO çalışmalarının ilk sonuçlarını ne zaman görmeye başlarız?
SEO organik bir süreçtir. Teknik SEO düzeltmelerinde botların sitenizi yeniden taramasıyla ilk 3-6 hafta içinde taranabilirlik ve sıralama hareketleri başlar. Kalıcı ve hacimli organik ciro artışı genellikle 3. ile 6. ay arasında pik noktaya ulaşır.
GEO (Generative Engine Optimization) nedir, neden önemlidir?
GEO; ChatGPT, Perplexity ve Google Gemini gibi yapay zeka arama motorlarının sunduğu özetlerde markanızın birinci elden uzman kaynak olarak önerilmesini sağlayan yeni nesil optimizasyon metodolojisidir. Klasik SEO ile birleştiğinde markanızı geleceğe hazırlar.
Raporlama ve süreç şeffaflığı nasıl işliyor?
Her müşterimize 7/24 erişebileceği canlı Looker Studio gösterge paneli sağlıyoruz. Ayrıca ayda bir strateji değerlendirme toplantısı yaparak geçmiş ayın ROI verilerini ve gelecek ayın aksiyon planını inceliyoruz.
Web sitemizin hız (Core Web Vitals) puanlarını garanti ediyor musunuz?
Teknik SEO uzmanlarımız, sitenizin LCP, INP ve CLS metriklerini yeşil alana (Google standartlarında 90+ puan) taşımak için sunucu, görsel, CSS/JS sıkıştırma ve kod optimizasyonunu bizzat uygular.
SEO mu yoksa Google Ads mi tercih etmeliyim?
En iyi strateji ikisinin hibrit çalıştığı modeldir. Google Ads ile hemen ilk günden sıcak müşteri kazanırken, SEO ile uzun vadede tıklama başına maliyet ödemeden kalıcı ve bedelsiz müşteri edinme kanalı inşa edersiniz.
Gerçek Zamanlı Telemetri

Sitemiz de 90+ Core Web Vitals Hızında

Kendi altyapımıza uyguladığımız hız mühendisliğini sizin web sitenize de entegre ediyoruz.

LCP
0.8 sn
En Büyük İçerikli Boyama
✓ Mükemmel (Yeşil Alan) (Hedef: < 2.5 sn)
INP
42 ms
Sonraki Boyamayla Etkileşim
✓ Mükemmel (Yeşil Alan) (Hedef: < 200 ms)
CLS
0.00
Kümülatif Düzen Kayması
✓ Kusursuz (Sıfır Kayma) (Hedef: < 0.1)
Akıllı SEO Laboratuvarı

Canlı Sayfa İçi & Rakip SEO Denetleyicisi

İçerik başlığınızı, anahtar kelimenizi ve rakip verilerinizi girin; Google & AI gözünden anında 100 üzerinden skor ve aksiyon planı alın.

On-Page SEO Puanı
94 / 100
Mükemmel Arama Uyumu
Başlıkta Odak Kelime: ✓
Başlık Uzunluğu: ...
Kelime Yoğunluğu: ...
İlk Paragrafta Geçiş: ...
Metin Hacmi: ...
Akıllı Teklif Sihirbazı

İhtiyacınıza Özel SEO Bütçesini Belirleyin

Kullanmayacağınız hizmetlere para ödemeyin. Web sitenizin büyüklüğüne göre tam kapsamı seçin.

Önerilen Bütçe Modeli
₺19.680 %20 İndirim
₺15.750 /ay

Seçilen modüllerin aylık uzman çalışma eforunu ve teslim edilecek KPI çıktılarını kapsar.

Bilgi Bankası

SEO & Büyüme Rehberleri

Tüm Rehberleri Oku
GEO (Generative Engine Optimization): ChatGPT & Gemini Aramalarında 1. Kaynak Olma Rehberi
Yapay Zeka & GEO 2026 Trend
📅 08 Ekim 2026 ⏱️ 7 dk okuma

GEO (Generative Engine Optimization): ChatGPT & Gemini Aramalarında 1. Kaynak Olma Rehberi

Arama alışkanlıkları yapay zekaya kayıyor. ChatGPT Search, Gemini ve Perplexity yanıtlarında markanızın birincil otorite kaynak gösterilmesini sağlayan 2026 E-E-A-T stratejileri.

2026 Kılavuz
Google Core Web Vitals 2026: INP, LCP & CLS Metriklerini Yeşile Taşıma Kılavuzu
Teknik SEO Teknik Mühendislik
📅 05 Ekim 2026 ⏱️ 8 dk okuma

Google Core Web Vitals 2026: INP, LCP & CLS Metriklerini Yeşile Taşıma Kılavuzu

FID yerine geçen INP (Interaction to Next Paint) ve DOM derinliği optimizasyonlarıyla sunucu yanıt sürelerini (TTFB) 100ms altına çekerek sıralama kazanımları elde edin.

2026 Kılavuz
Milyonluk Ciro Yaratan E-Ticaret SEO Mimarisi: Faceted Navigasyon & Filtre İndeksleme
E-Ticaret SEO Yüksek Dönüşüm
📅 01 Ekim 2026 ⏱️ 6 dk okuma

Milyonluk Ciro Yaratan E-Ticaret SEO Mimarisi: Faceted Navigasyon & Filtre İndeksleme

Filtreli aramalarda tarama bütçesini tüketmeden, canonical ve Schema.org işaretlemeleriyle yüksek dönüşümlü ürün kategorilerinde organik satışı katlama formülü.

2026 Kılavuz
Topikal Otorite (Topical Authority) ve Semantik Konu Kümeleri Mimarisi
Semantik SEO Otorite İnşası
📅 25 Eylül 2026 ⏱️ 9 dk okuma

Topikal Otorite (Topical Authority) ve Semantik Konu Kümeleri Mimarisi

Google algoritmalarının sektörünüzün uzmanı olduğunuza inanması için Pillar Page ve Topic Cluster mimarisini nasıl kurgulamalısınız? Adım adım uygulama rehberi.

2026 Kılavuz
Modern JavaScript SEO: Next.js, Nuxt & Headless CMS Sitelerinde İndekslenme
Yazılım & JS SEO Geliştirici Odaklı
📅 18 Eylül 2026 ⏱️ 8 dk okuma

Modern JavaScript SEO: Next.js, Nuxt & Headless CMS Sitelerinde İndekslenme

SSR (Server-Side Rendering) ve SSG mimarilerinde Googlebot render gecikmelerini sıfırlayan, hidratasyon hatalarını önleyen kurumsal yazılım yönergeleri.

2026 Kılavuz
B2B Şirketler İçin Nitelikli Müşteri (Lead) Üreten Organik Arama Hunisi
B2B Büyüme Kurumsal B2B
📅 12 Eylül 2026 ⏱️ 7 dk okuma

B2B Şirketler İçin Nitelikli Müşteri (Lead) Üreten Organik Arama Hunisi

Tıklama sayısına değil, satış toplantısına ve teklif talebine odaklanan B2B SEO hunisi: Karar vericilerin aradığı uzun kuyruklu sorguları yakalama sanatı.

2026 Kılavuz
🔍 Etkileşimli SERP Laboratuvarı

Google SERP Önizleme & Piksel Denetleyici

Başlık ve meta açıklamanızın Google arama motorunda masaüstü ve mobil ekranlarda kesilmeden nasıl görüneceğini gerçek zamanlı test edin.

Meta Veri Girdileri Live

SEO Başlığı (Title) 54 / 60 krkt
Meta Açıklama (Description) 142 / 160 krkt
💻 Google Masaüstü Arama Sonucu Pixel Perfect
G
ERA SEO https://www.eragrowth.com/seo

ERA SEO | Growth & Generative Search Optimization

Data-backed Technical SEO, Generative Engine Optimization (GEO), and High-ROI Performance Marketing.

📊 Organik Pazar Payı Simülatörü

ERA SEO Impact
Mevcut Durum (Rakiplerin Gölgesinde) %14
6. Ay Hedefi (ERA Veri Odaklı SEO ile) %78
📡 Canlı Arama Motoru Radarı

Google Algoritma & AI Overviews Takvimi

Arama motoru çekirdek güncellemelerini ve yapay zeka sıralama sinyallerini anlık takip edin, sıralama kaybı yaşamadan önlem alın.

Core & GEO Adaptive Update
Live

AI Overviews and direct answer query weight increased across search algorithms.

Impact: High Sector: Global B2B, SaaS, E-Commerce Action: Topic Cluster + Schema
Spam & Link Graph Refresh
Completed

Low quality automated networks filtered. Authoritative digital PR references rewarded.

Impact: Moderate Sector: All Verticals Action: Editorial PR
Core Web Vitals INP Standard
Active

Interaction to Next Paint (INP) below 200ms prioritized for search crawl speed.

Impact: Technical Action: JS Optimisation & Edge CDN
🔔

Algoritma Erken Uyarı Servisi

Google yeni bir çekirdek güncelleme başlattığında veya AI aramalarda dalgalanma yaşandığında stratejik analiz bültenini anında e-postanıza gönderelim.

⚡ Max 1-2 briefings / mo ✓ Sıfır Spam
📚 SEO & Dijital Pazarlama Sözlüğü

Bilinmesi Gereken Temel Kavramlar

Temel SEO 📖

SERP (Search Engine Results Page)

Arama motoru sonuç sayfası. Kullanıcının yaptığı sorgu neticesinde Google veya diğer arama motorlarında organik listelemeler, reklamlar, bilgi kutucukları ve haritaların gösterildiği alan.

Yapay Zeka 📖

GEO (Generative Engine Optimization)

ChatGPT, Perplexity ve Google Gemini gibi üretken yapay zeka sistemlerinin cevaplarında markanızın ve içeriklerinizin otoriter kaynak olarak referans gösterilmesi amacıyla yapılan yeni nesil optimizasyon.

Teknik SEO 📖

Core Web Vitals & INP

Google'ın gerçek kullanıcı deneyimini ölçtüğü 3 ana metrik: LCP (yükleme hızı), INP (etkileşim gecikmesi) ve CLS (görsel kayma kararlılığı). Doğrudan sıralama faktörüdür.

İçerik Stratejisi 📖

E-E-A-T (Deneyim, Uzmanlık, Otorite, Güven)

Experience, Expertise, Authoritativeness, Trustworthiness. Google Kalite Değerlendiricileri kılavuzunda içerik üreticisinin ve web sitesinin güvenilirliğini tespit etmekte kullanılan temel değerlendirme kriteri.

Teknik SEO 📖

Crawl Budget (Tarama Bütçesi)

Googlebot'un belirli bir süre içinde sitenizde taramayı planladığı ve tarayabileceği sayfa sayısı kotası. Hızlı yanıt veren ve temiz mimarili sitelerde maksimum verimle kullanılır.

Teknik SEO 📖

Canonical URL

Aynı veya benzer içeriğe sahip sayfalar arasında arama motorlarına orijinal ve ana sayfa olarak hangi URL'nin indekslenmesi gerektiğini belirten HTML etiketidir (rel="canonical").

Rakiplerinizin Önüne Geçmeye Hazır mısınız?

Hemen ücretsiz denetim randevunuzu oluşturun. Sitenizin mevcut taranabilirlik, hız ve anahtar kelime potansiyelini birlikte keşfedelim.

WhatsApp ile Yazın
`); printWindow.document.close(); } // --- FEATURE 3: AUDIT TABS & COMPETITOR BENCHMARKING --- function switchAuditTab(tab) { const tabSelf = document.getElementById('audit-tab-self'); const tabComp = document.getElementById('audit-tab-competitor'); const btnSelf = document.getElementById('tab-btn-self'); const btnComp = document.getElementById('tab-btn-competitor'); if (tab === 'self') { if (tabSelf) tabSelf.classList.remove('hidden'); if (tabComp) tabComp.classList.add('hidden'); if (btnSelf) btnSelf.className = 'px-5 py-2 text-xs font-bold rounded-xl bg-white dark:bg-slate-900 text-brand-600 dark:text-brand-400 shadow-sm transition'; if (btnComp) btnComp.className = 'px-5 py-2 text-xs font-bold rounded-xl text-slate-600 dark:text-slate-400 hover:text-slate-900 dark:hover:text-white transition'; } else { if (tabSelf) tabSelf.classList.add('hidden'); if (tabComp) tabComp.classList.remove('hidden'); if (btnComp) btnComp.className = 'px-5 py-2 text-xs font-bold rounded-xl bg-white dark:bg-slate-900 text-brand-600 dark:text-brand-400 shadow-sm transition'; if (btnSelf) btnSelf.className = 'px-5 py-2 text-xs font-bold rounded-xl text-slate-600 dark:text-slate-400 hover:text-slate-900 dark:hover:text-white transition'; } } function runCompetitorComparison() { const myKw = (document.getElementById('comp-my-kw')?.value || '').trim(); const myTitle = (document.getElementById('comp-my-title')?.value || '').trim(); const myWords = parseInt(document.getElementById('comp-my-words')?.value || '450', 10); const rivalUrl = (document.getElementById('comp-rival-url')?.value || 'rival.com').trim(); const rivalTitle = (document.getElementById('comp-rival-title')?.value || '').trim(); const rivalWords = parseInt(document.getElementById('comp-rival-words')?.value || '1200', 10); const scoreBadge = document.getElementById('comp-score-badge'); const detailsBox = document.getElementById('comp-gap-details'); const lang = (window.ERA_LANG || document.documentElement.lang || 'tr').toLowerCase(); const isTr = lang === 'tr'; const isEn = lang === 'en'; const isDe = lang === 'de'; const isFr = lang === 'fr'; const isEs = lang === 'es'; const isAr = lang === 'ar'; const toLocaleLower = (str) => isTr ? str.toLocaleLowerCase('tr-TR') : str.toLocaleLowerCase('en-US'); const kwLower = toLocaleLower(myKw); const myTitleLower = toLocaleLower(myTitle); const rivalTitleLower = toLocaleLower(rivalTitle); const myHasKw = kwLower && myTitleLower.includes(kwLower); const rivalHasKw = kwLower && rivalTitleLower.includes(kwLower); const wordDiff = rivalWords - myWords; let badgeText = ''; let badgeClass = ''; let htmlDetails = ''; if (wordDiff > 0) { badgeClass = 'px-3 py-1 rounded-full text-xs font-bold bg-amber-500/10 text-amber-500'; if (isTr) { badgeText = `Rakip ${wordDiff} Kelime Önde`; htmlDetails = `

💡 İçerik Hacmi Boşluğu: ${rivalUrl} içeriği sizden ${wordDiff} kelime daha derin kapsam sunuyor.

🎯 Başlık & Niyet Analizi: Sizin Başlığınız: ${myHasKw ? '✓ Odak kelime var' : '✗ Odak kelime eksik'} | Rakip Başlığı: ${rivalHasKw ? '✓ Odak kelime var' : '✗ Odak kelime eksik'}.

🚀 Stratejik Aksiyon: Sitenize 3 adet derinlemesine alt başlık (H2/H3), istatistiki veri ve zengin SSS (Schema.org) işaretlemesi eklenerek rakip hacmi yakalanmalıdır.

`; } else if (isDe) { badgeText = `Konkurrent führt um ${wordDiff} Wörter`; htmlDetails = `

💡 Inhaltslücke: ${rivalUrl} bietet ${wordDiff} Wörter mehr autoritative Tiefe als Ihre Seite.

🎯 Titel-Relevanz: Ihr H1: ${myHasKw ? '✓ Fokus-KW enthalten' : '✗ Fehlt'} | Konkurrent-H1: ${rivalHasKw ? '✓ Fokus-KW enthalten' : '✗ Fehlt'}.

🚀 Aktionsplan: Fügen Sie H2/H3-Abschnitte, Vergleichstabellen und FAQ-Schema hinzu, um den Konkurrenten zu überholen.

`; } else if (isFr) { badgeText = `Concurrent en avance de ${wordDiff} mots`; htmlDetails = `

💡 Écart de Contenu: ${rivalUrl} possède ${wordDiff} mots de plus en profondeur sémantique.

🎯 Analyse Balise H1: Votre H1 : ${myHasKw ? '✓ Mot-clé présent' : '✗ Manquant'} | Concurrent : ${rivalHasKw ? '✓ Mot-clé présent' : '✗ Manquant'}.

🚀 Plan d'Action: Déployez 3 sous-titres H2/H3 et un balisage FAQ Schema.org pour surpasser ce concurrent.

`; } else if (isEs) { badgeText = `Competidor lidera por ${wordDiff} palabras`; htmlDetails = `

💡 Brecha de Contenido: ${rivalUrl} contiene ${wordDiff} palabras adicionales de autoridad.

🎯 Alineación de H1: Su Título: ${myHasKw ? '✓ Incluye KW' : '✗ Falta'} | Competidor: ${rivalHasKw ? '✓ Incluye KW' : '✗ Falta'}.

🚀 Acción Recomendada: Añada subtítulos H2/H3 enriquecidos y esquema FAQ Schema.org para posicionarse por delante.

`; } else if (isAr) { badgeText = `المنافس متقدم بـ ${wordDiff} كلمة`; htmlDetails = `

💡 فجوة المحتوى: يوفر ${rivalUrl} محتوى أعمق بنحو ${wordDiff} كلمة مقارنة بصفحتك.

🎯 تحليل العنوان: عنوانك: ${myHasKw ? '✓ يتضمن الكلمة' : '✗ ينقص'} | المنافس: ${rivalHasKw ? '✓ يتضمن الكلمة' : '✗ ينقص'}.

🚀 التوصية الاستراتيجية: أضف أقساماً فرعية H2/H3 وهيكلة Schema لـ FAQ لسد فجوة المنافسة.

`; } else { badgeText = `Competitor Leads by ${wordDiff} Words`; htmlDetails = `

💡 Content Volume Gap: ${rivalUrl} delivers ${wordDiff} more words of authoritative technical depth.

🎯 H1 Intent Check: Your H1: ${myHasKw ? '✓ Focus KW present' : '✗ Missing'} | Competitor H1: ${rivalHasKw ? '✓ Focus KW present' : '✗ Missing'}.

🚀 Recommended Roadmap: Integrate 3 authoritative H2/H3 subheadings, data tables, and FAQ Schema.org to capture search market share.

`; } } else { badgeClass = 'px-3 py-1 rounded-full text-xs font-bold bg-emerald-500/10 text-emerald-500'; if (isTr) { badgeText = 'İçerik Hacminiz Rakibin Önünde! 🏆'; htmlDetails = `

🟢 Avantajlı Konum: İçerik derinliğiniz rakibinizin üzerinde (${Math.abs(wordDiff)} kelime öndesiniz). Başlığınız: ${myHasKw ? '✓ Odak kelime içeriyor' : '⚠️ Başlığa odak kelime ekleyiniz'}.

🎯 Önerilen Odak: Sayfa hızınızı (Core Web Vitals INP/LCP) ve otoriter backlink ağınızı güçlendirerek sıralama liderliğinizi sabitleyin.

`; } else if (isDe) { badgeText = 'Ihr Inhalt übertrifft den Konkurrenten! 🏆'; htmlDetails = `

🟢 Vorteil: Ihre Inhaltstiefe übertrifft die des Konkurrenten um ${Math.abs(wordDiff)} Wörter.

🎯 Fokus: Konzentrieren Sie sich nun auf Core Web Vitals (INP) und autoritäre Backlinks.

`; } else if (isFr) { badgeText = 'Votre volume surpasse le concurrent ! 🏆'; htmlDetails = `

🟢 Avantage : Votre profondeur éditoriale dépasse celle du concurrent de ${Math.abs(wordDiff)} mots.

🎯 Prochaine étape : Optimisez la vitesse Core Web Vitals (INP) et l'autorité de domaine (DR).

`; } else if (isEs) { badgeText = '¡Su contenido supera al competidor! 🏆'; htmlDetails = `

🟢 Posición Ventajosa: Su volumen supera al del competidor por ${Math.abs(wordDiff)} palabras.

🎯 Siguiente Paso: Refuerce Core Web Vitals y adquiera enlaces editoriales de alta autoridad.

`; } else if (isAr) { badgeText = 'عمق محتواك يتفوق على المنافس! 🏆'; htmlDetails = `

🟢 موقف متقدم: يتفوق حجم محتواك على المنافس بفارق ${Math.abs(wordDiff)} كلمة.

🎯 الخطوة القادمة: ركز على تحسين سرعة Core Web Vitals وبناء روابط خلفية ذات موثوقية.

`; } else { badgeText = 'Your Content Depth Outranks Competitor! 🏆'; htmlDetails = `

🟢 Strong Position: Your content depth leads by ${Math.abs(wordDiff)} words. Your title: ${myHasKw ? '✓ Optimized with focus keyword' : '⚠️ Consider placing focus KW in H1'}.

🎯 Next Opportunity: Reinforce Core Web Vitals speeds (INP/LCP) and high-authority editorial PR links to cement rank #1.

`; } } if (scoreBadge) { scoreBadge.className = badgeClass; scoreBadge.textContent = badgeText; } if (detailsBox) { detailsBox.innerHTML = htmlDetails; } } // --- FEATURE 4: DIRECT WHATSAPP QUOTE SENDER --- function sendQuoteToWhatsApp() { const priceText = document.getElementById('config-total-price')?.textContent?.trim() || '₺15.750 /ay'; const model = activeBusinessModel === 'ecommerce' ? 'E-Ticaret' : (activeBusinessModel === 'b2b' ? 'B2B & Kurumsal' : 'Yerel Hizmet'); const activeMods = []; if (document.getElementById('cfg-tech')?.checked) activeMods.push('Teknik SEO'); if (document.getElementById('cfg-geo')?.checked) activeMods.push('GEO AI Mühendisliği'); if (document.getElementById('cfg-pr')?.checked) activeMods.push('Otoriter PR & Backlink'); if (document.getElementById('cfg-cro')?.checked) activeMods.push('CRO Dönüşüm'); const msg = `Merhaba ERASEO, web sitenizdeki Akıllı Teklif Sihirbazı üzerinden indirimli bir plan oluşturdum:\n\n• Sektörel Model: ${model}\n• Seçilen Modüller: ${activeMods.join(', ')}\n• Özel Aylık Bütçe: ${priceText}\n\nDetaylı yol haritası ve başvuru süreci hakkında bilgi alabilir miyim?`; const cleanPhone = '905551659851'; window.open(`https://wa.me/${cleanPhone}?text=${encodeURIComponent(msg)}`, '_blank'); } // --- FEATURE 5: ALGORITHM ALERT NEWSLETTER SUBSCRIPTION --- function subscribeAlgorithmAlert(form) { const input = form.querySelector('input[name="alert_email"]'); const status = document.getElementById('algo-alert-status'); const email = input ? input.value.trim() : ''; if (!email) return; if (status) { status.classList.remove('hidden'); status.innerHTML = `🎉 Harika! ${email} adresi Google Algoritma Radar bildirim listesine kaydedildi.`; form.reset(); setTimeout(() => { status.classList.add('hidden'); }, 5000); } } function changeThemePalette(name) { setThemePalette(name); document.querySelectorAll('#palette-menu, #palette-menu-mobile').forEach(el => el.classList.add('hidden')); showToast('Tema rengi başarıyla güncellendi: ' + name); } function showToast(message) { let toast = document.getElementById('siteGlobalToast'); if (!toast) { toast = document.createElement('div'); toast.id = 'siteGlobalToast'; toast.className = 'fixed bottom-5 right-5 z-[100] px-4 py-2.5 rounded-xl bg-slate-900/95 dark:bg-white/95 text-white dark:text-slate-900 text-xs font-bold shadow-2xl border border-slate-700 dark:border-slate-200 transition-all duration-300 transform translate-y-10 opacity-0 flex items-center gap-2'; document.body.appendChild(toast); } toast.innerHTML = `✨${message}`; toast.classList.remove('translate-y-10', 'opacity-0'); setTimeout(() => { toast.classList.add('translate-y-10', 'opacity-0'); }, 2500); } // Light & Dark Tone Alternatives (Warm Paper & OLED Midnight) function toggleThemeTone(tone) { const root = document.documentElement; const currentTone = localStorage.getItem('site_theme_tone'); if (tone === 'warm') { if (currentTone === 'warm') { root.classList.remove('mode-warm'); localStorage.removeItem('site_theme_tone'); } else { root.classList.remove('dark', 'mode-oled'); root.classList.add('mode-warm'); localStorage.setItem('site_theme', 'light'); localStorage.setItem('site_theme_tone', 'warm'); } } else if (tone === 'oled') { if (currentTone === 'oled') { root.classList.remove('mode-oled'); localStorage.removeItem('site_theme_tone'); } else { root.classList.remove('mode-warm'); root.classList.add('dark', 'mode-oled'); localStorage.setItem('site_theme', 'dark'); localStorage.setItem('site_theme_tone', 'oled'); } } updateThemeIcons(); updateToneBadges(); document.querySelectorAll('#palette-menu, #palette-menu-mobile').forEach(el => el.classList.add('hidden')); } function updateToneBadges() { const tone = localStorage.getItem('site_theme_tone'); const isDark = document.documentElement.classList.contains('dark'); document.querySelectorAll('[id^="tone-badge-warm"]').forEach(badge => { if (tone === 'warm' && !isDark) badge.classList.remove('hidden'); else badge.classList.add('hidden'); }); document.querySelectorAll('[id^="tone-badge-oled"]').forEach(badge => { if (tone === 'oled' && isDark) badge.classList.remove('hidden'); else badge.classList.add('hidden'); }); } // Close dropdowns when clicking outside document.addEventListener('click', (e) => { if (!e.target.closest('#lang-dropdown-wrapper') && !e.target.closest('#mobile-lang-dropdown-wrapper') && !e.target.closest('#palette-dropdown-wrapper') && !e.target.closest('#palette-dropdown-wrapper-mobile')) { document.querySelectorAll('#lang-menu, #mobile-lang-menu, #palette-menu, #palette-menu-mobile').forEach(el => el.classList.add('hidden')); } }); // Interactive ROI / Growth Calculator function initRoiCalculator() { const visitorsRange = document.getElementById('calc-visitors'); const orderValueRange = document.getElementById('calc-order-value'); if (!visitorsRange || !orderValueRange) return; function calculate() { const visitors = parseInt(visitorsRange.value, 10); const orderVal = parseInt(orderValueRange.value, 10); document.getElementById('calc-visitors-label').textContent = visitors.toLocaleString('tr-TR'); document.getElementById('calc-order-label').textContent = '₺' + orderVal.toLocaleString('tr-TR'); // %140 ortalama organik büyüme projeksiyonu, %1.8 e-ticaret/lead dönüşüm oranı const newVisitors = Math.round(visitors * 2.4); const addedVisitors = newVisitors - visitors; const estimatedRevenue = Math.round(addedVisitors * 0.022 * orderVal); document.getElementById('calc-projected-traffic').textContent = newVisitors.toLocaleString('tr-TR'); document.getElementById('calc-projected-revenue').textContent = '+₺' + estimatedRevenue.toLocaleString('tr-TR'); } visitorsRange.addEventListener('input', calculate); orderValueRange.addEventListener('input', calculate); calculate(); } // Interactive 6-Step Audit Scanner Simulator function startAuditScan(siteUrl = '') { const modal = document.getElementById('leadModal'); const card = document.getElementById('modalCard'); const scanner = document.getElementById('modalScannerScreen'); const formContainer = document.getElementById('modalFormContainer'); const websiteInput = document.getElementById('modalWebsiteInput'); const statusText = document.getElementById('scannerStatusText'); const progBar = document.getElementById('scannerProgressBar'); const step1 = document.getElementById('scanStep1'); const step2 = document.getElementById('scanStep2'); const step3 = document.getElementById('scanStep3'); if (websiteInput && siteUrl) { websiteInput.value = siteUrl; } if (modal && card && scanner && formContainer) { // Reset scanner screen scanner.classList.remove('hidden'); formContainer.classList.add('hidden'); progBar.style.width = '20%'; statusText.textContent = 'SSL & Güvenlik protokolleri doğrulanıyor...'; step2.innerHTML = '⏳ PageSpeed & Görsel Optimizasyonları'; step3.innerHTML = '⏳ GEO & Yapay Zeka Arama İndekslenebilirliği'; modal.classList.remove('hidden'); setTimeout(() => { modal.classList.remove('opacity-0'); card.classList.remove('scale-95'); card.classList.add('scale-100'); }, 10); // Adım 1: Hız ve LCP Analizi (900ms) setTimeout(() => { progBar.style.width = '60%'; statusText.textContent = 'Core Web Vitals & Render hızları taranıyor...'; step2.innerHTML = '✓ PageSpeed & Görsel Optimizasyonları'; }, 900); // Adım 2: GEO & AI Arama (1800ms) setTimeout(() => { progBar.style.width = '95%'; statusText.textContent = 'ChatGPT & Gemini GEO görünürlüğü haritalanıyor...'; step3.innerHTML = '⚠️ GEO & Yapay Zeka Arama: 3 Kritik Fırsat Bulundu'; }, 1800); // Tamamlanma: Formu aç (2600ms) setTimeout(() => { scanner.classList.add('hidden'); formContainer.classList.remove('hidden'); const titleEl = document.getElementById('modalTitle'); if (titleEl) { titleEl.textContent = (siteUrl ? siteUrl + ' - ' : '') + 'Ön Denetim Raporunuz Hazır!'; } }, 2600); } } // Before / After Slider Interaction function initBeforeAfterSlider() { const container = document.getElementById('beforeAfterContainer'); const beforeLayer = document.getElementById('beforeLayer'); const handle = document.getElementById('sliderHandle'); if (!container || !beforeLayer || !handle) return; let isDown = false; function move(e) { if (!isDown) return; const rect = container.getBoundingClientRect(); let clientX = e.clientX; if (e.touches && e.touches[0]) clientX = e.touches[0].clientX; let x = clientX - rect.left; if (x < 15) x = 15; if (x > rect.width - 15) x = rect.width - 15; const pct = (x / rect.width) * 100; beforeLayer.style.width = pct + '%'; handle.style.left = pct + '%'; } container.addEventListener('mousedown', () => isDown = true); window.addEventListener('mouseup', () => isDown = false); container.addEventListener('mousemove', move); container.addEventListener('touchstart', () => isDown = true, { passive: true }); window.addEventListener('touchend', () => isDown = false); container.addEventListener('touchmove', move, { passive: true }); } // Exit-Intent Modal Controller (24-Hour Expiry) function initExitIntent() { const lastShown = localStorage.getItem('exit_intent_timestamp'); const now = Date.now(); if (lastShown && (now - parseInt(lastShown, 10)) < 86400000) { return; // Shown in the last 24 hours } let triggered = false; document.addEventListener('mouseleave', (e) => { if (e.clientY <= 0 && !triggered) { triggered = true; localStorage.setItem('exit_intent_timestamp', Date.now().toString()); openExitIntentModal(); } }); } function openExitIntentModal() { const modal = document.getElementById('exitIntentModal'); const card = document.getElementById('exitCard'); if (modal && card) { modal.classList.remove('hidden'); setTimeout(() => { modal.classList.remove('opacity-0'); card.classList.remove('scale-95'); card.classList.add('scale-100'); }, 10); } } function closeExitIntentModal() { const modal = document.getElementById('exitIntentModal'); const card = document.getElementById('exitCard'); if (modal && card) { modal.classList.add('opacity-0'); card.classList.remove('scale-100'); card.classList.add('scale-95'); setTimeout(() => { modal.classList.add('hidden'); }, 300); } } // Modal Controller function openLeadModal(serviceName = 'Genel Talep') { const modal = document.getElementById('leadModal'); const card = document.getElementById('modalCard'); const scanner = document.getElementById('modalScannerScreen'); const formContainer = document.getElementById('modalFormContainer'); const serviceInput = document.getElementById('modalServiceInput'); const titleEl = document.getElementById('modalTitle'); if (scanner) scanner.classList.add('hidden'); if (formContainer) formContainer.classList.remove('hidden'); if (serviceInput) serviceInput.value = serviceName; if (titleEl && serviceName !== 'Genel Talep') { titleEl.textContent = serviceName + ' - Hızlı Teklif Alın'; } if (modal && card) { document.body.style.overflow = 'hidden'; modal.classList.remove('hidden'); setTimeout(() => { modal.classList.remove('opacity-0'); card.classList.remove('scale-95'); card.classList.add('scale-100'); }, 10); } } function closeLeadModal() { const modal = document.getElementById('leadModal'); const card = document.getElementById('modalCard'); if (modal && card) { document.body.style.overflow = ''; modal.classList.add('opacity-0'); card.classList.remove('scale-100'); card.classList.add('scale-95'); setTimeout(() => { modal.classList.add('hidden'); }, 300); } } // Strategy & Quote Modal Controller function triggerStrategyModal(btn) { if (!btn) return; try { const dataStr = btn.getAttribute('data-strategy'); const item = dataStr ? JSON.parse(dataStr) : null; if (item) { openStrategyModal(item); } } catch (e) { console.error('Strateji verisi çözümlenemedi:', e); } } function openStrategyModal(item) { if (!item) return; const modal = document.getElementById('strategyModal'); const card = document.getElementById('strategyModalCard'); const catEl = document.getElementById('stratModalCategory'); const roiEl = document.getElementById('stratModalRoi'); const readEl = document.getElementById('stratModalReadTime'); const titleEl = document.getElementById('stratModalTitle'); const excerptEl = document.getElementById('stratModalExcerpt'); const pointsContainer = document.getElementById('stratModalPoints'); const serviceInput = document.getElementById('stratFormService'); if (catEl) catEl.textContent = item.category || 'SEO Stratejisi'; if (roiEl) roiEl.textContent = item.expected_roi || '🚀 Yüksek ROI Beklentisi'; if (readEl) readEl.textContent = '⏱️ ' + (item.read_time || '5 dk okuma'); if (titleEl) titleEl.textContent = item.title || 'SEO Stratejisi'; if (excerptEl) excerptEl.textContent = item.excerpt || ''; if (serviceInput) serviceInput.value = 'Strateji Uygulama Teklifi: ' + (item.title || ''); if (pointsContainer) { pointsContainer.innerHTML = ''; const points = Array.isArray(item.strategy_points) && item.strategy_points.length > 0 ? item.strategy_points : [ 'Derinlemesine teknik ve semantik rakip açığı analizi', 'Core Web Vitals ve taranabilirlik mimarisinin optimize edilmesi', 'Bilgi grafiği (Knowledge Graph) ve Schema işaretlemelerinin kurgulanması', 'Aylık ölçülebilir dönüşüm ve ROI raporlaması' ]; points.forEach((point, index) => { const row = document.createElement('div'); row.className = 'flex items-start gap-2.5'; row.innerHTML = ` ✓ ${point} `; pointsContainer.appendChild(row); }); } if (modal && card) { document.body.style.overflow = 'hidden'; modal.classList.remove('hidden'); setTimeout(() => { modal.classList.remove('opacity-0'); card.classList.remove('scale-95'); card.classList.add('scale-100'); }, 10); } } function closeStrategyModal() { const modal = document.getElementById('strategyModal'); const card = document.getElementById('strategyModalCard'); if (modal && card) { document.body.style.overflow = ''; modal.classList.add('opacity-0'); card.classList.remove('scale-100'); card.classList.add('scale-95'); setTimeout(() => { modal.classList.add('hidden'); }, 300); } } // Global Keyboard Handler (ESC to close modals) document.addEventListener('keydown', (e) => { if (e.key === 'Escape') { if (typeof closeLeadModal === 'function') closeLeadModal(); if (typeof closeStrategyModal === 'function') closeStrategyModal(); if (typeof closeExitIntentModal === 'function') closeExitIntentModal(); if (typeof closeOrderModal === 'function') closeOrderModal(); } }); // Auto close mobile menu on anchor clicks document.addEventListener('DOMContentLoaded', () => { const mobileMenu = document.getElementById('mobile-menu'); if (mobileMenu) { mobileMenu.querySelectorAll('a').forEach(link => { link.addEventListener('click', () => { mobileMenu.classList.add('hidden'); }); }); } // Dynamic Telephone Masking (Supports International +CountryCode & Turkish +90) document.querySelectorAll('input[type="tel"]').forEach(input => { input.setAttribute('maxlength', '24'); input.addEventListener('input', (e) => { let val = e.target.value.trim(); // 1. Kullanıcı bilerek farklı bir ülke kodu (+359, +49, +1 vb.) ile başladıysa: if (val.startsWith('+') && !val.startsWith('+90')) { // Sadece +, boşluk, tire ve parantezlere izin ver, uluslararası serbest girişi bozma let clean = val.replace(/[^\d+() -]/g, ''); // Birden fazla + işaretini engelle if (clean.indexOf('+') > 0) clean = '+' + clean.replace(/\+/g, ''); e.target.value = clean; return; } // 2. Türkiye (+90) veya doğrudan numara girişi (5XX, 05XX, 905XX, +905XX): let digits = val.replace(/\D/g, ''); if (digits.startsWith('90')) digits = digits.substring(2); if (digits.startsWith('0')) digits = digits.substring(1); if (digits.length > 10) digits = digits.substring(0, 10); let formatted = ''; if (digits.length > 0) { formatted = '+90 (' + digits.substring(0, 3); } if (digits.length >= 3) { formatted += ') '; } if (digits.length > 3) { formatted += digits.substring(3, 6); } if (digits.length >= 6) { formatted += ' '; } if (digits.length > 6) { formatted += digits.substring(6, 8); } if (digits.length >= 8) { formatted += ' '; } if (digits.length > 8) { formatted += digits.substring(8, 10); } e.target.value = formatted.trim(); }); }); }); // AJAX Lead Submission async function submitLeadForm(e, form) { e.preventDefault(); const btn = form.querySelector('button[type="submit"]'); const alertBox = form.querySelector('#modalFormAlert') || form.querySelector('#pageFormAlert'); const originalText = btn.innerHTML; btn.disabled = true; btn.innerHTML = ` Gönderiliyor...`; if (alertBox) { alertBox.classList.add('hidden'); alertBox.className = 'text-xs p-3 rounded-lg hidden'; } try { const formData = new FormData(form); const res = await fetch('/api/lead', { method: 'POST', body: formData, headers: { 'X-Requested-With': 'XMLHttpRequest' } }); const data = await res.json(); if (alertBox) { alertBox.classList.remove('hidden'); if (data.success) { alertBox.classList.add('bg-emerald-500/15', 'border', 'border-emerald-500/30', 'text-emerald-300'); alertBox.innerHTML = `Başarılı! ${data.message}`; form.reset(); setTimeout(() => { closeLeadModal(); if (typeof closeStrategyModal === 'function') closeStrategyModal(); }, 3000); } else { alertBox.classList.add('bg-rose-500/15', 'border', 'border-rose-500/30', 'text-rose-300'); alertBox.innerHTML = `Hata: ${data.message}`; } } } catch (err) { if (alertBox) { alertBox.classList.remove('hidden'); alertBox.classList.add('bg-rose-500/15', 'border', 'border-rose-500/30', 'text-rose-300'); alertBox.innerHTML = 'Bir bağlantı hatası oluştu, lütfen telefon veya WhatsApp ile iletişime geçin.'; } } finally { btn.disabled = false; btn.innerHTML = originalText; } } // --- ON-PAGE SEO ANALYZER (2026 ACCURATE ALGORITHM) --- function runOnPageAudit() { const kwInput = document.getElementById('analyzer-keyword'); const titleInput = document.getElementById('analyzer-title'); const contentInput = document.getElementById('analyzer-content'); const rawKw = (kwInput ? kwInput.value : '').trim(); const rawTitle = (titleInput ? titleInput.value : '').trim(); const rawContent = (contentInput ? contentInput.value : '').trim(); if (!rawKw) { return; } const lang = (window.ERA_LANG || document.documentElement.lang || 'tr').toLowerCase(); const isTr = lang === 'tr'; const isDe = lang === 'de'; const isFr = lang === 'fr'; const isEs = lang === 'es'; const isAr = lang === 'ar'; // Casing duyarlılığı (Türkçe için tr-TR, diğerleri için en-US) const toLocaleLower = (str) => isTr ? str.toLocaleLowerCase('tr-TR') : str.toLocaleLowerCase('en-US'); const kw = toLocaleLower(rawKw); const title = toLocaleLower(rawTitle); const content = toLocaleLower(rawContent); // Kelimeleri temizleme ve ayırma const cleanWords = rawContent .replace(/[.,\/#!$%\^&\*;:{}=\-_`~()?"'’+<>]/g, ' ') .split(/\s+/) .filter(w => w.length > 0); const totalWordCount = cleanWords.length; // Hedef anahtar kelimenin kelime sayısı (örn: "seo ajansı" = 2 kelime) const kwWords = kw.split(/\s+/).filter(w => w.length > 0); const kwWordLen = kwWords.length || 1; // Anahtar kelime kaç kez geçiyor? let kwCount = 0; if (totalWordCount > 0 && kw.length > 0) { const escapedKw = kw.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); const regex = new RegExp('(?:^|[^a-zA-Z0-9çğıöşüÇĞİÖŞÜ\u0600-\u06FF])(' + escapedKw + ')(?=[^a-zA-Z0-9çğıöşüÇĞİÖŞÜ\u0600-\u06FF]|$)', 'gi'); const matches = content.match(regex); kwCount = matches ? matches.length : 0; } // Yoğunluk Formülü: (Eşleşme Sayısı * Kelimedeki Sözcük Sayısı / Toplam Metin Sözcük Sayısı) * 100 const occupiedWords = kwCount * kwWordLen; const densityNum = totalWordCount > 0 ? ((occupiedWords / totalWordCount) * 100) : 0; const density = densityNum.toFixed(1); let score = 0; const chkTitle = document.getElementById('chk-title'); const chkTitleLen = document.getElementById('chk-title-len'); const chkDensity = document.getElementById('chk-density'); const chkFirstP = document.getElementById('chk-first-p'); const chkLength = document.getElementById('chk-length'); // Çok Dilli Etiket ve Sözlük const i18n = { titleKw: isTr ? 'Başlıkta Odak Kelime:' : (isDe ? 'Fokus-KW im Titel:' : (isFr ? 'Mot-Clé dans le Titre:' : (isEs ? 'Palabra Clave en Título:' : (isAr ? 'الكلمة المفتاحية في العنوان:' : 'Focus KW in Title:')))), titleLen: isTr ? 'Başlık Uzunluğu:' : (isDe ? 'Titellänge:' : (isFr ? 'Longueur du Titre:' : (isEs ? 'Longitud del Título:' : (isAr ? 'طول العنوان:' : 'Title Length:')))), density: isTr ? 'Kelime Yoğunluğu:' : (isDe ? 'Keyword-Dichte:' : (isFr ? 'Densité du Mot-Clé:' : (isEs ? 'Densidad de Palabra Clave:' : (isAr ? 'كثافة الكلمات المفتاحية:' : 'Keyword Density:')))), firstP: isTr ? 'İlk Paragrafta Geçiş:' : (isDe ? 'Im Ersten Absatz:' : (isFr ? 'Présence Premier Paragraphe:' : (isEs ? 'En Primer Párrafo:' : (isAr ? 'في الفقرة الأولى:' : 'First Paragraph Match:')))), wordCount: isTr ? 'Metin Hacmi:' : (isDe ? 'Textvolumen:' : (isFr ? 'Volume de Contenu:' : (isEs ? 'Volumen de Palabras:' : (isAr ? 'حجم النص:' : 'Word Count:')))), yes: isTr ? '✓ Var' : (isDe ? '✓ Vorhanden' : (isFr ? '✓ Présent' : (isEs ? '✓ Presente' : (isAr ? '✓ موجود' : '✓ Present')))), no: isTr ? '✗ Yok' : (isDe ? '✗ Fehlt' : (isFr ? '✗ Absent' : (isEs ? '✗ No encontrado' : (isAr ? '✗ غير موجود' : '✗ Missing')))), chars: isTr ? 'Karakter' : (isDe ? 'Zeichen' : (isFr ? 'Caractères' : (isEs ? 'Caracteres' : (isAr ? 'حرف' : 'Characters')))), words: isTr ? 'Kelime' : (isDe ? 'Wörter' : (isFr ? 'Mots' : (isEs ? 'Palabras' : (isAr ? 'كلمة' : 'Words')))), ideal: isTr ? 'İdeal' : (isDe ? 'Ideal' : (isFr ? 'Idéal' : (isEs ? 'Ideal' : (isAr ? 'مثالي' : 'Optimal')))), short: isTr ? 'Kısa' : (isDe ? 'Zu kurz' : (isFr ? 'Trop court' : (isEs ? 'Corto' : (isAr ? 'قصير' : 'Short')))), tooLong: isTr ? 'Çok Uzun' : (isDe ? 'Zu lang' : (isFr ? 'Trop long' : (isEs ? 'Demasiado largo' : (isAr ? 'طويل جداً' : 'Too Long')))), improvable: isTr ? 'Geliştirilebilir' : (isDe ? 'Ausbaufähig' : (isFr ? 'Améliorable' : (isEs ? 'Mejorable' : (isAr ? 'قابل للتحسين' : 'Can improve')))), low: isTr ? 'Düşük' : (isDe ? 'Niedrig' : (isFr ? 'Faible' : (isEs ? 'Bajo' : (isAr ? 'منخفض' : 'Low')))), highSpam: isTr ? 'Aşırı (Spam Riski)' : (isDe ? 'Überoptimiert (Spam-Risiko)' : (isFr ? 'Suroptimisé' : (isEs ? 'Excesivo' : (isAr ? 'مفرط' : 'Excessive (Spam Risk)')))), badgePerfect: isTr ? 'Mükemmel Arama Uyumu 🏆' : (isDe ? 'Perfekte Suchübereinstimmung 🏆' : (isFr ? 'Correspondance Optimale 🏆' : (isEs ? 'Alineación Perfecta 🏆' : (isAr ? 'تطابق بحث ممتاز 🏆' : 'Near Perfect Search Match 🏆')))), badgeGood: isTr ? 'Geliştirilebilir Düzeyde ⚠️' : (isDe ? 'Gute Basis, Ausbaufähig ⚠️' : (isFr ? 'Niveau Intermédiaire ⚠️' : (isEs ? 'Nivel Aceptable ⚠️' : (isAr ? 'مستوى متوسط ⚠️' : 'Moderate Match ⚠️')))), badgePoor: isTr ? 'Kritik Eksikler Tespit Edildi ❌' : (isDe ? 'Kritische Optimierung nötig ❌' : (isFr ? 'Optimisation Critique ❌' : (isEs ? 'Faltas Críticas Detectadas ❌' : (isAr ? 'نواقص حرجة تم رصدها ❌' : 'Critical Gaps Detected ❌')))) }; // 1. Başlıkta Odak Kelime Kontrolü (25 puan) const inTitle = title.includes(kw); if (chkTitle) { chkTitle.innerHTML = `${i18n.titleKw} ${inTitle ? i18n.yes : i18n.no}`; } if (inTitle) score += 25; // 2. Başlık Karakter Uzunluğu (20 puan) - Google SERP için 40-65 karakter ideal const titleLen = rawTitle.length; let titleLenStatus = i18n.short; let titleLenClass = 'text-amber-500'; let titleLenPts = 5; if (titleLen >= 40 && titleLen <= 65) { titleLenStatus = `${i18n.ideal} (40-65)`; titleLenClass = 'text-emerald-500'; titleLenPts = 20; } else if (titleLen > 65) { titleLenStatus = i18n.tooLong; titleLenClass = 'text-rose-500'; titleLenPts = 10; } else if (titleLen >= 20) { titleLenStatus = i18n.improvable; titleLenClass = 'text-amber-500'; titleLenPts = 12; } if (chkTitleLen) { chkTitleLen.innerHTML = `${i18n.titleLen} ${titleLen} ${i18n.chars} (${titleLenStatus})`; } score += titleLenPts; // 3. Kelime Yoğunluğu (20 puan) - İdeal aralık %1.0 - %3.0 const densityOptimal = densityNum >= 1.0 && densityNum <= 3.0; let densityStatus = i18n.low; let densityClass = 'text-rose-500'; let densityPts = 0; if (densityOptimal) { densityStatus = `${i18n.ideal} (1-3%)`; densityClass = 'text-emerald-500'; densityPts = 20; } else if (densityNum > 3.0) { densityStatus = i18n.highSpam; densityClass = 'text-rose-500'; densityPts = 5; } else if (densityNum > 0) { densityStatus = `${i18n.low}`; densityClass = 'text-amber-500'; densityPts = 10; } if (chkDensity) { chkDensity.innerHTML = `${i18n.density} %${density} (${densityStatus})`; } score += densityPts; // 4. İlk 100 Kelimede / İlk Paragrafta Geçiş (15 puan) const first100Words = cleanWords.slice(0, 100).join(' '); const first100Lower = toLocaleLower(first100Words); const inFirstP = first100Lower.includes(kw); if (chkFirstP) { chkFirstP.innerHTML = `${i18n.firstP} ${inFirstP ? i18n.yes : i18n.no}`; } if (inFirstP) score += 15; // 5. İçerik Hacmi / Derinlik (20 puan) let lenStatus = i18n.short; let lenClass = 'text-rose-500'; let lenPts = 0; if (totalWordCount >= 300) { lenStatus = `${i18n.ideal} (300+)`; lenClass = 'text-emerald-500'; lenPts = 20; } else if (totalWordCount >= 100) { lenStatus = isTr ? 'Orta Düzey (100+)' : 'Moderate (100+)'; lenClass = 'text-emerald-500'; lenPts = 15; } else if (totalWordCount >= 30) { lenStatus = isTr ? 'Giriş Seviyesi (30+)' : 'Basic (30+)'; lenClass = 'text-amber-500'; lenPts = 8; } if (chkLength) { chkLength.innerHTML = `${i18n.wordCount} ${totalWordCount} ${i18n.words} (${lenStatus})`; } score += lenPts; // Toplam Skor Gösterimi const scoreDisplay = document.getElementById('analyzer-score-display'); const statusBadge = document.getElementById('analyzer-status-badge'); if (scoreDisplay) scoreDisplay.textContent = `${score} / 100`; if (statusBadge) { if (score >= 80) { statusBadge.className = 'text-xs font-semibold text-emerald-600 dark:text-emerald-400 mt-0.5'; statusBadge.textContent = i18n.badgePerfect; } else if (score >= 50) { statusBadge.className = 'text-xs font-semibold text-amber-500 mt-0.5'; statusBadge.textContent = i18n.badgeGood; } else { statusBadge.className = 'text-xs font-semibold text-rose-500 mt-0.5'; statusBadge.textContent = i18n.badgePoor; } } } // --- CUSTOM QUOTE CONFIGURATOR --- let activeBasePrice = 9000; let activeBusinessModel = 'ecommerce'; function selectConfigModel(model, basePrice) { activeBusinessModel = model; activeBasePrice = basePrice; const btns = document.querySelectorAll('.config-model-btn'); btns.forEach(btn => { if (btn.dataset.model === model) { btn.className = 'config-model-btn p-3 rounded-2xl border border-brand-500 bg-brand-50 dark:bg-brand-950/40 text-brand-600 dark:text-brand-400 font-bold text-xs text-center flex flex-col items-center gap-1 transition shadow-sm'; } else { btn.className = 'config-model-btn p-3 rounded-2xl border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-900 text-slate-700 dark:text-slate-300 font-bold text-xs text-center flex flex-col items-center gap-1 transition hover:border-slate-400'; } }); updateConfigQuote(); } function updateConfigQuote() { let netTotal = activeBasePrice; const modules = [ { id: 'cfg-tech', price: 3000 }, { id: 'cfg-geo', price: 3750 }, { id: 'cfg-pr', price: 4000 }, { id: 'cfg-cro', price: 2500 } ]; modules.forEach(m => { const el = document.getElementById(m.id); if (el && el.checked) { netTotal += m.price; } }); // Liste Fiyatı (İndirimsiz = Net / 0.8) const oldTotal = Math.round(netTotal / 0.8 / 10) * 10; const oldPriceDisplay = document.getElementById('config-old-price'); if (oldPriceDisplay) { oldPriceDisplay.textContent = `₺${oldTotal.toLocaleString('tr-TR')}`; } const display = document.getElementById('config-total-price'); if (display) { display.innerHTML = `₺${netTotal.toLocaleString('tr-TR')} /ay`; } } // --- FLOATING SPEED-DIAL TOGGLE --- function toggleSpeedDial() { const menu = document.getElementById('speed-dial-menu'); const iconOpen = document.getElementById('speed-dial-icon-open'); const iconClose = document.getElementById('speed-dial-icon-close'); if (menu) { if (menu.classList.contains('hidden')) { menu.classList.remove('hidden'); if (iconOpen) iconOpen.classList.add('hidden'); if (iconClose) iconClose.classList.remove('hidden'); } else { menu.classList.add('hidden'); if (iconOpen) iconOpen.classList.remove('hidden'); if (iconClose) iconClose.classList.add('hidden'); } } } // --- LIVE GOOGLE SERP PREVIEW --- function updateSerpPreview() { const urlInput = document.getElementById('serp-input-url'); const titleInput = document.getElementById('serp-input-title'); const descInput = document.getElementById('serp-input-desc'); const prevUrl = document.getElementById('serp-prev-url'); const prevTitle = document.getElementById('serp-prev-title'); const prevDesc = document.getElementById('serp-prev-desc'); const titleCount = document.getElementById('serp-title-count'); const descCount = document.getElementById('serp-desc-count'); const titleBar = document.getElementById('serp-title-bar'); const descBar = document.getElementById('serp-desc-bar'); const rawUrl = urlInput ? urlInput.value.trim() : ''; const rawTitle = titleInput ? titleInput.value : ''; const rawDesc = descInput ? descInput.value : ''; if (prevUrl) { prevUrl.textContent = rawUrl.startsWith('http') ? rawUrl : 'https://' + rawUrl; } if (prevTitle) { prevTitle.textContent = rawTitle || 'Örnek Başlık'; } if (prevDesc) { prevDesc.textContent = rawDesc || 'Örnek açıklama buraya gelecek...'; } // Title Length Progress & Color (Optimal: 45 - 60 chars) const tLen = rawTitle.length; if (titleCount) titleCount.textContent = `${tLen} / 60 krkt`; if (titleBar) { const pct = Math.min((tLen / 60) * 100, 100); titleBar.style.width = pct + '%'; if (tLen > 65) { titleBar.className = 'bg-rose-500 h-full transition-all'; } else if (tLen >= 40) { titleBar.className = 'bg-emerald-500 h-full transition-all'; } else { titleBar.className = 'bg-amber-500 h-full transition-all'; } } // Desc Length Progress & Color (Optimal: 120 - 160 chars) const dLen = rawDesc.length; if (descCount) descCount.textContent = `${dLen} / 160 krkt`; if (descBar) { const pct = Math.min((dLen / 160) * 100, 100); descBar.style.width = pct + '%'; if (dLen > 165) { descBar.className = 'bg-rose-500 h-full transition-all'; } else if (dLen >= 110) { descBar.className = 'bg-emerald-500 h-full transition-all'; } else { descBar.className = 'bg-amber-500 h-full transition-all'; } } } // --- SEO GLOSSARY LIVE SEARCH FILTER --- function filterGlossary() { const input = document.getElementById('glossary-filter-input'); const query = (input ? input.value : '').toLowerCase().trim(); const items = document.querySelectorAll('.glossary-item'); items.forEach(item => { const title = item.querySelector('.glossary-term-title')?.textContent.toLowerCase() || ''; const desc = item.querySelector('.glossary-term-desc')?.textContent.toLowerCase() || ''; if (!query || title.includes(query) || desc.includes(query)) { item.classList.remove('hidden'); } else { item.classList.add('hidden'); } }); } // --- CASE STUDIES INDUSTRY FILTER --- function filterCaseStudies(category) { const buttons = document.querySelectorAll('.case-filter-btn'); buttons.forEach(btn => { btn.classList.remove('bg-brand-600', 'text-white', 'shadow-md'); btn.classList.add('bg-white', 'dark:bg-slate-800', 'text-slate-700', 'dark:text-slate-300'); }); if (event && event.currentTarget) { event.currentTarget.classList.add('bg-brand-600', 'text-white', 'shadow-md'); event.currentTarget.classList.remove('bg-white', 'dark:bg-slate-800', 'text-slate-700', 'dark:text-slate-300'); } const cards = document.querySelectorAll('.case-study-card'); cards.forEach(card => { const cardCat = card.dataset.category || ''; if (category === 'all' || cardCat.toLowerCase().includes(category.toLowerCase())) { card.classList.remove('hidden'); } else { card.classList.add('hidden'); } }); } // --- COMMAND PALETTE / QUICK SEARCH (Ctrl + K) --- function openSearchPalette() { const modal = document.getElementById('search-palette-modal'); const input = document.getElementById('palette-search-input'); if (modal) { modal.classList.remove('hidden'); if (input) { input.value = ''; setTimeout(() => input.focus(), 50); handlePaletteSearch(''); } } } function closeSearchPalette() { const modal = document.getElementById('search-palette-modal'); if (modal) modal.classList.add('hidden'); } function handlePaletteSearch(query) { const q = query.toLowerCase().trim(); const items = document.querySelectorAll('.palette-item'); items.forEach(item => { const text = item.textContent.toLowerCase(); if (!q || text.includes(q)) { item.classList.remove('hidden'); } else { item.classList.add('hidden'); } }); } // Global Keyboard Shortcut: Ctrl + K / Cmd + K & Escape document.addEventListener('keydown', (e) => { if ((e.ctrlKey || e.metaKey) && e.key.toLowerCase() === 'k') { e.preventDefault(); const modal = document.getElementById('search-palette-modal'); if (modal && !modal.classList.contains('hidden')) { closeSearchPalette(); } else { openSearchPalette(); } } else if (e.key === 'Escape') { closeSearchPalette(); } });