أنشئ خريطة موقع XML من قائمة روابط
أنشئ ملف sitemap.xml كاملًا من قائمة صفحات منظّمة من دون الاعتماد على زاحف أو إضافة لنظام إدارة المحتوى أو كتابة XML يدويًا.
شغّل الأداة مجانًا
يتطلب كل سجل رابط HTTP أو HTTPS مطلقًا، ويمكن أن يتضمن أيضًا تاريخ آخر تعديل وتكرار التغيير والأولوية النسبية. تتحقق الأداة من القيم المدخلة، وتهرّب المحارف الخاصة في XML بأمان، ثم تعيد مستندًا حتميًا جاهزًا للحفظ أو النشر أو الاختبار أو الإدراج في خطوة أخرى من عملية النشر.
أعدّ قائمة دقيقة بالروابط
ابدأ بالروابط العامة الأساسية التي ينبغي لمحركات البحث اكتشافها. يحتاج كل سجل إلى عنوان كامل يبدأ بـ HTTP أو HTTPS ويتضمن اسم المضيف والمسار المقصود. تُرفض المسارات النسبية مثل <code>/products</code> لأن قارئ خريطة الموقع لا يستطيع استنتاج النطاق الذي تنتمي إليه. لا تُدرج سلاسل الاستعلام إلا إذا كانت الصفحات ذات المعلمات نتائج أساسية ومفيدة بذاتها؛ أما صيغ التتبع فلا تنتمي عادةً إلى خريطة الموقع. تحافظ الأداة على نص الرابط المرسل وتهرّب المحارف الحساسة في XML، مثل علامة العطف، كي تحتفظ سلسلة الاستعلام بمعناها من دون إفساد المستند. يمكن لخريطة واحدة أن تضم حتى 50,000 سجل وفق حد البروتوكول. لا تزحف هذه الأداة إلى النطاق، ولا تتحقق من استجابات الصفحات، ولا تستنتج الروابط الأساسية، ولا تزيل التكرارات. لذلك تبقى قائمة الإدخال هي المرجع ويظل الناتج قابلًا للتوقع. أنشئ القائمة من الموجّه أو قاعدة البيانات أو ناتج الموقع الثابت أو سجل المحتوى، واستبعد قبل التوليد الصفحات الخاصة أو المعاد توجيهها أو المكررة أو المحظورة أو غير الأساسية.
استخدم البيانات الوصفية الاختيارية بدقة
أضف <code>lastmod</code> فقط عندما تعرف تاريخ آخر تغيير فعلي في محتوى الصفحة. يقبل الحقل تاريخًا مثل YYYY-MM-DD أو طابعًا زمنيًا بصيغة ISO 8601 مع منطقة زمنية صريحة. يجب أن تصف القيمة الصفحة نفسها، لا لحظة تشغيل الأداة. يقبل <code>changefreq</code> مفردات خريطة الموقع القياسية: always وhourly وdaily وweekly وmonthly وyearly وnever. تتعامل محركات البحث مع هذا الحقل بوصفه إشارة لا جدولًا ملزمًا، لذا اختر تكرارًا يعكس نمط النشر الحقيقي. أما <code>priority</code> فهو إشارة اختيارية أخرى تُكتب رقمًا محدودًا من صفر إلى واحد. تقارن هذه القيمة الروابط داخل موقعك، ولا تجعل نطاقك أهم من نطاق آخر، ولا تضمن الترتيب أو الزحف. حذف البيانات غير المؤكدة أفضل من ملء كل عنصر بقيم افتراضية مختلقة. لا تصدر الأداة إلا العناصر الاختيارية الموجودة في كل سجل، فتحافظ على اختصار XML وتتحقق من كل قيمة مدرجة قبل إعادة أي نتيجة.
انشر المستند الناتج وحافظ على تحديثه
تتضمن النتيجة تعريف XML ومساحة الأسماء الرسمية لخريطة الموقع وعنصر URL لكل سجل إدخال وعددًا مفيدًا في سجلات الأتمتة. احفظ XML الناتج باسم <code>sitemap.xml</code> بترميز UTF-8 وقدّمه من موقع عام ثابت، وغالبًا من جذر الموقع المعني. يمكنك الإشارة إلى هذا العنوان في robots.txt وإرساله عبر أدوات محركات البحث التي تستخدمها. عملية التوليد حتمية؛ فالمدخلات المتطابقة تنتج مخرجات متطابقة من دون طلب شبكي أو قراءة للوقت الحالي أو ترتيب عشوائي أو تسوية خفية. تجعل هذه الخاصية الأداة مناسبة لعمليات البناء ومسارات النشر، لأن فروق التحكم في الإصدارات تعكس التغييرات في القائمة المدخلة. أعد توليد المستند كلما تغيرت الروابط الأساسية المنشورة أو بياناتها الموثوقة، ثم تحقق من الاستجابة المنشورة وتأكد من أنها غير محمية بالمصادقة. في المواقع الضخمة جدًا، قسّم السجلات إلى ملفات متوافقة مع البروتوكول وأنشئ فهرسًا عبر المسار المناسب. الاستخدام في المتصفح مجاني، أما طلبات API المؤتمتة فتستخدم السعر الأساسي المنشور وقدره $0.002.
حالات الاستخدام
أنشئ خريطة موقع أثناء النشر
حوّل المسارات الأساسية التي ينتجها البناء إلى XML حتمي قبل نشر الإصدار الجديد.
صدّر الصفحات من قاعدة محتوى
حوّل السجلات المنشورة وتواريخ تعديلها الموثوقة إلى خريطة موقع جاهزة لمحركات البحث.
استبدل XML اليدوي الهش
احتفظ بقائمة روابط منظّمة، واترك للأداة التحقق والترتيب وتهريب محارف XML.
الأسئلة الشائعة
ما المدخلات التي تتطلبها الأداة؟
قدّم مصفوفة غير فارغة من السجلات. يتطلب كل سجل رابط HTTP أو HTTPS مطلقًا، ويمكن أن يتضمن lastmod وchangefreq وpriority.
هل تزحف الأداة إلى موقعي؟
لا. فهي تنشئ XML من السجلات التي تقدمها فقط، ولا تجري طلبات شبكية ولا تكتشف الصفحات تلقائيًا.
كيف تُعالج علامة العطف والمحارف الخاصة الأخرى؟
تُهرّب المحارف الحساسة في XML داخل الروابط عند الإخراج، كي لا تنتج سلاسل الاستعلام الصالحة مستند XML تالفًا.
ما صيغ lastmod المقبولة؟
استخدم YYYY-MM-DD أو طابعًا زمنيًا كاملًا بصيغة ISO 8601 يتضمن Z أو إزاحة رقمية صريحة للمنطقة الزمنية.
هل تحسن priority ترتيب الصفحة؟
لا. إنها إشارة نسبية داخل خريطة موقعك، وليست ضمانًا للترتيب ولا مقارنةً بصفحات مواقع أخرى.
ما تكلفة التوليد عبر API؟
السعر الأساسي لواجهة API هو $0.002 لكل طلب. ويمكن استخدام الأداة الحتمية نفسها مجانًا في المتصفح.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/web/sitemap-xml-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"urls":[{"url":"https://example.com/","lastmod":"2026-07-25","changefreq":"weekly","priority":1},{"url":"https://example.com/about?from=site&lang=en","changefreq":"monthly","priority":0.6}]}'const res = await fetch("https://api.kit.forhosting.com/web/sitemap-xml-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"urls": [
{
"url": "https://example.com/",
"lastmod": "2026-07-25",
"changefreq": "weekly",
"priority": 1
},
{
"url": "https://example.com/about?from=site&lang=en",
"changefreq": "monthly",
"priority": 0.6
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/sitemap-xml-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"urls": [
{
"url": "https://example.com/",
"lastmod": "2026-07-25",
"changefreq": "weekly",
"priority": 1
},
{
"url": "https://example.com/about?from=site&lang=en",
"changefreq": "monthly",
"priority": 0.6
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/sitemap-xml-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"urls":[{"url":"https://example.com/","lastmod":"2026-07-25","changefreq":"weekly","priority":1},{"url":"https://example.com/about?from=site&lang=en","changefreq":"monthly","priority":0.6}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"urls":[{"url":"https://example.com/","lastmod":"2026-07-25","changefreq":"weekly","priority":1},{"url":"https://example.com/about?from=site&lang=en","changefreq":"monthly","priority":0.6}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/sitemap-xml-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"urls": [
{
"url": "https://example.com/",
"lastmod": "2026-07-25",
"changefreq": "weekly",
"priority": 1
},
{
"url": "https://example.com/about?from=site&lang=en",
"changefreq": "monthly",
"priority": 0.6
}
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.sitemap_xml_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_items | 50000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |