خرائط الموقع بتنسيق XML
خرائط الموقع هي أسهل طريقة للتواصل مع جوجل. تُحدد هذه الخرائط عناوين URL التي تنتمي لموقعك وتاريخ تحديثها، مما يساعد جوجل على اكتشاف المحتوى الجديد بسهولة وزحف موقعك بكفاءة أعلى.
على الرغم أن خرائط الموقع بتنسيق XML هي الأكثر شهرة واستخدامًا، إلا أنه يمكن إنشاؤها أيضًا عبر RSS أو Atom، أو حتى عبر ملفات نصية إذا كنت تفضل البساطة القصوى.
خريطة الموقع هي ملف تقدم فيه معلومات عن الصفحات، الفيديوهات، والملفات الأخرى على موقعك، والعلاقات بينها. تقوم محركات البحث مثل جوجل بقراءة هذا الملف لزحف موقعك بذكاء أكبر.
وفقًا لـ جوجل:
قد تحتاج لخريطة موقع إذا:
- كان موقعك كبيرًا جدًا: مما يجعل زواحف جوجل قد تتجاهل زحف بعض صفحاتك الجديدة أو المحدثة حديثًا.
- كان موقعك يحتوي على أرشيف كبير من الصفحات المعزولة أو غير المرتبطة جيدًا ببعضها: إذا كانت صفحات موقعك لا تشير لبعضها البعض طبيعيًا، يمكنك إدراجها في خريطة الموقع لضمان عدم تجاهل جوجل لبعض صفحاتك.
- كان موقعك جديدًا وبه روابط خارجية قليلة: زواحف جوجل تتنقل عبر الويب باتباع الروابط من صفحة لأخرى، لذا قد لا تكتشف جوجل صفحاتك إذا لم توجد مواقع أخرى تشير إليها.
- كان موقعك يحتوي على الكثير من المحتوى الغني (فيديوهات، صور) أو يظهر في أخبار جوجل: إذا تم توفيرها، يمكن لجوجل استخدام معلومات إضافية من خرائط الموقع في البحث عند الاقتضاء.
على الرغم أن خرائط الموقع ليست إلزامية لأداء ممتاز في محركات البحث، إلا أنها تسهل عملية الزحف والفهرسة للروبوتات، وبالتالي سيتم التقاط محتواك بشكل أسرع وترتيبه وفقًا لذلك.
يُوصى بشدة باستخدام خرائط الموقع وجعلها ديناميكية مع إضافة محتوى جديد لموقعك. خرائط الموقع الثابتة صالحة أيضًا، ولكنها قد تكون أقل فائدة لجوجل حيث أنها لا تخدم أغراض الاكتشاف المستمر.
كيفية إضافة خرائط الموقع لمشروع Next.js
هناك خياران:
يدويًا: إذا كان موقعك بسيطًا وثابتًا نسبيًا، يمكنك إنشاء ملف sitemap.xml
يدويًا في دليل public
لمشروعك:
<!-- public/sitemap.xml -->
<xml version="1.0" encoding="UTF-8">
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com/foo</loc>
<lastmod>2021-06-01</lastmod>
</url>
</urlset>
</xml>
ديناميكي: إذا كان موقعك ديناميكيًا، يمكنك الاستفادة من getServerSideProps
لإنشاء خريطة موقع XML عند الطلب.
يمكننا إنشاء صفحة جديدة داخل دليل الصفحات مثل pages/sitemap.xml.js
. هدف هذه الصفحة هو الاتصال بواجهة برمجة التطبيقات (API) للحصول على بيانات تتيح لنا معرفة عناوين URL لصفحاتنا الديناميكية. ثم سنقوم بكتابة ملف XML كاستجابة لـ /sitemap.xml
.
إليك مثال يمكنك تجربته بنفسك:
//pages/sitemap.xml.js
const EXTERNAL_DATA_URL = 'https://jsonplaceholder.typicode.com/posts';
function generateSiteMap(posts) {
return `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!--نقوم بتعيين عنوانين URL نعرفهما مسبقًا يدويًا-->
<url>
<loc>https://jsonplaceholder.typicode.com</loc>
</url>
<url>
<loc>https://jsonplaceholder.typicode.com/guide</loc>
</url>
${posts
.map(({ id }) => {
return `
<url>
<loc>${`${EXTERNAL_DATA_URL}/${id}`}</loc>
</url>
`;
})
.join('')}
</urlset>
`;
}
function SiteMap() {
// getServerSideProps سيقوم بالعمل الشاق
}
export async function getServerSideProps({ res }) {
// نقوم بطلب API لجمع عناوين URL لموقعنا
const request = await fetch(EXTERNAL_DATA_URL);
const posts = await request.json();
// نقوم بإنشاء خريطة الموقع XML ببيانات المقالات
const sitemap = generateSiteMap(posts);
res.setHeader('Content-Type', 'text/xml');
// نرسل XML للمتصفح
res.write(sitemap);
res.end();
return {
props: {},
};
}
export default SiteMap;