أنشئ ملف sitemap.xml لموقعك تلقائيًا
أداة تزحف على صفحات موقعك بدءًا من الصفحة الرئيسية، متتبعة الروابط الداخلية بينها، ثم تُنشئ ملف sitemap.xml كاملًا يضم كل صفحة اكتشفتها مع تاريخ آخر تعديل معروف لها، جاهزًا للإرسال مباشرة إلى أدوات مشرفي المواقع دون كتابته يدويًا صفحة صفحة.
لمن هذه الأداة تحديدًا
مواقع مبنية بأنظمة إدارة محتوى حديثة تُنشئ عادة sitemap تلقائيًا من الإضافات المتوفرة، لكن مواقع مبنية بصفحات ثابتة يدويًا أو بنظام مخصص بلا هذه الميزة تبقى بلا ملف محدَّث، خصوصًا بعد إضافة عشرات الصفحات الجديدة بمرور الوقت. تحل هذه الأداة هذه الفجوة بالزحف الفعلي على الموقع، بدل الاعتماد على إضافة قد لا تكون متاحة أصلًا في النظام المستخدم.
الزحف يتبع الروابط الداخلية فقط
تبدأ الأداة من الصفحة الرئيسية وتتبع كل رابط داخلي تجده، صفحة بعد صفحة، حتى تكتشف كل صفحات الموقع المرتبطة فعليًا ببعضها عبر روابط داخلية حقيقية، لا صفحات معزولة كليًا لا يشير إليها أي رابط من الموقع نفسه. صفحة معزولة كهذه لن تظهر في الملف الناتج، وهي إشارة إضافية مفيدة تكشف مشكلة روابط داخلية تستحق معالجة منفصلة قبل تكرار توليد الملف مجددًا.
ما الذي يُستبعد من الملف الناتج
تستبعد الأداة تلقائيًا صفحات لوحة التحكم الإدارية وروابط تسجيل الدخول وصفحات نتائج البحث الداخلي المكررة، لأن إدراجها في sitemap لا يفيد محرك البحث ويشتت جهد الزحف على صفحات لا تستحق الظهور في نتائج البحث أصلًا. يمكنك أيضًا استبعاد مسارات إضافية يدويًا قبل بدء الزحف، كقسم تجريبي على الموقع ما زال قيد الإعداد.
السعر والتنفيذ عبر الويب أو الـAPI
السعر $0.002 لكل صفحة يكتشفها الزحف ضمن الموقع، فموقع من ثلاثين صفحة يكلّف $0.06 إجمالًا لتوليد ملف كامل له. التنفيذ من هذه الصفحة مباشرة بإدخال رابط الموقع، أو عبر الـAPI لجدولة إعادة توليد الملف أسبوعيًا فور إضافة صفحات جديدة إلى الموقع دون تدخل يدوي متكرر.
حالات الاستخدام
موقع بصفحات ثابتة بلا نظام إدارة محتوى
تُنشئ شركة الواحة للتجارة المحدودة ملف sitemap لأول مرة لموقعها المبني بصفحات ثابتة يدويًا، بعد أن ظلت بلا ملف منذ إطلاق الموقع.
موقع كبير يعيد توليد الملف أسبوعيًا
يجدول عبدالله المنصوري إعادة توليد ملف sitemap أسبوعيًا عبر الـAPI، ليضم الصفحات الجديدة المنشورة كل أسبوع تلقائيًا دون خطوة يدوية.
وكالة تُسلّم ملفًا جاهزًا مع كل موقع جديد
تُنشئ مؤسسة النخيل للمقاولات ملف sitemap ضمن قائمة تسليم كل موقع جديد لعملائها، قبل إرساله لأدوات مشرفي المواقع مباشرة.
الأسئلة الشائعة
هل يكتشف الزحف صفحات معزولة بلا رابط داخلي يشير إليها؟
لا، يتبع الروابط الداخلية فقط؛ صفحة بلا أي رابط داخلي يشير إليها لن تظهر في الملف الناتج.
ماذا يحدث لبيانات موقعي بعد التوليد؟
تُعالج الصفحات المزحوف إليها لتنفيذ التوليد فقط ثم تُحذف من خوادمنا بعد تسليم الملف.
هل تُستبعد صفحات لوحة التحكم تلقائيًا؟
نعم، وكذلك روابط تسجيل الدخول ونتائج البحث الداخلي المكررة، دون حاجة لاستبعادها يدويًا.
كم يكلّف توليد ملف لموقع من مئة صفحة؟
$0.002 لكل صفحة، فموقع من مئة صفحة يكلّف $0.2 إجمالًا لتوليد ملف كامل له.
هل توجد نسخة مجانية لتجربة التوليد؟
لا، هذه الخدمة مدفوعة من الطلب الأول؛ لا حد مجاني خفي.
هل يمكن استبعاد قسم معين من الموقع يدويًا؟
نعم، حدد المسارات المطلوب استبعادها قبل بدء الزحف.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/seo/sitemap-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/seo/sitemap-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/sitemap-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/sitemap-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/sitemap-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"input": "…"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.sitemap_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
413 | input_too_large | حجم المدخلات يتجاوز الحد المسموح لهذه المهمة — قسّم الملف أو صغّره. |