Programatik SEO Nedir ve Neden Bu Kadar Güçlüdür?
Zapier, 25.000'den fazla otomasyona yönelik açılış sayfasına sahiptir. Tripadvisor, milyonlarca destinasyon ve otel sayfasını barındırır. Booking.com'da her şehir, her bölge ve her otel kombinasyonu için ayrı sayfalar mevcuttur. Bu şirketler bu sayfaları tek tek mi yazdı? Elbette hayır.
Programatik SEO, yapılandırılmış veri ve sayfa şablonlarını bir araya getirerek büyük ölçekte, arama amacına uygun sayfa üretme pratiğidir. E-ticaret sitelerinde bu yöntem şu senaryolarda hayata geçirilir:
- Yüzlerce şehir için yerel hizmet veya teslimat sayfaları
- Onlarca beden/renk/materyal kombinasyonu için ürün varyant sayfaları
- "Marka + Ürün Kategorisi" kombinasyon sayfaları
- Fiyat aralığına göre ürün listeleme sayfaları
- Karşılaştırma sayfaları ("X mi Y mi daha iyi?")
Programatik SEO'nun Temel Bileşenleri
1. Anahtar Kelime Araştırması ve Şablon Mantığı
Programatik SEO, tahmin edilebilir bir anahtar kelime kalıbına dayanır. Bu kalıplar genellikle şu formatta olur:
[Ürün Kategorisi] + [Şehir]→ "Koşu Ayakkabısı Ankara"[Marka] + [Ürün]→ "Nike Air Max 90 Fiyat"[Ürün] + [Özellik]→ "Kırmızı Deri Ceket Kadın"[Ürün] + [Bütçe]→ "1000 TL Altı Akıllı Telefon"
Her kalıp için önce arama hacmini ve rekabeti analiz edin. Ahrefs veya Semrush'ta bu kalıpları şu şekilde sorgulayabilirsiniz: "laptop" + şehir adı — Türkiye'deki her il için arama hacmine bakın.
Eğer "gaming laptop İstanbul" için aylık 500 arama varsa ve siz 81 il için bu şablonu doldurursanız, teorik toplam hacim 40.500 ziyareti bulabilir. Pratikte elde edeceğiniz daha az olacaktır, ancak rakipleriniz bu sayfaları henüz oluşturmamışsa avantaj sizde olur.
2. Veri Kaynağı Hazırlama
Programatik SEO'nun kalitesi, kullandığınız veri kaynağının kalitesiyle doğru orantılıdır. Türkiye e-ticareti için faydalı veri kaynakları:
Şehir Verileri:- TÜİK'ten nüfus, gelir düzeyi verileri
- Google My Business'tan yerel rakip yoğunluğu
- İl bazında kargo teslimat süreleri (kendi operasyonunuzdan)
- ERP/PIM sisteminizden çekilen ürün özellikleri (beden, renk, materyal, fiyat)
- Stok durumu (canlı veri entegrasyonu önerilir)
- Ürün derecelendirmeleri ve yorum sayıları
Her şablonun doldurulacak değişken alanlarını belirleyin:
[ŞEHİR] için [ÜRÜN KATEGORİSİ] | Ücretsiz Kargo
[ŞEHİR]'de en iyi [ÜRÜN KATEGORİSİ] fırsatları [MARKA_ADI]'nda.
[ÜRÜN_SAYISI] çeşit arasından seçim yapın.
[ŞEHİR] teslimatı [TESLİMAT_SÜRESİ] iş günündedir.
3. Teknik Altyapı Kurulumu
Next.js ile Dinamik Sayfa Oluşturma:Next.js'in generateStaticParams fonksiyonu, build zamanında tüm varyantları statik sayfaya dönüştürür:
// app/[sehir]/[kategori]/page.js
export async function generateStaticParams() {
const sehirler = await getSehirler(); // 81 il
const kategoriler = await getKategoriler();
return sehirler.flatMap(sehir =>
kategoriler.map(kategori => ({
sehir: sehir.slug,
kategori: kategori.slug,
}))
);
}
export default async function SehirKategoriSayfasi({ params }) {
const { sehir, kategori } = params;
const urunler = await getUrunler(sehir, kategori);
const sehirBilgi = await getSehirBilgi(sehir);
return (
<div>
<h1>{sehirBilgi.ad} için {kategori.ad}</h1>
<p>{sehirBilgi.ad} teslimatı {sehirBilgi.teslimatSuresi} iş günündedir.</p>
<UrunListesi urunler={urunler} />
</div>
);
}
Daha basit yapılar için Python tabanlı bir üretim pipeline'ı yeterli olabilir:
from jinja2 import Template
import json
template = Template("""
<h1>{{ sehir }} için {{ kategori }} | {{ site_adi }}</h1>
<p>{{ sehir }} ücretsiz kargo. {{ urun_sayisi }} ürün seçeneği.</p>
""")
with open('sehirler.json') as f:
sehirler = json.load(f)
for sehir in sehirler:
for kategori in kategoriler:
html = template.render(
sehir=sehir['ad'],
kategori=kategori['ad'],
urun_sayisi=len(urunler[kategori['id']])
)
with open(f'output/{sehir["slug"]}/{kategori["slug"]}.html', 'w') as f:
f.write(html)
Ürün Varyant Sayfaları: Fırsatlar ve Tuzaklar
Bir giyim e-ticaret sitesinde "Kırmızı Deri Ceket Bayan 40 Beden" gibi kombinasyon sayfaları oluşturmak, long-tail arama trafiği açısından büyük fırsat sunar. Ancak dikkatli olunmazsa ciddi duplicate content sorunlarına yol açabilir.
Ne Zaman Varyant Sayfası Oluşturmalısınız?
Bir varyant için ayrı sayfa oluşturmanın mantıklı olup olmadığını belirleyen kriterler:
Oluşturun, eğer:- O varyant için belirli bir arama hacmi mevcutsa ("kırmızı deri ceket" → aylık 2.400 arama)
- Varyant sayfasına özgün içerik ekleyebiliyorsanız (renk hakkında ayrı açıklama, o varyanta özel görseller)
- Kullanıcı niyeti varyant sayfasını gerektirecek kadar spesifikse
- Arama hacmi yoksa veya çok düşükse
- Sayfa içeriği ana üründen yalnızca renk adı değişimiyle farklılaşıyorsa
- Stok durumu sürekli değişiyorsa (bugün var, yarın yok)
Duplicate Content'i Önleme Stratejileri
Canonical Tag Kullanımı:Tüm varyant sayfaları, ana ürün sayfasına canonical işaret edebilir. Bu sayede Google link değerini tek bir sayfada toplar, ancak varyant sayfaları yine de ziyaretçilere sunulur.
<!-- /kirmizi-deri-ceket-bayan-40-beden/index.html -->
<link rel="canonical" href="https://example.com/kirmizi-deri-ceket-bayan/" />
Arama değeri olmayan kombinasyon sayfalarını indexlemeden çıkarın:
<meta name="robots" content="noindex, follow" />
Varyantları URL parametresiyle değil, temiz URL yapısıyla sunun:
## Kötü (parametre bazlı)
/urun/kirmizi-ceket?renk=kirmizi&beden=40
## İyi (slug bazlı, indexlenebilir)
/kirmizi-deri-ceket-bayan/40-beden/
Şehir Sayfaları: Yerel SEO'yu Programatik Ölçekte Uygulamak
Türkiye'de 81 il ve yüzlerce ilçe bulunuyor. "Kargo teslimat" veya "ürün kategorisi + şehir" sorgularında görünmek istiyorsanız her coğrafi alan için optimize sayfalar oluşturmanız gerekir.
Kaliteli Şehir Sayfası Nasıl Oluşturulur?
Şehir sayfalarının programatik üretimi kolay, kaliteli üretimi ise zorludur. Google, yalnızca şablon doldurarak oluşturulmuş düşük kaliteli şehir sayfalarını "thin content" olarak değerlendirir.
Her şehir sayfasına özelleştirme katmanları ekleyin:
Katman 1 — Temel (Zorunlu):- O şehre ait teslimat süresi ve ücreti
- O şehirde stokta olan ürün sayısı (dinamik)
- Şehre özel indirim veya kampanyalar (varsa)
- Şehrin öne çıkan ilçelerine özel teslimat bilgisi
- O şehirden yapılan son müşteri yorumları
- Şehirdeki fiziksel mağaza veya teslimat noktaları (varsa)
- Şehre özgü editöryal içerik (kısa da olsa benzersiz paragraf)
- O şehirde popüler ürün kategorileri (satış verisiyle destekli)
- Yerel etkinliklere veya mevsimlere bağlı ürün önerileri
Duplicate Content Yönetimi: Programatik SEO'nun En Kritik Konusu
Binlerce sayfa oluşturduğunuzda duplicate content riski kaçınılmazdır. Google, birbirine çok benzeyen içerikleri "thin content" veya "doorway page" olarak değerlendirebilir ve tüm programatik sayfalarınızı bir anda deindexleyebilir.
Programatik Duplicate Content Denetimi
Her şablon sayfanız için şu kontrolü yapın:
- Başlık benzersizliği: Her H1, meta title ve meta description gerçekten benzersiz mi?
- İçerik benzerlik oranı: Herhangi iki şablon sayfanız arasındaki metin benzerliği %70'in altında mı?
- Benzersiz değer teklifi: Kullanıcı bu sayfaya geldiğinde ana siteden farklı olarak ne bulacak?
Canonicalization Hiyerarşisi
Büyük programatik yapılarda şu canonical hiyerarşisini öneririm:
Ana Ürün Sayfası (canonical)
└── Renk Varyantı A (canonical → ana sayfa)
└── Renk Varyantı B (canonical → ana sayfa)
└── Beden 38 (canonical → renk sayfası veya ana sayfa)
└── Beden 40 (canonical → renk sayfası veya ana sayfa)
İzleme ve Ölçüm: Programatik Sitenizin Sağlığını Takip Edin
Binlerce sayfayı tek tek izlemek imkansız olduğundan izleme sistematiği kurmanız şarttır:
Google Search Console API ile Otomatik Raporlama:Haftalık olarak tüm URL'lerin index durumunu, tıklama ve gösterim verilerini toplu çekin. Sayfadan sayfa izlemek yerine şablon gruplarına göre ortalama metrikleri izleyin.
Indexleme Oranını Takip Edin:Oluşturduğunuz 5.000 şehir sayfasından kaçı Google tarafından indexlendi? %90 üzeri başarılı, %50 altı alarm işareti.
"Discovered - Currently Not Indexed" Kategorisi:Search Console'da bu kategoride bekleyen URL sayısını haftalık izleyin. Yüksek sayı, crawl bütçesi veya içerik kalitesi sorununun işaretidir.
Programatik SEO, doğru kurgulandığında organik trafiği üstel büyüme eğrisine oturtabilecek güçlü bir stratejidir. Ancak içerik kalitesinden taviz vermek, tüm çabanızı boşa çıkarabilir. Her şablon için "bu sayfayı oluşturmak kullanıcıya gerçek değer katıyor mu?" sorusunu sorun; yanıt evet ise devam edin.