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