~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های ساده، چه نسخههای چندزبانه یا محتوای رسانهای، این قابلیتها به شما کمک میکنند تا سایتتان بهصورت بهینه توسط موتورهای جستجو ایندکس شود.
نوشته و پژوهش شده توسط دکتر شاهین صیامی