Files
kolaytercih/src/app/robots.ts
bilalgursen 53eb07bb34 feat(seo): GEO paketi — yapılandırılmış metadata, AI bot erişimi, veri tazelik sinyali
- sayfaMetadata(): indekslenebilir sayfalar için tek kaynaklı canonical +
  eksiksiz openGraph üretimi; sayfalar buna geçirildi
- robots.ts: yalnızca /api/ engellenir; noindex'li sayfalar robots engeli
  yerine meta ile yönetilir, AI botları niyeti belgeleyen açık grupla izinli
- next.config: htmlLimitedBots'a AI botları eklendi (JS çalıştırmayan
  botlara metadata head içinde bloklanarak verilir)
- sitemap lastmod + katalogda görünür 'Kaynak/son güncelleme' satırı
  (VeriKaynagi) KATALOG_VERI_TARIHI tek kaynağından
- docs/geo/geo-raporu.md: çalışmanın raporu

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-21 00:51:16 +03:00

45 lines
1.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { MetadataRoute } from "next";
import { SITE_URL } from "@/lib/seo";
// Yalnızca /api/ engellenir. /sonuc, /giris, /listem, /odeme/*, /rapor/*
// bilinçli olarak ENGELLENMEDİ: bu sayfalar noindex meta taşıyor ve robots.txt
// engeli o meta'nın görülmesini imkânsız kılardı (dış link alırlarsa
// "robots.txt tarafından engellendi ama dizine eklendi" durumuna düşerlerdi).
const DISALLOW = ["/api/"];
// Arama/cevap motorlarının tarayıcıları. `*` kuralı bunları zaten kapsıyor;
// grup, niyeti belgelemek için açıkça yazıldı: AI aramalarında kaynak
// gösterilmek istiyoruz. DİKKAT: bir bot kendi adına yazılmış grubu bulursa `*`
// grubunu yok sayar — buraya eklenen her bot için DISALLOW tekrar edilmeli.
const AI_BOTLARI = [
// Arama indeksi + kullanıcı tetiklemeli fetch
"OAI-SearchBot",
"ChatGPT-User",
"Claude-SearchBot",
"Claude-User",
"PerplexityBot",
"Perplexity-User",
"DuckAssistBot",
"MistralAI-User",
"meta-webindexer",
"Amzn-SearchBot",
// Model eğitimi: aramasız yanıtlarda markanın bilinmesi buradan geçer
"GPTBot",
"ClaudeBot",
"Google-Extended",
"Applebot-Extended",
"meta-externalagent",
"Amazonbot",
"CCBot",
];
export default function robots(): MetadataRoute.Robots {
return {
rules: [
{ userAgent: "*", allow: "/", disallow: DISALLOW },
{ userAgent: AI_BOTLARI, allow: "/", disallow: DISALLOW },
],
sitemap: `${SITE_URL}/sitemap.xml`,
};
}