229 SEO kuralı
Ne kontrol ettiğimiz, neden önemli olduğu ve nasıl düzeldiği. Oto etiketlileri Balanseo kendisi düzeltir.
İndekslenebilirlik 58
Canonical zinciri Oto
Canonical'ın gösterdiği sayfa da başka bir sayfaya canonical veriyor. Google zinciri izlemeyebilir.
Çözüm: Canonical'ı doğrudan son hedefe yönlendir.
idx.canonical_chain · Orta
Canonical HTTPS sitede HTTP URL'yi gösteriyor Oto
HTTPS sayfanın canonical'ı HTTP sürümünü işaret ediyor.
Çözüm: Canonical'ı HTTPS URL olarak düzelt.
idx.canonical_http · Orta
Canonical etiketi yok Oto
Self-referencing canonical, parametreli kopyaların ve protokol varyasyonlarının tek URL'de toplanmasına yardım eder.
Çözüm: <head> içine <link rel="canonical" href="sayfanın tam URL'si"> ekle.
idx.canonical_missing · Düşük
Birden fazla canonical Oto
Birden çok canonical etiketi varsa Google hepsini yok sayar.
Çözüm: Sayfada tek bir canonical etiketi bırak.
idx.canonical_multiple · Yüksek
Canonical başka alan adına gidiyor
Sayfanın canonical'ı başka bir alan adını gösteriyor; bu sayfa indekslenmez. Kasıtlı değilse ciddi trafik kaybıdır.
Çözüm: Kasıtlı (syndication) değilse canonical'ı bu sitedeki adrese çevir.
idx.canonical_other_domain · Orta
Canonical göreli adres Oto
Göreli canonical (ör. '/sayfa') yanlış alan adı ya da protokolle birleşebilir.
Çözüm: Canonical'da protokol ve alan adıyla tam URL kullan.
idx.canonical_relative · Düşük
Canonical noindex sayfayı gösteriyor Oto
Canonical hedefi noindex: Google iki çelişkili sinyal alır ve sayfayı indeksten düşürebilir.
Çözüm: Canonical'ı indekslenebilir sürüme çevir ya da hedefteki noindex'i kaldır.
idx.canonical_to_noindex · Yüksek
Canonical bozuk ya da yönlenen bir URL'yi gösteriyor Oto
Canonical hedefi 200 dönmüyor. Google canonical'ı yok sayar ve yanlış URL'yi seçebilir.
Çözüm: Canonical'ı 200 dönen, indekslenebilir son URL'ye çevir.
idx.canonical_to_non200 · Yüksek
Sayfa başka bir URL'ye canonical veriyor
Bu sayfa kendisini değil başka bir URL'yi tercih edilen sürüm olarak işaret ediyor.
Çözüm: Bilinçli bir tercih değilse canonical'ı sayfanın kendi URL'sine ayarla.
idx.canonicalized · Bilgi
Sayfa çok derinde (4+ tık) Öneri
Ana sayfadan 4 tıktan fazla uzaktaki sayfalar daha seyrek taranır ve daha az otorite alır.
Çözüm: Kategori/hub sayfalarından ya da ilgili yazılardan link vererek derinliği azalt.
idx.deep_page · Düşük
Sayfaya ulaşılamadı
Bağlantı kurulamadı, zaman aşımına uğradı ya da yönlendirme döngüsüne girdi.
Çözüm: Sunucu erişilebilirliğini, DNS ve SSL ayarlarını, yönlendirme kurallarını kontrol et.
idx.fetch_error · Yüksek
Taranan sayfaların büyük kısmı hata veriyor
Sayfaların %10'undan fazlası 4xx/5xx dönüyor; arama motorları siteyi daha seyrek tarar.
Çözüm: Kırık sayfaları yönlendir ya da kaldır, bunlara verilen iç linkleri güncelle.
idx.high_error_ratio · Yüksek
Ana sayfa noindex
Ana sayfada noindex var: Google ana sayfayı dizinden çıkarır ve sitenin geri kalanını keşfetmesi zorlaşır. Çoğunlukla geliştirme ortamından kalan bir ayardır.
Çözüm: Ana sayfadaki meta robots noindex'i ya da X-Robots-Tag başlığını kaldır (WordPress: Ayarlar → Okuma → 'Arama motorlarını engelle' işaretini kaldır).
idx.home_noindex · Kritik
HTTP sürümü HTTPS'e yönlenmiyor
Sitenin HTTP sürümü 301 ile HTTPS'e gitmiyor. Kopya içerik ve güvenlik riski oluşur.
Çözüm: Sunucuda tüm HTTP isteklerini 301 ile HTTPS'e yönlendir.
idx.https_redirect · Yüksek
İndekslenebilir sayfa sitemap'te değil Oto
Sitemap eksik. Bu sayfa yalnızca iç linklerle keşfedilebiliyor.
Çözüm: Sayfayı sitemap'e ekle.
idx.indexable_not_in_sitemap · Düşük
Meta refresh yönlendirmesi Oto
<meta http-equiv="refresh"> ile yönlendirme yavaştır ve otorite aktarımı belirsizdir.
Çözüm: Sunucu tarafında 301 yönlendirme kullan.
idx.meta_refresh · Orta
Sayfa nofollow
Meta robots nofollow, sayfadaki tüm linklerin takip edilmemesini istiyor; iç link değeri aktarılmaz.
Çözüm: Bilinçli değilse 'nofollow' direktifini kaldır.
idx.nofollow_meta · Düşük
Sayfa noindex
Sayfa meta robots ya da X-Robots-Tag ile indekslemeye kapatılmış. Bilinçli değilse trafik kaybıdır.
Çözüm: Sayfanın aranmasını istiyorsan noindex'i kaldır; istemiyorsan iç linkleri ve sitemap kaydını da kaldır.
idx.noindex · Orta
noindex ile başka sayfaya canonical bir arada
Sayfa hem noindex hem başka bir URL'ye canonical veriyor; Google bu çelişkide canonical'ı yok sayabilir.
Çözüm: Kopya sayfalarda yalnız canonical kullan; noindex'i kaldır.
idx.noindex_canonical_conflict · Orta
noindex sayfa sitemap'te
Sitemap'e eklenen sayfa noindex. Google'a çelişkili sinyal gönderiyor.
Çözüm: Sayfayı sitemap'ten çıkar ya da noindex'i kaldır.
idx.noindex_in_sitemap · Orta
Yetim sayfa (iç link yok) Öneri
Sitemap'te olan ama hiçbir sayfanın linklemediği sayfa. Google sayfayı önemsiz sayar.
Çözüm: Sayfaya ilgili içeriklerden ve kategori sayfalarından iç link ver.
idx.orphan · Orta
Sayfalama ilk sayfaya canonical veriyor Oto
?page=2 gibi sayfaların canonical'ı ilk sayfayı gösteriyor; sonraki sayfalardaki ürün/yazılar keşfedilmez.
Çözüm: Her sayfalama adımı kendine canonical vermeli.
idx.paginated_canonical_first · Orta
Parametreli adres indekslenebilir Oto
Sorgu parametreli adres kendini canonical gösteriyor ya da canonical'sız; aynı içerik birden çok adreste indekslenebilir.
Çözüm: Parametreli sayfalarda canonical'ı parametresiz adrese ver.
idx.param_indexable · Düşük
Parametre tuzağı: aynı sayfanın çok sayıda varyantı
Filtre, sıralama ya da takip parametreleri aynı sayfanın sayısız kopyasını üretiyor; tarama bütçesi boşa harcanıyor.
Çözüm: Parametreli varyantlarda canonical'ı ana sayfaya ver, gereksiz parametreleri robots.txt ya da link yapısıyla sınırla.
idx.param_trap · Orta
Silinen sayfa ana sayfaya yönlendiriliyor
Alakasız sayfaların ana sayfaya yönlendirilmesini Google 'soft 404' sayar; eski sayfanın değeri aktarılmaz.
Çözüm: Sayfayı en yakın ilgili sayfaya yönlendir; karşılığı yoksa 410/404 döndür.
idx.redirect_to_home · Orta
robots.txt sunucu hatası veriyor
robots.txt 5xx ya da 429 dönerse Google siteyi bir süre tamamen taranamaz kabul eder; uzarsa sayfalar indeksten düşer.
Çözüm: robots.txt'nin her zaman 200 (ya da kasıtlıysa 404) dönmesini sağla; sunucu, CDN ve güvenlik duvarı kurallarını kontrol et.
idx.robots_5xx · Kritik
robots.txt'nin engellediği sayfalara iç link var
Engelli sayfalar taranamaz ama linklendikleri için içerikleri görülmeden indekslenebilir; link değeri de boşa gider.
Çözüm: Bu sayfaların gerçekten engellenmesi gerekiyorsa linkleri kaldır; indekslenmesi gerekiyorsa robots.txt'yi güncelle.
idx.robots_blocked_linked · Bilgi
robots.txt CSS/JS dosyalarını engelliyor Oto
Google sayfayı tarayıcı gibi çizer; CSS ve JavaScript engelliyse sayfanın içeriğini ve mobil uyumunu doğru göremez.
Çözüm: Engellenen CSS/JS klasörleri için Allow kuralı ekle (ör. Allow: /klasor/*.css$).
idx.robots_blocks_resources · Yüksek
robots.txt tüm siteyi engelliyor Oto
Googlebot ana sayfayı tarayamıyor. Site arama sonuçlarından düşer.
Çözüm: robots.txt içindeki 'Disallow: /' kuralını kaldır.
idx.robots_blocks_site · Kritik
meta robots ile X-Robots-Tag çelişiyor
HTML'deki robots etiketi ile HTTP başlığındaki X-Robots-Tag farklı şey söylüyor; en kısıtlayıcı olan geçerli olur.
Çözüm: İki sinyali aynı değere getir; tek bir yerden yönet.
idx.robots_conflict · Orta
Birden çok, çelişen robots meta etiketi
Sayfada farklı içerikli birden fazla robots meta etiketi var; Google en kısıtlayıcı olanı uygular.
Çözüm: Tek bir robots meta etiketi bırak.
idx.robots_meta_multiple · Orta
robots.txt bulunamadı Oto
robots.txt yok. Zorunlu değil, ama sitemap konumunu bildirmek ve tarama kurallarını yönetmek için önerilir.
Çözüm: Kök dizine sitemap satırını içeren bir robots.txt ekle.
idx.robots_missing · Düşük
robots.txt'de desteklenmeyen noindex yönergesi Oto
Google 2019'dan beri robots.txt içindeki noindex/nofollow satırlarını uygulamıyor; sayfalar indekslenmeye devam eder.
Çözüm: Bu satırları kaldır; sayfayı indeksten çıkarmak için meta robots noindex ya da X-Robots-Tag kullan.
idx.robots_noindex_directive · Düşük
robots.txt'de geçersiz satırlar
Tanınmayan yönergeler ya da User-agent'tan önce yazılmış kurallar arama motorlarınca yok sayılır.
Çözüm: Her grubu bir User-agent satırıyla başlat; yalnız Allow, Disallow ve Sitemap yönergelerini kullan.
idx.robots_syntax · Düşük
robots.txt 500 KB sınırını aşıyor
Google robots.txt'nin yalnız ilk 500 KiB'ını okur; sonrasındaki kurallar yok sayılır.
Çözüm: Tekrarlanan kuralları jokerlerle (*, $) birleştirerek dosyayı küçült.
idx.robots_too_large · Orta
Sitemap'teki adresler robots.txt'de engelli
Sitemap 'bunları indeksle', robots.txt 'bunları tarama' diyor; Google çelişkili sinyal alır ve sayfaları göremez.
Çözüm: Ya robots.txt kuralını gevşet ya da bu adresleri sitemap'ten çıkar.
idx.sitemap_blocked · Yüksek
Sitemap'te canonical olmayan URL Oto
Sitemap'teki adres başka bir sayfaya canonical veriyor. Sitemap yalnız tercih edilen sürümleri içermeli.
Çözüm: Sitemap'e canonical hedefini koy, bu adresi çıkar.
idx.sitemap_canonicalized · Düşük
Sitemap'te HTTP adresler
Site HTTPS iken sitemap'te http:// adresler var; Google yönlendirilen adresleri sitemap'te istemez.
Çözüm: Sitemap'teki tüm adresleri https:// ve canonical biçimiyle üret.
idx.sitemap_http_urls · Orta
Sitemap'te gelecek tarihli lastmod
Gelecek tarihli ya da her taramada değişen lastmod, Google'ın bu alana güvenmemesine yol açar.
Çözüm: lastmod'u yalnız içerik gerçekten değiştiğinde güncelle; sunucu saatini kontrol et.
idx.sitemap_lastmod_future · Düşük
Sitemap'te geçersiz lastmod
lastmod W3C tarih biçiminde (2026-10-13 ya da 2026-10-13T09:00:00+03:00) değilse yok sayılır.
Çözüm: lastmod değerlerini ISO 8601 biçiminde, sayfanın gerçek son değişiklik tarihiyle üret.
idx.sitemap_lastmod_invalid · Düşük
XML sitemap bulunamadı Oto
Sitemap, arama motorlarının tüm sayfaları keşfetmesini hızlandırır.
Çözüm: Bir sitemap.xml oluştur, robots.txt'de bildir ve Search Console'a gönder.
idx.sitemap_missing · Orta
Sitemap'teki URL 200 dönmüyor
Sitemap yalnızca indekslenebilir 200 URL'leri içermelidir.
Çözüm: Yönlenen ve hata veren URL'leri sitemap'ten çıkar.
idx.sitemap_non200 · Orta
Sitemap robots.txt'de bildirilmemiş Oto
Sitemap robots.txt'de 'Sitemap:' satırıyla bildirilirse tüm botlar onu bulabilir.
Çözüm: robots.txt'ye 'Sitemap: https://alanadi/sitemap.xml' satırı ekle.
idx.sitemap_not_in_robots · Düşük
Sitemap'te başka alan adının adresleri
Bir sitemap yalnız kendi alan adındaki adresleri listeleyebilir; diğerleri yok sayılır.
Çözüm: Başka alan adlarının adreslerini çıkar ya da o alan adının kendi sitemap'ine taşı.
idx.sitemap_offhost · Orta
Sitemap dosyası sınırı aşıyor
Tek sitemap en fazla 50.000 adres ve 50 MB (sıkıştırılmamış) olabilir; aşan dosyalar okunmaz.
Çözüm: Sitemap'i parçalara böl ve bir sitemap index dosyasıyla bağla.
idx.sitemap_too_large · Yüksek
Soft 404 (hata sayfası 200 dönüyor)
Sayfa 'bulunamadı' diyor ama sunucu 200 döndürüyor. Google bunu soft 404 sayar ve tarama bütçesi harcanır.
Çözüm: Gerçekten olmayan sayfalar için 404/410 döndür ya da ilgili sayfaya 301 yap.
idx.soft_404 · Yüksek
Sayfa 4xx hatası veriyor Oto
Sitenin kendi linklediği bir sayfa 4xx (çoğunlukla 404) döndürüyor. Ziyaretçi ve tarama bütçesi boşa gidiyor.
Çözüm: Sayfayı geri getir ya da en alakalı sayfaya 301 yönlendirme ekle; içerideki linkleri güncelle.
idx.status_4xx · Yüksek
Sunucu hatası (5xx)
Sunucu sayfayı üretemiyor. Google tekrarlayan 5xx görünce taramayı yavaşlatır, sayfa indeksten düşebilir.
Çözüm: Sunucu loglarını incele; uygulama hatasını, zaman aşımını ya da kaynak yetersizliğini gider.
idx.status_5xx · Kritik
www / www'siz sürüm tutarsız
Hem www hem www'siz sürüm içerik sunuyor; otorite iki host arasında bölünür.
Çözüm: Tercih etmediğin sürümü 301 ile tercih ettiğine yönlendir.
idx.www_consistency · Orta
Yalnız harf büyüklüğüyle ayrışan URL'ler
Aynı adresin büyük ve küçük harfli sürümleri ayrı sayfalar olarak taranıyor (kopya içerik).
Çözüm: Tek bir küçük harfli sürüm seç, diğerlerini 301 ile yönlendir.
url.case_duplicate · Orta
URL'de çok fazla klasör seviyesi
Beşten fazla klasör seviyesi kullanıcıya ve botlara karmaşık bir yapı sinyali verir.
Çözüm: Bilgi mimarisini sadeleştir; önemli sayfaları üst seviyelere taşı.
url.deep_path · Bilgi
URL yolunda çift eğik çizgi
'//' içeren yollar çoğunlukla hatalı link üretiminden kaynaklanır ve kopya adres oluşturur.
Çözüm: Linkleri üreten şablonu düzelt, çift eğik çizgili adresleri tekine yönlendir.
url.double_slash · Düşük
URL'de çok fazla parametre
Üçten fazla parametreli adresler tarama bütçesini harcar ve kopya sayfa üretir.
Çözüm: Filtre/sıralama parametrelerini canonical ile ana sürüme bağla ya da robots.txt ile sınırla.
url.many_params · Düşük
URL'de oturum kimliği
Oturum kimliği içeren adresler her ziyarette değişir; sonsuz kopya sayfa ve tarama israfı yaratır.
Çözüm: Oturumu çereze taşı; parametreyi linklerden kaldır.
url.session_id · Yüksek
URL çok uzun
115 karakteri aşan adresler paylaşımda kesilir ve arama sonucunda okunmaz.
Çözüm: Gereksiz klasör ve kelimeleri çıkararak kısa, açıklayıcı URL kullan.
url.too_long · Düşük
Sonda eğik çizgi tutarsızlığı
'/sayfa' ve '/sayfa/' ikisi de 200 dönüyor; Google bunları iki ayrı sayfa sayar.
Çözüm: Birini seç, diğerini 301 ile yönlendir ya da canonical ekle.
url.trailing_slash_duplicate · Orta
URL'de alt çizgi var
Google kelime ayırıcı olarak tireyi (-) önerir; alt çizgi kelimeleri birleştirir.
Çözüm: Yeni URL'lerde tire kullan; mevcutlar iyi sıralanıyorsa değiştirmek zorunlu değil.
url.underscore · Bilgi
URL'de büyük harf var
Sunucular çoğu zaman büyük/küçük harfi ayrı adres sayar; aynı sayfanın iki sürümü oluşabilir.
Çözüm: URL'leri küçük harfe çevir, eski adresleri 301 ile yönlendir.
url.uppercase · Düşük
Başlık & Meta 27
Karakter seti tanımlı değil
Charset yoksa Türkçe karakterler bozuk görünebilir.
Çözüm: <head> başına <meta charset="utf-8"> ekle.
meta.charset_missing · Düşük
Meta description başka sayfalarla aynı Oto
Kopya açıklamalar sayfaları arama sonucunda birbirinden ayırt edilemez yapar.
Çözüm: Her sayfaya özgün açıklama yaz.
meta.desc_duplicate · Orta
Meta açıklama title ile aynı Oto
Açıklama title'ı tekrar ediyor; arama sonucunda ek bilgi verme fırsatı kaçıyor.
Çözüm: Açıklamada sayfanın faydasını ve içeriğini 1-2 cümlede anlat.
meta.desc_eq_title · Düşük
Meta description yok Oto
Description yoksa Google snippet'i sayfadan rastgele bir parçayla doldurur ve CTR düşer.
Çözüm: 70-160 karakterlik, fayda ve çağrı içeren bir açıklama yaz.
meta.desc_missing · Orta
Meta description çok uzun Oto
160 karakteri aşan açıklama kesilir.
Çözüm: Açıklamayı kısalt; önemli bilgiyi başa yaz.
meta.desc_too_long · Düşük
Meta description çok kısa Oto
70 karakterden kısa açıklamalar snippet alanını boşa harcar.
Çözüm: Açıklamayı genişlet.
meta.desc_too_short · Düşük
Favicon yok
Google mobil sonuçlarda favicon gösterir; yoksa genel bir ikon görünür.
Çözüm: Kare bir favicon ekle (en az 48x48).
meta.favicon_missing · Bilgi
H1 başka sayfalarla aynı
Aynı H1'i taşıyan sayfalar aynı konuyu hedefliyor olabilir.
Çözüm: H1'i sayfaya özgü hale getir.
meta.h1_duplicate · Düşük
H1 boş
Sayfada H1 etiketi var ama içi boş (ya da yalnız görsel).
Çözüm: H1'e sayfanın konusunu anlatan metin yaz.
meta.h1_empty · Orta
H1 başlığı yok Oto
H1, sayfanın ana konusunu hem kullanıcıya hem arama motoruna söyler.
Çözüm: Sayfanın en üstüne konuyu anlatan tek bir H1 ekle.
meta.h1_missing · Yüksek
Birden fazla H1
Birden çok H1 kullanımı ana konuyu bulanıklaştırır.
Çözüm: Tek H1 bırak, diğerlerini H2'ye çevir.
meta.h1_multiple · Düşük
H1 çok uzun
70 karakteri aşan H1 odak kaybettirir; başlık bir paragraf gibi okunur.
Çözüm: H1'i kısa ve net tut; ayrıntıyı alt başlığa taşı.
meta.h1_too_long · Düşük
Başlık hiyerarşisi atlıyor
H2'den H4'e atlamak gibi kırılmalar içerik yapısını ve erişilebilirliği bozar.
Çözüm: Başlıkları sırayla kullan (H1 → H2 → H3).
meta.heading_skip · Düşük
Eski meta keywords etiketi
meta keywords 2009'dan beri Google tarafından kullanılmıyor; rakiplere anahtar kelime listesi sunar.
Çözüm: Etiketi kaldır.
meta.keywords_tag · Bilgi
html lang niteliği yok Oto
lang niteliği dil algılamaya ve ekran okuyuculara yardım eder.
Çözüm: <html lang="tr"> gibi dil kodunu ekle.
meta.lang_missing · Düşük
Uzun içerikte alt başlık yok
600 kelimeyi aşan içerik H2 olmadan taranması ve okunması zor bir metin bloğudur.
Çözüm: İçeriği H2 alt başlıklarla bölümlere ayır.
meta.no_h2 · Düşük
Title tamamen büyük harf Oto
Tamamı büyük harfli başlıklar 'bağırıyor' gibi görünür, okunması zordur; Google bazen yeniden yazar.
Çözüm: Title'ı normal cümle düzeninde yaz; yalnız özel adları büyük harfle başlat.
meta.title_all_caps · Düşük
Title marka adıyla başlıyor Oto
Marka başta olunca sayfanın konusu kesilme riskine girer ve tıklama oranı düşer (ana sayfa hariç).
Çözüm: Konuyu başa, markayı ' | Marka' biçiminde sona al.
meta.title_brand_first · Bilgi
Title yalnızca marka adı Oto
Title sadece marka/site adından oluşuyor; sayfanın konusu arama sonucunda görünmüyor.
Çözüm: Sayfanın konusunu başa, markayı sona koy.
meta.title_brand_only · Orta
Title başka sayfalarla aynı Oto
Aynı title'ı paylaşan sayfalar birbiriyle yarışır (cannibalization) ve CTR düşer.
Çözüm: Her sayfaya kendi içeriğini anlatan benzersiz bir title ver.
meta.title_duplicate · Yüksek
Title ve H1 birebir aynı
Aynı olmaları hata değildir, ama farklı varyasyonlar daha fazla sorguyu hedeflemeyi sağlar.
Çözüm: Title'ı tıklamaya teşvik eden, H1'i sayfa içi başlık olarak yaz.
meta.title_eq_h1 · Bilgi
Title etiketi yok Oto
Title, arama sonucundaki mavi başlıktır ve en güçlü on-page sinyallerden biridir.
Çözüm: Sayfanın konusunu ve ana anahtar kelimesini içeren, 30-60 karakterlik benzersiz bir title yaz.
meta.title_missing · Kritik
Birden fazla title etiketi Oto
Sayfada birden çok <title> var; arama motoru hangisini kullanacağını tahmin etmek zorunda kalır.
Çözüm: Tek bir <title> bırak.
meta.title_multiple · Orta
Title piksel genişliği fazla Oto
Karakter sayısı uygun olsa da geniş harfler yüzünden title arama sonucunda kesilebilir (~580 px).
Çözüm: Daha kısa kelimeler seç ya da önemli kısmı başa al.
meta.title_pixel_width · Bilgi
Title'da kelime tekrarı Oto
Aynı kelimenin title'da üç ya da daha fazla geçmesi anahtar kelime doldurma olarak algılanır.
Çözüm: Kelimeyi bir kez kullan; kalan alanı faydaya ayır.
meta.title_stuffing · Orta
Title çok uzun Oto
~60 karakterden (≈580px) uzun title'lar arama sonucunda kesilir.
Çözüm: En önemli kelimeleri başa al ve title'ı kısalt.
meta.title_too_long · Düşük
Title çok kısa Oto
30 karakterden kısa title'lar fırsatı kaçırır.
Çözüm: Title'ı marka ve niteleyicilerle genişlet.
meta.title_too_short · Orta
İçerik 16
Kopya içerik Oto
Bu sayfanın metni başka sayfalarla birebir aynı.
Çözüm: Kopyaları birleştir, canonical ile tek sürüme işaret et ya da içeriği farklılaştır.
content.duplicate · Yüksek
Aynı alt başlık tekrar ediyor
Aynı metinli H2/H3 başlıkları bölümleri ayırt etmeyi zorlaştırır ve içindekileri anlamsız kılar.
Çözüm: Her alt başlığı bölümün içeriğine özgü yaz.
content.duplicate_headings · Düşük
Boş alt başlık
İçi boş H2–H6 etiketleri sayfa yapısını bozar; ekran okuyucular boş başlık okur.
Çözüm: Boş başlıkları kaldır ya da metin ekle; görsel boşluk için CSS kullan.
content.empty_heading · Düşük
Cümleler çok uzun
Ortalama cümle uzunluğu 25 kelimeyi aşıyor; metin zor okunuyor.
Çözüm: Uzun cümleleri böl, gereksiz yan cümleleri çıkar.
content.hard_to_read · Bilgi
Kelime aşırı tekrar ediliyor
Tek bir kelime metnin %4'ünden fazlasını oluşturuyor; bu doğal değil ve spam sinyali verebilir.
Çözüm: Eş anlamlılar ve doğal dil kullan; tekrarı azalt.
content.keyword_stuffing · Orta
Çok uzun paragraflar
150 kelimeyi aşan paragraflar mobilde okunmaz ve AI özetlerine alıntılanma şansını düşürür.
Çözüm: Paragrafları 2-4 cümlelik parçalara böl.
content.long_paragraphs · Bilgi
Yer tutucu metin (lorem ipsum)
Sayfada şablondan kalmış yer tutucu metin var.
Çözüm: Gerçek içerikle değiştir.
content.lorem · Yüksek
Metin/HTML oranı düşük
HTML'in çok küçük bir kısmı görünür metin. Kod şişkinliği ya da az içerik işareti olabilir.
Çözüm: Gereksiz inline kod ve markup'ı azalt, içerik ekle.
content.low_text_ratio · Bilgi
Bozuk karakterler (kodlama hatası)
'ü', 'ÅŸ', 'ı' gibi bozuk karakterler kodlama (UTF-8) hatasını gösterir; metin okunmaz, arama motorları yanlış dizinler.
Çözüm: Veritabanı, dosya ve HTTP başlığında karakter kodlamasını UTF-8 yap; bozulmuş metni düzelt.
content.mojibake · Yüksek
Neredeyse kopya içerik Oto
Metni başka sayfalarla büyük ölçüde aynı (yalnız birkaç kelime farklı). Google bunlardan birini seçip diğerlerini göstermez.
Çözüm: Sayfaları birleştir, canonical ver ya da her sayfaya özgün içerik ekle.
content.near_duplicate · Orta
Uzun içerikte görsel yok
500 kelimeyi aşan bir sayfada hiç görsel yok; görseller okumayı kolaylaştırır ve Google Görseller'den trafik getirir.
Çözüm: İçeriği destekleyen en az bir açıklayıcı görsel ekle.
content.no_images · Bilgi
Uzun içerikte içindekiler yok
2000 kelimeyi aşan, çok bölümlü içerikte sayfa içi bağlantılar okuyucuya yol gösterir; Google bunları 'şuraya atla' linki olarak gösterebilir.
Çözüm: Başa H2 başlıklarına giden bir içindekiler listesi ekle (her H2'ye id verip #id ile linkle).
content.no_toc · Bilgi
Başlıkta eski yıl
Title ya da H1'deki eski yıl ('2023 rehberi') sayfanın güncel olmadığını söyler; tıklanma oranı düşer.
Çözüm: İçeriği güncelleyip yılı yenile ya da başlıktan yılı kaldır.
content.outdated_year · Düşük
Yapım aşaması / yer tutucu ifade
Sayfada 'yakında', 'coming soon', 'test sayfası' gibi tamamlanmamış içerik izi var.
Çözüm: Sayfayı tamamla ya da hazır olana dek noindex yap.
content.placeholder · Düşük
Zayıf içerik (az kelime) Öneri
200 kelimeden az içerik genellikle sorguyu karşılamaya yetmez; 'yardımcı içerik' değerlendirmesinde geride kalır.
Çözüm: İçeriği kullanıcının sorularını yanıtlayacak şekilde genişlet; örnek, veri ve SSS ekle.
content.thin · Orta
Title'daki konu metinde geçmiyor
Title'daki ana kelimelerin hiçbiri sayfa metninde yok; başlık ile içerik uyumsuz görünüyor.
Çözüm: İçerikte title'daki konuyu doğal biçimde işle ya da title'ı içeriğe göre güncelle.
content.title_terms_missing · Düşük
Linkler & Yönlendirmeler 22
Kırık dış link Oto
Sayfa, artık çalışmayan bir dış kaynağa link veriyor. Kullanıcı deneyimini ve güveni zedeler.
Çözüm: Linki güncel bir kaynakla değiştir ya da kaldır.
links.broken_external · Orta
Sayfa içi çapa hedefi yok
'#bolum' linklerinin hedefi sayfada yok; tıklayınca hiçbir yere gitmez (içindekiler tabloları sık bozulur).
Çözüm: Çapa adını hedef başlığın id'siyle eşleştir.
links.broken_fragment · Düşük
Kırık iç link Oto
Sayfa, 4xx/5xx dönen bir iç sayfaya link veriyor.
Çözüm: Linki doğru URL ile değiştir ya da kaldır; hedef taşındıysa 301 ekle.
links.broken_internal · Yüksek
Metinsiz link
Metni, alt'lı görseli ya da aria-label'ı olmayan linkler: Google hedefin konusunu, ekran okuyucular amacını bilemez.
Çözüm: Linke görünür metin, görseline alt ya da aria-label ekle.
links.empty_anchor · Orta
Açıklayıcı olmayan link metni
'Tıklayın', 'devamı' gibi link metinleri hedef sayfa hakkında bilgi vermez.
Çözüm: Link metnini hedef sayfanın konusunu anlatacak şekilde yaz.
links.generic_anchor · Düşük
İç linklerin çoğu yönlendirmeye gidiyor
İç linklerin %10'undan fazlası yönlendirilen adreslere gidiyor; her biri tarama bütçesini ve sayfa hızını harcar.
Çözüm: Menü, şablon ve içerikteki linkleri son adrese güncelle.
links.high_redirect_ratio · Orta
HTTPS sayfadan HTTP iç linke
İç linkler HTTP sürüme gidiyor; her tıklamada ekstra yönlendirme ve karışık sinyal oluşur.
Çözüm: İç linkleri https:// ile güncelle.
links.https_to_http · Orta
İç linkte nofollow
Kendi sayfalarına verilen nofollow linkler iç link değerinin akışını keser.
Çözüm: İç linklerden rel=nofollow'u kaldır.
links.internal_nofollow · Düşük
JavaScript'e bağımlı linkler
href'siz, onclick ya da javascript: ile çalışan linkleri Google takip edemez; hedef sayfalar keşfedilmeyebilir.
Çözüm: Gezinmeyi <a href="/adres"> ile yap; JavaScript davranışını bunun üzerine ekle.
links.js_only · Orta
Çok uzun link metni
100 karakteri aşan link metinleri bağlamı bulanıklaştırır; genellikle paragrafın tamamı link yapılmıştır.
Çözüm: Link metnini hedefi anlatan kısa bir ifadeyle sınırla.
links.long_anchor · Bilgi
Sayfada hiç iç link yok Öneri
Çıkmaz sayfa: tarayıcılar ve kullanıcılar sitenin geri kalanına geçemez.
Çözüm: İlgili sayfalara, kategoriye ve ana sayfaya link ver.
links.no_outlinks · Orta
Geçici (302/307) yönlendirme Oto
Kalıcı bir taşıma için geçici yönlendirme kullanılmış; otorite aktarımı gecikebilir.
Çözüm: Taşıma kalıcıysa 301/308 kullan.
links.redirect_302 · Düşük
Yönlendirme zinciri Oto
URL birden fazla adımla yönleniyor. Her adım link değeri ve hız kaybettirir.
Çözüm: Zinciri tek 301'e indir: ilk URL doğrudan son hedefe gitsin.
links.redirect_chain · Orta
Yönlendirme döngüsü Oto
URL'ler birbirine yönleniyor; sayfa hiç açılmıyor.
Çözüm: Döngüdeki kurallardan birini kaldır.
links.redirect_loop · Kritik
İç link başka alan adına yönleniyor
Sitedeki bir adres başka bir alan adına yönlendiriyor; iç linkler kullanıcıyı farkında olmadan siteden çıkarıyor.
Çözüm: Yönlendirmeyi kontrol et; kasıtlıysa linki doğrudan dış adresle değiştir.
links.redirect_offsite · Orta
Yalnız bir iç link alıyor Öneri
İndekslenebilir sayfaya sitede yalnız bir sayfa link veriyor; önem sinyali zayıf.
Çözüm: İlgili sayfalardan ve kategori sayfalarından ek iç linkler ver.
links.single_inlink · Bilgi
target="_blank" linklerde noopener yok
Yeni sekmede açılan dış linkler eski tarayıcılarda açan sayfaya erişebilir (tabnabbing).
Çözüm: Dış linklere rel="noopener" ekle.
links.target_blank_unsafe · Bilgi
Canonical'ı başka adrese giden sayfalara iç link
Link verilen sayfa başka bir adresi canonical gösteriyor; iç linkler doğrudan canonical adrese gitmeli.
Çözüm: Linki hedef sayfanın canonical adresiyle değiştir.
links.to_canonicalized · Düşük
noindex sayfalara iç link
Link verilen sayfa noindex; link değeri indekslenmeyecek bir sayfaya akıyor.
Çözüm: Bu linkleri indekslenen bir sayfaya yönlendir ya da hedef sayfanın noindex'ini kaldır.
links.to_noindex · Düşük
İç link yönlendirmeye gidiyor Oto
İç link, yönlenen bir URL'yi gösteriyor. Her yönlendirme gecikme ve tarama israfı demek.
Çözüm: Linki doğrudan son URL'ye güncelle.
links.to_redirect · Düşük
Çok fazla link
300'den fazla link, sayfa başına link değerini dağıtır ve kullanıcıyı yorar.
Çözüm: Gereksiz linkleri azalt.
links.too_many · Bilgi
Çok fazla dış link
100'den fazla dış link sayfanın link değerini dağıtır ve spam izlenimi verebilir.
Çözüm: Gereksiz dış linkleri kaldır; reklam/ortaklık linklerine rel="sponsored" ekle.
links.too_many_external · Bilgi
Görseller 13
ALT metni dosya adı gibi
'IMG_1234.jpg' gibi ALT metinleri görseli anlatmaz; boş ALT'tan farksızdır.
Çözüm: Görselde ne olduğunu anlatan doğal bir ALT yaz.
img.alt_filename · Orta
Görselde ALT metni yok Oto
ALT metni görme engelli kullanıcılar ve Google Görseller için gerekli.
Çözüm: Görseli anlatan kısa, doğal bir ALT metni yaz. Dekoratif görsellerde alt="" kullan.
img.alt_missing · Orta
Aynı ALT metni tekrar ediyor
Sayfada üç ya da daha fazla görsel aynı ALT metnini kullanıyor; görseller ayırt edilemiyor.
Çözüm: Her görsel için içeriğine özgü ALT yaz.
img.alt_repeated · Bilgi
ALT metni çok uzun
125 karakteri aşan ALT metinleri ekran okuyucularda kesilir ve anahtar kelime doldurma gibi görünür.
Çözüm: ALT'ı görseli anlatan kısa bir cümleyle sınırla.
img.alt_too_long · Düşük
Kırık görsel
Görsel yüklenemiyor (4xx/5xx).
Çözüm: Görsel yolunu düzelt ya da görseli kaldır.
img.broken · Yüksek
Görsel dosya adı anlamsız
'IMG_1234.jpg' gibi dosya adları Google Görseller'e görselin ne olduğunu anlatmaz.
Çözüm: Görselleri içeriği anlatan kısa, tireli adlarla yükle (ör. filtre-kahve-demleme.jpg).
img.generic_filename · Bilgi
Görsel dosyası çok büyük
300 KB'ı aşan görseller sayfayı yavaşlatır ve LCP'yi kötüleştirir.
Çözüm: Görseli gösterildiği boyuta küçült, WebP/AVIF'e çevir ve sıkıştır.
img.large_file · Orta
İlk görsel lazy-load
Sayfanın ilk (büyük olasılıkla LCP) görseli loading="lazy"; tarayıcı onu geç indirir ve LCP kötüleşir.
Çözüm: İlk görselden loading="lazy"'yi kaldır, fetchpriority="high" ekle.
img.lcp_lazy · Orta
Eski görsel formatı
JPEG/PNG yerine WebP/AVIF kullanımı görsel boyutunu %25-50 düşürür.
Çözüm: Görselleri WebP veya AVIF'e dönüştür.
img.legacy_format · Bilgi
Görselde width/height yok Oto
Boyutu belirtilmemiş görseller yüklenirken sayfayı kaydırır (CLS).
Çözüm: img etiketlerine width ve height ekle ya da CSS aspect-ratio kullan.
img.no_dimensions · Düşük
Görseller lazy-load değil Oto
Ekranın altında kalan görsellerin hemen yüklenmesi ilk açılışı yavaşlatır.
Çözüm: İlk görsel dışındakilere loading="lazy" ekle.
img.no_lazy · Düşük
Duyarlı görsel (srcset) yok
Görseller tek boyutta sunuluyor; mobil cihazlar gereğinden büyük dosya indiriyor.
Çözüm: srcset/sizes ya da <picture> ile farklı genişlikler sun.
img.no_srcset · Bilgi
Sayfada çok fazla görsel
100'den fazla görsel sayfa ağırlığını ve istek sayısını artırır; mobilde yavaşlık yapar.
Çözüm: Galerileri sayfalandır, lazy-load kullan, dekoratif görselleri CSS'e taşı.
img.too_many · Bilgi
Yapısal Veri 19
Article işaretlemesinde görsel yok
Article/BlogPosting için image önerilir; olmadan Discover ve zengin sonuçlarda görsel gösterilmez.
Çözüm: image alanına en az 1200 px genişliğinde bir görsel ekle.
sd.article_no_image · Orta
BreadcrumbList hatalı
itemListElement öğelerinde position sıralı değil ya da name/item eksik; Google içerik haritasını göstermez.
Çözüm: Her öğeye 1'den başlayan sıralı position, name ve item (son öğe hariç) ekle.
sd.breadcrumb_invalid · Orta
JSON-LD'de @context eksik
@context "https://schema.org" olmadan işaretleme yorumlanamaz.
Çözüm: Her kök nesneye "@context": "https://schema.org" ekle.
sd.context_missing · Orta
Artık zengin sonuç üretmeyen şema türü
Google HowTo zengin sonuçlarını 2023'te kaldırdı; bu işaretleme arama sonuçlarında görünüm sağlamaz.
Çözüm: İşaretleme zarar vermez, ama zengin sonuç beklentisiyle emek harcama; adımları içerikte net listele.
sd.deprecated_rich_result · Bilgi
Aynı şema türü tekrar ediyor
Sayfada aynı tekil türden (ör. iki Organization ya da iki BreadcrumbList) birden fazla var; Google birini seçer, diğeri yok sayılır.
Çözüm: Tekrarlanan işaretlemeyi birleştir (genelde tema + eklenti çakışması).
sd.duplicate_type · Düşük
Yapısal veride geçersiz tarih
datePublished / dateModified ISO 8601 biçiminde olmalı (ör. 2026-10-12 ya da 2026-10-12T09:00:00+03:00).
Çözüm: Tarihleri ISO 8601 biçimine çevir.
sd.invalid_date · Orta
Yapısal veri (schema.org) yok Oto
JSON-LD, zengin sonuçlar (yıldız, fiyat, SSS) ve AI arama motorlarının sayfayı anlaması için kullanılır.
Çözüm: Sayfa türüne uygun JSON-LD ekle (Organization, Article, Product, BreadcrumbList...).
sd.missing · Düşük
Breadcrumb şeması yok Oto
BreadcrumbList, arama sonucunda URL yerine site hiyerarşisini gösterir.
Çözüm: BreadcrumbList JSON-LD ekle.
sd.no_breadcrumb · Bilgi
Ana sayfada Organization/WebSite şeması yok Oto
Organization ve WebSite şemaları marka bilgi panelini ve site adını besler.
Çözüm: Ana sayfaya Organization (logo, sameAs) ve WebSite şeması ekle.
sd.no_org_home · Düşük
Geçersiz stok durumu (availability)
availability schema.org değerlerinden biri değil; Google stok bilgisini gösteremez.
Çözüm: https://schema.org/InStock, OutOfStock, PreOrder gibi değerlerden birini kullan.
sd.offer_availability_invalid · Düşük
Organization'da logo ya da sameAs yok
Organization işaretlemesindeki logo ve sosyal profiller (sameAs) bilgi panelinde ve AI yanıtlarında marka tanınırlığını artırır.
Çözüm: logo (tam URL) ve sameAs (sosyal profil adresleri) ekle.
sd.org_incomplete · Düşük
JSON-LD bozuk Oto
JSON-LD bloğu geçerli JSON değil; arama motorları onu tamamen yok sayar.
Çözüm: JSON sözdizimini düzelt (virgül, tırnak, kaçış karakterleri).
sd.parse_error · Yüksek
Şemadaki fiyat sayfada görünmüyor
Product şemasındaki fiyat sayfa metninde bulunamadı; Google yanlış ya da gizli fiyatı yanıltıcı işaretleme sayabilir.
Çözüm: Şemadaki price değerinin sayfada gösterilen fiyatla aynı olduğundan emin ol (indirim ve KDV dahil).
sd.price_mismatch · Düşük
Product'ta fiyat bilgisi eksik
Ürün zengin sonucu için offers içinde price ve priceCurrency gerekir; eksikse Google fiyatı göstermez.
Çözüm: offers.price, offers.priceCurrency (ör. TRY) ve availability ekle.
sd.product_offer_incomplete · Yüksek
Puan işaretlemesi hatalı
ratingValue aralık dışında ya da ratingCount/reviewCount eksik; Google yıldızları göstermez.
Çözüm: ratingValue'yu bestRating/worstRating (varsayılan 1–5) aralığında tut, ratingCount ya da reviewCount ekle.
sd.rating_invalid · Orta
Schema'da önerilen alan eksik
Önerilen alanlar zengin sonuçta daha fazla bilgi gösterilmesini sağlar.
Çözüm: Önerilen alanları doldur.
sd.recommended_missing · Bilgi
Yapısal veride göreli adres
JSON-LD'deki url, image ve logo alanları tam adres (https://...) olmalı; göreli adresler yok sayılabilir.
Çözüm: Adresleri https:// ile başlayan tam biçimde yaz.
sd.relative_url · Düşük
Schema'da zorunlu alan eksik Oto
Google'ın zengin sonuç için istediği alanlar eksik.
Çözüm: Eksik alanları JSON-LD'ye ekle.
sd.required_missing · Orta
Kendi işletmesi için puan işaretlemesi
Organization/LocalBusiness'ın kendi sitesinde kendisi için verdiği puanlar 2019'dan beri yıldız olarak gösterilmiyor.
Çözüm: aggregateRating'i ürün ya da hizmet (Product/Service) işaretlemesine taşı; işletme puanları için Google Business Profile kullan.
sd.review_self_serving · Düşük
Uluslararası 9
hreflang olan sayfa başka adrese canonical
Canonical başka bir adresi gösterdiğinde Google bu sayfadaki hreflang'leri yok sayar.
Çözüm: hreflang'leri yalnız kendini canonical gösteren sayfalara koy ya da canonical'ı düzelt.
intl.hreflang_canonical_conflict · Orta
Geçersiz hreflang kodu Oto
hreflang ISO 639-1 dil (+ isteğe bağlı ISO 3166-1 bölge) kodu ya da x-default olmalı.
Çözüm: Kodları 'tr', 'en-gb', 'x-default' biçiminde düzelt.
intl.hreflang_invalid · Orta
hreflang karşılıklı değil Oto
A sayfası B'yi gösteriyorsa B de A'yı göstermelidir; yoksa Google hreflang'i yok sayar.
Çözüm: Tüm dil sürümlerine aynı hreflang kümesini ekle.
intl.hreflang_no_return · Orta
hreflang'de sayfanın kendisi yok Oto
hreflang kümesi sayfanın kendi URL'sini de içermelidir.
Çözüm: Sayfanın kendi dili için bir hreflang satırı ekle.
intl.hreflang_no_self · Orta
x-default hreflang yok Oto
x-default, dil eşleşmesi olmayan kullanıcılar için varsayılan sürümü belirtir.
Çözüm: x-default satırı ekle.
intl.hreflang_no_xdefault · Bilgi
hreflang hedefi 200 dönmüyor Oto
hreflang ile gösterilen dil sürümü hata ya da yönlendirme döndürüyor; Google tüm kümeyi yok sayabilir.
Çözüm: hreflang'de yalnız 200 dönen, son (yönlenmeyen) adresleri kullan.
intl.hreflang_target_error · Yüksek
hreflang hedefi noindex ya da başka sayfaya canonical Oto
Dil sürümü indekslenemiyor (noindex ya da farklı canonical); hreflang kümesi geçersiz olur.
Çözüm: hreflang'de yalnız indekslenebilir ve kendine canonical veren sürümleri kullan.
intl.hreflang_target_noindex · Orta
Geçersiz html lang değeri
html lang özniteliği geçerli bir dil kodu değil (ör. 'turkish' yerine 'tr' olmalı).
Çözüm: ISO 639-1 kodu kullan: tr, en, en-GB…
intl.lang_invalid · Düşük
html lang ile hreflang uyuşmuyor
Sayfa kendi hreflang satırında başka bir dili beyan ediyor; dil sinyalleri çelişiyor.
Çözüm: html lang ve sayfanın kendi hreflang kodunu aynı dile getir.
intl.lang_mismatch · Düşük
Performans 19
Kırık CSS / JavaScript dosyası
Sayfanın yüklediği CSS ya da JS dosyası hata dönüyor; sayfa bozuk görünebilir, Google onu eksik çizer.
Çözüm: Dosya yolunu düzelt ya da şablondan kaldır.
perf.broken_asset · Yüksek
DOM çok büyük
1500'ü aşan HTML öğesi bellek kullanımını, stil hesaplamasını ve etkileşim gecikmesini (INP) artırır.
Çözüm: Gereksiz sarmalayıcı div'leri, gizli menü kopyalarını ve uzun listeleri azalt (sayfalama / tembel yükleme).
perf.dom_size · Orta
Sayfa çok ağır
HTML ve görsellerin toplamı 3 MB'ı aşıyor; mobil bağlantıda sayfa yavaş açılır.
Çözüm: Görselleri sıkıştır/WebP'ye çevir, ekran dışındakileri lazy-load yap, kullanılmayan kaynakları kaldır.
perf.heavy_page · Orta
HTML çok büyük
HTML 500 KB'tan büyük. Ayrıştırma ve ilk boyama gecikir.
Çözüm: Inline veri/stil/script'i azalt, sayfalama kullan.
perf.large_html · Düşük
Büyük inline CSS
50 KB'tan büyük inline <style> blokları HTML'i şişirir ve önbelleğe alınamaz.
Çözüm: Kritik olmayan CSS'i harici dosyaya taşı.
perf.large_inline_css · Bilgi
Çok büyük satır içi JavaScript
HTML'e gömülü 100 KB'ı aşan script, sayfa her açıldığında yeniden indirilir ve ayrıştırılır.
Çözüm: Satır içi scripti ayrı, önbelleklenen bir dosyaya taşı.
perf.large_inline_js · Düşük
Ana görsele öncelik verilmemiş
İlk büyük görselde fetchpriority="high" yok; tarayıcı LCP görselini diğer kaynaklarla aynı önceliğe koyar.
Çözüm: Sayfanın ilk/ana görseline fetchpriority="high" ekle.
perf.lcp_priority · Bilgi
Çok fazla web yazı tipi
Dörtten fazla yazı tipi dosyası/ailesi ilk açılışı yavaşlatır ve metin geç görünür.
Çözüm: Aile ve ağırlık sayısını azalt, değişken yazı tipi kullan, font-display: swap ekle.
perf.many_fonts · Düşük
Önbellek başlığı yok
Cache-Control tanımlı değil; CDN ve tarayıcı önbelleği verimsiz çalışır.
Çözüm: Uygun Cache-Control başlığı ekle.
perf.no_cache_header · Bilgi
Sıkıştırma kapalı
HTML gzip/brotli ile sıkıştırılmadan gönderiliyor; transfer boyutu 3-5 kat büyük.
Çözüm: Sunucu veya CDN'de gzip/brotli sıkıştırmayı aç.
perf.no_compression · Orta
Sunucu 304 Not Modified dönmüyor
ETag/Last-Modified var ama sunucu koşullu isteğe 304 yerine tüm sayfayı gönderiyor; Google tarama bütçesini boşa harcar.
Çözüm: If-None-Match / If-Modified-Since isteklerine 304 dönülmesini sağla (çoğu sunucu ve CDN'de bir ayardır).
perf.no_conditional_get · Düşük
Kritik üçüncü taraf kaynaklara preconnect yok
Yazı tipi ya da CDN gibi başka alan adlarından kritik kaynak yükleniyor ama bağlantı önceden açılmıyor.
Çözüm: <link rel="preconnect" href="https://alanadi" crossorigin> ekle (en fazla 2-3 alan adı).
perf.no_preconnect · Bilgi
Sayfalarda ETag / Last-Modified yok
Doğrulayıcı başlıklar olmadan tarayıcılar ve Googlebot değişmemiş sayfayı her seferinde baştan indirir.
Çözüm: Sunucu ya da CDN'de ETag veya Last-Modified başlığını aç.
perf.no_validators · Düşük
Render'ı engelleyen script
<head> içindeki async/defer'siz script'ler sayfanın görünmesini geciktirir.
Çözüm: Script'lere defer ya da async ekle.
perf.render_blocking_js · Düşük
Sunucu yanıtı yavaş
Sunucu yanıt süresi 800 ms'nin üstünde. TTFB yüksekse LCP de kötüleşir.
Çözüm: Sayfa önbellekleme, CDN, veritabanı sorgu optimizasyonu ya da daha güçlü sunucu kullan.
perf.slow_response · Orta
Statik dosyaların önbellek süresi kısa
CSS, JS, font ve görseller 7 günden kısa önbellekleniyor; tekrar gelen ziyaretçi her şeyi yeniden indirir.
Çözüm: Sürümlenen statik dosyalara Cache-Control: public, max-age=31536000, immutable ver.
perf.static_cache_short · Orta
Çok fazla üçüncü taraf script
Ondan fazla farklı alan adından script yükleniyor; her biri DNS, bağlantı ve ana iş parçacığı maliyeti getirir.
Çözüm: Kullanılmayan etiketleri kaldır; etiket yöneticisi ve gecikmeli yükleme kullan.
perf.third_party_scripts · Orta
Çok fazla CSS dosyası
Altıdan fazla stil dosyası her biri ayrı istek ve render engelleme demek.
Çözüm: CSS dosyalarını birleştir; kritik CSS'i satır içine al, kalanını geciktir.
perf.too_many_css · Düşük
Çok fazla kaynak
Sayfa 60'tan fazla script/stil/görsel yüklüyor.
Çözüm: Kaynakları birleştir, gereksiz üçüncü parti scriptleri kaldır.
perf.too_many_requests · Düşük
Mobil & Erişilebilirlik 11
Sesli otomatik oynatma
Sessize alınmamış otomatik oynatılan video/ses kullanıcıyı rahatsız eder; tarayıcılar çoğunlukla engeller.
Çözüm: autoplay kullanıyorsan muted ekle ya da oynatmayı kullanıcıya bırak.
a11y.autoplay_media · Düşük
Adı olmayan buton
Metni ya da aria-label'ı olmayan butonlar ekran okuyucuda 'buton' diye okunur; ne yaptığı anlaşılmaz.
Çözüm: Butona görünür metin ya da aria-label ekle (ikon butonlarında özellikle).
a11y.button_no_name · Orta
Eskimiş HTML etiketleri
<font>, <center>, <marquee> gibi etiketler HTML5'te kaldırıldı; eski ve bakımsız şablon sinyali verir.
Çözüm: Bu etiketleri CSS ile değiştir.
a11y.deprecated_tags · Bilgi
Aynı id birden çok kez kullanılmış
Tekrarlanan id'ler form etiketlerini, aria bağlantılarını ve sayfa içi çapaları bozar.
Çözüm: Her id'yi sayfada benzersiz yap.
a11y.duplicate_ids · Düşük
iframe'de başlık yok
title özniteliği olmayan iframe'lerin (video, harita) ne olduğu ekran okuyuculara anlatılamaz.
Çözüm: Her iframe'e kısa bir title ekle (ör. title="Tanıtım videosu").
a11y.iframe_no_title · Düşük
Etiketsiz form alanı
Etiketi olmayan form alanlarını ekran okuyucular anlamlandıramaz.
Çözüm: Her input'a <label for> ya da aria-label ekle.
a11y.input_no_label · Düşük
<main> bölgesi yok
<main> ekran okuyucuların içeriğe doğrudan atlamasını sağlar; AI ve arama motorları da ana içeriği daha kolay ayırır.
Çözüm: Sayfanın ana içeriğini tek bir <main> etiketiyle sar.
a11y.no_main · Bilgi
Pozitif tabindex kullanımı
tabindex 0'dan büyükse klavye sırası sayfanın görsel sırasından kopar.
Çözüm: tabindex="0" ya da -1 kullan; sırayı HTML düzeniyle ver.
a11y.positive_tabindex · Düşük
Viewport sabit genişlikte Oto
width=1024 gibi sabit viewport mobilde sayfanın küçültülmüş masaüstü görünümüyle açılmasına yol açar.
Çözüm: width=device-width, initial-scale=1 kullan.
mobile.fixed_viewport · Orta
Viewport meta etiketi yok Oto
Viewport tanımı olmadan sayfa mobilde masaüstü genişliğinde görünür. Google mobil öncelikli indeksler.
Çözüm: <meta name="viewport" content="width=device-width, initial-scale=1"> ekle.
mobile.viewport_missing · Yüksek
Yakınlaştırma engellenmiş Oto
user-scalable=no ya da maximum-scale=1 erişilebilirliği bozar.
Çözüm: Viewport'tan bu kısıtlamaları kaldır.
mobile.zoom_disabled · Orta
Güvenlik 14
Çerez Secure bayrağı olmadan
HTTPS sitesinde Secure bayraksız çerezler şifresiz bağlantıda da gönderilebilir.
Çözüm: Tüm çerezlere Secure; oturum çerezlerine ayrıca HttpOnly ve SameSite ekle.
sec.cookie_insecure · Düşük
Hassas dosyalar herkese açık
.git, .env gibi dosyalar herkese açık: kaynak kod, veritabanı şifreleri ya da API anahtarları sızabilir.
Çözüm: Bu yollara erişimi sunucuda hemen engelle (403/404), açıkta kalmış anahtar ve şifreleri değiştir.
sec.exposed_files · Kritik
Form HTTP adrese gönderiyor
HTTPS sayfadaki form verisi şifresiz HTTP adrese gidiyor; tarayıcılar uyarı gösterir, veriler okunabilir.
Çözüm: Form action adresini https:// yap.
sec.form_insecure_action · Yüksek
HSTS süresi çok kısa Oto
Strict-Transport-Security max-age 6 aydan kısa; tarayıcılar HTTPS zorunluluğunu kısa sürede unutur.
Çözüm: max-age=31536000 (1 yıl) kullan; tüm alt alan adları HTTPS ise includeSubDomains ekle.
sec.hsts_weak · Düşük
Güvenlik başlıkları eksik Oto
X-Content-Type-Options, X-Frame-Options/CSP frame-ancestors ve Referrer-Policy temel korumalar sağlar.
Çözüm: Eksik başlıkları sunucu veya CDN'de ekle.
sec.missing_headers · Bilgi
Karışık içerik (HTTPS sayfada HTTP kaynak) Oto
HTTPS sayfa HTTP üzerinden script/görsel yüklüyor; tarayıcı bunları engelleyebilir.
Çözüm: Kaynak URL'lerini https:// ile değiştir.
sec.mixed_content · Yüksek
Content-Security-Policy yok
CSP, sitede bir XSS açığı olsa bile zararlı script çalışmasını sınırlar; ayrıca güven sinyalidir.
Çözüm: Önce Content-Security-Policy-Report-Only ile başla, ardından kısıtlayıcı bir politika yayınla.
sec.no_csp · Düşük
HSTS başlığı yok Oto
Strict-Transport-Security, tarayıcıların siteye her zaman HTTPS ile bağlanmasını sağlar.
Çözüm: Strict-Transport-Security: max-age=31536000; includeSubDomains ekle.
sec.no_hsts · Düşük
Ortak CDN'den yüklenen scriptte bütünlük (SRI) yok
Ortak CDN'deki dosya değiştirilirse siteye zararlı kod girer; integrity özelliği bunu engeller.
Çözüm: Script etiketine integrity="sha384-…" ve crossorigin="anonymous" ekle.
sec.no_sri · Bilgi
Sayfa HTTPS değil
HTTPS bir sıralama sinyalidir; tarayıcılar HTTP sayfaları 'güvenli değil' olarak işaretler.
Çözüm: SSL sertifikası kur ve tüm trafiği HTTPS'e yönlendir.
sec.not_https · Yüksek
Şifre alanı GET ile gönderiliyor
method=GET olan formdaki şifre adres çubuğuna, sunucu loglarına ve tarayıcı geçmişine yazılır.
Çözüm: Şifre içeren formlarda method="post" kullan.
sec.password_get · Orta
Sunucu sürümü ifşa ediliyor
Server başlığı yazılım sürümünü gösteriyor; saldırganların işini kolaylaştırır.
Çözüm: Server başlığından sürüm bilgisini kaldır.
sec.server_version · Bilgi
Bilinen açığı olan JavaScript kütüphanesi
Sitede güvenlik açığı bilinen eski bir kütüphane sürümü yükleniyor; tarayıcı tarafı saldırılara açık olabilir.
Çözüm: Kütüphaneyi güncel sürüme yükselt; WordPress'te tema ve eklentileri güncelle.
sec.vulnerable_js_lib · Orta
X-Powered-By başlığı altyapıyı ifşa ediyor
X-Powered-By, kullanılan dil ve sürümü (ör. PHP/7.4) gösterir; saldırganların hedef seçmesini kolaylaştırır.
Çözüm: Başlığı kapat: PHP'de expose_php=Off, Express'te app.disable('x-powered-by'), IIS'te customHeaders'tan kaldır.
sec.x_powered_by · Bilgi
Sosyal Paylaşım 7
og:image açılmıyor Oto
Paylaşım görseli hata dönüyor; sosyal medyada kart görselsiz görünür.
Çözüm: og:image adresini çalışan, en az 1200×630 bir görselle değiştir.
social.og_image_broken · Orta
og:image yok Oto
Open Graph var ama görsel yok; paylaşımlar küçük, görselsiz bir kart olarak görünür.
Çözüm: En az 1200×630 px bir og:image ekle.
social.og_image_missing · Orta
og:image göreli adres
Facebook, LinkedIn ve X göreli görsel adreslerini çözmez; görsel paylaşımda görünmez.
Çözüm: og:image'da https:// ile başlayan tam adres kullan.
social.og_image_relative · Düşük
Open Graph etiketleri eksik Oto
og:title, og:description ve og:image; WhatsApp, LinkedIn, Facebook paylaşım önizlemesini belirler.
Çözüm: Eksik og: etiketlerini ekle (görsel 1200x630 önerilir).
social.og_missing · Düşük
og:type yok Oto
og:type olmadan paylaşım kartı varsayılan 'website' türüyle gösterilir; makale ve ürünler doğru tanınmaz.
Çözüm: og:type ekle (ana sayfada website, yazılarda article, ürünlerde product).
social.og_type_missing · Bilgi
og:url canonical ile farklı
Paylaşımlarda og:url esas alınır; canonical'dan farklıysa beğeni/paylaşım sayıları iki adrese bölünür.
Çözüm: og:url'yi canonical adresle aynı yap.
social.og_url_mismatch · Düşük
Twitter/X Card yok Oto
twitter:card tanımlı değil; X'te paylaşım önizlemesi küçük ya da boş görünür.
Çözüm: twitter:card="summary_large_image" ekle.
social.twitter_card_missing · Bilgi
AI Arama (GEO) 14
AI botları robots.txt'de engelli Oto
GPTBot, ClaudeBot, PerplexityBot gibi botlar engelliyse site AI yanıtlarında kaynak gösterilemez.
Çözüm: AI aramada görünmek istiyorsan arama botlarına (OAI-SearchBot, Claude-SearchBot, PerplexityBot) izin ver.
geo.ai_bots_blocked · Orta
İçerik JavaScript'e bağımlı görünüyor
Ham HTML'de neredeyse hiç metin yok. AI botlarının çoğu JS çalıştırmaz; içeriği göremezler.
Çözüm: Sunucu tarafı render (SSR) ya da statik ön render kullan.
geo.client_rendered · Orta
llms.txt biçimi hatalı Oto
llms.txt bir '# Site adı' başlığıyla başlamalı ve '- [Başlık](url)' biçiminde linkler içermeli; aksi hâlde AI araçları dosyayı ayrıştıramaz.
Çözüm: Dosyayı llmstxt.org biçimine göre düzenle.
geo.llms_txt_invalid · Düşük
llms.txt yok Oto
llms.txt, dil modellerine sitenin en önemli sayfalarını ve kısa özetini sunan yeni bir standart.
Çözüm: Kök dizine site özeti ve ana sayfa linklerini içeren /llms.txt ekle.
geo.llms_txt_missing · Düşük
Hakkımızda / iletişim sayfası bulunamadı
Kim olduğunu ve sana nasıl ulaşılacağını gösteren sayfalar güvenilirlik (E-E-A-T) ve AI alıntıları için temel sinyaldir.
Çözüm: Hakkımızda ve iletişim sayfaları oluştur, ana menüden ya da alt bilgiden link ver.
geo.no_about_contact · Orta
Yazar / E-E-A-T sinyali yok Oto
Makale sayfalarında yazar ve yayın tarihi; hem Google'ın E-E-A-T değerlendirmesi hem AI alıntıları için önemli.
Çözüm: Article şemasına author ve datePublished ekle, sayfada yazar kutusu göster.
geo.no_author · Düşük
İçerikte tarih yok
Uzun içerikte yayın/güncelleme tarihi yok; AI yanıt motorları ve Google güncelliği değerlendiremez.
Çözüm: Görünür bir tarih (<time datetime>) ve şemada datePublished/dateModified ekle.
geo.no_date · Düşük
Soru-cevap yapısı yok Oto
AI motorları soru biçimindeki başlıkları ve kısa, net cevapları alıntılamayı sever.
Çözüm: Uzun içeriklere soru biçiminde H2/H3'ler ve FAQPage şeması ekle.
geo.no_faq_structure · Bilgi
Soru biçiminde alt başlık yok
Kullanıcıların sorduğu biçimde başlıklar ("... nasıl yapılır?") AI ve sesli aramada eşleşme şansını artırır.
Çözüm: Uygun alt başlıkları kullanıcı sorusu biçiminde yaz, hemen altında kısa yanıt ver.
geo.no_question_headings · Bilgi
Alıntılanabilir giriş paragrafı yok
Uzun içeriğin girişinde soruyu doğrudan yanıtlayan kısa (40-60 kelime) bir paragraf yok; AI yanıtları genelde bu paragrafı alıntılar.
Çözüm: İlk paragrafta konuyu 2-3 cümlede doğrudan özetle.
geo.no_quotable_lead · Bilgi
Uzun içerikte liste ya da tablo yok
1200 kelimeyi aşan içerikte madde listesi ve tablo yok; AI özetleri ve öne çıkan snippet'ler yapılandırılmış bilgiyi tercih eder.
Çözüm: Adımları numaralı listeye, karşılaştırmaları tabloya dönüştür.
geo.no_structure · Düşük
Sayfa snippet'i engellenmiş
nosnippet ya da max-snippet:0, Google'ın metin göstermesini ve AI Overviews'ta sayfadan alıntı yapmasını engeller.
Çözüm: Bu yönergeyi yalnız gerçekten gizli kalması gereken bölümlere (data-nosnippet) uygula.
geo.nosnippet · Orta
Organization'da Wikidata/Wikipedia bağlantısı yok
sameAs içindeki Wikidata/Wikipedia adresi, AI modellerinin markayı doğru varlıkla eşleştirmesine yardım eder.
Çözüm: Markanın Wikidata kaydı varsa adresini Organization sameAs listesine ekle.
geo.org_no_wikidata · Bilgi
İçerik 2 yıldan uzun süredir güncellenmemiş
AI yanıt motorları ve Google güncel kaynakları tercih eder; eski tarihli içerik daha az alıntılanır.
Çözüm: İçeriği gözden geçir, güncel bilgileri ekle ve dateModified'ı güncelle.
geo.stale_content · Bilgi