---
title: "Blog yayında: SEO ve AI görünürlüğü nasıl kurgulandı"
url: https://blog.sezerduman.dev/blog-yayinda-seo-ve-ai-gorunurlugu
author: "Sezer Duman"
category: "Yazılım"
published: 2026-10-02T23:24:38+03:00
modified: 2026-10-02T23:24:38+03:00
reading_time_minutes: 2
word_count: 326
tags: ["amp", "cloudflare", "php", "seo", "yapay zeka"]
license: Kaynak gösterilerek alıntılanabilir
---

# Blog yayında: SEO ve AI görünürlüğü nasıl kurgulandı

> **Kısa cevap:** Bu blog, saf PHP ile yazılmış; her yazı HTML, AMP ve Markdown olmak üzere üç biçimde sunuluyor, yapılandırılmış veri @graph olarak tek parça yayınlanıyor ve tüm HTML Cloudflare edge’inde önbellekleniyor.

Bu blogu kurarken tek bir soruyu merkeze aldım: **içerik hem insanlar hem makineler
tarafından en az sürtünmeyle okunabilsin.** Aşağıda bunun için alınan kararlar var.

[toc]

## Üç biçimde aynı içerik

Her yazı üç adresten servis ediliyor:

| Biçim | Adres | Kimin için |
|---|---|---|
| HTML | `/yazi-slug` | Okuyucu ve arama motorları |
| AMP | `/yazi-slug/amp` | Mobil, hızlı yükleme |
| Markdown | `/yazi-slug.md` | Dil modelleri, ajanlar |

Üçü de **aynı kaynaktan** üretiliyor. AMP sayfası ayrı bir şablon değil: aynı
derlenmiş HTML, AMP'nin kabul etmediği etiketler kendi bileşenlerine çevrilerek
sunuluyor. Böylece "AMP içeriği canonical'dan farklı" hatası yapısal olarak
oluşamıyor.

## Yapılandırılmış veri tek parça

Her sayfa tek bir `@graph` yayınlıyor. Ayrı ayrı script blokları yerine tek
grafikte `@id` referanslarıyla bağlanmış düğümler var:

```
WebPage ──isPartOf──> WebSite ──publisher──> Person
   │
   └──> BlogPosting ──author──> Person ──sameAs──> GitHub, X, LinkedIn
```

Bunun pratik faydası şu: "bu yazıyı kim yazdı, ne zaman güncellendi, yazar neyi
biliyor" sorularının cevabı makine tarafından okunabilir hâlde duruyor.

::: ipucu Kısa cevap bloğu
Her yazının başındaki "kısa cevap", `abstract` ve `speakable` olarak
işaretleniyor. Öne çıkan snippet'lerde ve AI cevaplarında en çok alıntılanan
yer burası.
:::

## llms.txt ve Markdown uçları

Bir dil modeli siteyi gezdiğinde HTML'den gezinti, menü ve kalıp metinleri
ayıklamak zorunda kalıyor; bağlam penceresinin önemli bir kısmı buna gidiyor.
`/llms.txt` sitenin ne olduğunu ve hangi içeriğin nerede durduğunu Markdown
olarak özetliyor, `/llms-full.txt` ise içeriğin tamamını düz metin veriyor.

## Önbellek: origin'e gelen istek kadar hızlıyız

HTML yanıtları `s-maxage` ile Cloudflare edge'inde tutuluyor. Public sayfalar
hiç çerez üretmiyor — çünkü `Set-Cookie` gönderen bir yanıt edge'de
önbelleklenmiyor. Yorum formundaki CSRF jetonu bu yüzden oturum tabanlı değil,
`APP_KEY` ile imzalanmış bir zaman damgası.

Yazı yayımlandığında yalnızca etkilenen adresler purge ediliyor: yazının
kendisi, anasayfa, kategorisi, etiketleri, beslemeler ve sitemap'ler.

## Sırada ne var

Bu yazıyı panelden düzenleyip kendi ilk yazınızı yazabilirsiniz. Panelde
**SEO denetimi** sayfası, yayındaki her yazıyı tek tek kontrol edip eksik
meta açıklama, kapak görseli, kısa cevap ve etiketleri listeler.

## Sık sorulan sorular

### AMP sayfası ayrı bir içerik mi?

Hayır. AMP sürümü aynı yazı verisinden ve aynı derlenmiş HTML’den üretilir; yalnızca AMP’nin kabul etmediği etiketler kendi bileşenlerine çevrilir. İçerik iki yerde ayrışmadığı için AMP ile canonical arasında fark oluşmaz.

### Yazıların Markdown hâline nasıl ulaşılır?

Her yazının adresine .md eklemek yeterli: /yazi-slug.md. Ayrıca /llms.txt tüm içeriğin dizinini, /llms-full.txt ise son yazıların tam metnini tek dosyada verir.

### Yapay zeka tarayıcılarına erişim kapatılabilir mi?

Evet. Panel → Ayarlar → Yapay zeka görünürlüğü bölümündeki anahtar kapatıldığında robots.txt içindeki tüm AI ajanlarına Disallow: / yazılır.

---

Kaynak: [Blog yayında: SEO ve AI görünürlüğü nasıl kurgulandı](https://blog.sezerduman.dev/blog-yayinda-seo-ve-ai-gorunurlugu)
