- 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>
45 lines
1.5 KiB
TypeScript
45 lines
1.5 KiB
TypeScript
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`,
|
||
};
|
||
}
|