مساحة اعلانية

آخر المواضيع

Robots.txt file specification , مواصفات ملف الروبوتس الأساسية

يوضّح هذا المستند بالتفصيل طريقة معالجة Google لملف robots.txt الذي يسمح لك بالتحكم في طريقة عمل برامج الزحف من Google إلى مواقع الويب المتاحة للجميع وفهرستها.

لغة المتطلبات

يجب تفسير الكلمات الأساسية "MUST" و"MUST NOT" و"REQUIRED" و"SHALL" و"SHALL NOT" و"SHOULD" و"SHOULD NOT" و"RECOMMENDED" و"MAY" و"OPTIONAL" في هذا المستند على النحو الموضّح في RFC 2119.

التعريفات الأساسية

التعريفات
الزاحفالزاحف عبارة عن خدمة أو وكيل يزحف إلى مواقع الويب. بشكل عام، يصل أي زاحف تلقائيًا وبشكل متكرر إلى عناوين URL المعروفة لمضيف ما يكشف المحتوى الذي يمكن الوصول إليه باستخدام متصفحات الويب القياسية. وعندما يتم العثور على عناوين URL جديدة (من خلال وسائل متعددة، مثل من الروابط على الصفحات الحالية والتي تم الزحف إليها أو من ملفات Sitemap)، فإنه يتم الزحف إليها أيضًا بالطريقة نفسها.
وكيل المستخدموسيلة من وسائل تحديد زاحف خاص أو مجموعة من برامج الزحف.
الأوامرقائمة الإرشادات القابلة للتطبيق لأحد برامج الزحف أو مجموعة من برامج الزحف المبينة في ملف robots.txt.
عنوان URLمحددات مواقع الويب على النحو المُشار إليه في RFC 1738.
خاص بمحرك البحث Googleهذه العناصر خاصة بتطبيق ملف robots.txt في Google وقد تكون غير متعلقة بجهات خارجية.

قابلية التطبيق

يتم اتباع الإرشادات الموضحة في هذا المستند بواسطة جميع برامج الزحف التلقائية في Google. وعند وصول أحد الوكلاء إلى عناوين URL نيابة عن مستخدِم (على سبيل المثال، للترجمة، والخلاصات التي تم الاشتراك فيها يدويًا، وتحليل البرامج الضارة، وما إلى ذلك)، لا تسري هذه الإرشادات.

موقع الملف ونطاق الصلاحية

يجب وضع ملف robots.txt في دليل المضيف عالي المستوى، وأن يكون قابلاً للوصول من خلال رقم المنفذ والبروتوكول المناسب. بشكل عام، البروتوكولات المقبولة لملف robots.txt (والزحف إلىمواقع الويب) هي "http" و"https". في http وhttps، يتم جلب ملف robots.txt باستخدام طلب GET غير مشروط لـ HTTP.
خاص بمحرك البحث Google: يقبل محرك البحث Google ملفات robots.txt لمواقع بروتوكول نقل الملفات (FTP) ويتبعها. ويتم الوصول إلى ملفات robots.txt المستندة إلى بروتوكول نقل الملفات عبر بروتوكول نقل الملفات، باستخدام تسجيل دخول مجهول.
لا يتم تطبيق الأوامر المدرجة في ملف robots.txt إلا على المضيف والبروتوكول ورقم المنفذ حيث استضافة الملف.


أمثلة عناوين URL الصالحة لملف robots.txt

أمثلة عناوين URL لملف robots.txt
http://example.com/robots.txtصالح لـ
  • http://example.com/
  • http://example.com/folder/file
غير صالح لـ
  • http://other.example.com/
  • https://example.com/
  • http://example.com:8181/

http://www.example.com/robots.txt
صالح لـ: http://www.example.com/
غير صالح لـ
  • http://example.com/
  • http://shop.www.example.com/
  • http://www.shop.example.com/

http://example.com/folder/robots.txtليس ملف robots.txt صالحًا. لن تتحقق برامج الزحف من ملفات robots.txt في الأدلة الفرعية.
http://www.müller.eu/robots.txtصالح لـ
  • http://www.müller.eu/
  • http://www.xn--mller-kva.eu/
غير صالح لـ: http://www.muller.eu/

ftp://example.com/robots.txt
صالح لـ: ftp://example.com/
غير صالح لـ: http://example.com/
خاص بمحرك البحث Google: نستخدم ملف robots.txt لموارد بروتوكول نقل الملفات.
http://212.96.82.21/robots.txt
صالح لـ: http://212.96.82.21/
غير صالح لـ: http://example.com/ (حتى في حال الاستضافة على 212.96.82.21)

http://example.com:80/robots.txt
صالح لـ
  • http://example.com:80/
  • http://example.com/
غير صالح لـ: http://example.com:81/

http://example.com:8181/robots.txt
صالح لـ: http://example.com:8181/
غير صالح لـ: http://example.com/

معالجة رموز نتائج HTTP

توجد بشكل عام ثلاث نتائج مختلفة عند جلب robots.txt:
  • سماح كامل: يمكن الزحف إلى كل المحتوى.
  • منع كامل: لن يتم الزحف إلى أي محتوى.
  • سماح مشروط: تحدد الأوامر في ملف robots.txt إمكانية الزحف إلى محتوى معين.
معالجة رموز نتائج HTTP
2xx (ناجح)تؤدي رموز نتائج HTTP التي تشير إلى نجاح العملية إلى "سماح مشروط" بالزحف.
3xx (إعادة التوجيه)ستتم متابعة عمليات إعادة التوجيه بشكل عام إلى أن يتم العثور على نتيجة صالحة (أو يتم التعرف على حلقة ما). وسنتابع إجراء عدد محدود من قفزات إعادة التوجيه (RFC 1945 لـ HTTP/1.0 يسمح بما يصل إلى 5 قفزات) وبعد ذلك سيتم التوقف واعتبار العملية كخطأ 404. وتكون معالجة عمليات إعادة توجيه ملفات robots.txt لعناوين URL الممنوعة غير محددة وغير موصى بها. كما أن معالجة عمليات إعادة التوجيه المنطقية لملف robots.txt على أساس محتوى HTML الذي يعرض 2xx (الإطارات أو JavaScript أو عمليات إعادة التوجيه الوصفية لنوع التحديث) غير محددة وغير موصى بها.
4xx (أخطاء العميل)يعامل Google جميع أخطاء 4xx بطريقة واحدة ويفترض عدم وجود ملف robots.txt صالح. كما يفترض عدم وجود أي قيود. ويُعد هذا "سماحًا كاملاً" بالزحف.
5xx (خطأ في الخادم)
يتم اعتبار أخطاء الخادم أخطاءً مؤقتة تؤدي إلى "منع كامل" للزحف. تُعاد محاولة الطلب إلى أن يتم الحصول على رمز نتيجة HTTP لخطأ ليس من أخطاء الخادم. سيؤدي الخطأ 503 (الخدمة غير متوفرة) إلى إعادة المحاولة المتكررة إلى حد ما. لتعليق الزحف مؤقتًا، من المستحسن عرض رمز نتيجة HTTP لخطأ 503. وتُعد معالجة خطأ الخادم الدائم غير محددة.
خاص بمحرك البحث Google: إذا تمكنَّا من الوقوف على تهيئة غير صحيحة لأحد المواقع لعرض خطأ 5xx بدلاً من خطأ 404 للصفحات المفقودة، سنعامل خطأ 5xx من ذلك الموقع باعتباره خطأ 404.
الطلبات غير الناجحة أو البيانات غير المكتملةتُعد معالجة ملف robots.txt الذي يتعذر جلبه بسبب حدوث مشاكل في نظام أسماء النطاقات أو في الشبكة، مثل حالات انتهاء المهلة والاستجابات غير الصالحة وإعادة تعيين / تعليق الاتصالات وأخطاء تجزئة معلومات HTTP وما إلى ذلك، معالجة غير محددة.
التخزين المؤقتيتم بشكل عام تخزين طلب robots.txt مؤقتًا لما يصل إلى يوم واحد، ولكن يمكن تخزينه مؤقتًا لمدة أطول من ذلك في الحالات التي يكون فيها تحديث النسخة المخبأة غير ممكن (على سبيل المثال، بسبب حالات انتهاء المهلة أو أخطاء 5xx). ويمكن مشاركة استجابة النسخة المخبأة بواسطة برامج الزحف المختلفة. ومن الممكن أن يزيد محرك البحث Google من مدة التخزين المؤقت أو يقللها على أساس رؤوس HTTP للتحكم في الحد الأقصى لعمر التخزين المؤقت.

تنسيق الملف

تنسيق الملف المتوقع هو نص عادي تم تشفيره بتنسيق UTF-8. ويتكون الملف من سجلات (سطور) مفصولة بواسطة CR أو CR/LF أو LF.
ستتم مراعاة السجلات الصالحة فقط؛ لذا سيتم تجاهل جميع المحتويات الأخرى. على سبيل المثال، إذا كان المستند الناتج عبارة عن صفحة HTML، فستتم مراعاة سطور النصوص الصالحة فقط، وسيتم تجاهل باقي السطور بدون عرض تحذير أو خطأ.
في حالة استخدام ترميز أحرف يؤدي إلى استخدام الأحرف التي ليست مجموعة فرعية من UTF-8، فقد يؤدي ذلك إلى تحليل المحتويات الملف بشكل غير صحيح.
يتم تجاهل علامة ترتيب وحدات بايت (BOM)‏ Unicode الاختيارية في بداية ملف robots.txt.
يتكون كل سجل من حقل وعلامة النقطتين وقيمة. وتعتبر المسافات اختيارية (ولكنها مستحسنة لتحسين قابلية القراءة). ويمكن تضمين التعليقات في أي موضع في الملف باستخدام حرف "#"، لأنه يتم التعامل مع كل المحتوى الموجود بعد بداية أحد التعليقات حتى نهاية السجل باعتباره تعليقًا ويتم تجاهله. ويكون التنسيق العام عبارة عن <field>:<value><#optional-comment>. يتم تجاهل المسافة الفاصلة في بداية السجل ونهايته.
عنصر <field> غير حساس لحالة الأحرف. يمكن أن يكون عنصر <القيمة> حساسًا لحالة الأحرف، بالاعتماد على عنصر <الحقل>.
تُعد معالجة عناصر <field> التي تحتوي على أخطاء بسيطة / أخطاء في الكتابة (مثل "وكيل متسخدم" بدلاً من "وكيل مستخدم") معالجة غير محددة ويمكن تفسيرها كأوامر صحيحة بواسطة بعض وكلاء المستخدم.
يمكن فرض الحد الأقصى لحجم الملف لكل زاحف. ومن الممكن أن يتم تجاهل أي محتوى زيادة عن الحد الأقصى لحجم الملف. ويفرض محرّك البحث Google حاليًا حدًا للحجم يبلغ 500 كيلوبايت.

البنية الرسمية / التعريف

هذا وصف يشبه صيغة باكوس نور (BNF)، باستخدام اصطلاحات RFC 822{/0، باستثناء استخدام "|" لتعيين البدائل. يتم حصر القيم الحرفية ضمن علامتي الاقتباس ""، ويتم استخدام القوسين "(" و")" لتجميع العناصر، ويتم حصر العناصر الاختيارية في [الأقواس]، ومن الممكن أن تكون العناصر مسبوقة بـ <n>* لتعيين رقم أو مزيد من التكرارات للعنصر التالي؛ يتم تعيين الرقم افتراضيًا على 0.
robotstxt = *entries
entries = *( ( <1>*startgroupline
  *(groupmemberline | nongroupline | comment)
  | nongroupline
  | comment) )
startgroupline = [LWS] "user-agent" [LWS] ":" [LWS] agentvalue [comment] EOL
groupmemberline = [LWS] (
  pathmemberfield [LWS] ":" [LWS] pathvalue
  | othermemberfield [LWS] ":" [LWS] textvalue) [comment] EOL
nongroupline = [LWS] (
  urlnongroupfield [LWS] ":" [LWS] urlvalue
  | othernongroupfield [LWS] ":" [LWS] textvalue) [comment] EOL
comment = [LWS] "#" *anychar
agentvalue = textvalue

pathmemberfield = "disallow" | "allow"
othermemberfield = ()
urlnongroupfield = "sitemap"
othernongroupfield = ()

pathvalue = "/" path
urlvalue = absoluteURI
textvalue = *(valuechar | SP)
valuechar = <any UTF-8 character except ("#" CTL)>
anychar = <any UTF-8 character except CTL>
EOL = CR | LF | (CR LF)
يتم تحديد بنية "absoluteURI"، "CTL"، "CR"، "LF"، "LWS" في RFC 1945. يتم تحديد بنية "المسار" في RFC 1808.

تجميع السجلات

يتم تصنيف السجلات إلى أنواع مختلفة على أساس نوع عنصر <field>:
  • بداية المجموعة
  • عضو في المجموعة
  • ليست لها مجموعة
يتم التعامل مع السجلات الأعضاء في المجموعة بعد سجل بداية المجموعة وحتى سجل بداية المجموعة التالي باعتبارها مجموعة من السجلات. ويُعد عنصر حقل بداية المجموعة الوحيد هو user-agent. وستتبع سطور بداية المجموعة المتعددة مباشرة بعد بعضها البعض السجلات الأعضاء في المجموعة عقب سطر بداية المجموعة النهائي. وسيتم تجاهل أي سجلات أعضاء في المجموعة بدون سجل سابق لبداية المجموعة. وتُعد جميع السجلات التي ليست لها مجموعة صالحة بشكل مستقل عن جميع المجموعات.
تتمثل عناصر <field> الصالحة، التي سيتم توضيحها بمزيد من التفصيل في هذا المستند، في:
  • user-agent (بداية المجموعة)
  • disallow (صالح كسجل عضو في مجموعة فقط)
  • allow (صالح كسجل عضو في مجموعة فقط)
  • sitemap (سجل ليس له أية مجموعة)
من الممكن أن يتم تجاهل جميع عناصر <field> الأخرى.
يتم استخدام عنصر بداية المجموعة user-agent لتحديد أي من المجموعات صالحة للزاحف. وهناك مجموعة واحدة من السجلات فقط صالحة لزاحف محدد. وسنتناول ترتيب الأسبقية لاحقًا في هذا المستند.
أمثلة للمجموعات:
user-agent: a
disallow: /c

user-agent: b
disallow: /d

user-agent: e
user-agent: f
disallow: /g
توجد ثلاث مجموع مميزة محددة، مجموعة لـ "a" ومجموعة لـ "b" وأيضًا مجموعة لكل من "e" و"f". وتحتوي كل مجموعة على سجل عضو في المجموعة خاص بها. ويرجى ملاحظة الاستخدام الاختياري للمسافة الفارغة (سطر فارغ) لتحسين قابلية القراءة.

ترتيب الأسبقية لوكلاء المستخدم

وهناك مجموعة واحدة من سجلات الأعضاء في المجموعة صالحة لزاحف محدد. ويتعين أن يحدد الزاحف مجموعة السجلات الصحيحة عن طريق البحث عن المجموعة التي تتضمن وكيل المستخدم الأكثر تحديدًا والتي ما زالت مطابقة. ويتم تجاهل جميع مجموعات السجلات الأخرى بواسطة الزاحف. وكيل المستخدم غير حساس لحالة الأحرف. يتم تجاهل جميع النصوص غير المطابقة (على سبيل المثال، كل من googlebot/1.2 وgooglebot* يعادل googlebot). ويعتبر ترتيب المجموعات داخل ملف robots.txt غير ذي صلة.

مثال

نفترض أن ملف robots.txt بهذا الشكل:
user-agent: googlebot-news
(group 1)

user-agent: *
(group 2)

user-agent: googlebot
(group 3)
نذكر في ما يلي طريقة اختيار برامج الزحف للمجموعة ذات الصلة:
مجموعة السجلات المتّبعة لكل زاحف
Googlebot Newsمجموعة السجلات المتّبعة هي المجموعة 1. يتم تتبع المجموعة الأكثر تحديدًا فقط، ويتم تجاهل جميع المجموعات الأخرى.
Googlebot (ويب)مجموعة السجلات المتّبعة هي المجموعة 3.
Googlebot Imagesمجموعة السجلات المتّبعة هي المجموعة 3. لا توجد مجموعة googlebot-images محددة، لذا يتم تتبع مجموعة أكثر عمومية.
Googlebot News (عند الزحف إلى الصور)مجموعة السجلات المتّبعة هي المجموعة 1. يتم الزحف إلى هذه الصور بواسطة Googlebot News، ولذا يتم تتبع مجموعة Googlebot News فقط.
Otherbot (ويب)مجموعة السجلات المتّبعة هي المجموعة 2.
Otherbot (الأخبار)مجموعة السجلات المتّبعة هي المجموعة 2. حتى في حالة وجود إدخال للزاحف المرتبط، سيكون صالحًا فقط إذا كان مطابقًا على وجه الخصوص.

سجلات الأعضاء في المجموعة

يتم تناول أنواع السجلات الأعضاء في المجموعة العامة والخاصة بمحرك البحث Google في هذا القسم فقط. وتسمى أنواع السجلات هذه أيضًا "أوامر" لبرامج الزحف. ويتم تحديد هذه الأوامر في شكل "directive: [path]" حيث يكون [path] اختياريًا. وبشكل تلقائي، لا توجد قيود على الزحف باستخدام برامج الزحف المحددة. كما يتم تجاهل الأوامر التي بدون [path].
يجب أن تكون قيمة [path] - في حالة تحديدها - وثيقة الصلة بجذر موقع الويب الذي تم جلب ملف robots.txt من أجله (باستخدام البروتوكول ورقم المنفذ والمضيف وأسماء النطاقات نفسها). ويجب أن تبدأ قيمة المسار بـ "/" لتعيين الجذر. ويُعد المسار حساسًا لحالة الأحرف. ويمكن العثور على المزيد من المعلومات في القسم "مطابقة عنوان URL على أساس قيم المسارات" أدناه.

المنع

يحدد الأمر disallow المسارات التي ينبغي عدم الوصول إليها بواسطة برامج الزحف المحددة. عند عدم تحديد أي مسار، يتم تجاهل الأمر.
الاستخدام:
disallow: [path]

سماح

يحدد الأمر allow المسارات التي يمكن الوصول إليها بواسطة برامج الزحف المحددة. عند عدم تحديد أي مسار، يتم تجاهل الأمر.
الاستخدام:
allow: [path]

مطابقة عنوان URL على أساس قيم المسارات

يتم استخدام قيمة المسار كأساس لتحديد ما إذا كان سيتم تطبيق قاعدة ما أم لا على عنوان URL خاص على أحد المواقع. باستثناء حروف البدل، يتم استخدام المسار لمطابقة بداية عنوان URL (وأي عناوين URL صالحة تبدأ بالمسار نفسه). ويمكن تضمين حروف ASCII التي ليست 7 بت في أحد المسارات كأحرف UTF-8 أو كأحرف مشفرة UTF-8 تم الخروج منها باستخدام علامة النسبة المئوية وفقًا للقواعد الواردة في RFC 3986.


تدعم محركات البحث Google وBing وYahoo وAsk صيغة محدودة من "حروف البدل" لقيم المسارات. وهي كما يلي:
  • يعيِّن * 0 أو أكثر من أمثلة أي حروف صالحة.
  • يعيِّن $ نهاية عنوان URL.
مثال على مطابقات المسارات
/يطابق الجذر وأي عنوان URL بمستوى أدنى.
/*يعادل /، ويتم تجاهل حرف البدل اللاحق.
/fish
يطابق:
  • /fish
  • /fish.html
  • /fish/salmon.html
  • /fishheads
  • /fishheads/yummy.html
  • /fish.php?id=anything
لا يطابق:
  • /Fish.asp
  • /catfish
  • /?id=fish

/fish*
يعادل /fish، ويتم تجاهل حرف البدل اللاحق.
يطابق:
  • /fish
  • /fish.html
  • /fish/salmon.html
  • /fishheads
  • /fishheads/yummy.html
  • /fish.php?id=anything
لا يطابق:
  • /Fish.asp
  • /catfish
  • /?id=fish
/fish/
تعني الشرطة المائلة اللاحقة أن هذا المسار يطابق أي شيء في هذا المجلد.
يطابق:
  • /fish/
  • /fish/?id=anything
  • /fish/salmon.htm
لا يطابق:
  • /fish
  • /fish.html
  • /Fish/Salmon.asp
/*.php
يطابق:
  • /filename.php
  • /folder/filename.php
  • /folder/filename.php?parameters
  • /folder/any.php.file.html
  • /filename.php/
لا يطابق:
  • / (حتى لو كان مرتبطًا بـ ‎/index.php)
  • /windows.PHP
/*.php$
يطابق:
  • /filename.php
  • /folder/filename.php
لا يطابق:
  • /filename.php?parameters
  • /filename.php/
  • /filename.php5
  • /windows.PHP
/fish*.php
يطابق:
  • /fish.php
  • /fishheads/catfish.php?parameters
لا يطابق: /Fish.PHP

سجلات غير الأعضاء في المجموعة المتوافقة مع محرك البحث Google

ملف sitemap

متوافق مع محركات البحث Google، Ask، Bing، Yahoo؛ تم تحديده في sitemaps.org.
الاستخدام:
sitemap: [absoluteURL]
يشير [absoluteURL] إلى ملف Sitemap أو ملف فهرس Sitemap أو عنوان URL معادل. ولا يشترط أن يكون عنوان URL على مضيف ملف robots.txt نفسه. من الممكن وجود إدخالات sitemap متعددة. ونظرًا لكونها سجلات غير أعضاء في المجموعة، فإنها غير مرتبطة بأي وكلاء مستخدم محددين ويمكن تتبعها بواسطة جميع برامج الزحف، شريطة ألا يتم منع الزحف إليها.

ترتيب الأسبقية للسجلات الأعضاء في المجموعة

على مستوى أعضاء المجموعة، وبالأخص للأمرين allow وdisallow، تسبق القاعدة الأكثر تحديدًا على أساس طول إدخال [path] القاعدة الأقل تحديدًا (الأقصر). ويُعد ترتيب أسبقية القواعد باستخدام حروف البدل ترتيبًا غير محدد.

أمثلة على الحالات
http://example.com/page
allow/p
disallow/
الحكمallow
http://example.com/folder/page
allow/folder
disallow/folder
الحكمallow
http://example.com/page.htm
allow/page
disallow/*.htm
الحكمundefined
http://example.com/
allow/$
disallow/
الحكمallow
http://example.com/page.htm
allow/$
disallow/
الحكمdisallow

الكــاتــب

    • مشاركة

ليست هناك تعليقات:

لا تذهب دون أن تترك تعليقك على الموضوع

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.

جميع الحقوق محفوظة لــ مدونة كل العرب 2020 © DMCA.com Protection Status