Online mağazalar için teknik SEO kontrol listesi

Shopify ve WooCommerce için teknik SEO: noindex, robots.txt, site haritası, title, H1, kanonik URL, Product yapılandırılmış verisi, Open Graph, alt metin.

FixReports editör ekibi12 dk okuma

Bir online mağaza (e-ticaret sitesi) için teknik SEO kontrol listesi üç şeyi doğrular: arama motorları bulunmasını istediğiniz sayfaları tarayıp dizine ekleyebiliyor, her sayfanın ne olduğunu anlayabiliyor ve onu arama sonuçlarında düzgün gösterebiliyor. Pratikte bu şu anlama gelir: gözden kaçmış noindex kuralları olmaması, önemli sayfaları engellemeyen bir robots.txt, kanonik URL’lerden oluşan bir site haritası, her sayfa için benzersiz bir sayfa başlığı (title) ve meta açıklama, tek ve net bir H1, varyant ve koleksiyon kopyalarını birleştiren kanonik (canonical) etiketler, geçerli Product yapılandırılmış verisi, Open Graph etiketleri, açıklayıcı alternatif metinler ve kırık iç bağlantı olmaması. Bu kontroller teknik engelleri ortadan kaldırır; sıralama veya trafik garantisi vermez.

Temel noktalar

  • robots.txt dizine eklemeyi değil, taramayı kontrol eder. Bir sayfayı Google’ın dışında tutmak için noindex kullanın ve o sayfayı robots.txt ile engellemeyin; aksi halde Google bu kuralı hiç göremez (Google Search Central (yeni sekmede açılır)).
  • Tek bir site haritası dosyası en fazla 50.000 URL veya sıkıştırılmamış halde 50 MB içerebilir; Google <priority> ve <changefreq> değerlerini dikkate almaz (Google Search Central (yeni sekmede açılır)).
  • Google ideal bir başlık sayısı olmadığını söyler, ancak ürünü adlandıran tek bir H1, alışverişçiler ve ekran okuyucular için en net ana başlıktır.
  • Satıcı listelemeleri (merchant listings) için ürün adı, görsel ve sıfırdan büyük bir fiyat ile para birimi içeren iç içe bir Offer (AggregateOffer değil) gerekir (Google Search Central (yeni sekmede açılır)).

Shopify ve WooCommerce varsayılan olarak neleri hallediyor?

Shopify temel teknik SEO gereksinimlerinin çoğunu platform ve tema düzeyinde karşılar; WooCommerce mağazası ise bunların birçoğu için WordPress çekirdeğine ve bir SEO eklentisine dayanır.

ÖğeShopifyWooCommerce (WordPress)
XML site haritası/sitemap.xml, otomatikWordPress 5.5’ten beri /wp-sitemap.xml ya da bir SEO eklentisinin site haritası
robots.txtOtomatik; robots.txt.liquid ile düzenlenirWordPress’in oluşturduğu, çekirdek site haritasını listeleyen sanal dosya
Kanonik etiketlerOtomatik eklenirÇekirdek yalnızca tekil sayfalara ekler
Meta açıklamaHer ürünün arama motoru listelemesi bölümündeki alanSEO eklentisi veya tema
Product yapılandırılmış verisiTema, structured_data filtresiyleÜrün sayfalarında WooCommerce çekirdeğinin JSON-LD çıktısı
Open Graph etiketleriTema (Dawn: meta-tags.liquid)SEO eklentisi veya tema
Sepet ve ödemerobots.txt dosyasında engellenir (Disallow)WooCommerce tarafından noindex olarak işaretlenir

Her satırın ayrıntıları ve kaynakları aşağıdadır (Ekim 2026 itibarıyla).

Mağaza sayfalarının dizine eklenebildiğinden nasıl emin olursunuz?

Bir sayfa 200 durum kodu döndürüyorsa, robots.txt ile engellenmemişse ve noindex kuralı taşımıyorsa dizine eklenebilir.

noindex kuralı bir meta etikette veya bir HTTP başlığında yer alabilir; Google robots.txt içindeki noindex kuralını desteklemez (Google (yeni sekmede açılır)):

<meta name="robots" content="noindex">
X-Robots-Tag: noindex

robots.txt, arama motoru botlarının trafiğini yönetir; engellenmiş bir URL, başka sayfalar ona bağlantı veriyorsa açıklama olmadan da olsa arama sonuçlarında görünebilir (Google (yeni sekmede açılır)). Search Console’daki Sayfa dizine ekleme raporu (yeni sekmede açılır), dizine eklenmemiş her URL’yi “URL marked 'noindex'” (URL noindex olarak işaretlenmiş) gibi bir nedenle birlikte listeler. Her URL’nin dizine eklenmesi gerekmez, ancak ürünlerinizin ve koleksiyonlarınızın eklenmesi gerekir.

Shopify

Varsayılan robots.txt; yönetici paneli, sepet, ödeme, hesap ve sipariş yollarını, ayrıca koleksiyon sayfalarını kopyalayan filtrelenmiş (/collections/*+*) ve sıralanmış (sort_by) koleksiyon URL’lerini engeller. Bu dosyayı bir robots.txt.liquid şablonuyla düzenleyebilirsiniz, ancak Shopify bunu desteklenmeyen bir özelleştirme olarak tanımlar ve hataların bir mağazanın tüm trafiğini kaybetmesine yol açabileceği konusunda uyarır (Shopify Yardım Merkezi (yeni sekmede açılır)).

Bir sayfayı, blog yazısını veya ürünü gizlemek için tam sayı (integer) türünde seo.hidden adlı bir metafield oluşturup değerini 1 yapın; bu, içeriği site haritalarından, arama motorlarından ve mağaza içi aramadan gizler. Unlisted (listelenmemiş) ürün durumu ise ürünleri koleksiyonlardan ve önerilerden de gizler (Shopify Yardım Merkezi (yeni sekmede açılır)). Mağaza parolayla korunduğu sürece arama motorları site haritasını okuyamaz.

WooCommerce

Settings > Reading > Search engine visibility (Ayarlar > Okuma > Arama motoru görünürlüğü) ayarını kontrol edin. “Discourage search engines from indexing this site” (arama motorlarının bu siteyi dizine eklemesini engelle) kutusu işaretliyse WordPress (5.3 sürümünden beri) sayfalarınıza noindex, nofollow robots meta etiketi ekler (WordPress.org (yeni sekmede açılır)) ve çekirdek site haritasını kapatır. Mağaza bir hazırlık (staging) sitesinde kurulduysa, yayına alırken bu kutunun temizlendiğini doğrulayın. WooCommerce ise sepet, ödeme ve Hesabım (My account) sayfalarını noindex olarak işaretler ve sipariş alındı (order received) gibi uç noktalarda X-Robots-Tag: noindex gönderir (WooCommerce kaynak kodu (yeni sekmede açılır)); bu beklenen bir davranıştır.

Bir online mağazanın XML site haritasında neler olmalı?

Site haritası yalnızca aramada görünmesini istediğiniz kanonik ve dizine eklenebilir URL’leri listelemelidir: ürünler, koleksiyonlar veya kategoriler, içerik sayfaları ve blog yazıları.

Google’ın kuralları şunlardır: dosya başına en fazla 50.000 URL veya 50 MB, daha büyük kümeler için bir site haritası dizini (sitemap index), mutlak URL’ler, yalnızca sonuçlarda gösterilmesini istediğiniz URL’ler ve yalnızca doğru olduğunda <lastmod> (Google (yeni sekmede açılır)). Site haritasını Search Console’daki Site haritaları raporundan gönderin veya robots.txt içinde belirtin:

Sitemap: https://example.com/sitemap.xml

Shopify’da her alan adının, ürünler, koleksiyonlar, bloglar ve sayfalar için alt site haritalarına bağlantı veren ve siz içerik ekledikçe güncellenen otomatik bir sitemap.xml dosyası vardır; her uluslararası alan adı kendi site haritasını alır (Shopify Yardım Merkezi (yeni sekmede açılır)).

WooCommerce’te WordPress 5.5 ve sonraki sürümler, WordPress’in robots.txt dosyasında belirtilen ve varsayılan olarak site haritası başına en fazla 2.000 giriş içeren bir çekirdek site haritası dizinini /wp-sitemap.xml adresinde sunar. Yoast SEO gibi SEO eklentileri bunun yerine kendi site haritalarını kullanır (Make WordPress Core (yeni sekmede açılır)). Göndermeden önce hangi site haritasının gerçekten yayında olduğunu kontrol edin.

Ürün başlıkları ve meta açıklamalar nasıl yazılmalı?

Her sayfaya benzersiz, açıklayıcı bir başlık (title) ve sayfayı özetleyen bir meta açıklama verin; önemli kelimeleri başa koyun, çünkü Google ikisini de ekrana sığacak şekilde kısaltır.

Google’ın başlık rehberi şunu önerir: başlıkları açıklayıcı ve kısa tutun, anahtar kelime doldurmaktan (keyword stuffing) ve tekrar eden kalıp metinlerden kaçının, site adını bir ayırıcıyla başa veya sona koyun. Bir uzunluk sınırı yoktur, ancak başlık bağlantıları cihaz genişliğine göre kısaltılır (Google (yeni sekmede açılır)). Google, başlık bağlantısını H1 veya og:title gibi başka metinlerden de oluşturabilir.

Snippet’ler için Google çoğunlukla sayfa içeriğini kullanır; meta açıklama sayfayı daha doğru anlatıyorsa onu kullanır. Google, fiyat veya üretici gibi ürün bilgilerinin eklenmesini önerir ve okunabilir ve çeşitli oldukları sürece otomatik oluşturulan açıklamaların sorun olmadığını belirtir (Google (yeni sekmede açılır)).

<title>Linen shirt, natural, relaxed fit | Example Store</title>
<meta name="description" content="Relaxed-fit shirt in European linen. Sizes XS to XXL, $68, free returns within 30 days.">
  • Shopify: her ürünün arama motoru listelemesi (search engine listing) bölümünde Page title, Meta description ve URL handle alanlarını düzenleyin (Shopify Yardım Merkezi (yeni sekmede açılır)). Shopify başlıkta en fazla 70 karaktere izin verir, yaklaşık 60 karakter önerir ve açıklama için 160 karakter tavsiye eder (Shopify Yardım Merkezi (yeni sekmede açılır)).
  • WooCommerce: WordPress çekirdeği meta açıklama çıktısı vermez (7.1.3 kaynak koduyla kontrol edildi); bu yüzden bir SEO eklentisi veya temanızı kullanın.

Her sayfada tam olarak bir H1 mi olmalı?

Google belirli bir sayı şart koşmaz, ancak sayfayı adlandıran tek bir H1, alışverişçiler, ekran okuyucular ve arama motorları için en net ana başlıktır.

Google’ın SEO başlangıç rehberi, ideal bir başlık sayısı olmadığını ve başlık sırasının Arama için önemli olmadığını, ancak anlamsal sıranın ekran okuyuculara yardımcı olduğunu söyler (Google (yeni sekmede açılır)). Başlık bağlantısı rehberi ise ana başlığın en belirgin metin olmasını, örneğin ilk görünür <h1> olarak kullanılmasını önerir. W3C’nin eğitim içeriği, başlıkların sayfanın düzenini aktardığını ve başlık seviyelerinin atlanmaması gerektiğini ekler (W3C WAI (yeni sekmede açılır)).

Mağazalarda sık görülen hatalar: her sayfada H1 içine konmuş logo, <div> veya H2 içindeki ürün adı, bir uygulamadan gelen ikinci bir H1 ve H1’i olmayan koleksiyon sayfaları.

Kanonik URL’ler varyant ve koleksiyon kopyalarını nasıl çözer?

Kanonik etiket, Google’a aynı içeriğe sahip birkaç URL’den hangisini dizine ekleyeceğini söyler; bu yüzden varyant parametreli ve koleksiyon yollu URL’ler tercih edilen tek bir ürün URL’sini göstermelidir.

Google, yönlendirmeleri ve rel="canonical" etiketini güçlü, site haritasına eklenmeyi ise zayıf bir sinyal olarak değerlendirir. Mutlak URL’ler kullanın ve kanonik URL’yi seçmek için robots.txt veya noindex kullanmayın (Google (yeni sekmede açılır)). ?color=green gibi isteğe bağlı bir sorgu parametresiyle ayrılan varyantlar için Google, parametresiz URL’nin kanonik olmasını önerir. Google # parçalarını (fragment) yok sayar; bu yüzden varyantlar için yol veya parametre gerekir. Google ayrıca dizine eklenebilir sayfalarda kendine işaret eden (self-referencing) kanonik etiketler ve bağlantılar, site haritaları ve kanonik etiketler genelinde tutarlı URL’ler kullanılmasını önerir (Google (yeni sekmede açılır)).

<link rel="canonical" href="https://example.com/products/linen-shirt">

Google sizin seçiminizi dikkate almazsa Sayfa dizine ekleme raporunda “Duplicate, Google chose different canonical than user” (kopya sayfa, Google kullanıcının seçtiğinden farklı bir kanonik URL seçti) durumu görünür; bu genellikle çelişen sinyallerin işaretidir.

  • Shopify: kanonik etiketler otomatik olarak oluşturulur (Shopify Yardım Merkezi (yeni sekmede açılır)); Dawn teması <link rel="canonical" href="{{ canonical_url }}"> çıktısını verir. within filtresini kullanan temalar koleksiyona bağlı ürün URL’leri (/collections/summer/products/linen-shirt) oluşturur ve Shopify bunların standart ürün sayfasının kopyası olduğunu belirtir (Shopify (yeni sekmede açılır)). Bu URL’lerin kanonik etiketinin /products/linen-shirt adresini gösterdiğini kontrol edin.
  • WooCommerce: WordPress çekirdeği yalnızca ürünler ve sayfalar gibi tekil görünümlerde kanonik etiket üretir (WordPress geliştirici referansı (yeni sekmede açılır)); bu nedenle mağaza ve kategori arşivleri SEO eklentinize veya temanıza bağlıdır. Ürün kalıcı bağlantı (permalink) yapısını değiştirmek tüm ürün URL’lerini değiştirir ve yönlendirme eklemezseniz eski bağlantılar 404 hatası verir (WooCommerce (yeni sekmede açılır)).

Satıcı listelemeleri için Product yapılandırılmış verisi nasıl kurulur?

Sayfadaki fiyat ve stok durumuyla eşleşen iç içe bir Offer içeren Product işaretlemesi ekleyin, ardından bunu Google’ın Zengin Sonuçlar Testi (Rich Results Test) ile test edin.

Google, doğrudan satın alma yapılamayan ürün sayfaları için ürün snippet’lerini, satın alma yapılabilen sayfalar için ise satıcı listelemelerini kullanır (Google (yeni sekmede açılır)). Genel olarak JSON-LD biçimini önerir (Google (yeni sekmede açılır)). Satıcı listelemeleri için name, image ve Offer olarak offers gerekir; price sıfırdan büyük, priceCurrency ise ISO 4217 biçiminde olmalıdır. Önerilen özellikler arasında availability, gtin, brand, aggregateRating, shippingDetails ve hasMerchantReturnPolicy bulunur (Google (yeni sekmede açılır)). Varyantlar için Google, hasVariant, variesBy ve productGroupID ile birlikte ProductGroup türünü destekler (Google (yeni sekmede açılır)).

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Linen shirt, natural",
  "image": ["https://example.com/images/linen-shirt-1x1.jpg"],
  "sku": "LS-NAT-M",
  "brand": { "@type": "Brand", "name": "Example Store" },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/linen-shirt",
    "price": "68.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}
</script>

Yalnızca alışverişçilerin görebildiği bilgileri işaretleyin; Google yapılandırılmış verilerin sonuçlarda görüneceğini garanti etmez (Google (yeni sekmede açılır)).

  • Shopify: {{ product | structured_data }}, varyantı olmayan ürünler için Product, varyantlı ürünler için ProductGroup çıktısı verir (Shopify (yeni sekmede açılır)); Dawn bunu ürün bölümüne dahil eder. Bir yorum veya SEO uygulaması kendi işaretlemesini ekliyorsa kopya veri olup olmadığını kontrol edin.
  • WooCommerce: çekirdek, ürün sayfalarında SKU, teklifler (offers), yorum varsa puanlar ve GTIN, UPC, EAN veya ISBN alanı (WooCommerce 9.2 (yeni sekmede açılır) ile eklendi) doldurulmuşsa bir GTIN içeren Product JSON-LD çıktısı verir. Varyasyon fiyatları farklı olan değişken ürünler, URL tek bir varyasyonu seçmediği sürece AggregateOffer fiyat aralığı alır (WooCommerce kaynak kodu (yeni sekmede açılır)); satıcı listelemeleri Offer gerektirdiği için bu ürünleri test edin.

İadeler için Google, işaretlemede kuruluş düzeyinde bir iade politikasını da kabul eder, ancak Merchant Center veya Search Console’daki ayarlar önceliklidir (Google (yeni sekmede açılır)).

Ürün sayfalarında hangi Open Graph etiketleri olmalı?

Ürün sayfalarında og:title, og:type, og:image ve og:url, ayrıca og:description ve og:image:alt bulunmalıdır; böylece paylaşılan bağlantılar doğru başlığı ve fotoğrafı gösterir.

Open Graph protokolü bu dördünü zorunlu olarak listeler, og:url değerini kanonik URL olarak tanımlar ve her og:image etiketine bir og:image:alt eşlik etmesi gerektiğini belirtir (ogp.me (yeni sekmede açılır)).

<meta property="og:type" content="product">
<meta property="og:title" content="Linen shirt, natural">
<meta property="og:url" content="https://example.com/products/linen-shirt">
<meta property="og:image" content="https://example.com/images/linen-shirt-1200x630.jpg">
<meta property="og:image:alt" content="Natural linen shirt on a hanger">
<meta property="og:description" content="Relaxed-fit shirt in European linen.">
  • Shopify: Dawn’un snippets/meta-tags.liquid dosyası bu etiketleri sayfa başlığından, kanonik URL’den ve ürün görselinden üretir (GitHub’da Shopify Dawn (yeni sekmede açılır)). Online Store > Preferences (Online Mağaza > Tercihler) altında yedek bir görsel belirleyin (Shopify Yardım Merkezi (yeni sekmede açılır)).
  • WooCommerce: ne WordPress çekirdeği (7.1.3) ne de WooCommerce (11.2.1) Open Graph etiketi üretir; bu yüzden bunları bir SEO eklentisi veya temayla ekleyin.

Ürün görsellerinde alternatif metin neden önemlidir?

Alternatif metin (alt text), arama motorlarına ve ekran okuyucu kullanıcılarına bir ürün görselinin neyi gösterdiğini anlatır; Google bunu bilgisayarlı görü ve sayfa içeriğiyle birlikte kullanır.

Google’ın görsel rehberi, anahtar kelime doldurmadan yararlı ve belirli bir alternatif metin yazılmasını ister; en iyi örneği “Dalmatian puppy playing fetch” (top getirme oyunu oynayan Dalmaçyalı yavru köpek) ifadesidir. Google CSS arka plan görsellerini dizine eklemez; bu yüzden ürün fotoğrafları <img> öğelerinde yer almalıdır (Google (yeni sekmede açılır)). Bir mağaza için bu, “gömlek gömlek keten satın al” yerine “Naturel keten gömlek, arkadan görünüm” gibi bir alternatif metin demektir.

Kırık iç bağlantıları nasıl bulup düzeltirsiniz?

Mağazanızı tarayın, 4xx hatası döndüren iç bağlantıları listeleyin ve her bağlantıyı güncelleyin ya da eski URL’yi en yakın canlı sayfaya 301 ile yönlendirin.

Google, href özniteliği olan <a> öğeleriyle oluşturulmuş bağlantıları tarar ve her önemli sayfaya en az bir başka sayfadan bağlantı verilmesini önerir (Google (yeni sekmede açılır)). 4xx kodu döndüren URL’ler dizine eklenmez, dizine eklenmiş olanlar ise dizinden çıkarılır; 301 güçlü, 302 ise zayıf bir yönlendirme sinyalidir (Google (yeni sekmede açılır)). Ürünler silindiğinde veya yeniden adlandırıldığında, URL tanıtıcıları (handle) değiştiğinde ya da koleksiyonlar kaldırıldığında mağaza bağlantıları kırılır; eski bağlantılar ise menülerde, açıklamalarda ve blog yazılarında kalmaya devam eder.

  • Shopify: Content > Menus > View URL redirects > Create URL redirect (İçerik > Menüler > URL yönlendirmelerini görüntüle > URL yönlendirmesi oluştur) yolunu izleyin. Shopify yalnızca gerçekten kırık olan URL’leri yönlendirir (Shopify Yardım Merkezi (yeni sekmede açılır)).
  • WooCommerce: kısa adları (slug) veya kalıcı bağlantı ayarlarını her değiştirdiğinizde sunucu kuralları ya da bir yönlendirme eklentisiyle yönlendirme ekleyin.

Ücretsiz tarama, bu sorunların birçoğunu yaklaşık bir dakikada işaretler. SEO Düzeltme Raporu, 25 sayfaya kadar title, meta açıklama, H1, kanonik etiket, noindex, robots.txt, site haritası, Product yapılandırılmış verisi, Open Graph, alternatif metin ve kırık iç bağlantıları kontrol eder ve platformunuza özel çözümler sunar.

Sık sorulan sorular

Teknik SEO hatalarını düzeltmek daha iyi sıralamaları garanti eder mi?

Hayır. Bu düzeltmeler bir sayfanın taranamamasına, dizine eklenememesine veya anlaşılamamasına yol açan nedenleri ortadan kaldırır; sıralamalar yine de alaka düzeyine ve birçok başka etkene bağlıdır.

Her ürün varyantının dizine eklenmiş ayrı bir URL’si olmalı mı?

Bu, varyantların nasıl oluşturulduğuna bağlıdır. Varyantlar tek bir sayfayı paylaşıyor ve yalnızca isteğe bağlı bir sorgu parametresiyle ayrılıyorsa Google, parametresiz URL’nin kanonik olmasını önerir; her varyantın kendi sayfası varsa Google’ın varyant rehberi her sayfayı ayrı ayrı ele alır.

İşaretleme geçerli olduğu halde ürünüm neden zengin sonuçlarda görünmüyor?

Google, geçerli yapılandırılmış veriler için zengin sonuç garantisi vermez. İşaretlemenin görünür içerikle eşleştiğini, fiyatı sıfırdan büyük bir Offer kullandığını ve Zengin Sonuçlar Testi’nden geçtiğini kontrol edin.

Filtrelenmiş koleksiyon sayfalarını robots.txt ile engellemeli miyim?

Shopify’da varsayılan robots.txt, koleksiyon sayfalarının kopyası oldukları için filtrelenmiş ve sıralanmış koleksiyon URL’lerini zaten engeller. robots.txt.liquid dosyasını düzenlerseniz, değiştirmek için belirli bir nedeniniz yoksa bu kuralları koruyun.

Kaynaklar