Robots.txt
ما الذي يفعله robots.txt فعلياً — فهو يتحكم في الزحف لا الفهرسة — مع الصياغة الدقيقة، وكيف يتعامل معه Google داخلياً، والأخطاء التي قد تعطل المواقع.
اللغات
دليل واحد في هذه الصفحة
- أداة مباشرة ذات صلةrobots.txt Tester
Robots.txt ملف نصي عادي في جذر كل مضيف يخبر برامج الزحف بعناوين URL التي يجوز لها طلبها والتي لا يجوز. وهو يتحكم في الزحف لا الفهرسة؛ فقد يُفهرس عنوان محظور من دون مقتطف إذا أشارت إليه روابط. لإخراج صفحة من الفهرس استخدم noindex، ويجب ألا تكون الصفحة محظورة وإلا فلن يراه Google. يدعم Google فقط user-agent وallow وdisallow وsitemap. يوجد الملف في /robots.txt، وينطبق على مضيف وبروتوكول ومنفذ واحد، وحده الأقصى 500 KiB، ويُخزن مؤقتاً نحو 24 ساعة. تعني استجابة 4xx عدم وجود قيود، بينما قد يعطل 5xx الزحف إلى الموقع كله. لا تحظر ملفات CSS وJavaScript الضرورية للعرض، ولا تعتمد على الملف لإخفاء شيء لأنه علني.
الخلاصة — ملف robots.txt هو ملف نصي في جذر موقعك يحدد لبرامج الزحف عناوين URL التي يُسمح لها بطلبها. وأكثر ما يُساء فهمه أنه يتحكم في الزحف لا الفهرسة. حظر صفحة لا يزيلها من Google؛ فقد تظل ظاهرة في البحث، لكن بلا وصف. وإذا أردت إخراج صفحة من Google فعليك استخدام أداة أخرى هي
noindex، ويجب ألا تحظرها في robots.txt، وإلا فلن ترى Google هذا التوجيه.
ما ملف robots.txt؟
عندما يريد محرك بحث الزحف إلى موقعك، يبحث أولاً عن الملف https://yourdomain.com/robots.txt. يضم هذا الملف تعليمات تحدد لبرامج الزحف أجزاء الموقع التي يجوز لها طلبها والتي لا يجوز. وهو نص عادي؛ ويمكنك قراءة ملف robots.txt لأي موقع بإضافة /robots.txt بعد اسم النطاق.
يبدو أبسط ملف هكذا:
Evidence for this claim Cloudflare Radar summarizes which AI user-agent names were observed in robots.txt files during the 28 days ending 2026-07-30. Scope: A dated Cloudflare Radar context chart describing observed robots.txt patterns; it is not a recommendation or a site-specific policy measurement. Confidence: high · Verified: Cloudflare Radar: AI user agents found in robots.txtThe chart summarizes which AI user-agent names Cloudflare observed in robots.txt files during the selected four-week period.
User-agent: *
Disallow: /admin/
Sitemap: https://yourdomain.com/sitemap.xmlتعني هذه التعليمات: لا يطلب أي برنامج زحف (*) شيئاً تحت /admin/، وهذا أيضاً موقع خريطة الموقع.
الفكرة الأساسية: منع الزحف لا يعني الإزالة
هذا أكثر الأخطاء شيوعاً في SEO، لذلك يستحق التأكيد: يمنع robots.txt الزحف إلى الصفحة، ولا يمنع فهرستها. Evidence for this claim A robots.txt rule controls crawling rather than guaranteeing removal from Google Search; a URL can still appear when Google cannot crawl it. Scope: Google Search crawler behavior. Other crawlers can interpret robots.txt differently. Confidence: high · Verified: Google: Introduction to robots.txt
قد يبدو الزحف والفهرسة شيئاً واحداً، لكنهما مختلفان. الزحف هو جلب المحرك للصفحة وقراءتها، أما الفهرسة فهي قراره تخزينها وإظهارها في النتائج. ولا يمنع robots.txt إلا الخطوة الأولى.
إذا حظرت صفحة في robots.txt فلن تجلبها Google، لكن قد تفهرس عنوان URL نفسه وتعرضه في البحث إذا أشارت إليه صفحات أخرى. ويظهر حينئذ رابط مجرد بلا وصف، لأن Google لم يُسمح لها بقراءة الصفحة وصوغ وصف لها.
إذا كان هدفك الحقيقي «إخراج هذه الصفحة من Google»، فـrobots.txt ليس الأداة المناسبة. استخدم noindex، سواء في وسم meta داخل الصفحة أو في ترويسة HTTP. وهنا مكمن الخطأ: لا يعمل noindex إلا إذا استطاعت Google الزحف إلى الصفحة ورؤيته. فإذا حظرت الصفحة في robots.txt وأضفت noindex، فلن تزحف Google إليها ولن ترى التوجيه، وقد تبقى الصفحة في الفهرس. اختر وظيفة واحدة لكل عنوان URL: منع الزحف أو منع الفهرسة، لا كليهما.
الأداة المناسبة لكل غرض
- «لا تهدر موارد الزحف هنا». ← توجيه
Disallowفيrobots.txt. - «أبقِ هذا خارج فهرس Google». ←
noindex، من دون حظره. - «يجب ألا يتمكن أحد من رؤية هذا إطلاقاً». ← حماية بكلمة مرور أو تسجيل دخول.
ملف robots.txt علني ويمكن لأي شخص قراءته؛ لذلك فإن إدراج
/secret/فيه لا يفعل سوى كشف وجود المجلد.
قواعد قليلة يكثر الخطأ فيها
- ملف واحد لكل مضيف. يحتاج كل من
https://example.comوhttps://www.example.comوhttps://blog.example.comإلى ملف robots.txt خاص به؛ ولا تتشارك هذه النطاقات ملفاً واحداً. - موضعه في الجذر. يجب أن يكون في
/robots.txtوبأحرف صغيرة. ولا أثر لملف داخل مجلد فرعي. - لا تحظر CSS وJavaScript. تحتاج Google إلى هذه الملفات لترى الصفحة كما يراها الزائر، وقد يضر حظرها بموقعك.
للمرجع الكامل للصياغة — أحرف البدل، وقواعد المطابقة بين Allow وDisallow، وكيف تتعامل Google مع استجابة 404 مقارنة بخطأ الخادم في robots.txt، وcrawl-delay، وإدارة برامج زحف الذكاء الاصطناعي — انتقل إلى علامة التبويب المتقدم.
الخلاصة — robots.txt ملف نصي عادي في جذر كل مضيف (
/robots.txtبأحرف صغيرة) يطبق بروتوكول استبعاد الروبوتات (RFC 9309). وهو يتحكم في الزحف لا الفهرسة؛ فقد يُفهرس عنوان URL محظور بلا مقتطف إذا أشارت إليه صفحات أخرى. ولإزالته من الفهرس استخدمnoindexفي صفحة غير محظورة. لا تدعم Google إلاuser-agentوallowوdisallowوsitemap، وقد أوقفت دعمnoindexوnofollowوcrawl-delayفي 1 سبتمبر 2019. يقتصر النطاق على مضيف وبروتوكول ومنفذ واحد. وتفوز في المطابقة القاعدة الأكثر تحديداً، أي ذات المسار الأطول، بينما تفوز القاعدة الأقل تقييداً عند التعادل؛ و*و$هما حرفا البدل. مسارات URL حساسة لحالة الأحرف. تحد Google الملف عند 500 KiB، وتخزنه مؤقتاً نحو 24 ساعة، وتعامل استجابات 4xx، عدا 429، كأن لا قيود موجودة. وعند 5xx توقف الزحف نحو 12 ساعة ثم تعود إلى آخر نسخة سليمة مدة تقارب 30 يوماً. لا تحظر ملفات CSS وJavaScript اللازمة للعرض، ولا تعامل الملف بوصفه وسيلة للتحكم في الوصول؛ فهو علني.
ماهيته وموضعه
يطبق robots.txt بروتوكول استبعاد الروبوتات، الذي أنشأه Martijn Koster عام 1994 ثم أصبح معياراً في 2022 باسم RFC 9309، وشارك في تأليفه Gary Illyes وHenner Zeller وLizzi Sassman من Google إلى جانب Koster. ويقول المعيار نفسه: “This document specifies and extends the ‘Robots Exclusion Protocol’ method originally defined by Martijn Koster in 1994 for service owners to control how content served by their services may be accessed, if at all, by automatic clients known as crawlers.” (ترجمة) «تحدد هذه الوثيقة طريقة بروتوكول استبعاد الروبوتات التي وضعها Martijn Koster أصلاً عام 1994 وتوسعها، كي يتحكم مقدمو الخدمات في كيفية وصول العملاء الآليين المعروفين ببرامج الزحف إلى المحتوى الذي تقدمه خدماتهم، إن سُمح لهم بالوصول إليه أصلاً».
حقائق قليلة يكثر أن تفاجئ الناس:
- يجب أن يكون في الجذر وبأحرف صغيرة. ينص RFC 9309 صراحةً: “The rules MUST be accessible in a file named ‘/robots.txt’ (all lowercase) in the top-level path of the service.” (ترجمة) «يجب أن تكون القواعد متاحة في ملف اسمه /robots.txt، كله بأحرف صغيرة، في المسار الأعلى للخدمة». وتضيف Google أن عنوان URL نفسه حساس لحالة الأحرف مثل أي عنوان آخر.
- النطاق مضيف واحد + بروتوكول واحد + منفذ واحد. تقول Google: “The rules listed in the robots.txt file apply only to the host, protocol, and port number where the robots.txt file is hosted.” (ترجمة) «لا تسري القواعد المدرجة في ملف robots.txt إلا على المضيف والبروتوكول ورقم المنفذ التي يستضاف فيها الملف». لذلك يحتاج كل من
https://example.comوhttps://www.example.comوhttps://blog.example.comوhttp://example.comإلى ملفه الخاص؛ فلا تتشارك النطاقات الفرعية والبروتوكولات ملفاً واحداً. - البروتوكولات التي تدعمها Google هي HTTP وHTTPS وFTP.
أكثر المفاهيم التباساً هنا: الزحف مقابل الفهرسة
إذا خرجت بفكرة واحدة من هذه الصفحة، فلتكن: يتحكم robots.txt في الزحف لا الفهرسة. حظر عنوان URL لا يساوي إزالته من Google. Evidence for this claim A robots.txt rule controls crawling rather than guaranteeing removal from Google Search; a URL can still appear when Google cannot crawl it. Scope: Google Search crawler behavior. Other crawlers can interpret robots.txt differently. Confidence: high · Verified: Google: Introduction to robots.txt
تقول وثيقة Google التمهيدية بوضوح إن robots.txt “is not a mechanism for keeping a web page out of Google. To keep a web page out of Google, block indexing with noindex or password-protect the page.” (ترجمة) «ليس robots.txt وسيلة لإبقاء صفحة ويب خارج Google؛ ولمنع ظهورها استخدم noindex أو احمها بكلمة مرور». وعن مصير عنوان URL المحظور تقول: “While Google won’t crawl or index the content blocked by a robots.txt file, we might still find and index a disallowed URL if it is linked from other places on the web.” (ترجمة) «مع أن Google لن تزحف إلى المحتوى المحظور بملف robots.txt ولن تفهرسه، فقد تعثر على عنوان URL المحظور وتفهرسه إذا أشارت إليه مواضع أخرى على الويب». والنتيجة هي ظهور بلا مقتطف: “its URL can still appear in search results, but the search result won’t have a description.” (ترجمة) «قد يظل عنوان URL ظاهراً في نتائج البحث، لكن النتيجة لن تحمل وصفاً».
وتعيد مواصفة disallow شرح الفارق نفسه: “Google can’t index the content of pages which are disallowed for crawling, but it may still index the URL and show it in search results without a snippet.” (ترجمة) «لا تستطيع Google فهرسة محتوى الصفحات المحظور زحفها، لكنها قد تفهرس عنوان URL وتعرضه في نتائج البحث بلا مقتطف».
لماذا يجب ألا تحظر صفحة تريد تطبيق noindex عليها؟
هذا الخطأ يعطل محاولات الإزالة من الفهرس بصمت. لا يعمل noindex إلا إذا استطاعت Google الزحف إلى الصفحة وقراءته. وتوضح وثيقة منع الفهرسة هذا الاعتماد: “For the noindex rule to be effective, the page or resource must not be blocked by a robots.txt file, and it has to be otherwise accessible to the crawler. If the page is blocked by a robots.txt file or the crawler can’t access the page, the crawler will never see the noindex rule, and the page can still appear in search results, for example if other pages link to it.” (ترجمة) «كي تكون قاعدة noindex فعالة، يجب ألا يحظر ملف robots.txt الصفحة أو المورد، وأن يكون الوصول إليه ممكناً لبرنامج الزحف. فإذا حُظرت الصفحة أو تعذر الوصول إليها، فلن يرى برنامج الزحف قاعدة noindex أبداً، وقد تظل الصفحة ظاهرة في نتائج البحث، مثلاً إذا أشارت إليها صفحات أخرى». Evidence for this claim Google must be able to crawl a URL to see a noindex rule; blocking the URL in robots.txt can prevent the rule from being observed. Scope: Google Search indexing controls for HTML meta robots and X-Robots-Tag rules. Confidence: high · Verified: Google: Block indexing with noindex
لذلك، إذا كان هدفك إخراج صفحة من الفهرس، فأبسط طريقة لتذكر إرشاد John Mueller هي: عند الرغبة في إلغاء فهرسة صفحات، لا تحظر Google في robots.txt، بل استخدم noindex.
الدليل العملي: حظرت صفحتين من صفحاتنا عالية الترتيب
لا حاجة إلى الاكتفاء بالنظرية. في تجربتي التي حظرت فيها صفحتين مرتفعتي الترتيب من Ahrefs، حظرتهما عمداً في robots.txt وتابعت ما حدث. بقيت الصفحتان في الفهرس وحافظتا على ترتيبهما؛ فلم تختفيا. وما فقدناه هو الحداثة التي تمنحها إعادة الزحف، إذ “We lost a position here or there and all of the featured snippets for the pages.” (ترجمة) «خسرنا موضعاً هنا أو هناك، وخسرنا كل المقتطفات المميزة للصفحتين». وانخفضت الزيارات، لكن أقل مما توقعت: “Both pages lost some traffic. But it didn’t result in much change to our traffic estimate like I was expecting.” (ترجمة) «فقدت الصفحتان بعض الزيارات، لكن ذلك لم يغير تقديرنا للزيارات بقدر ما كنت أتوقع».
وكان استنتاجي من البيانات: “Accidentally blocking pages (that Google already ranks) from being crawled using robots.txt probably isn’t going to have much impact on your rankings, and they will likely still show in the search results.” (ترجمة) «ربما لا يؤثر كثيراً في الترتيب أن تمنع عن طريق الخطأ زحف robots.txt إلى صفحات ترتبها Google بالفعل، ومن المرجح أن تظل ظاهرة في النتائج». وبعبارة مباشرة: “Don’t block pages you want indexed. It hurts. Not as bad as you might think it does—but it still hurts.” (ترجمة) «لا تحظر صفحات تريد فهرستها؛ فهذا يضرها، وإن كان الضرر أقل مما قد تتصور».
أما الوجه الآخر فهو مطمئن: عندما يعرض Search Console الحالة “Indexed, though blocked by robots.txt” (ترجمة) «مفهرس، رغم الحظر بواسطة robots.txt» لعنوان URL خدمي، مثل سلة أو مرشح أو معاملات غير نافعة، فغالباً لا توجد مشكلة. أوضح Mueller بشأن عناوين الإضافة إلى السلة أن حظرها مقبول، وحتى إن «فُهرست» فمن المستبعد أن تظهر في البحث إلا لاستعلام بالغ التحديد عن تلك العناوين، وهو ما لا يفعله المستخدمون الحقيقيون. لا تدع صياغة التحذير المقلقة تخفي الفرق: لا يهم إلا عندما يكون العنوان المحظور صفحة أردت فعلاً الزحف إليها وفهرستها.
الصياغة المرجعية
يتكون ملف robots.txt من مجموعات. تبدأ كل مجموعة بسطر User-agent واحد أو أكثر يحدد برامج الزحف التي تنطبق عليها، ثم تأتي القواعد الخاصة بها.
User-agent: *
Disallow: /cart/
Disallow: /search
Allow: /search/help
User-agent: Googlebot
Disallow: /no-google/
Sitemap: https://example.com/sitemap.xmlUser-agent والمجموعات. يلتزم برنامج الزحف بمجموعة واحدة فقط، هي المجموعة ذات وكيل المستخدم الأكثر تحديداً الذي يطابقه، ويتجاهل بقية المجموعات. تقول Google: “Google’s crawlers determine the correct group of rules by finding in the robots.txt file the group with the most specific user agent that matches the crawler’s user agent. Other groups are ignored.” (ترجمة) «تحدد برامج زحف Google مجموعة القواعد الصحيحة بالعثور في ملف robots.txt على المجموعة التي تضم وكيل المستخدم الأكثر تحديداً المطابق لوكيل برنامج الزحف؛ وتُتجاهل المجموعات الأخرى». وتضيف: “Only one group is valid for a particular crawler.” (ترجمة) «لا تكون صالحة لبرنامج زحف بعينه إلا مجموعة واحدة». ويتصرف Bing بالطريقة نفسها، كما سيأتي.
يعني ذلك أيضاً أن المجموعة المحددة لا ترث قواعد مجموعة حرف البدل؛ فهي تُستخدم وحدها ولا تُدمج مع User-agent: *. وتنص مواصفة Google على أن “user agent specific groups and global groups (*) are not combined.” (ترجمة) «لا تُدمج مجموعات وكلاء المستخدم المحددة مع المجموعات العامة (*)». فإذا أنشأت مجموعة User-agent: googlebot-news فيجب أن تكون مكتفية بذاتها: كرر داخلها كل قاعدة من مجموعة * ما زلت تريد من Googlebot-News اتباعها، وإلا فلن يراها.
Disallow وAllow. يسرد Disallow المسارات التي يجب ألا يطلبها برنامج الزحف، بينما ينشئ Allow استثناءات مسموحاً بها داخلها. وتوضح المواصفة أن قاعدة disallow “specifies paths that must not be accessed by the crawlers identified by the user-agent line the disallow rule is grouped with.” (ترجمة) «تحدد المسارات التي يجب ألا تصل إليها برامج الزحف المعينة في سطر user-agent الذي جُمعت معه قاعدة disallow». أما قاعدة allow فـ*“specifies paths that may be accessed by the designated crawlers. When no path is specified, the rule is ignored.”* (ترجمة) «تحدد المسارات التي يجوز لبرامج الزحف المعينة الوصول إليها، وتُتجاهل القاعدة إذا لم يُحدد مسار».
قاعدة المطابقة التي تخطئ فيها أدلة كثيرة. عند تعارض قاعدتين، تفوز القاعدة الأكثر تحديداً، والمقصود بذلك المسار الأطول. تقول Google: “When matching robots.txt rules to URLs, crawlers use the most specific rule based on the length of the rule path. In case of conflicting rules, including those with wildcards, Google uses the least restrictive rule.” (ترجمة) «عند مطابقة قواعد robots.txt مع عناوين URL، تستخدم برامج الزحف القاعدة الأكثر تحديداً وفق طول مسارها. وعند تعارض القواعد، بما فيها القواعد ذات أحرف البدل، تستخدم Google القاعدة الأقل تقييداً». لذلك، عند التعادل الحقيقي تفوز القاعدة الأقل تقييداً، أي يتغلب Allow على Disallow. ويسمي RFC 9309 ذلك «المطابقة الأطول»: “The following example shows that in the case of two rules, the longest one is used for matching.” (ترجمة) «يوضح المثال التالي أنه عند وجود قاعدتين تُستخدم الأطول للمطابقة». Evidence for this claim Google resolves matching robots.txt rules by path specificity and uses the least restrictive rule when equally specific rules conflict. Scope: Google crawler interpretation of robots.txt rules; other crawlers may implement different extensions. Confidence: high · Verified: Google: Robots.txt interpretation
مثال عملي:
User-agent: *
Allow: /folder/page
Disallow: /folder/يطابق عنوان URL /folder/page القاعدتين. لكن Allow: /folder/page، وطوله 12 حرفاً، أطول من Disallow: /folder/، وطوله 8 أحرف؛ لذلك تفوز قاعدة Allow الأطول والأكثر تحديداً، وتظل الصفحة قابلة للزحف.
حرفا البدل * و$. تقول Google: “* designates 0 or more instances of any valid character. $ designates the end of the URL.” (ترجمة) «يمثل * صفراً أو أكثر من أي حرف صالح، ويمثل $ نهاية عنوان URL». لذلك يحظر Disallow: /*.pdf$ كل عنوان ينتهي بـ.pdf، ويحظر Disallow: /*? كل عنوان يحتوي سلسلة استعلام. وتعتمد المطابقة على البادئة: تطابق Disallow: /fish كلاً من /fish و/fish.html و/fish/salmon.html، لكنها لا تطابق /Fish بسبب اختلاف حالة الأحرف، ولا /catfish لأن المطابقة للبادئة لا لسلسلة داخلية.
حساسية حالة الأحرف. أسماء الحقول ووكلاء المستخدم غير حساسة لحالة الأحرف، لكن قيم المسارات حساسة لها. تقول Google: “Both the user-agent field name and its value are case-insensitive,” (ترجمة) «اسم حقل user-agent وقيمته كلاهما غير حساسين لحالة الأحرف»، بينما “The field name (disallow) is case-insensitive, but its value is case-sensitive,” (ترجمة) «اسم الحقل (disallow) غير حساس لحالة الأحرف، لكن قيمته حساسة لها»، كما أن “The path value must start with / to designate the root and the value is case-sensitive.” (ترجمة) «يجب أن تبدأ قيمة المسار بـ/ للدلالة على الجذر، وهي حساسة لحالة الأحرف». لذلك لا يحظر Disallow: /Folder/ المسار /folder/.
Sitemap. يتطلب توجيه Sitemap: عنوان URL مطلقاً كاملاً، وهو مستقل عن المجموعات ويمكن وضعه في أي موضع من الملف.
التعليقات. يُتجاهل كل ما يأتي بعد #: “To include comments, precede your comment with the # character.” (ترجمة) «لإضافة تعليق، ضع الحرف # قبله».
noindex وnofollow وcrawl-delay ليست توجيهات robots.txt
هذه خرافة مستمرة. منذ 1 سبتمبر 2019 أوقفت Google دعم القواعد غير المدعومة وغير الموثقة، ومنها noindex وnofollow وcrawl-delay. ركز إعلان Google على القواعد التي لا يدعمها مسودة بروتوكول الإنترنت، مثل crawl-delay وnofollow وnoindex، وأشار إلى أنها لم تكن موثقة لدى Google، ثم أعلن إيقاف كل الشيفرة التي تتعامل مع القواعد غير المدعومة وغير المنشورة، مثل noindex، في ذلك التاريخ. قائمة الحقول المدعومة قصيرة، والمواصفة تستبعد غيرها صراحةً: تدعم Google user-agent وallow وdisallow وsitemap، أما “other fields such as crawl-delay aren’t supported.” (ترجمة) «فالحقول الأخرى، مثل crawl-delay، غير مدعومة».
إذا كنت تعتمد على noindex داخل robots.txt، فالبدائل هي وسم meta بقيمة noindex أو ترويسة X-Robots-Tag، أو رمزا الحالة 404 و410، أو الحماية بكلمة مرور، أو Disallow، أو أداة الإزالة في Search Console، بحسب الغرض.
كيف تتعامل Google مع robots.txt خلف الكواليس؟
- حد الحجم: 500 KiB. تقول Google: “Google enforces a robots.txt file size limit of 500 kibibytes (KiB). Content which is after the maximum file size is ignored.” (ترجمة) «تفرض Google حداً لحجم ملف robots.txt قدره 500 كيبيبايت (KiB)، وتتجاهل المحتوى الواقع بعد الحد الأقصى». ويتوافق RFC 9309 مع ذلك: “The parsing limit MUST be at least 500 kibibytes [KiB].” (ترجمة) «يجب ألا يقل حد التحليل عن 500 كيبيبايت [KiB]».
- التخزين المؤقت: نحو 24 ساعة. تقول Google: “Google generally caches the contents of robots.txt file for up to 24 hours, but may cache it longer in situations where refreshing the cached version isn’t possible.” (ترجمة) «تخزن Google محتوى robots.txt مؤقتاً مدة تصل عادةً إلى 24 ساعة، وقد تطيلها عندما يتعذر تحديث النسخة المخزنة». لذلك قد لا يظهر التغيير فوراً. Evidence for this claim Google generally caches robots.txt for up to 24 hours and changes crawling behavior according to the HTTP status returned for the file. Scope: Google crawler handling of robots.txt fetches, including documented 4xx, 5xx, and redirect behavior. Confidence: high · Verified: Google: Robots.txt file handling
- تؤثر رموز الحالة في الموقع كله. وهذه نقطة تغفلها أدلة كثيرة:
- 4xx، عدا 429 ← لا قيود. “Google’s crawlers treat all 4xx errors, except 429, as if a valid robots.txt file didn’t exist. This means that Google assumes that there are no crawl restrictions.” (ترجمة) «تعامل برامج زحف Google كل أخطاء 4xx، عدا 429، كما لو لم يوجد ملف robots.txt صالح، أي تفترض عدم وجود قيود على الزحف». لذلك تعني استجابة 404 على
/robots.txtالسماح بزحف كل شيء. ولا تستخدم 401 أو 403 لإبطاء الزحف. - 5xx أو تعذر الوصول ← خطر. “For the first 12 hours, Google stops crawling the site but keeps trying to fetch the robots.txt file. If Google can’t fetch a new version, for the next 30 days Google will use the last good version, while still trying to fetch a new version.” (ترجمة) «توقف Google الزحف إلى الموقع خلال أول 12 ساعة مع مواصلة محاولة جلب robots.txt. وإذا تعذر جلب نسخة جديدة، تستخدم آخر نسخة سليمة خلال الأيام الثلاثين التالية مع استمرار المحاولة». قد يؤدي خطأ الخادم في
/robots.txtبذلك إلى منع زحف الموقع كله نحو 12 ساعة، ثم العمل وفق آخر نسخة مخزنة نحو 30 يوماً. ويظل تعطل الملف خطراً شاملاً على الزحف. وبعد 30 يوماً: “If the errors are still not fixed after 30 days: If the site is generally available to Google, Google will behave as if there is no robots.txt file (but still keep checking for a new version).” (ترجمة) «إذا بقيت الأخطاء بعد 30 يوماً وكان الموقع متاحاً عموماً لـGoogle، فستتصرف كما لو لم يوجد ملف robots.txt، مع مواصلة التحقق من نسخة جديدة». أي إن الملف الذي لا يتعافى لا يبقي الحظر إلى الأبد؛ بل تعود Google في النهاية إلى الزحف بلا قيود، مثل استجابة 404. - 3xx ← تتبع Google خمس قفزات إعادة توجيه على الأقل، ثم تعامل النتيجة كأنها 404.
- 4xx، عدا 429 ← لا قيود. “Google’s crawlers treat all 4xx errors, except 429, as if a valid robots.txt file didn’t exist. This means that Google assumes that there are no crawl restrictions.” (ترجمة) «تعامل برامج زحف Google كل أخطاء 4xx، عدا 429، كما لو لم يوجد ملف robots.txt صالح، أي تفترض عدم وجود قيود على الزحف». لذلك تعني استجابة 404 على
robots.txt في Bing وYandex وغيرهما
تتشابه صياغة المجموعات والقواعد في الأساس، لكن هناك فروقاً مهمة:
- crawl-delay. تتجاهله Google، بينما لا يزال Bing يلتزم به، وقد أوقف Yandex دعمه في 2018. تقول وثائق Yandex: “From February 22, 2018, Yandex doesn’t take into account the Crawl-delay directive,” (ترجمة) «منذ 22 فبراير 2018 لم يعد Yandex يأخذ توجيه Crawl-delay في الحسبان»، وتحيل بدلاً منه إلى إعداد معدل الزحف في Yandex Webmaster. ويقول Bing صراحةً إن “The robots.txt file is the only valid place to set a crawl-delay directive for MSNBot,” (ترجمة) «ملف robots.txt هو الموضع الصالح الوحيد لتعيين توجيه crawl-delay لـMSNBot»، وإن التوجيه “accepts only positive, whole numbers as values… the higher the value, the more throttled down the crawl rate will be.” (ترجمة) «لا يقبل إلا أعداداً صحيحة موجبة؛ وكلما ارتفعت القيمة زاد خفض معدل الزحف». ويعامل Bing القيمة بوصفها درجة نسبية للإبطاء، لا عدداً حرفياً من الثواني.
- فخ مجموعة bingbot. كما في قاعدة Google “only one group per crawler” (ترجمة) «مجموعة واحدة فقط لكل برنامج زحف»، إذا أنشأت قسماً باسم
User-agent: bingbotفسيطبق Bing ذلك القسم وحده ويتجاهل الإعدادات العامة فيUser-agent: *، باستثناء crawl-delay. لذلك يجب أن تكرر مجموعة bingbot كل توجيه تريد استمرار تطبيقه. - التخزين المؤقت وسلوك الفشل لدى Amazon. تقول Amazon إن برامج زحفها قد تستخدم نسخة robots.txt مخزنة خلال الأيام الثلاثين السابقة. وإذا تعذر جلب الملف، تتصرف كما لو لم يكن موجوداً. يمكن لأداة فحص إظهار النسخة التي جلبتها، لكنها لا تستطيع إثبات النسخة المخزنة التي استخدمتها Amazon، ولا أن Amazon واجهت إخفاق الجلب نفسه. Evidence for this claim Amazon says its crawlers may use a robots.txt copy cached within the previous 30 days and behave as though the file does not exist when they cannot fetch it. Scope: Amazon crawler behavior only; a checker result cannot establish which cached copy Amazon used or whether Amazon observed the same fetch failure. Confidence: high · Verified: Amazon: Amazonbot
إدارة برامج زحف الذكاء الاصطناعي بواسطة robots.txt
يُعد robots.txt حالياً الأداة الرئيسية لإدارة برامج زحف الذكاء الاصطناعي، وهي تتبع صياغة المجموعات ووكلاء المستخدم نفسها. لكن هذه رموز مستقلة؛ فلا يؤدي حظر أحدها إلى حظر البقية.
- تشغّل OpenAI عدة برامج آلية منفصلة، ولكل منها تحكم مستقل؛ فلا يعني السماح لأحدها السماح للبقية، ولا يعني حظره حظرها. يزحف
GPTBotإلى المحتوى لتدريب نماذج OpenAI، ويعرضOAI-SearchBotالمواقع في ميزات بحث ChatGPT، ويتحققOAI-AdsBotمن سلامة الصفحات المقدمة كإعلانات، ولا تستخدم بياناته للتدريب. يمكنك منع التدريب باستخدامUser-agent: GPTBotوDisallow: /، لكن ذلك وحده لا يوقف برنامجي البحث أو الإعلانات. أماChatGPT-Userفمختلف: يعمل لتنفيذ إجراءات يطلقها شخص داخل ChatGPT أو GPT مخصص، لا للزحف التلقائي، وتقول OpenAI إن “robots.txt rules may not apply” (ترجمة) «قواعد robots.txt قد لا تنطبق» عليه؛ لذلك لا تعتمد علىDisallowلمنعه. وإذا غيّرت نطاق زحفOAI-SearchBot، فتشير OpenAI إلى أن وصول التحديث إلى أنظمة البحث قد يستغرق نحو 24 ساعة. - يتحكم Google-Extended في تدريب Gemini وVertex، وهو منفصل عن Googlebot.
- ومن البرامج الأخرى الجديرة بالذكر:
CCBotمن Common Crawl، وClaudeBotمن Anthropic، وPerplexityBot، وBytespider.
والتحفظ الأساسي أن الامتثال طوعي. يقدم robots.txt طلباً ولا يفرضه. تلتزم به برامج الزحف حسنة السلوك، لكن أدوات الاستخلاص قد تتجاهله فعلاً. وإذا كان ضرورياً حقاً منع برنامج آلي من الوصول إلى شيء، فهذه مسألة مصادقة أو حظر، لا مسألة robots.txt.
أخطاء شائعة وطريقة إصلاحها
يستجيب الملف برمز 200، لكنه ليس ملف robots.txt صالحاً للاستخدام. لا يكفي رمز الحالة وحده. التقط Content-Type وأولى وحدات البايت في الاستجابة؛ فقد يعيد قالب خطأ مخصص أو CDN صفحة HTML في /robots.txt مع رمز 200، ويجب الإبلاغ عن ذلك كتحذير لا اعتباره سماحاً شاملاً. توثق Google أن robots.txt نص عادي بترميز UTF-8 وقد تتجاهل الأحرف غير الصالحة. يمكن تحمل علامة BOM واحدة في بداية UTF-8، لكن علامة ثانية، أو BOM في الوسط، أو بايتات UTF-16، أو NUL، أو أحرف تحكم غير مرئية قد تغير أول رمز أو تبطل سطراً. اعرض موضع البايت والسطر المتأثر، ولا تطبع الملف بصمت قبل إخبار المستخدم بما تلقاه برنامج الزحف. طبّق حد التحليل الفعلي لدى Google البالغ 500 KiB قبل حساب نتائج السماح والحظر، مع الاستمرار في الإبلاغ عن الجزء المستبعد بعد الحد.
- حظر صفحة تريد أيضاً إزالتها من الفهرس. الجمع بين الحظر و
noindexيمنع Google من الزحف لرؤيةnoindex. استخدمnoindexمن دون الحظر. - استخدام robots.txt لإلغاء الفهرسة. هذه أداة خاطئة تماماً؛ فهذه وظيفة
noindex. - حظر CSS وJavaScript الضروريين للعرض. تحتاج Google إلى هذه الملفات لرؤية الصفحة كما يراها المستخدم، بل يعيد نموذج robots.txt الرسمي لدى Google السماح صراحةً بملفات
.cssو.jsكي يزحف إليها Googlebot. - محاولة إخفاء بيانات حساسة. يقول RFC 9309 بوضوح: “The Robots Exclusion Protocol is not a substitute for valid content security measures. Listing paths in the robots.txt file exposes them publicly and thus makes the paths discoverable.” (ترجمة) «بروتوكول استبعاد الروبوتات ليس بديلاً لتدابير أمن المحتوى الصحيحة؛ فإدراج المسارات في robots.txt يكشفها علناً ويجعل العثور عليها ممكناً». إن حظر
/secret-admin/يعلن وجوده حرفياً؛ استخدم المصادقة. - توجيه
Disallow: /عارض. يحظر الموقع كله عن برنامج الزحف المحدد، وهو بقايا شائعة من بيئة الاختبار قد تخرج الموقع من Google. - تجاهل رمز استجابة
/robots.txt. قد يوقف 5xx الزحف إلى الموقع كله؛ فتعامل مع توفر الملف بوصفه أمراً حرجاً في الإنتاج.
لفهم المسار الأوسع الذي يقع فيه هذا الملف، بما يشمل الاكتشاف وجدولة الزحف والعرض والفرق بين الزحف والفهرسة، راجع مركز الزحف. ويتعمق موضوعا ميزانية الزحف وكيفية تعامل Google مع خرائط الموقع في جزأين آخرين من هذا المسار.
ملخص الذكاء الاصطناعي
خلاصة مكثفة للنسخة المتقدمة:
- robots.txt ملف نصي عادي في جذر كل مضيف (
/robots.txtبأحرف صغيرة) يطبق بروتوكول استبعاد الروبوتات (RFC 9309 الصادر في 2022، وأصل البروتوكول من 1994). وعنوان URL حساس لحالة الأحرف. - يتحكم في الزحف لا الفهرسة. وهذه أكثر الخرافات شيوعاً. قد يظل عنوان URL المحظور مفهرساً، ويظهر عنواناً مجرداً بلا وصف، إذا أشارت إليه صفحات أخرى. ولإبقاء صفحة خارج الفهرس استخدم
noindex، ويجب ألا تكون الصفحة محظورة في robots.txt، وإلا فلن تزحف Google إليها لترى التوجيه. - أثبتت تجربة Patrick ذلك: لم يؤد حظر صفحتين مرتفعتي الترتيب إلى إلغاء فهرستهما؛ بل حافظتا على ترتيبهما وفقدتا المقتطفات المميزة والأوصاف. “Don’t block pages you want indexed. It hurts.” (ترجمة) «لا تحظر صفحات تريد فهرستها؛ فهذا يضرها».
- الأداة المناسبة لكل غرض: robots.txt للتحكم في الزحف، و
noindexللتحكم في الفهرسة، وكلمة المرور أو المصادقة للسرية؛ فـrobots.txt علني. - الحقول المدعومة:
user-agentوallowوdisallowوsitemap. ولا تدعم Google noindexوnofollowوcrawl-delayمنذ إيقافها في 1 سبتمبر 2019. - النطاق مضيف وبروتوكول ومنفذ واحد؛ ويحتاج كل نطاق فرعي أو بروتوكول إلى ملف مستقل.
- المطابقة: تفوز القاعدة الأكثر تحديداً، أي ذات المسار الأطول، وتفوز الأقل تقييداً، أي Allow، عند التعادل. حرفا البدل هما
*و$، وقيم المسارات حساسة لحالة الأحرف. ولا تُدمج المجموعة المحددة مع مجموعة*؛ بل تقف وحدها. - خلف الكواليس: حد الحجم 500 KiB، والتخزين المؤقت نحو 24 ساعة؛ وتعني 4xx، عدا 429، عدم وجود قيود. أما 5xx أو تعذر الوصول فيوقف الزحف نحو 12 ساعة، ثم يستخدم آخر نسخة سليمة نحو 30 يوماً، ثم تعود Google إلى عدم وجود قيود إذا استمر العطل. وتتبع Google ما لا يقل عن خمس عمليات إعادة توجيه من فئة 3xx، ثم تعتبر الوجهة استجابة 404.
- المحركات الأخرى: يلتزم Bing بـ
crawl-delay، وتتجاهله Google، وقد أوقف Yandex دعمه في فبراير 2018 واستبدله بإعداد معدل الزحف في Yandex Webmaster. وتجعل مجموعةbingbotBing يتجاهل إعدادات*. - برامج زحف الذكاء الاصطناعي، مثل GPTBot وOAI-SearchBot وOAI-AdsBot وChatGPT-User وGoogle-Extended وCCBot وClaudeBot وPerplexityBot وBytespider، رموز مستقلة ذات ضوابط منفصلة؛ فلا يمنع حظر أحدها البقية. ويعمل
ChatGPT-Userاستجابةً للمستخدم لا تلقائياً، لذلك قد لا ينطبق عليه robots.txt؛ كما أن امتثال برامج الزحف عموماً طوعي. - لا تحظر CSS وJavaScript اللازمين للعرض، ولا تستخدم الملف لإخفاء بيانات حساسة لأنه علني، وانتبه إلى توجيه
Disallow: /المتروك سهواً.
الوثائق الرسمية
وثائق المصادر الأولية من محركات البحث ومن المعيار نفسه.
- مقدمة إلى robots.txt — الوثيقة التمهيدية التي تشرح الفرق بين الزحف والفهرسة. ابدأ من هنا.
- إنشاء ملف robots.txt وإرساله / كيفية تفسير Google لمواصفة robots.txt — المرجع الكامل للحقول المدعومة والمجموعات والمطابقة وأحرف البدل وحد الحجم والتخزين المؤقت ورموز الحالة.
- منع الفهرسة في البحث باستخدام noindex — سبب وجوب عدم حظر صفحة
noindexفي robots.txt. - ملاحظة بشأن القواعد غير المدعومة في robots.txt، يوليو 2019 — إعلان انتهاء دعم
noindexوnofollowوcrawl-delayفي 1 سبتمبر 2019.
المعيار
- RFC 9309 — بروتوكول استبعاد الروبوتات — معيار IETF من Koster وIllyes وZeller وSassman، الصادر في سبتمبر 2022، ويتضمن اشتراط موضع
/robots.txtوقاعدة المطابقة الأطول وحد التحليل 500 KiB وملاحظة اعتبارات الأمان.
Bing / Microsoft
- إرشادات Bingbot — توثق إرشادات Bing Webmaster الحالية قيم
crawl-delayمن ثانية واحدة إلى 20 ثانية. - كيفية إنشاء ملف robots.txt، مساعدة Bing Webmaster Tools — إرشادات Bing لملف robots.txt وأداة اختباره.
اقتباسات من المصدر
تصريحات موثقة من Google وBing ومعيار RFC. ينقلك كل رابط عميقاً إلى المقطع المقتبس في صفحة المصدر.
Google — الزحف لا الفهرسة
- “This is used mainly to avoid overloading your site with requests; it is not a mechanism for keeping a web page out of Google. To keep a web page out of Google, block indexing with
noindexor password-protect the page.” (ترجمة) «يُستخدم هذا أساساً لتجنب إثقال موقعك بالطلبات، وليس وسيلة لإبقاء صفحة ويب خارج Google. ولإبقاء صفحة خارج Google، امنع فهرستها باستخدامnoindexأو احمها بكلمة مرور». — وثائق Google Search Central. الانتقال إلى الاقتباس - “While Google won’t crawl or index the content blocked by a robots.txt file, we might still find and index a disallowed URL if it is linked from other places on the web.” (ترجمة) «مع أن Google لن تزحف إلى المحتوى المحظور بملف robots.txt ولن تفهرسه، فقد نعثر على عنوان URL محظور ونفهرسه إذا أشارت إليه مواضع أخرى على الويب». الانتقال إلى الاقتباس
- “If your web page is blocked with a robots.txt file, its URL can still appear in search results, but the search result won’t have a description.” (ترجمة) «إذا حظر ملف robots.txt صفحة الويب، فقد يظل عنوان URL ظاهراً في نتائج البحث، لكن النتيجة لن تحمل وصفاً». الانتقال إلى الاقتباس
Google — لماذا يجب أن تظل صفحة noindex قابلة للزحف؟
- “For the
noindexrule to be effective, the page or resource must not be blocked by a robots.txt file, and it has to be otherwise accessible to the crawler. If the page is blocked by a robots.txt file or the crawler can’t access the page, the crawler will never see thenoindexrule, and the page can still appear in search results, for example if other pages link to it.” (ترجمة) «لا تكون قاعدةnoindexنافذة إلا إذا لم يمنع robots.txt الصفحة أو المورد، وكان بوسع برنامج الزحف الوصول إليه من الجوانب الأخرى. فإن حُجبت الصفحة أو تعذر بلوغها، فلن يطّلع الزاحف على قاعدةnoindexأبداً، وقد تبقى الصفحة في نتائج البحث، كأن تشير إليها صفحات أخرى». — وثائق Google Search Central. الانتقال إلى الاقتباس
Google — الموضع والنطاق والمواصفة
- “The rules listed in the robots.txt file apply only to the host, protocol, and port number where the robots.txt file is hosted.” (ترجمة) «تنحصر القواعد الواردة في robots.txt في المضيف والبروتوكول ورقم المنفذ الذي يستضيف الملف». الانتقال إلى الاقتباس
- “Google can’t index the content of pages which are disallowed for crawling, but it may still index the URL and show it in search results without a snippet.” (ترجمة) «لا يمكن لـGoogle فهرسة محتوى الصفحات الممنوع زحفها، لكنه قد يدرج عنوان URL نفسه ويعرضه في نتائج البحث من دون مقتطف». الانتقال إلى الاقتباس
- “When matching robots.txt rules to URLs, crawlers use the most specific rule based on the length of the rule path. In case of conflicting rules, including those with wildcards, Google uses the least restrictive rule.” (ترجمة) «حين تطابق برامج الزحف قواعد robots.txt مع عناوين URL، تختار أكثر القواعد تحديداً بحسب طول المسار. وإذا تعارضت قواعد، حتى التي تضم أحرف بدل، يختار Google أقلها تقييداً». الانتقال إلى الاقتباس
- “
*designates 0 or more instances of any valid character.$designates the end of the URL.” (ترجمة) «يشير*إلى صفر أو أكثر من أي محرف صالح، وتشير$إلى نهاية عنوان URL». الانتقال إلى الاقتباس - “The field name (
disallow) is case-insensitive, but its value is case-sensitive.” (ترجمة) «لا يراعي اسم الحقل (disallow) حالة الأحرف، في حين تراعيها قيمته». الانتقال إلى الاقتباس
Google — الحجم والتخزين المؤقت ورموز الحالة
- “Google enforces a robots.txt file size limit of 500 kibibytes (KiB). Content which is after the maximum file size is ignored.” (ترجمة) «يفرض Google على ملف robots.txt حداً حجمه 500 كيبيبايت (KiB)، ويتجاهل كل محتوى يتجاوز ذلك الحد». الانتقال إلى الاقتباس
- “Google generally caches the contents of robots.txt file for up to 24 hours, but may cache it longer in situations where refreshing the cached version isn’t possible.” (ترجمة) «يحتفظ Google عادةً بمحتوى robots.txt في الذاكرة المؤقتة حتى 24 ساعة، وقد يحتفظ به مدة أطول إذا تعذر تحديث النسخة المخزنة». الانتقال إلى الاقتباس
- “Google’s crawlers treat all 4xx errors, except 429, as if a valid robots.txt file didn’t exist. This means that Google assumes that there are no crawl restrictions.” (ترجمة) «تتعامل زواحف Google مع كل أخطاء 4xx، ما عدا 429، كأن ملف robots.txt صالحاً غير موجود؛ وبذلك تفترض أن الزحف بلا قيود». الانتقال إلى الاقتباس
- “For the first 12 hours, Google stops crawling the site but keeps trying to fetch the robots.txt file. If Google can’t fetch a new version, for the next 30 days Google will use the last good version, while still trying to fetch a new version.” (ترجمة) «في أول 12 ساعة يوقف Google زحف الموقع، لكنه يواصل محاولة جلب robots.txt. وإذا لم يجلب نسخة جديدة، يستعمل النسخة السليمة الأخيرة في الأيام الثلاثين التالية، مع مواصلة محاولة التحديث». الانتقال إلى الاقتباس
- “If the errors are still not fixed after 30 days: If the site is generally available to Google, Google will behave as if there is no robots.txt file (but still keep checking for a new version).” (ترجمة) «إذا لم تُصلح الأخطاء بعد 30 يوماً وكان الموقع متاحاً لـGoogle عموماً، فسيتصرف كأن robots.txt غير موجود، مع الاستمرار في البحث عن نسخة جديدة». الانتقال إلى الاقتباس
- “User agent specific groups and global groups (
*) are not combined.” (ترجمة) «لا يجمع النظام بين المجموعات الخاصة ببرنامج زحف والمجموعات العامة (*)». الانتقال إلى الاقتباس
RFC 9309 — المعيار
- “This document specifies and extends the ‘Robots Exclusion Protocol’ method originally defined by Martijn Koster in 1994 for service owners to control how content served by their services may be accessed, if at all, by automatic clients known as crawlers.” (ترجمة) «تضع هذه الوثيقة مواصفات طريقة بروتوكول استبعاد الروبوتات التي عرّفها Martijn Koster أول مرة عام 1994 وتوسعها، لتمكين مالكي الخدمات من ضبط كيفية وصول العملاء الآليين، المعروفين بالزواحف، إلى المحتوى الذي تقدمه خدماتهم، إن كان الوصول مسموحاً أصلاً». — RFC 9309 (Koster وIllyes وZeller وSassman). الانتقال إلى الاقتباس
- “The rules MUST be accessible in a file named ‘/robots.txt’ (all lowercase) in the top-level path of the service.” (ترجمة) «يجب إتاحة القواعد في ملف يحمل الاسم /robots.txt بأحرف صغيرة كلها، داخل المسار الأعلى للخدمة». الانتقال إلى الاقتباس
- “The Robots Exclusion Protocol is not a substitute for valid content security measures. Listing paths in the robots.txt file exposes them publicly and thus makes the paths discoverable.” (ترجمة) «لا يغني بروتوكول استبعاد الروبوتات عن إجراءات سليمة لحماية المحتوى؛ لأن ذكر المسارات في robots.txt ينشرها على الملأ ويتيح اكتشافها». الانتقال إلى الاقتباس
Bing — crawl-delay
- توثق إرشادات Bingbot نطاقاً لـ
crawl-delayمن ثانية واحدة إلى 20 ثانية. وهذه إرشادات خاصة بـBing، وليست امتداداً تعالجه Google.
Patrick Stox — تجربة الحظر (تجربتي المنشورة في Ahrefs، وراجعها Joshua Hardwick)
- “We lost a position here or there and all of the featured snippets for the pages.” (ترجمة) «تراجعنا مرتبة هنا أو هناك، وفقدنا جميع المقتطفات المميزة الخاصة بالصفحتين». الانتقال إلى الاقتباس
- “Both pages lost some traffic. But it didn’t result in much change to our traffic estimate like I was expecting.” (ترجمة) «خسرت كلتا الصفحتين قدراً من الزيارات، إلا أن تقديرنا للزيارات لم يتغير بالمقدار الذي توقعته». الانتقال إلى الاقتباس
- “Don’t block pages you want indexed. It hurts. Not as bad as you might think it does—but it still hurts.” (ترجمة) «لا تمنع الزحف إلى الصفحات التي تريد فهرستها؛ فذلك مؤذٍ، وإن لم يكن بالسوء الذي قد تظنه، لكنه يظل مؤذياً». الانتقال إلى الاقتباس
robots.txt — مرجع سريع للصياغة
التوجيهات التي تدعمها Google
| التوجيه | وظيفته | مثال |
|---|---|---|
User-agent: | يبدأ مجموعة ويسمي برامج الزحف التي تنطبق عليها. | User-agent: Googlebot |
Disallow: | يحدد المسارات التي يجب ألا يطلبها برنامج الزحف. | Disallow: /cart/ |
Allow: | ينشئ استثناءً مسموحاً به داخل Disallow. | Allow: /cart/help |
Sitemap: | عنوان URL مطلق لخريطة موقع، مستقل عن المجموعات. | Sitemap: https://x.com/sitemap.xml |
الأحرف الخاصة
| الرمز | المعنى |
|---|---|
* | داخل المسار: صفر أو أكثر من أي حرف. وبوصفه وكيل مستخدم: كل برامج الزحف. |
$ | يثبت نهاية عنوان URL؛ ويحظر Disallow: /*.pdf$ العناوين التي تنتهي بـ.pdf. |
# | تعليق؛ يُتجاهل كل ما يأتي بعده في السطر. |
/ | يجب أن تبدأ به قيم المسارات، ويحظر Disallow: / الموقع كله. |
قواعد المطابقة
- تفوز القاعدة الأكثر تحديداً، أي ذات المسار الأطول.
- عند التعادل تفوز الأقل تقييداً؛ أي يتغلب
AllowعلىDisallow. - قيم المسارات حساسة لحالة الأحرف (
/Folder/≠/folder/)، بينما أسماء الحقول ووكلاء المستخدم غير حساسة لها. - يلتزم برنامج الزحف بمجموعة واحدة فقط، هي المجموعة ذات وكيل المستخدم الأكثر تحديداً الذي يطابقه.
لا تدعمها Google منذ إيقافها في 1 سبتمبر 2019: noindex وnofollow وcrawl-delay. ولا يزال Bing يلتزم بـcrawl-delay بوصفه درجة نسبية للإبطاء لا عدداً حرفياً من الثواني. أما Yandex فأوقف دعمه في 22 فبراير 2018؛ واضبط معدل الزحف في Yandex Webmaster بدلاً منه.
خلف الكواليس لدى Google
- حد الحجم 500 KiB، ويُتجاهل الباقي؛ والتخزين المؤقت نحو 24 ساعة.
- تعني 4xx، عدا 429، عدم وجود قيود. وتؤدي 5xx أو تعذر الوصول إلى وقف الزحف نحو 12 ساعة، ثم استخدام آخر نسخة سليمة نحو 30 يوماً، ثم عدم وجود قيود إذا استمر العطل. وتتبع Google خمس قفزات 3xx على الأقل قبل معاملتها كاستجابة 404.
- لا تُدمج مجموعة
User-agentمحددة مع مجموعة*أبداً.
أنماط شائعة
# Block a folder for everyone
User-agent: *
Disallow: /admin/
# Block all PDFs
User-agent: *
Disallow: /*.pdf$
# Block AI training crawler (won't stop search bots)
User-agent: GPTBot
Disallow: /
# Point to the sitemap
Sitemap: https://example.com/sitemap.xml قائمة تدقيق ملف robots.txt
- يوجد الملف في
https://yourdomain.com/robots.txtبالضبط، في الجذر وبأحرف صغيرة، ويعيد استجابة200. - لكل مضيف وبروتوكول ملف مستقل، بما في ذلك
wwwومن دونه والنطاقات الفرعية وhttpمقابلhttps. - لا يوجد
Disallow: /عارض يحظر الموقع كله، وهو من بقايا بيئة الاختبار الشائعة. - لا تحظر صفحة تريد أيضاً تطبيق
noindexعليها؛ إذ يجب أن تزحف Google إليها لترى التوجيه. - لا تستخدم robots.txt لإلغاء فهرسة الصفحات؛ فهذه وظيفة
noindex. - لا تحظر CSS وJavaScript الضروريين للعرض.
- لا توجد أسطر
noindexأوnofollowأوcrawl-delayموجهة إلى Google؛ فهي غير مدعومة منذ 1 سبتمبر 2019. - لا توجد مسارات حساسة مدرجة؛ فالملف علني ويعلن ما يسميه، لذا استخدم المصادقة بدلاً منه.
- اختُبرت قواعد أحرف البدل (
*و$) على عناوين URL حقيقية، مع تذكر أن قيم المسارات حساسة لحالة الأحرف. - إذا كان لديك قسم
User-agent: bingbotأو قسم خاص ببرنامج آخر، فهو يكرر كل توجيه تريد استمرار تطبيقه؛ لأن المجموعات الخاصة تتجاهل إعدادات*. - يوجد توجيه
Sitemap:بعنوان URL مطلق. - حجم الملف أقل من 500 KiB.
- جرى التحقق منه في تقرير robots.txt في Search Console، مع فحص عينة من عناوين الحالة “Indexed, though blocked by robots.txt” (ترجمة) «مفهرس، رغم الحظر بواسطة robots.txt» للتأكد من أنها عناوين غير نافعة فعلاً وليست صفحات أردت الزحف إليها.
النماذج الذهنية
1. التحكم في الزحف لا الفهرسة. لا يحدد robots.txt إلا ما إذا كان يجوز لبرنامج الزحف جلب عنوان URL. ولا يقرر ما إذا كان العنوان سيُفهرس. إذا رسخت هذه الفكرة اختفت معظم أخطاء robots.txt: حظر عنوان URL لا يعني إزالته من Google.
2. تفوز القاعدة الأكثر تحديداً، وتحسم الأقل تقييداً التعادل.
عندما تنطبق قاعدتان على عنوان URL نفسه، تفوز القاعدة ذات المسار الأطول. وعند التعادل الحقيقي يتغلب Allow على Disallow. تفسر هذه القاعدة وحدها معظم الحالات المحيرة التي يبدو فيها عنوان URL قابلاً للزحف أو محظوراً على غير المتوقع.
3. الحظر مقابل noindex — شجرة قرار.
- هل تريد إخراجه من الفهرس؟ ← استخدم
noindex، وتأكد من أنه غير محظور في robots.txt كي تزحف Google إليه وترى التوجيه. - هل تريد وقف هدر الزحف عليه ولا يهمك ظهور عنوانه مجرداً؟ ← استخدم
Disallowفي robots.txt. - هل تريده خاصاً حقاً؟ ← استخدم المصادقة. ملف robots.txt علني ولا يخفي شيئاً.
لا تجمع أبداً بين الحظر وnoindex لعنوان URL نفسه؛ فالحظر يمنع رؤية noindex وقد تبقى الصفحة في الفهرس.
4. توفر الملف أمر حرج في الإنتاج.
لرمز استجابة HTTP على /robots.txt أثر في الموقع كله: تعني 4xx «لا قيود»، لكن 5xx قد توقف زحف Google إلى الموقع كله نحو 12 ساعة. تعامل مع /robots.txt مثل أي نقطة نهاية حرجة أخرى.
جلب robots.txt وتدقيقه عبر المضيفين
يقتصر robots.txt على مضيف وبروتوكول ومنفذ بعينها، لذلك يسهل نسيان أحد المتغيرات. تجلب الأوامر التالية كل متغيرات النطاق وتعلّم ما يعيد خطأ أو404.
macOS / Linux
for url in "https://example.com/robots.txt" "https://www.example.com/robots.txt" "http://example.com/robots.txt"; do
code=$(curl -s -o /dev/null -w "%{http_code}" "$url")
echo "$code $url"
doneWindows (PowerShell)
$urls = "https://example.com/robots.txt","https://www.example.com/robots.txt","http://example.com/robots.txt"
foreach ($u in $urls) {
$r = Invoke-WebRequest -Uri $u -UseBasicParsing -SkipHttpErrorCheck
Write-Host "$($r.StatusCode) $u"
}النتيجة المطلوبة هي 200 في كل سطر. وتعني 4xx أن Google تعامل ذلك المضيف والبروتوكول بلا قيود، وهو مقبول إذا كان مقصوداً؛ أما 5xx فهو الخطر، إذ قد يوقف الزحف إلى ذلك المضيف.
تعبير نمطي لاستخراج جميع مسارات Disallow وAllow
يفيد ذلك في مقارنة robots.txt قبل التعديل وبعده، أو في كتابة فحص آلي لقائمة عناوين URL تهمك.
import re
robots_txt = open("robots.txt").read()
# Captures the directive (Disallow/Allow) and its path value
pattern = re.compile(r'^(Disallow|Allow):\s*(\S*)', re.IGNORECASE | re.MULTILINE)
for directive, path in pattern.findall(robots_txt):
print(f"{directive}: {path or '(empty — matches nothing)'}")- يلتقط
(Disallow|Allow)التوجيه الذي انطبق. - يلتقط
\s*(\S*)قيمة المسار، مع السماح بـDisallow:فارغ، وهو ما تعامله Google بوصفه «لا تحظر شيئاً». - يراعي
re.IGNORECASEأن أسماء الحقول غير حساسة لحالة الأحرف، مع أن قيم المسارات حساسة لها؛ فلا تحول المسارات نفسها إلى أحرف صغيرة عند توسيع الشيفرة.
مقتطف لوحدة تحكم Chrome DevTools
الصق المقتطف في لوحة Console (F12 ← Console) في أي صفحة لجلب ملف robots.txt لذلك المضيف وطباعته من دون مغادرة علامة التبويب:
fetch(new URL('/robots.txt', location.origin))
.then(r => r.text())
.then(t => console.log(t))
.catch(e => console.error('No robots.txt or fetch blocked:', e));تطبيق مصغر في الإشارات المرجعية: الانتقال إلى robots.txt للموقع الحالي
احفظ الشيفرة التالية إشارةً مرجعية واجعلها عنوان URL، بسحبها إلى شريط الإشارات أو إضافتها يدوياً ولصق الشيفرة في حقل URL، ثم انقر عليها في أي صفحة:
javascript:(function(){var u=new URL('/robots.txt',location.origin).href;location.href=u;})(); أدوات اختبار robots.txt والتحقق منه
- Google Search Console — تقرير robots.txt ضمن الإعدادات: واجهة Google الحالية لعرض ملف robots.txt الذي جلبته وحالته ومشكلات التحليل. وقد أوقفت أداة اختبار robots.txt المستقلة القديمة، وأصبح الاختبار داخل هذا التقرير.
- فحص عنوان URL في GSC: تحقق مما إذا كان عنوان بعينه محظوراً عن الزحف وكيف تراه Google حالياً.
- الحالة “Indexed, though blocked by robots.txt” في تقرير الصفحات بـGSC (ترجمة) «مفهرس، رغم الحظر بواسطة robots.txt»: تعرض العناوين التي فهرستها Google رغم الحظر كي تحدد ما يمثل مشكلة فعلية.
- Bing Webmaster Tools — أداة اختبار robots.txt وإرشاداته: نظير Bing للتحقق من الملف مقابل bingbot.
- Ahrefs Site Audit أو Screaming Frog SEO Spider: ازحف إلى موقعك لمعرفة العناوين المحظورة، وكشف الصفحات المحظورة خطأً، واختبار مطابقة القواعد للعناوين المقصودة.
- أي متصفح: أبسط فحص هو فتح
yourdomain.com/robots.txtوقراءته. وتذكر أن الجميع يستطيعون فعل ذلك.
حادثة: نشرت Disallow: / في بيئة الإنتاج
هذه من بقايا بيئة الاختبار المعتادة: يُنشأ robots.txt لحظر بيئة مرحلية ثم يُنشر في الموقع الحي، فيحظر User-agent: * / Disallow: / الموقع كله. اتبع خطوات الاستعادة بالترتيب التالي.
الخطوة 1 — تأكد من نطاق التأثير.
اجلب https://yourdomain.com/robots.txt فوراً بالمتصفح أو باستخدام curl -I. إذا وجدت Disallow: / مجرداً تحت User-agent: * من دون Allow: أضيق يستثني شيئاً، فكل برنامج زحف يحترم robots.txt محظور حالياً عن الموقع كله. انتقل إلى الخطوة 2.
الخطوة 2 — أصلح الملف وتأكد من النشر.
استبدله بالقواعد المقصودة، أو بحد أدنى User-agent: * / Allow: / إذا لم تكن متأكداً مما ينبغي، ثم انشره. أعد جلب عنوان URL الحي؛ لا تثق بلوحة النشر بل بالاستجابة الفعلية. إذا بقي Disallow: / القديم، فالمشكلة في التخزين المؤقت أو شبكة CDN لا في الشيفرة؛ امسح النسخة المخزنة مؤقتاً لذلك المسار وحده قبل المتابعة.
الخطوة 3 — تحقق من مدة حظر الموقع. يحتفظ Google بملف robots.txt في ذاكرته المؤقتة مدة قد تصل إلى نحو 24 ساعة، لذلك لن يلتقط الإصلاح المنشور للتو فوراً. افتح تقرير robots.txt في Search Console لمعرفة آخر مرة جلب فيها Google الملف وما إذا كان قد رأى النسخة المصححة بالفعل. وإذا لم يرها بعد، فلا يوجد خيار يدوي لطلب إعادة جلب الملف؛ إما أن تنتظر، أو تستخدم فحص عنوان URL لأهم صفحاتك ثم تختار «طلب الفهرسة» بعد التأكد من إصلاح الملف.
الخطوة 4 — تحقق من وقوع ضرر فعلي.
- إذا استمر الحظر ساعات، فتوقع أثراً ظاهراً ضئيلاً أو معدوماً؛ إذ لا يحذف Google الصفحات من الفهرس لمجرد أن عملية زحف واحدة مُنعت.
- إذا استمر أياماً أو أسابيع، فتحقق في تقرير الصفحات في Search Console من ارتفاع حالة “Blocked by robots.txt” (ترجمة) «محظور بواسطة robots.txt»، ومن انتقال صفحات كانت مفهرسة سابقاً إلى تلك الحالة. وفي تجربة أجريتها بحظر صفحتين تحتلان ترتيباً مرتفعاً، بقيتا مفهرستين وحافظتا إلى حد كبير على ترتيبهما، لكنهما فقدتا إشارات الحداثة والمقتطفات المميزة؛ فالضرر يتراكم مع استمرار الحظر ولا يحدث فوراً.
- إذا رأيت الترتيب أو مرات الظهور تنخفض فعلياً في تقرير الأداء في Search Console خلال فترة الحظر، فهذا يؤكد أن الواقعة أحدثت أثراً حقيقياً ولم تكن مجرد إنذار.
الخطوة 5 — تحقق من نجاح الإصلاح ولا تفترض ذلك. اختبر المسارات المحددة التي تهمك باستخدام أداة اختبار Robots.txt مع الملف المصحح. إذا ظهر أي منها محظوراً، فلم تنتهِ بعد؛ ارجع إلى الخطوة 2.
أخطاء محددة يجب تجنبها
حظر صفحة في robots.txt مع رغبتك أيضاً في تطبيق noindex عليها.
سبب الخطأ: لا يعمل توجيه noindex إلا إذا استطاع برنامج الزحف قراءة الصفحة ورؤيته. فإذا حظرت الصفحة، فلن يزحف إليها Google ولن يرى noindex، وقد تبقى في الفهرس إذا كانت هناك روابط تشير إليها. ما ينبغي فعله: اترك الصفحة قابلة للزحف وضع noindex في الصفحة نفسها، إما في وسم meta وإما في ترويسة X-Robots-Tag.
استخدام robots.txt أداةً لإلغاء الفهرسة.
سبب الخطأ: يتحكم robots.txt في الزحف لا في الفهرسة. وتنص وثائق Google بوضوح على أنه “is not a mechanism for keeping a web page out of Google.” (ترجمة) «ليس آليةً لمنع ظهور صفحة ويب في Google». وقد يظل عنوان URL المحظور ظاهراً في النتائج، ولكن من دون وصف. ما ينبغي فعله: استخدم noindex، مع إبقاء الصفحة غير محظورة، لإزالتها فعلياً من الفهرس.
حظر ملفات CSS أو JavaScript الضرورية للعرض.
سبب الخطأ: يعرض Google صفحاتك بمتصفح حقيقي ليراها كما يراها المستخدم. وإذا حظرت الموارد التي تبني التخطيط أو تضيف المحتوى، فقد يرى Google صفحة معطلة أو فارغة. ما ينبغي فعله: اترك /assets/ و/static/، أو أي مسار توجد فيه ملفات CSS وJavaScript لديك، قابلة للزحف؛ فنموذج robots.txt الذي توفره Google يعيد السماح بهذه الموارد صراحةً.
إدراج مسارات حساسة في robots.txt بقصد «إخفائها».
سبب الخطأ: الملف علني ويمكن لأي شخص قراءته، ولذلك فإن Disallow: /admin-panel/ لا يفعل سوى إخبار الجميع بوجود ذلك المجلد. وتنص RFC 9309 بوضوح على أن البروتوكول “is not a substitute for valid content security measures.” (ترجمة) «ليس بديلاً عن تدابير سليمة لأمن المحتوى». ما ينبغي فعله: استخدم المصادقة أو الحماية بكلمة مرور لأي شيء يجب أن يظل خاصاً بالفعل.
الالتباس بشأن الشرطة المائلة الختامية في مسار Disallow.
سبب الخطأ: يحظر Disallow: /folder، من دون شرطة مائلة ختامية، كلاً من /folder و/folder/ و/folder-name/ و/folder.html؛ أي كل ما يبدأ بتلك السلسلة، لأن المطابقة تعتمد البادئة لا المجلد. ما ينبغي فعله: أضف الشرطة المائلة الختامية (Disallow: /folder/) عندما تقصد المجلد وحده، واختبر سلوك مطابقة البادئة بدقة على عناوين URL الفعلية قبل النشر.
افتراض أن القواعد لا تراعي حالة الأحرف.
سبب الخطأ: أسماء الحقول لا تراعي حالة الأحرف، لكن قيم المسارات تراعيها؛ لذلك لا يؤثر Disallow: /Folder/ في /folder/. ما ينبغي فعله: طابق حالة الأحرف المستخدمة فعلياً في عناوين URL، ولا تفترض أن القاعدة «ينبغي» أن تعمل لمجرد أنها تبدو صحيحة للقارئ.
مشكلات شائعة
«حظرت هذه الصفحة، لكنها لا تزال تظهر في Google»
- العَرَض: يظل عنوان URL ظاهراً في نتائج البحث، وغالباً من دون وصف، رغم حظره في robots.txt.
- السبب المرجح: توجد روابط إلى عنوان URL من مواضع أخرى على الويب أو داخل موقعك، ولذلك فهرس Google العنوان وحده من دون الزحف إلى محتواه. لم يكن حظر الزحف سيزيله أصلاً؛ فليست هذه وظيفة robots.txt.
- الإصلاح: إذا أردت إزالته، فأضف
noindexإلى الصفحة وتأكد من أنها غير محظورة في robots.txt، واسمح بالزحف إليها مؤقتاً إذا كانت محظورة الآن. وبعد أن يعيد Google الزحف إليها، تأكد من الإصلاح باستخدام فحص عنوان URL في Search Console.
«يعرض Search Console الحالة ‘Indexed, though blocked by robots.txt’» (ترجمة) «مفهرس رغم حظره بواسطة robots.txt»
- العَرَض: يشير تقرير الصفحات في GSC إلى هذه الحالة نفسها لعنوان URL واحد أو أكثر.
- السبب المرجح: غالباً لا ضرر في ذلك؛ فهي حالة شائعة لعناوين URL الخدمية، مثل سلة التسوق والمتغيرات المصفّاة أو متعددة الأوجه ومعلمات الجلسة، التي وصل إليها رابط في مكان ما ففُهرس عنوانها وحده رغم الحظر.
- الإصلاح: تحقق مما إذا كانت عناوين URL المشار إليها صفحات أردت فهرستها فعلاً. إن كانت عناوين غير مفيدة تحتوي على معلمات، فهذه الحالة متوقعة ولا تستحق الملاحقة. أما إذا ظهرت هنا صفحة تهمك، فقد وقعت في فخ «الحظر + noindex»؛ اجعلها قابلة للزحف مع
noindexبدلاً من ذلك.
«عدّلت robots.txt، لكن التغيير لا يبدو منشوراً»
- العَرَض: نشرت إصلاحاً، لكن أداةً ما أو Google لا يزال فيما يبدو يقرأ القواعد القديمة.
- السبب المرجح: يحتفظ Google بملف robots.txt في ذاكرته المؤقتة مدة قد تصل إلى نحو 24 ساعة، فلا يُلتقط التغيير فوراً. وقد تكون شبكة CDN أو الوكيل العكسي أمام موقعك، بشكل مستقل، تقدم نسخة قديمة مخزنة مؤقتاً من الملف نفسه.
- الإصلاح: تأكد أولاً من أن الملف الحي تغير فعلاً؛ اجلب
yourdomain.com/robots.txtمباشرة من دون المرور بذاكرة مؤقتة، أو اختبره باستخدام أداة اختبار Robots.txt. إذا كان الملف الحي صحيحاً، فالتأخير ناتج من ذاكرة Google المؤقتة ولا يحتاج سوى الوقت؛ راجع تقرير robots.txt في Search Console لمعرفة آخر موعد لجلبه.
«تقول أداة الاختبار إن المسار مسموح، لكن Google لا يزال لا يزحف إليه»
- العَرَض: يسمح robots.txt بعنوان URL بوضوح، لكن سجلات الخادم أو Search Console لا تعرض أي نشاط زحف حديث إليه.
- السبب المرجح: سماح robots.txt بالعنوان لا يضمن الزحف؛ فهو شرط لازم لكنه غير كافٍ. قد تكون الصفحة يتيمة لا تشير إليها روابط، أو غير مدرجة في خريطة الموقع، أو منخفضة الأولوية ببساطة في جدولة Google للزحف.
- الإصلاح: تأكد من إمكانية اكتشاف الصفحة، عبر الروابط الداخلية وإدراجها في خريطة الموقع، بدلاً من إعادة فحص robots.txt مرة أخرى؛ فالملف ليس موضع الاختناق هنا.
«لا تبدو قاعدة Disallow مطابقة لعناوين URL التي أتوقعها»
- العَرَض: قاعدة تبدو صحيحة لا تحظر عناوين URL المقصودة، أو تحظر عدداً أكبر مما قصدته.
- السبب المرجح: مراعاة حالة الأحرف (
/Folder/≠/folder/) أو مطابقة البادئة التي تشمل أكثر مما تتوقع (فإنDisallow: /folderيطابق أيضاً/folder-name/). - الإصلاح: أعد التحقق من حالة الأحرف الدقيقة في عناوين URL الحية، وأضف شرطة مائلة ختامية إذا كنت تقصد المجلد وحده. اختبر المسارات المحددة في أداة اختبار Robots.txt قبل الاعتماد على القاعدة.
«توقف Bing عن اتباع قواعدي الافتراضية بعدما أضفت قسماً لـ bingbot»
- العَرَض: يبدو أن Bing يتجاهل القواعد الموجودة تحت
User-agent: *التي كان يطبقها قبل أن تضيف مجموعةUser-agent: bingbot. - السبب المرجح: يطبق Bing، مثل Google، المجموعة المطابقة الأكثر تحديداً لبرنامج الزحف فقط. لذلك تجعل المجموعة الخاصة بـ
bingbotبرنامج Bing يتجاهل القواعد الافتراضية تحت*تماماً، باستثناء crawl-delay. - الإصلاح: كرر داخل مجموعة
bingbotكل توجيه ما زلت تريد تطبيقه؛ إذ يجب أن تكون المجموعة مكتفية بذاتها.
اختبارات التحقق
نفّذ هذه الاختبارات بعد تعديل robots.txt وقبل اعتبار التغيير مكتملاً.
الاختبار 1: الملف نفسه منشور وصحيح
- الاختبار المطلوب: نفّذ
curl -I https://yourdomain.com/robots.txt، أو افتح عنوان URL في متصفح، واختبره أيضاً بصورة مستقلة في أداة اختبار Robots.txt. - النتيجة المتوقعة:
HTTP/1.1 200، وأن تعرض الأداة القواعد نفسها التي قصدت نشرها. - تفسير الإخفاق: تعني أي حالة غير 200 أن الملف لا يمكن الوصول إليه كما هو متوقع، فراجع النشر والتوجيه. وإذا بدت القواعد صحيحة لكنها لا تطابق ما عدّلته، فعادةً ما تقدم ذاكرة مؤقتة، سواء في CDN أو ذاكرة Google التي تقارب 24 ساعة، نسخة قديمة.
- فترة المراقبة: فورية لرمز الحالة والمحتوى؛ انتظر حتى نحو 24 ساعة قبل استنتاج أن Google لم يلتقط التغيير.
- سبب التراجع: أن يعيد الملف حالة عدم العثور أو خطأ خادم على نحو غير متوقع، أو أن يعرض قواعد لم تقصد نشرها.
الاختبار 2: المسار المحدد الذي غيّرته يتصرف كما قصدت
- الاختبار المطلوب: الصق عنوان URL نفسه الذي أردت السماح به أو حظره في أداة اختبار Robots.txt، وتحقق من الحكم الخاص بـ Googlebot، وكذلك Bingbot إن كان ذا صلة.
- النتيجة المتوقعة: تعرض الأداة “allowed” (ترجمة) «مسموح» للمسار الذي أردت فتحه، أو “blocked” (ترجمة) «محظور» للمسار الذي أردت إغلاقه.
- تفسير الإخفاق: يعني الحكم المعاكس عادةً أن قاعدة أطول أو أكثر تحديداً في موضع آخر من الملف تتغلب على القاعدة التي أضفتها للتو؛ فابحث عن
AllowأوDisallowمنافس على مسار أقصر أو متداخل. - فترة المراقبة: فورية؛ فهذا فحص لمطابقة القواعد لا فحص لزحف حي.
- سبب التراجع: أن يعيد المسار المختبَر الحكم الخاطئ بعد تأكدك من مطابقة الملف الحي لما عدّلته.
الاختبار 3: الزحف فعلياً إلى صفحة ألغيت حظرها
- الاختبار المطلوب: استخدم فحص عنوان URL في Search Console للعنوان المحدد، وانظر إلى “Crawl allowed?” (ترجمة) «هل الزحف مسموح؟» وإلى تاريخ آخر زحف.
- النتيجة المتوقعة: “Crawl allowed: Yes” (ترجمة) «الزحف مسموح: نعم»، وتاريخ زحف لاحق لتغيير robots.txt.
- تفسير الإخفاق: ظهور “Crawl allowed: No” (ترجمة) «الزحف مسموح: لا» بعد اعتقادك أنك ألغيت الحظر يعني أن Google لا يزال يقرأ قواعد مخزنة مؤقتاً، أو أن قاعدة أخرى في الملف ما زالت تطابق المسار. وعدم ظهور تاريخ زحف جديد حتى الآن لا يعني الإخفاق بالضرورة؛ فقد لا يكون Google قد وصل إلى الصفحة بعد.
- فترة المراقبة: من أسبوعين إلى أربعة أسابيع كي يعيد Google الزحف فعلياً ويعكس التغيير، وقد تطول في المواقع الكبيرة أو منخفضة الأولوية.
- سبب التراجع: أن تعود قيمة “Crawl allowed” (ترجمة) «الزحف مسموح» إلى “No” (ترجمة) «لا» في فحص لاحق من دون تغيير robots.txt من جانبك؛ عندها افحص مشكلة في CDN أو التخزين المؤقت.
الاختبار 4: لم تحظر شيئاً آخر عن غير قصد
- الاختبار المطلوب: ازحف إلى موقعك باستخدام Ahrefs Site Audit أو Screaming Frog SEO Spider بعد التغيير، وقارن قائمة عناوين URL “blocked by robots.txt” (ترجمة) «المحظورة بواسطة robots.txt» قبل التغيير وبعده.
- النتيجة المتوقعة: ألا ينتقل بين القائمتين إلا عناوين URL التي قصدت حظرها أو إلغاء حظرها حديثاً، وألا يتغير شيء آخر.
- تفسير الإخفاق: ظهور صفحة غير متوقعة كمحظورة حديثاً يعني عادةً أن قاعدة بدل أو بادئة طابقت نطاقاً أوسع مما قصدت.
- فترة المراقبة: فورية؛ نفّذ هذا الزحف بعد النشر مباشرة.
- سبب التراجع: ظهور أي صفحة تعتمد عليها في الزيارات العضوية كمحظورة حديثاً.
مطالبات جاهزة للنسخ
الصق المحتوى الفعلي لملف robots.txt بعد كل مطالبة، وأضف إلى المطالبة الثانية قائمة عناوين URL التي تهمك.
راجِع ملف robots.txt بحثاً عن التعارضات والقواعد الخطرة
I'm going to paste a robots.txt file. Read it as a technical SEO would and
flag:
1. Any Disallow rule that conflicts with an Allow rule on the same or an
overlapping path (tell me which one wins under longest-match rules).
2. Any bare "Disallow: /" under a User-agent group — that blocks everything
for that crawler.
3. Any rule that would block commonly render-critical paths (CSS, JS, fonts,
images used for layout).
4. Any use of noindex, nofollow, or crawl-delay under a Google-facing
User-agent — these are not supported by Google.
5. Anything that looks like it's trying to hide a sensitive path (remember
this file is public).
Here is the file:
<paste robots.txt content>تحقق مما إذا كانت عناوين URL محددة قابلة للزحف والفهرسة بأمان
I want the following URLs to be crawlable AND indexable by Google. Given this
robots.txt file, tell me for each URL whether it would be blocked from
crawling, and separately remind me that robots.txt says nothing about
indexing — a URL can be blocked from crawling but still indexed if it's
linked elsewhere, and a URL can be crawlable but still noindexed via a meta
tag or header this file can't show you.
Robots.txt:
<paste robots.txt content>
URLs:
<paste list of URLs> موارد تستحق وقتك
مقالات ذات صلة كتبتها
- قصة حظر صفحتين مرتفعتي الترتيب باستخدام Robots.txt — تجربتي الخاصة؛ حظرت عمداً صفحتين من Ahrefs تحتلان ترتيباً مرتفعاً، وتتبعت ما حدث فعلياً للترتيب والزيارات. وهي الدليل على أن الحظر لا يساوي إلغاء الفهرسة.
- دليل المبتدئين إلى تحسين محركات البحث التقني — موضع robots.txt ضمن أساسيات الزحف والفهرسة.
- استراتيجيات تحسين محركات البحث للمؤسسات — إدارة robots.txt على نطاق واسع في المواقع الكبيرة.
محاضراتي
- كيف يعمل البحث (SlideShare) — شرحي لتسلسل الزحف ← العرض ← الفهرسة، وهو المسار الذي يتحكم robots.txt في بوابته عند خطوة الزحف. وينطبق التنبيه الدائم: “This is my understanding of systems… not going to be 100% complete or accurate.” (ترجمة) «هذا هو فهمي للأنظمة… ولن يكون كاملاً أو دقيقاً بنسبة 100%».
من كتاب آخرين
- Robots.txt وتحسين محركات البحث: كل ما تحتاج إلى معرفته — دليل Ahrefs المرجعي، كتبه Joshua Hardwick لا أنا، وهو مرجع شامل للصياغة والوصفات العملية.
- عند إلغاء فهرسة صفحات من بحث Google، استخدم Noindex لا Robots.txt — تغطية Search Engine Roundtable لإرشادات John Mueller: عندما تريد إخراج الصفحات من الفهرس، لا تحظرها باستخدام robots.txt بل استخدم noindex.
- Google يوضح لماذا قد تظل عناوين URL المحظورة بواسطة Robots.txt مفهرسة — تغطية Search Engine Journal لمثال Mueller عن «الإضافة إلى السلة»: قد تظل عناوين URL المحظورة مفهرسة، وغالباً لا تضر حالة “Indexed, though blocked by robots.txt” (ترجمة) «مفهرس رغم حظره بواسطة robots.txt» في الصفحات الخدمية.
- نصيحة من Bing بشأن Robots.txt: أدرج كل التوجيهات ذات الصلة إذا كان لديك قسم Bingbot — شرح Search Engine Land للمشكلة الخفية في قسم bingbot: تجعل المجموعة الخاصة به Bing يتجاهل القواعد الافتراضية ذات البدل، ولذلك يجب تكرار كل توجيه ما زلت تريد تطبيقه.
- نظرة عامة على برامج زحف OpenAI (GPTBot وOAI-SearchBot وChatGPT-User) — قائمة OpenAI الرسمية لرموز user-agent الخاصة ببرامج زحفها، مع أمثلة robots.txt لحظر التدريب والبحث وعمليات الجلب التي يبدأها المستخدم كلٌّ على حدة.
- r/TechSEO — مجتمع لتشخيص مشكلات الزحف والفهرسة وحالة “Indexed, though blocked by robots.txt” (ترجمة) «مفهرس رغم حظره بواسطة robots.txt».
اختبر نفسك: Robots.txt
خمسة أسئلة سريعة عمّا يتحكم فيه robots.txt وما لا يتحكم فيه. اختر إجابة لكل سؤال، ثم تحقق من إجاباتك.
سجل التغييرات
تم التحديث في 22 أغسطس 2026.
ملخص تحريري وتفاصيل التغيير المسجلة.تفاصيل التغيير
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
المقارنة الكاملة غير متاحة — لم تُؤرشف لقطة سابقة لهذه المراجعة.
تم التحديث في 13 أغسطس 2026.
ملخص تحريري وتفاصيل التغيير المسجلة.تفاصيل التغيير
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
المقارنة الكاملة غير متاحة — لم تُؤرشف لقطة سابقة لهذه المراجعة.
تم التحديث في 13 أغسطس 2026.
ملخص تحريري وتفاصيل التغيير المسجلة.تفاصيل التغيير
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
المقارنة الكاملة غير متاحة — لم تُؤرشف لقطة سابقة لهذه المراجعة.
تم التحديث في 30 يوليو 2026.
ملخص تحريري وتفاصيل التغيير المسجلة.تفاصيل التغيير
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
المقارنة الكاملة غير متاحة — لم تُؤرشف لقطة سابقة لهذه المراجعة.
تم التحديث في 19 يوليو 2026.
ملخص تحريري وتفاصيل التغيير المسجلة.تفاصيل التغيير
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
المقارنة الكاملة غير متاحة — لم تُؤرشف لقطة سابقة لهذه المراجعة.
تم التحديث في 18 يوليو 2026.
ملخص تحريري وتفاصيل التغيير المسجلة.تفاصيل التغيير
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
المقارنة الكاملة غير متاحة — لم تُؤرشف لقطة سابقة لهذه المراجعة.
Who's been ignoring my robots.txt?
This is live data from this site, not an illustration. My robots.txt
disallows /api/trap/, and the only link to it is invisible to
humans — so a compliant crawler will never request it. Every user-agent
below fetched it anyway. (Humans poking at it with curl show
up too; the user-agent usually gives them away.)