Skip to content

Sitemap

Sitemap, sitendeki sayfaların arama motorlarına (Google, Bing vb.) sunduğun URL listesidir. XML formatındadır; botlar hangi sayfaların olduğunu ve dil alternatiflerini buradan okur.

Falcon’da sitemap elle yazılmaz@astrojs/sitemap build sırasında üretir.

DosyaGörevi
sitemap-index.xmlAna indeks (alt sitemap’lere link)
sitemap-0.xmlGerçek URL listesi
robots.txtBotlara “sitemap şurada” der

Canlı adreste örnek: https://alanadiniz.com/sitemap-index.xml


  • Google’ın tüm önemli sayfaları (ana sayfa, blog listeleri, diller) bulması
  • i18n ile birlikte her URL için dil alternatifleri (hreflang benzeri bilgi sitemap’te)
  • Tek domain kaynağı (site.url) — canonical ve sitemap aynı tabanı kullanır
  • robots.txt ile sitemap adresinin net olması

Sitemap, sayfa başlığı/açıklaması (meta SEO) yerine geçmez; URL keşfi içindir. OG, canonical, seo.ts ayrı adımdır.


Terminal window
npm install @astrojs/sitemap
export const site = {
url: 'https://example.com',
} as const;

Production’da canlı domain buraya yazılır. Placeholder şimdilik example.com.

import sitemap from '@astrojs/sitemap';
import { defaultLocale, localeMap } from './src/config/locales.ts';
import { site } from './src/config/site.ts';
export default defineConfig({
site: site.url,
integrations: [
react(),
mdx(),
sitemap({
i18n: {
defaultLocale,
locales: localeMap,
},
}),
],
// cloudflare, i18n, tailwindcss aynı
});
  • site: — Astro’nun mutlak URL üretmesi için zorunlu
  • sitemap({ i18n }) — EN/TR/DE/FR için localeMap (BCP-47: en-GB, tr-TR …)
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap-index.xml

Statik dosya; build ile otomatik güncellenmez.


Adapter kullanıldığında dosyalar genelde:

  • dist/client/sitemap-index.xml
  • dist/client/sitemap-0.xml

Deploy sonrası tarayıcıda: /sitemap-index.xml (domain kökünden).

Doğrulama:

Terminal window
npm run build

  1. src/config/site.tsurl: 'https://gercek-domain.com'
  2. public/robots.txtSitemap: https://gercek-domain.com/sitemap-index.xml

İkisini birlikte güncelleyin; robots.txt site.ts’ten otomatik okunmaz.

  • Yeni .astro sayfası src/pages/ altındaysa ve build’de route üretiliyorsa sitemap’e genelde otomatik girer.
  • Yeni dil veya blog yazısı: ilgili src/pages/... ve MDX locale doğru olsun; build sonrası sitemap’i kontrol edin.
DilURL örneği
EN/, /blog/
TR/tr/, /tr/blog/
DE/de/, /de/blog/
FR/fr/, /fr/blog/

Sitemap i18n bilgisi src/config/locales.ts içindeki localeMap’ten gelir. Dil ekler/çıkarırsanız burayı ve astro.config i18n.locales listesini senkron tutun.


YapYapma
Canlıya geçmeden gerçek site.url yazexample.com ile production bırakma
Google Search Console’a sitemap URL gönderSitemap’i elle XML düzenlemeye çalışma
Deploy sonrası /sitemap-index.xml açıp kontrol etrobots.txt’i unutma
Yeni dil → localeMap + sayfa mirror’larıSadece sitemap config değiştirip sayfa ekleme

SEO ile birlikte (mevcut):

  • src/config/seo.ts, Open Graph, canonical — SEO / Meta
  • BaseLayout içinde hreflang alternates
  • Blog çevirileri: frontmatter translationKey + src/lib/blog.ts

Build sonrası dist/client/sitemap-index.xml içinde blog tekil URL’lerini ve dil alternatiflerini kontrol edin; SSR’da eksik görünürse route ve getStaticPaths çıktısını doğrulayın.

Search Console: Site eklendikten sonra Sitemaps bölümüne sitemap-index.xml URL’sini yapıştırın.


Sitemap = robots.txt mi?
Hayır. robots.txt kurallar + sitemap adresi; asıl URL listesi XML sitemap’te.

Her deploy’da yenilenir mi?
Evet, npm run build her seferinde güncel sitemap üretir.

Harici CMS gerekir mi?
Hayır. İçerik src/content/blog/ MDX dosyalarında; sitemap build’den gelir.


src/config/site.ts → site.url (tek kaynak)
src/config/locales.ts → localeMap (sitemap i18n)
astro.config.mjs → site + sitemap()
public/robots.txt → Sitemap: satırı (manuel senkron)
dist/client/sitemap-*.xml

Sitemap, build ile üretilen XML URL haritasıdır. Kurulum: @astrojs/sitemap, site.url, i18n localeMap, robots.txt. Production’da domain’i site.ts ve robots.txt’te güncelleyin; Search Console’a indeks URL’sini gönderin.