الآلية التي يتّبعها محرّك البحث Google في تفسير مواصفات ملف robots.txt
تتوافق برامج زحف Google المبرمَجة مع بروتوكول استبعاد برامج الروبوت (REP). وهذا يعني أنه قبل الزحف إلى موقع إلكتروني، تزحف برامج زحف Google إلى ملف robots.txt الخاص بالموقع الإلكتروني وتحلّله لاستخلاص معلومات حول أجزاء الموقع الإلكتروني التي يمكن الزحف إليها. ولا ينطبق بروتوكول REP على برامج زحف Google التي يتحكم فيها المستخدمون (مثل الاشتراكات في الخلاصات) أو برامج الزحف المستخدَمة لزيادة أمان المستخدمين (مثل تحليل البرامج الضارة).
ما المقصود بملف robots.txt؟
إذا كنت لا تريد أن تصل برامج الزحف إلى أقسام محدّدة من موقعك الإلكتروني، يمكنك إنشاء ملف robots.txt يتضمن القواعد المناسبة. وملف robots.txt هو ملف نصي بسيط يتضمّن قواعد تحدّد برامج الزحف التي يمكنها الوصول إلى موقعك الإلكتروني والأجزاء التي يُسمح لها بالوصول إليها. على سبيل المثال، قد يظهر ملف robots.txt الخاص بموقع example.com الإلكتروني على النحو التالي:
# This robots.txt file controls crawling of URLs under https://example.com. # All crawlers are disallowed to crawl files in the "includes" directory, such # as .css, .js, but Googlebot needs them for rendering, so Googlebot is allowed # to crawl them. User-agent: * Disallow: /includes/ User-agent: Googlebot Allow: /includes/ Sitemap: https://example.com/sitemap.xml
موقع الملف ونطاق الصلاحية
عليك وضع ملف robots.txt في دليل المستوى الأعلى على الموقع الإلكتروني، وباستخدام بروتوكول متوافق. والبروتوكولات المتوافقة مع خدمة "بحث Google" هي HTTP وHTTPS و"بروتوكول نقل الملفات". في البروتوكولَين HTTP وHTTPS، تجلب برامج الزحف ملف robots.txt باستخدام طلب GET
غير مشروط لبروتوكول HTTP. وفي "بروتوكول نقل الملفات"، تستخدم برامج الزحف توجيه RETR (RETRIEVE)
عاديًا من خلال تسجيل الدخول مع إخفاء الهوية.
لا يتم تطبيق القواعد المدرَجة في ملف robots.txt إلا على المضيف والبروتوكول ورقم المنفذ حيث تتم استضافة ملف robots.txt.
أمثلة على عناوين URL صالحة لملفات robots.txt
يتضمن الجدول التالي أمثلة على عناوين URL لملفات robots.txt ومسارات عناوين URL التي تصلح لها تلك العناوين.
أمثلة على عناوين URL لملفات robots.txt | |
---|---|
http://example.com/robots.txt |
صالح لما يلي:
|
http://www.example.com/robots.txt |
صالح لما يلي:
غير صالح لما يلي:
|
http://example.com/folder/robots.txt |
ملف robots.txt غير صالح. لا تتحقق برامج الزحف من ملفات robots.txt في الأدلة الفرعية. |
http://www.exämple.com/robots.txt |
صالح لما يلي:
غير صالح لما يلي: |
ftp://example.com/robots.txt |
صالح لما يلي:
غير صالح لما يلي: |
http://212.96.82.21/robots.txt |
صالح لما يلي:
غير صالح لما يلي: |
http://example.com:80/robots.txt |
صالح لما يلي:
غير صالح لما يلي: |
http://example.com:8181/robots.txt |
صالح لما يلي:
غير صالح لما يلي: |
التعامل مع الأخطاء ورموز حالة HTTP
عند طلب ملف robots.txt، يؤثر رمز حالة HTTP لاستجابة الخادم في آلية استخدام برامج زحف Google لملف robots.txt. ويلخّص الجدول التالي طريقة تعامل Googlebot مع ملفات robots.txt لرموز حالة HTTP المختلفة.
التعامل مع الأخطاء ورموز حالة HTTP | |
---|---|
2xx (success) |
تطلب رموز حالة HTTP التي تشير إلى نجاح العملية من برامج زحف Google معالجة ملف robots.txt كما تم توفيره من الخادم. |
3xx (redirection) |
يتّبع محرّك البحث Google ما لا يقل عن خمس قفزات إعادة توجيه على النحو المحدّد في RFC 1945، وبعد ذلك يتوقف ويعتبر العملية على أنها لا يتّبع محرّك البحث Google عمليات إعادة التوجيه المنطقية في ملفات robots.txt (عمليات إعادة التوجيه المستندة إلى الإطارات أو JavaScript أو تعديل بيانات التعريف). |
4xx (client errors) |
تتعامل برامج زحف Google مع جميع أخطاء |
5xx (server errors) |
بما أنّه تعذّر على الخادم تقديم استجابة محدّدة لطلب ملف robots.txt من محرّك بحث Google،
يفسّر Google مؤقتًا أخطاء الخادم
إذا اكتشفنا أنّ طريقة الإعداد غير الصحيحة لأحد المواقع الإلكترونية قد أدّت إلى عرض رمز حالة |
أخطاء أخرى | عند تعذُّر جلب ملف robots.txt بسبب حدوث مشاكل في نظام أسماء النطاقات أو في الشبكة، يتم التعامل مع هذه المشاكل على أنها خطأ في الخادم. ومن أمثلة هذه المشاكل حالات انتهاء المهلة، والاستجابات غير الصالحة، والاتصالات التي تمت إعادة ضبطها أو مقاطعتها، وأخطاء تجزئة معلومات HTTP. |
التخزين المؤقت
بشكل عام، يخزّن محرّك البحث Google محتوى ملف robots.txt لمدة تصل إلى 24 ساعة، ولكن قد يخزّنه
مؤقتًا لمدة أطول من ذلك في الحالات التي لا يكون من الممكن فيها إعادة تحميل النسخة المخزّنة مؤقتًا (على سبيل المثال، بسبب
حالات انتهاء المهلة أو أخطاء 5xx
). ويمكن مشاركة استجابة النسخة المخبأة من خلال برامج الزحف المختلفة.
ومن الممكن أن يزيد محرّك البحث Google مدة التخزين المؤقت أو يقللها استنادًا
إلى عناوين HTTP التي تتضمن عنصر max-age للتحكم في ذاكرة التخزين المؤقت.
تنسيق الملف
يجب أن يكون ملف robots.txt ملفًّا نصيًّا عاديًّا بالترميز UTF-8، ويجب فصل الأسطر باستخدام CR
أو CR/LF
أو LF
.
يتجاهل محرّك البحث Google الأسطر غير الصالحة في ملفات robots.txt، بما في ذلك علامة ترتيب وحدات البايت (BOM) الخاصة بيونيكود في بداية ملف robots.txt، ويستخدم الأسطر الصالحة فقط. على سبيل المثال، إذا كان المحتوى الذي تم تنزيله بتنسيق HTML بدلاً من قواعد robots.txt، سيحاول محرّك البحث Google تحليل المحتوى واستخراج القواعد وتجاهل كل العناصر الأخرى.
وبالمثل، إذا لم يكن ترميز الأحرف لملف robots.txt بتنسيق UTF-8، قد يتجاهل محرّك البحث Google الأحرف التي لا تشكّل جزءًا من نطاق UTF-8، ما قد يؤدي إلى عرض قواعد robots.txt غير صالحة.
تفرض Google حاليًا حدًا أقصى لحجم ملف robots.txt يبلغ 500 كيبيبايت (KiB). ويتم تجاهل المحتوى الذي يتخطّى الحد الأقصى لحجم الملف. ويمكنك خفض حجم ملف robots.txt من خلال دمج التوجيهات التي قد تؤدي إلى زيادة حجم ملف robots.txt. على سبيل المثال، ضَع المواد المستبعدة في دليل منفصل.
البنية
تتألف سطور robots.txt الصالحة من حقل وعلامة النقطتين وقيمة. وتكون المسافات اختيارية (ولكن يُنصح باستخدامها لتحسين إمكانية القراءة). يتم تجاهل المسافة البيضاء في بداية السطر ونهايته. لتضمين التعليقات، اكتب قبلها الحرف #
. وتجدر الإشارة إلى أنه سيتم تجاهل جميع الأحرف التي تلي الحرف #
. التنسيق العام هو <field>:<value><#optional-comment>
.
يتيح محرّك البحث Google استخدام الحقول التالية:
user-agent
: يحدّد الزاحف الذي تنطبق عليه القواعدallow
: مسار عنوان URL يمكن الزحف إليهdisallow
: مسار عنوان URL لا يُسمح بالزحف إليهsitemap
: عنوان URL الكامل لخريطة الموقع
يُطلق على حقلَي allow
وdisallow
أيضًا اسم التوجيهات.
ويتم تحديد هذه التوجيهات في شكل directive: [path]
حيث يكون [path]
اختياريًا. وحسب الإعدادات التلقائية، لا تُفرَض أي قيود على برامج الزحف المحددة في ما يتعلق بعملية الزحف. تتجاهل برامج الزحف التوجيهات التي لا تحتوي على [path]
.
ترتبط قيمة [path]
، في حال تحديدها، بجذر الموقع الإلكتروني الذي تم جلب ملف robots.txt منه (باستخدام البروتوكول ورقم المنفذ والمضيف وأسماء النطاقات نفسها).
يجب أن تبدأ قيمة المسار بـ /
لتحديد الجذر، وتكون القيمة حساسة لحالة الأحرف. اطّلِع على مزيد من المعلومات حول مطابقة عنوان URL استنادًا إلى قيم المسارات.
user-agent
يحدّد سطر user-agent
الزاحف التي تنطبق عليه القواعد. راجِع برامج الزحف من Google وسلاسل وكيل المستخدم للحصول على قائمة شاملة بسلاسل وكيل المستخدم التي يمكنك استخدامها في ملف robots.txt.
قيمة السطر user-agent
غير حساسة لحالة الأحرف.
disallow
يحدّد التوجيه disallow
المسارات التي يجب ألا تصل إليها برامج الزحف المحدّدة في سطر وكيل المستخدم الذي يتم جمعه مع التوجيه disallow
.
وتتجاهل برامج الزحف التوجيه الذي لا يتضمن مسارًا.
قيمة التوجيه disallow
حسّاسة لحالة الأحرف.
الاستخدام:
disallow: [path]
allow
يحدّد التوجيه allow
المسارات التي يمكن لبرامج الزحف المحدّدة الوصول إليها. وعند عدم تحديد أي مسار، يتم تجاهل التوجيه.
قيمة التوجيه allow
حساسة لحالة الأحرف.
الاستخدام:
allow: [path]
sitemap
يتيح محرّكا البحث Google وBing وغيرهما من محرّكات البحث الرئيسية استخدام الحقل sitemap
في ملف robots.txt على النحو المحدّد في sitemaps.org.
قيمة الحقل sitemap
حساسة لحالة الأحرف.
الاستخدام:
sitemap: [absoluteURL]
يشير السطر [absoluteURL]
إلى موقع ملف Sitemap أو ملف فهرس Sitemap.
ويجب أن يكون ذلك عنوان URL مؤهّلاً بالكامل، بما في ذلك البروتوكول والمضيف، وليس ضروريًا أن
يكون بترميز عنوان URL. ولا يُشترط أن يكون عنوان URL على مضيف ملف robots.txt نفسه. ويمكنك
تحديد عدة حقول sitemap
. ولا يكون حقل ملف Sitemap مرتبطًا بأي وكيل مستخدم محدّد، ويمكن لجميع برامج الزحف تتبُّعه شرط ألا يكون الزحف إليه ممنوعًا.
مثلاً:
user-agent: otherbot disallow: /kale sitemap: https://example.com/sitemap.xml sitemap: https://cdn.example.org/other-sitemap.xml sitemap: https://ja.example.org/テスト-サイトマップ.xml
تجميع الأسطر والقواعد
يمكنك تجميع القواعد التي تنطبق على عدّة برامج وكيل المستخدم من خلال تكرار أسطر user-agent
لكل زاحف.
مثلاً:
user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h
في هذا المثال، هناك أربع مجموعات مختلفة من القواعد:
- مجموعة لوكيل المستخدم "a"
- مجموعة لوكيل المستخدم "b"
- مجموعة لبرنامجَي وكيل المستخدم "e" و"f".
- مجموعة لوكيل المستخدم "h"
للحصول على الوصف الفني للمجموعة، راجِع القسم 2.1 من REP.
ترتيب الأسبقية لوكلاء المستخدم
هناك مجموعة واحدة فقط صالحة لبرنامج زحف محدّد. تحدّد برامج الزحف من Google مجموعة
القواعد الصحيحة عن طريق البحث في ملف robots.txt عن المجموعة التي تتضمن وكيل المستخدم الأكثر تحديدًا
الذي يطابق وكيل مستخدم الزاحف. ويتم تجاهل المجموعات الأخرى. ويتم تجاهل جميع النصوص غير المطابقة (على سبيل المثال، googlebot/1.2
وgooglebot*
يعادلان معًا googlebot
). ولا يكون لترتيب المجموعات ضمن ملف robots.txt أي أهمّية.
إذا تم تحديد أكثر من مجموعة واحدة لوكيل مستخدم معيّن، يتم داخليًا دمج جميع القواعد من المجموعات
التي تنطبق على وكيل المستخدم المحدّد في مجموعة واحدة. ولا يتم دمج المجموعات المحدّدة لوكيل المستخدم والمجموعات العامة (*
).
أمثلة
مطابقة حقول user-agent
user-agent: googlebot-news (group 1) user-agent: * (group 2) user-agent: googlebot (group 3)
نذكر في ما يلي طريقة اختيار برامج الزحف للمجموعة ذات الصلة:
المجموعة المتبوعة حسب برنامج الزحف | |
---|---|
Googlebot News |
يتّبع googlebot-news المجموعة 1، لأن المجموعة 1 هي الأكثر تحديدًا.
|
Googlebot (ويب) | يتّبع googlebot المجموعة 3. |
Googlebot Storebot |
يتّبع Storebot-Google المجموعة 2، إذ لا تتوفر مجموعة Storebot-Google محددة.
|
Googlebot News (عند الزحف إلى الصور) |
عند الزحف إلى الصور، يتّبع googlebot-news المجموعة 1.
لا يزحف googlebot-news إلى الصور في "صور بحث Google"، لذا فهو
يتّبع المجموعة 1 فقط.
|
Otherbot (ويب) | تتّبع برامج زحف Google الأخرى المجموعة 2. |
Otherbot (الأخبار) |
هي برامج زحف Google الأخرى التي تزحف إلى محتوى الأخبار، ولكن لا يتم تحديدها باعتبارها googlebot-news يتّبع المجموعة 2. وحتى في حال توفُّر إدخال لبرنامج زحف ذي صلة، لا يكون صالحًا إلا إذا كان مطابقًا بشكل محدّد.
|
تجميع القواعد
إذا كانت هناك عدة مجموعات في ملف robots.txt ذات صلة بوكيل مستخدم معيّن، ستدمج برامج زحف Google المجموعات داخليًا. مثلاً:
user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp
تجمّع برامج الزحف القواعد داخليًا استنادًا إلى وكيل المستخدم، على سبيل المثال:
user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots
يتجاهل محلّل ملف robots.txt القواعد الأخرى بخلاف allow
وdisallow
وuser-agent
. وهذا يعني أنه يتم التعامل مع مقتطف robots.txt التالي باعتباره مجموعة واحدة، وبالتالي يتأثّر كل من user-agent
a
وb
بالقاعدة disallow: /
:
user-agent: a sitemap: https://example.com/sitemap.xml user-agent: b disallow: /
عندما تعالج برامج الزحف قواعد robots.txt، تتجاهل السطر sitemap
.
على سبيل المثال، بهذه الطريقة تفهم برامج الزحف مقتطف robots.txt السابق:
user-agent: a user-agent: b disallow: /
مطابقة عنوان URL على أساس قيم المسارات
يستخدم محرّك البحث Google قيمة المسار في التوجيهَين allow
وdisallow
كأساس لتحديد ما إذا كانت قاعدة ما تنطبق على عنوان URL معيّن في أحد المواقع الإلكترونية. ويعمل ذلك من خلال مقارنة القاعدة بمكوّن المسار لعنوان URL الذي يحاول الزاحف جلبه.
ويمكن تضمين حروف ASCII التي ليست 7 بت في أحد المسارات كأحرف UTF-8 أو كأحرف إلغاء UTF-8 مرمّزة باستخدام علامة النسبة المئوية وفقًا للقواعد الواردة في RFC 3986.
يتيح محرّكا البحث Google وBing وغيرهما من محرّكات البحث الرئيسية استخدام شكل محدود من أحرف البدل لقيم المسار. وأحرف البدل المسموح بها هي:
*
: يحدّد 0 أو أكثر من حالات أي حرف صالح.- يحدّد
$
نهاية عنوان URL.
مثال على مطابقات المسارات | |
---|---|
/ |
يطابق الجذر وأي عنوان URL بمستوى أدنى. |
/* |
يعادل / . ويتم تجاهل حرف البدل اللاحق. |
/$ |
يطابق الجذر فقط. يتم السماح بالزحف إلى أي عنوان URL بمستوى أدنى. |
/fish |
يطابق أي مسار يبدأ بـ يطابق:
لا يطابق:
|
/fish* |
يعادل يطابق:
لا يطابق:
|
/fish/ |
يطابق أي عنصر في المجلد يطابق:
لا يطابق:
|
/*.php |
يطابق أي مسار يحتوي على يطابق:
لا يطابق:
|
/*.php$ |
يطابق أي مسار ينتهي بـ يطابق:
لا يطابق:
|
/fish*.php |
يطابق أي مسار يحتوي على يطابق:
لا يطابق:
|
ترتيب الأسبقية للقواعد
عند مطابقة قواعد robots.txt مع عناوين URL، تستخدم برامج الزحف القاعدة الأكثر تحديدًا استنادًا إلى طول مسارها. وفي حال تعارُض القواعد، بما في ذلك القواعد التي تتضمّن أحرف البدل، يستخدم محرّك البحث Google القاعدة الأقل تقييدًا.
توضّح الأمثلة التالية القاعدة التي ستطبقها برامج زحف Google على عنوان URL معيّن.
أمثلة على الحالات | |
---|---|
http://example.com/page |
allow: /p disallow: /
القاعدة المطبَّقة: |
http://example.com/folder/page |
allow: /folder disallow: /folder
القاعدة المطبَّقة: |
http://example.com/page.htm |
allow: /page disallow: /*.htm
القاعدة المطبَّقة: |
http://example.com/page.php5 |
allow: /page disallow: /*.ph
القاعدة المطبَّقة: |
http://example.com/ |
allow: /$ disallow: /
القاعدة المطبَّقة: |
http://example.com/page.htm |
allow: /$ disallow: /
القاعدة المطبَّقة: |