تحقق من ملف sitemap.xml
أداة تتحقق من ملف sitemap.xml كاملًا: هل صياغة XML سليمة بلا كسر في بنيته، وهل كل رابط بداخله صالح ومطلق، وهل تواريخ آخر تعديل منطقية، فتكشف خللًا صغيرًا في وسم واحد قد يجعل جوجل يرفض الملف كاملًا بدل تجاهل السطر المعطوب فقط.
شغّل الأداة مجانًا
تعمل هذه الأداة داخل متصفحك — مجانًا، ولا تُرسل بياناتك إلى أي خادم
خطأ واحد قد يُسقط الملف كله
خلافًا لملفات HTML التي يتسامح المتصفح مع أخطائها الصغيرة، ملف sitemap.xml يتبع معيار XML الصارم: وسم مفتوح دون إغلاق، أو حرف خاص غير مُرمَّز بشكله الصحيح داخل رابط، قد يجعل الملف كاملًا غير قابل للقراءة من محرك البحث، لا السطر المعطوب وحده. تفحص الأداة الصياغة كاملة وتحدد موقع أول خطأ بدقة، بدل ترك صاحب الموقع يبحث يدويًا بين آلاف الأسطر عن الخلل.
روابط تشير إلى صفحات محذوفة
ملف sitemap قديم لم يُحدَّث منذ إعادة تصميم الموقع قد يحتوي روابط لصفحات حُذفت أو تغيّر رابطها منذ فترة، فيرسل إشارة مربكة لمحرك البحث حين يزحف على روابط تعيد خطأ 404 بدل محتوى حقيقي. تتحقق الأداة من حالة كل رابط داخل الملف وتُخرج قائمة بالروابط الميتة التي تستحق الحذف من الملف قبل إرساله مجددًا لأدوات مشرفي المواقع.
الوضع المجاني من المتصفح
الصق محتوى الملف كاملًا في الأداة وستحصل على النتيجة فورًا داخل متصفحك مجانًا وبلا حدود، دون رفع الملف إلى خادم خارجي مهما بلغ عدد الروابط بداخله. للتحقق من ملف موقع مباشرة عبر رابطه دون تنزيله ونسخ محتواه يدويًا، يتوفر التنفيذ عبر الـAPI بسعر $0.002 للملف الواحد، وهذا مناسب لجدولة تحقق دوري بعد كل تحديث كبير على بنية الموقع.
حجم الملف له حدوده أيضًا
يفرض معيار sitemap حدًا أقصى لعدد الروابط داخل ملف واحد ولحجمه بالميغابايت، وموقع كبير يتجاوز هذا الحد يحتاج تقسيم روابطه على عدة ملفات فرعية مربوطة بملف فهرس واحد يشير إليها جميعًا. تنبّه الأداة إن اقترب ملفك من هذا الحد، لتخطط لتقسيمه قبل أن يرفضه محرك البحث كاملًا لتجاوز الحجم المسموح.
حالات الاستخدام
مطوّر يراجع ملفًا بعد نقل الموقع
يتحقق محمد الحربي من ملف sitemap.xml فور نقل الموقع إلى استضافة جديدة، فيكتشف وسمًا مفتوحًا دون إغلاق تسبب فيه تصدير خاطئ.
متجر يحذف روابط منتجات متوقفة
تراجع شركة الواحة للتجارة المحدودة ملف sitemap بعد إيقاف عشرات المنتجات القديمة، فتكتشف أن روابطها ما زالت مذكورة فيه رغم حذفها.
مدونة تتحقق قبل إرسال الملف لأدوات المشرفين
تتحقق سارة النعيمي من صحة ملف sitemap قبل إرساله لأول مرة إلى أدوات مشرفي المواقع، لتفادي رفضه من أول محاولة.
الأسئلة الشائعة
هل يغادر ملفي جهازي عند اللصق؟
لا، التحقق من المتصفح يجري محليًا ولا يُرسل محتوى الملف إلى أي خادم.
ماذا يحدث إن كان الملف كبيرًا جدًا؟
تنبّهك الأداة إن اقترب من الحد الأقصى المسموح لعدد الروابط أو الحجم، لتخطط لتقسيمه على عدة ملفات.
هل تتحقق الأداة من كل رابط داخل الملف فعليًا؟
نعم، تتحقق من صحة صياغة كل رابط وتكشف الروابط التي تعيد خطأ 404 عند الوصول إليها.
هل الاستخدام من المتصفح مجاني فعلًا؟
نعم، بلا حد أقصى لحجم الملف ودون تسجيل حساب.
كم يكلّف التحقق من رابط مباشرة عبر الـAPI؟
$0.002 للملف الواحد، تفتح الأداة الرابط وتتحقق منه تلقائيًا.
هل تصلح الأداة الأخطاء المكتشفة تلقائيًا؟
لا، تحدد موقع كل خطأ بدقة فقط؛ تعديل الملف يبقى بيدك.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/seo/sitemap-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/seo/sitemap-validate", {
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-validate",
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-validate", 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-validate", 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_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |