sitemap.xml در Next.js — تولید نقشهٔ سایت برای بهینه‌سازی SEO و خزنده‌ها

Next.js از فایل sitemap.xml به‌صورت استاتیک یا داینامیک پشتیبانی می‌کند. این فایل به خزنده‌های موتور جستجو کمک می‌کند تا صفحات سایت را بهتر ایندکس کنند. می‌توان URLها، تاریخ آخرین تغییر، اولویت، و فرکانس تغییر را مشخص کرد. همچنین امکان تولید نقشهٔ تصاویر، ویدیوها، نسخه‌های چندزبانه، و تقسیم نقشهٔ سایت به چند فایل وجود دارد. این مقاله تمام روش‌ها و فرمت‌های پشتیبانی‌شده را توضیح می‌دهد.

sitemap.xmlMetadataRouteSEOimage sitemaplocalized sitemap

~3 دقیقه مطالعه • بروزرسانی ۷ آبان ۱۴۰۴

۱. sitemap.xml چیست؟


sitemap.xml یک فایل ساختاریافتهٔ XML است که به موتورهای جستجو کمک می‌کند صفحات سایت شما را کشف و ایندکس کنند. این فایل شامل URLها، تاریخ آخرین تغییر، اولویت و فرکانس به‌روزرسانی است.


۲. نقشهٔ سایت استاتیک


برای اپلیکیشن‌های کوچک، می‌توانید فایل app/sitemap.xml را دستی ایجاد کنید:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://acme.com</loc>
    <lastmod>2023-04-06T15:02:24.021Z</lastmod>
    <changefreq>yearly</changefreq>
    <priority>1</priority>
  </url>
</urlset>

۳. تولید نقشهٔ سایت با کد


از فایل sitemap.ts برای تولید داینامیک استفاده کنید:

export default function sitemap(): MetadataRoute.Sitemap {
  return [
    {
      url: 'https://acme.com',
      lastModified: new Date(),
      changeFrequency: 'yearly',
      priority: 1,
    },
    {
      url: 'https://acme.com/about',
      lastModified: new Date(),
      changeFrequency: 'monthly',
      priority: 0.8,
    },
  ]
}

۴. نقشهٔ تصاویر


با استفاده از ویژگی images می‌توانید تصاویر را اضافه کنید:

{
  url: 'https://example.com',
  images: ['https://example.com/image.jpg'],
}

۵. نقشهٔ ویدیوها


با ویژگی videos می‌توانید اطلاعات ویدیویی اضافه کنید:

{
  url: 'https://example.com',
  videos: [
    {
      title: 'example',
      thumbnail_loc: 'https://example.com/image.jpg',
      description: 'this is the description',
    },
  ],
}

۶. نقشهٔ چندزبانه


با استفاده از alternates.languages می‌توانید نسخه‌های چندزبانه تعریف کنید:

{
  url: 'https://acme.com',
  alternates: {
    languages: {
      es: 'https://acme.com/es',
      de: 'https://acme.com/de',
    },
  },
}

۷. تقسیم نقشهٔ سایت


برای سایت‌های بزرگ، می‌توانید نقشهٔ سایت را به چند فایل تقسیم کنید:

export async function generateSitemaps() {
  return [{ id: 0 }, { id: 1 }]
}

export default async function sitemap({ id }) {
  const start = id * 50000
  const end = start + 50000
  const products = await getProducts(`...`)
  return products.map((p) => ({
    url: `${BASE_URL}/product/${p.id}`,
    lastModified: p.date,
  }))
}

۸. ساختار شیٔ Sitemap


هر ورودی می‌تواند شامل موارد زیر باشد:

  • url: آدرس صفحه
  • lastModified: تاریخ آخرین تغییر
  • changeFrequency: فرکانس تغییر (مثلاً weekly)
  • priority: اولویت
  • images، videos، alternates: اختیاری

جمع‌بندی


Next.js با پشتیبانی از فایل‌های استاتیک و Route Handlerهای داینامیک، تولید نقشهٔ سایت را آسان کرده است. چه برای URLهای ساده، چه نسخه‌های چندزبانه یا محتوای رسانه‌ای، این قابلیت‌ها به شما کمک می‌کنند تا سایتتان به‌صورت بهینه توسط موتورهای جستجو ایندکس شود.


نوشته و پژوهش شده توسط دکتر شاهین صیامی