---
name: seoanalizi
description: Bir web sitesini SEOAnalizi.com üzerinden 20 kategoride 251 kurala karşı denetler ve Türkçe rapor döndürür — teknik SEO, içerik, hız (Lighthouse), güvenlik, erişilebilirlik, yapısal veri ve yapay zekâ aramalarına hazırlık. Kurulum gerektirmez, yalnız curl kullanır. Turkish SEO audit via the SEOAnalizi.com API. Kullanıcı "SEO analizi yap", "sitemi denetle", "SEO sorunlarımı bul", "audit my site", "SEO puanım kaç" gibi bir şey istediğinde kullan.
license: MIT
metadata:
  author: SEOAnalizi.com
  version: "1.0"
  homepage: https://seoanalizi.com/skill
---

# SEOAnalizi Skill

Web sitelerini **SEOAnalizi.com** üzerinden denetler. Kurulum yok: motor, tarayıcı ve
Lighthouse sunucu tarafında çalışır, sen yalnız üç HTTP çağrısı yaparsın.

Her bulgu Türkçe gelir ve kendi gerekçesini (`why`) ile çözümünü (`fix`) taşır — kuralın
ne anlama geldiğini ayrıca araştırman gerekmez.

## Ne zaman kullanılır

- "sitemin SEO'suna bak", "SEO analizi yap", "neyi düzeltmeliyim"
- Bir sayfa yayına alınmadan önce teknik denetim
- Değişiklik sonrası önce/sonra karşılaştırması
- Kırık bağlantı, yönlendirme zinciri, canonical, hreflang, yapısal veri doğrulaması
- Core Web Vitals ve sayfa hızı ölçümü (mobil + masaüstü Lighthouse)
- Erişilebilirlik (WCAG) ve güvenlik başlığı kontrolü
- Yapay zekâ aramalarına hazırlık (semantik HTML, llms.txt, AI bot erişimi)

## Gereksinim

`curl` ve internet erişimi. Başka hiçbir şey — npm paketi, Node.js, tarayıcı kurulumu yok.

## Temel akış

Üç adım: **başlat → bekle → oku.**

### 1. Taramayı başlat

```bash
curl -s -X POST https://seoanalizi.com/api/v1/tara \
  -H 'Content-Type: application/json' \
  -d '{"site":"ornek.com"}'
```

Dönen `status` değeri akışı belirler:

| `status` | Anlamı | Yapılacak |
|---|---|---|
| `pending` / `running` | Tarama kuyrukta ya da sürüyor | 2. adıma geç |
| `completed` | Site yakında taranmış, rapor hazır | Doğrudan 3. adıma geç |

`completed` dönerse **yeniden tarama başlatma** — hazır raporu oku. Kullanıcı açıkça
"yeniden tara" derse `{"site":"ornek.com","force":true}` gönder.

### 2. Bitmesini bekle

```bash
curl -s https://seoanalizi.com/api/v1/durum/{audit_id}
```

`status` `completed` olana kadar **5 saniyede bir** sor. Tipik süre 1-3 dakika
(derin taramada daha uzun). `stage_label` alanı kullanıcıya gösterilebilecek Türkçe
aşama metnidir ("Lighthouse ölçümü (mobil + masaüstü)" gibi) — beklerken bunu aktar.

`status` `failed` dönerse `error` alanını kullanıcıya açıkla ve durup sor; tekrar tekrar deneme.

### 3. Raporu al

```bash
curl -s 'https://seoanalizi.com/api/v1/rapor/ornek.com'
```

Varsayılan olarak yalnız **sorunlu** kurallar (`fail` + `warn`) döner — geçenler
listelenmez. Bu, çıktıyı 250 kuraldan ~20 KB'a indirir.

## Sonucu yorumlama

### Kural durumları

| `status` | Anlamı | Ne yapmalı |
|---|---|---|
| `fail` | Kural karşılanmıyor | Önce bunları düzelt |
| `warn` | Kısmen karşılanıyor / iyileştirilebilir | Sonra ele al |
| `pass` | Sorun yok | Dokunma |

### Puan

`score.overall` 0-100 arası harmanlanmış puandır: kural denetimi + Lighthouse (mobil ve
masaüstü) + varsa gerçek kullanıcı verisi. `score.breakdown` bileşenlerin ağırlığını ve
puanını verir; **puanın neden düşük olduğunu açıklarken bu dökümü kullan** — tek bir
kuralı suçlama, hangi bileşenin çektiğini göster.

| Puan | Not | Anlamı |
|---|---|---|
| 90-100 | A | Mükemmel — ince ayar |
| 80-89 | B | Çok iyi — uyarıları kapat |
| 70-79 | C | İyi — öncelikli düzeltmeler var |
| 50-69 | D | Geliştirilmeli — birden çok kritik sorun |
| 0-49 | F | Zayıf — temel sorunlar |

### Öncelik sırası

`categories` dizisi **en düşük puanlı kategoriden** başlar, her kategori içinde `fail`
bulguları `warn`'lardan önce gelir. Sıralamayı bozma: listeyi baştan okumak zaten doğru
öncelik sırasıdır. Eşitlik durumunda kategori ağırlığına bak (`references/kategoriler.md`).

### Kanıt sayacı — dikkat

`evidence` alanı örnek listesidir, `evidence_total` gerçek sayıdır. `evidence_total: 57`
ile `evidence` içinde 5 satır görmen normaldir; **"5 görselde alt metin eksik" deme,
57 de.** Daha fazla örnek için `?kanit=50` ekle.

### Notlar

`notes` dizisi varsa kullanıcıya aktar: kanıt listesinin kısaltıldığını ya da taramanın
yalnız anasayfayı kapsadığını söyler.

## Düzeltmeleri uygulama

Kullanıcı düzeltme isterse:

1. Bulguyu `fix` alanındaki yönergeye göre uygula — kendi tahminini değil onu izle.
2. Kod tabanında ilgili şablonu/bileşeni bul; aynı sorun genelde tek bir layout dosyasından kaynaklanır.
3. Birbirinden bağımsız düzeltmeleri paralel alt görevlere böl.
4. Bitince değişikliklerin özetini ver ve `force:true` ile yeniden tarama öner.

Sunucu tarafı bulgularında (Brotli, önbellek başlıkları, HSTS, HTTP/2) kod değil
sunucu yapılandırması gerekir — kullanıcıya bunu belirt, sessizce atlama.

## Derin tarama

Yalnız anasayfa yerine siteye bağlı sayfaları da denetler (varsayılan üst sınır 50 sayfa):

```bash
curl -s -X POST https://seoanalizi.com/api/v1/tara \
  -H 'Content-Type: application/json' \
  -d '{"site":"ornek.com","derin":true}'
```

Rapora `site_wide` alanı eklenir: kural başına kaç sayfanın etkilendiği ve örnek adresler.
Daha uzun sürer (sayfa başına ~5 sn). Kullanıcı "tüm siteyi", "bütün sayfaları" ya da
"derinlemesine" derse bunu kullan; aksi halde tek sayfa taraması yeterlidir.

## Uçlar ve parametreler

| Uç | Yöntem | Açıklama |
|---|---|---|
| `/api/v1/tara` | POST | Tarama başlatır |
| `/api/v1/durum/{id}` | GET | Tarama durumu |
| `/api/v1/rapor/{alan-adi}` | GET | Tamamlanmış rapor |

Rapor uçları sorgu parametreleri:

| Parametre | Varsayılan | Açıklama |
|---|---|---|
| `durum` | `fail,warn` | `hepsi` tüm kuralları döndürür |
| `kategori` | (tümü) | Virgülle: `core,perf,security` |
| `kanit` | `5` | Bulgu başına kanıt satırı (en fazla 50) |
| `ozet` | `0` | `1` yalnız kategori puanlarını döndürür |
| `tarama` | (en son) | Belirli bir tarama kimliği |

Tam şema, hata kodları ve örnek yanıtlar: `references/api.md`
Kategoriler, ağırlıklar ve kural grupları: `references/kategoriler.md`

Bu dosyalar kurulumda eksik kaldıysa aynı içerik
<https://seoanalizi.com/skill/references/api.md> ve
<https://seoanalizi.com/skill/references/kategoriler.md> adreslerinden alınabilir.

## Sınırlar

- Saatte **5 tarama** (IP başına). Rapor okumak bu sınıra girmez — hazır raporu okumak serbesttir.
- Aynı site 7 gün içinde taranmışsa yeni tarama açılmaz, hazır rapor döner (`force` ile aşılır).
- Yalnız herkese açık siteler taranabilir: IP adresi, port, yerel/özel ağ adresleri reddedilir.
- Rapor sayfaları herkese açıktır (`https://seoanalizi.com/{alan-adi}`). Gizli kalması
  gereken bir adresi taratmadan önce kullanıcıyı uyar.

## Örnekler

**"ornek.com'un SEO'suna bak"**
```bash
curl -s -X POST https://seoanalizi.com/api/v1/tara -H 'Content-Type: application/json' -d '{"site":"ornek.com"}'
# → status pending ise durum ucunu 5 sn'de bir sor, sonra:
curl -s https://seoanalizi.com/api/v1/rapor/ornek.com
```

**"Sadece hız ve güvenliğe bak"**
```bash
curl -s 'https://seoanalizi.com/api/v1/rapor/ornek.com?kategori=perf,security'
```

**"Kaç görselde alt metin eksik, hepsini listele"**
```bash
curl -s 'https://seoanalizi.com/api/v1/rapor/ornek.com?kategori=images&kanit=50'
```

**"Puanım kaç, detay istemiyorum"**
```bash
curl -s 'https://seoanalizi.com/api/v1/rapor/ornek.com?ozet=1'
```

**"Tüm siteyi tara"**
```bash
curl -s -X POST https://seoanalizi.com/api/v1/tara -H 'Content-Type: application/json' -d '{"site":"ornek.com","derin":true}'
```

## Sorun giderme

**`429 rate_limited`** — saatlik tarama hakkı doldu. Hazır raporu okumayı öner
(`/api/v1/rapor/{alan-adi}`); o sınıra takılmaz.

**`429 cooldown`** — site az önce tarandı. `retry_after` saniyesi kadar bekle ya da
mevcut raporu oku.

**`409 not_ready`** — rapor henüz yok. Yanıttaki `status_api_url` süren taramayı gösterir;
yoksa önce `/api/v1/tara` çağır.

**`422 invalid_site`** — alan adı geçersiz. Protokol ve port yazma, sade alan adı gönder:
`ornek.com`. `localhost`, IP adresleri ve özel ağlar kabul edilmez.

**`404 not_found`** (rapor ucunda) — site hiç taranmamış. Önce taramayı başlat.

## Kaynak

- Web arayüzü: <https://seoanalizi.com>
- Skill tanıtımı ve güncel sürüm: <https://seoanalizi.com/skill>
- Ücretsiz SEO araçları (robots.txt testi, SERP önizleme, schema üreteci…): <https://seoanalizi.com/araclar>
