وكيل المستخدم

ما هو وكيل المستخدم — ترويسة HTTP التي تستخدمها الزواحف والمتصفحات لتعريف نفسها، رمز robots.txt مقابل السلسلة الكاملة، وكيفية التحقق من أن الروبوت حقيقي.

نُشر أول مرة: 24 يونيو 2026 · آخر تحديث: 14 أغسطس 2026 · Advanced
اللغات
عدد الأدلة في هذه الصفحة: 2

وكيل المستخدم هو ترويسة HTTP التي يرسلها كل عميل — متصفح أو زاحف أو روبوت — لتعريف نفسه. هناك شيئان يتم الخلط بينهما: سلسلة وكيل المستخدم *الكاملة* في ترويسة الطلب، ورمز وكيل المستخدم *القصير* (Googlebot، bingbot، Google-Extended) الذي تستهدفه في robots.txt. الرمز هو سلسلة فرعية من السلسلة (RFC 9309)؛ بعض الرموز، مثل Google-Extended، لا تحتوي على سلسلة طلب على الإطلاق. السلسلة قابلة للانتحال بسهولة — تقول Google إن سلسلتها 'غالبًا ما يتم انتحالها' — لذا لا تثق بها أبدًا للتحكم في الوصول. تحقق من Googlebot/Bingbot عبر DNS عكسي بالإضافة إلى بحث أمامي، أو مقابل نطاقات IP المنشورة. وانتبه إلى المخاطر: AdsBot وGoogle-Safety يتجاهلان `User-agent: *`، ويتم تجاهل أرقام الإصدار والبدائل في سطر الرمز، والمطابقة غير حساسة لحالة الأحرف، وتقديم محتوى مختلف لوكيل مستخدم الروبوت عن المستخدمين هو تمويه.

الخلاصة — وكيل المستخدم هو ترويسة طلب HTTP يرسلها أي عميل لتعريف نفسه؛ وهو بيانات وصفية اختيارية يملؤها العميل، وليست هوية موثقة. قيمته هي سلسلة وكيل المستخدم. منفصلة عن ذلك هي رمز وكيل المستخدم (رمز المنتج) المستخدم في robots.txt — يقول RFC 9309 إنه يجب أن يكون سلسلة فرعية من السلسلة، وهو اصطلاح قوي مع استثناءات موثقة (Google-Extended ليس له سلسلة طلب على الإطلاق). المطابقة غير حساسة لحالة الأحرف، ويتم تجاهل أرقام الإصدارات/البدلات في سطر الرمز، والمجموعة الأكثر تحديدًا تفوز، وتندمج المجموعات ذات الرمز نفسه ولكن لا تندمج أبدًا مع *. السلسلة قابلة للتزوير بسهولة — جوجل تسمي سلسلتها الخاصة “غالبًا ما تكون مزورة” — لذا تحقق عبر DNS عكسي + أمامي (خلف أي بروكسي/CDN، استخدم عنوان IP الحقيقي للعميل) مقابل googlebot.com/google.com/googleusercontent.com لجوجل أو search.msn.com بينج، أو طابق نطاقات IP المنشورة — وحتى الطلب الموثق يثبت فقط وصول الطلب، وليس أن الصفحة تمت فهرستها أو استرجاعها أو استخدامها لتدريب الذكاء الاصطناعي. يتجاهل AdsBot وGoogle-Safety User-agent: *. كما أن كروم يجمد التفاصيل من سلاسل وكيل مستخدم المتصفح (تقليل وكيل المستخدم)؛ تلميحات العميل هي البديل المنظم ولكن الاختياري، ولا يحل أي منهما محل التحقق من الزاحف. يمكن أن يكون تكييف وكيل المستخدم مشروعًا، لكن عرض محتوى مختلف جوهريًا للزواحف بشكل خادع يمكن أن يكون تمويهًا.

Evidence for this claim HTTP User-Agent is a request field containing product information supplied by the client; it is descriptive text and not proof of identity. Scope: HTTP semantics for User-Agent. Confidence: high · Verified: IETF RFC 9110: User-Agent Evidence for this claim robots.txt User-agent matching is defined by the Robots Exclusion Protocol and controls crawler access, not authentication or general HTTP content negotiation. Scope: RFC 9309 robots matching behavior. Confidence: high · Verified: IETF RFC 9309: Robots Exclusion Protocol

الترويسة، والسلسلة، والرمز

ثلاثة أشياء، وإبقاؤها منفصلة هو معظم هذا الموضوع.

  • الترويسة. User-Agent هي ترويسة طلب HTTP. يرسلها كل عميل: متصفحك، curl، زاحف، روبوت. وفقًا لـ RFC 9110 (معيار دلالات HTTP الأساسية)، إنه حقل اختياري يملؤه العميل — بيانات وصفية يقدمها العميل، وليست هوية موثقة تحقق منها الخادم.
  • السلسلة. قيمة الترويسة — سطر حر يصف البرنامج، والإصدار، ومحرك العرض، وأحيانًا نظام التشغيل.
  • الرمز. المعرّف القصير المستخدم في أسطر User-agent: في robots.txt لاستهداف زاحف — Googlebot، bingbot، Google-Extended.

العلاقة هي الجزء الذي يربك الناس. يقول RFC 9309 (معيار بروتوكول استبعاد الروبوتات الرسمي): “SHOULD be a substring of the identification string that the crawler sends… in the case of HTTP, the product token SHOULD be a substring in the User-Agent header.” (ترجمة) «ينبغي أن يكون سلسلة فرعية من سلسلة التعريف التي يرسلها الزاحف… وفي حالة HTTP، ينبغي أن يكون رمز المنتج سلسلة فرعية في ترويسة User-Agent.» هذا SHOULD وليس MUST — اصطلاح قوي يوصي به المعيار، وليس متطلبًا صارمًا ملزمًا لكل زاحف. Google-Extended (أدناه) هو أوضح مثال على استثناء موثق له. لا تقرأ قاعدة السلسلة الفرعية على أنها عالمية لمجرد أن جوجل تتبعها لمعظم رموزها الخاصة. الرمز جزء من السلسلة عندما يوفر المزود واحدًا؛ تستهدف الرمز في robots.txt وتقرأ السلسلة في سجلاتك.

Evidence for this claim A robots.txt user-agent line selects a crawler product token, not an arbitrary full HTTP User-Agent string; RFC 9309 says the token should be a substring of the identification string, but this SHOULD-level convention has documented product-specific exceptions and is not authentication. Scope: robots.txt parsing and matching Confidence: high · Verified: Robots Exclusion Protocol

تفيد هنا صياغة Google لكيفية تعريف روبوتاتها بنفسها: “تعرّف روبوتات جوجل نفسها من خلال ثلاثة أشياء: ترويسة طلب HTTP user-agent، وعنوان IP المصدر للطلب، واسم المضيف العكسي DNS لعنوان IP المصدر.” لاحظ أن وكيل المستخدم هو واحد فقط من الثلاثة — والاثنان الآخران هما وسيلتا التحقق الفعلي منه.

Google-Extended: رمز بدون سلسلة

أوضح توضيح أن الرمز ≠ السلسلة هو Google-Extended. يتحكم في ما إذا كان بإمكان جوجل استخدام محتواك لتدريب Gemini وإسناد إجاباته — وليس له سلسلة وكيل مستخدم طلب HTTP مخصصة على الإطلاق. يتم الزحف نفسه باستخدام سلاسل Googlebot الموجودة؛ Google-Extended موجود فقط كرمز تحكم في robots.txt. لن ترى أبدًا “Google-Extended” في ترويسة طلب ضمن سجلاتك.

النتيجة العملية: حظر Google-Extended يؤثر فقط على استخدام الذكاء الاصطناعي في التدريب لمحتواك — فهو لا يمنع Googlebot من الزحف إلى موقعك وفهرسته لصالح البحث. إنهما قراران منفصلان يتحكم فيهما رمزان منفصلان. (للصورة الأوسع للروبوتات التي تقرأ موقعك، راجع روبوتات الذكاء الاصطناعي والزاحف.)

سلاسل وكيل مستخدم Googlebot

Googlebot دائم التحديث — يعمل على إصدار حديث من Chrome، وإصدار Chrome في سلسلته يتحدث دوريًا (منذ ديسمبر 2019). لهذا السبب يظهر الإصدار كعنصر نائب W.X.Y.Z:

Googlebot للهواتف الذكية (الجوال):

Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

Googlebot لسطح المكتب:

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/W.X.Y.Z Safari/537.36

أمران يجب استيعابهما. أولاً، لا تقم بتشفير الإصدارW.X.Y.Z يتغير، والمطابقة عليه ستفشل. طابق الرمز الثابت Googlebot بدلاً من ذلك. ثانيًا، لا يمكنك فصل الجوال عن سطح المكتب في robots.txt. كلا المتغيرين يشتركان في رمز Googlebot الواحد، لذا تنطبق قاعدة robots.txt على كليهما.

رموز زاحف Google

تدير Google عائلة كاملة من الزواحف والجالبين، لكل منها رمز خاص. أكثرها شيوعًا التي ستواجهها:

الزاحفرمز robots.txtملاحظات
GooglebotGooglebotالبحث، الصور، الفيديو، الأخبار، Discover — الجوال + سطح المكتب يشتركان في هذا الرمز
Googlebot ImageGooglebot-Imageصور Google
Googlebot VideoGooglebot-Videoبحث الفيديو
Googlebot NewsGooglebot-Newsيستخدم سلاسل Googlebot متنوعة
Google StoreBotStorebot-Googleالتسوق
Google-InspectionToolGoogle-InspectionToolيشغل أدوات اختبار البحث
GoogleOtherGoogleOtherبحث/جلب داخلي
Google-ExtendedGoogle-Extendedrobots.txt فقط — تدريب Gemini، لا سلسلة طلب

وتلك التي تخالف القواعد المعتادة — الزواحف ذات الحالات الخاصة التي تتجاهل User-agent: *:

  • AdsBot (AdsBot-Google) وAdsBot Mobile (AdsBot-Google-Mobile) — لا يطيعان حرف البدل. لحظرهما يجب تسميتهما صراحة.
  • AdSense (Mediapartners-Google) — نفس الشيء؛ يتجاهل * العام.
  • Google-Safety — يُستخدم لاكتشاف البرامج الضارة/إساءة الاستخدام؛ يتجاهل robots.txt تمامًا.

الآثار هي ما يفوته الناس: User-agent: * لا يحظر AdsBot أو Google-Safety. إذا قمت “بحظر جميع الروبوتات” بحرف بدل وافترضت أن AdsBot اختفى، فهو لم يختفِ. (هذا هو بالضبط نوع المفاجأة التي تضع صفحة في منطقة مفهرسة لكن محظورة بواسطة robots.txt — راجع robots.txt للقصة الكاملة للتحكم.)

سلاسل وكيل مستخدم Bingbot

أعادت Bing بناء سلسلة Bingbot في 2022 لتعكس أنه يعرض باستخدام Microsoft Edge. السلاسل الحالية:

Bingbot لسطح المكتب:

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/W.X.Y.Z Safari/537.36

Bingbot للجوال:

Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)

رمز robots.txt هو فقط bingbot. الشيء الذي يجب الانتباه له: بعد 2022، سلسلة Bingbot تبدو تقريبًا تمامًا مثل متصفح Chrome/Edge حقيقي — العلامة الوحيدة هي جزء bingbot/2.0 بداخلها. إذا كان لديك أي منطق يقوم بتصفية أو اكتشاف الروبوتات بواسطة UA، فهذا التغيير مهم.

كيف يطابق robots.txt رمزًا فعليًا

قواعد قليلة تحكم أي مجموعة من القواعد يطيعها الزاحف (وفقًا لمواصفات robots.txt من Google وRFC 9309):

  • المطابقة الأكثر تحديدًا تفوز. Google “تحدد المجموعة الصحيحة من القواعد من خلال إيجاد… المجموعة التي تحتوي على وكيل المستخدم الأكثر تحديدًا الذي يطابق وكيل مستخدم الزاحف.” مجموعة Googlebot تتفوق على مجموعة * لـ Googlebot.
  • مجموعات نفس الرمز تندمج — ولكن أبدًا مع *. مجموعات متعددة تسمي نفس الوكيل تُدمج في واحدة. مجموعة وكيل محدد ومجموعة * لا تُدمجان؛ * هو فقط الاحتياط عندما لا يتطابق شيء محدد.
  • غير حساس لحالة الأحرف. اسم الحقل والقيمة كلاهما — Googlebot، googlebot، GOOGLEBOT متكافئة.
  • أرقام الإصدارات وحروف البدل في سطر الرمز تُتجاهل. وفقًا لـ Google، “كل من googlebot/1.2 وgooglebot* مكافئان لـ googlebot.” لا يمكنك كتابة User-agent: Googlebot* لمطابقة عائلة — * هناك لا يفعل شيئًا.

إذًا، سطر User-agent: يأخذ رمزًا ويطابقه كنص فرعي عادي (غير حساس لحالة الأحرف) لهوية الزاحف — بدون تثبيت إصدار، وبدون أحرف بدل داخله.

لماذا لا يمكنك الوثوق بالسلسلة — وكيف تتحقق

سلسلة وكيل المستخدم هي نص حر. أي شيء يمكنه تعيينها. سطر واحد من curl سيدّعي أنه Googlebot، والكثير من الأدوات والروبوتات الخبيثة تفعل ذلك بالضبط لتجاوز الحظر. تقول Google ذلك في وثائق Googlebot الخاصة بها: “the HTTP user-agent request header used by Googlebot is often spoofed by other crawlers.” (ترجمة) «رأس طلب وكيل المستخدم HTTP الذي يستخدمه Googlebot غالبًا ما يتم انتحاله بواسطة زواحف أخرى.» كما قلت في دليل Googlebot الخاص بي: “Many SEO tools and some malicious bots will pretend to be Googlebot. This may allow them to access websites that try to block them.” (ترجمة) «ستدّعي العديد من أدوات تحسين محركات البحث وبعض الروبوتات الخبيثة أنها Googlebot. قد يسمح لهم ذلك بالوصول إلى مواقع الويب التي تحاول حظرهم.»

لذا لا تتخذ أبدًا قرار وصول أو محتوى بناءً على السلسلة وحدها. تحقق بدلاً من ذلك.

شرط مسبق واحد قبل أي من الطريقتين: احصل على عنوان IP المصدر الحقيقي. إذا كان موقعك خلف وكيل عكسي أو موازن تحميل أو CDN، فقد يكون العنوان في سجل الوصول الافتراضي الخاص بك هو عنوان IP للوكيل، وليس عنوان الزاحف — تحتاج إلى عنوان IP الأصلي للعميل (عادةً ما يتم تمريره في رأس مثل X-Forwarded-For، مُهيأ بشكل صحيح في وكيلك) أو لا تعني أي من طريقتَي التحقق أدناه شيئًا.

الطريقة 1 — DNS عكسي + أمامي (الأفضل للفحوصات السريعة). خطوتا Google:

  1. “Run a reverse DNS lookup on the accessing IP address from your logs, using the host command. Verify that the domain name is either googlebot.com, google.com, or googleusercontent.com.” (ترجمة) «قم بإجراء بحث DNS عكسي على عنوان IP الذي يصل من سجلاتك، باستخدام الأمر host. تحقق من أن اسم المجال هو إما googlebot.com أو google.com أو googleusercontent.com
  2. “Run a forward DNS lookup on the domain name retrieved in step 1… Verify that it’s the same as the original accessing IP address from your logs.” (ترجمة) «قم بإجراء بحث DNS أمامي على اسم المجال الذي تم استرجاعه في الخطوة 1… تحقق من أنه نفس عنوان IP الأصلي الذي يصل من سجلاتك.»

بالنسبة لـ Bingbot، نفس الرقصة المكونة من خطوتين، لكن يجب أن ينتهي اسم المضيف بـ search.msn.com (وليس نطاقًا يحمل علامة Bing التجارية — مفاجأة شائعة). الأوامر موجودة في علامة التبويب “البرامج النصية”.

الطريقة 2 — نطاقات IP المنشورة (الأفضل على نطاق واسع). لا تنشر Google قائمة سماح ثابتة للتشفير الصلب (“these IP address ranges can change”) (ترجمة) «يمكن أن تتغير نطاقات عناوين IP هذه»، لكنها تنشر ملفات CIDR JSON قابلة للقراءة آليًا يمكنك مطابقتها (common-crawlers.json وملفات الزواحف الأوسع). تنشر Bing الآن نطاقاتها أيضًا. لقد بنيت أداة التحقق من عنوان IP الخاص بـ Googlebot لهذا الغرض بالضبط — الصق عناوين IP وسيصنفها. لدى Bing Webmaster Tools أيضًا أداة “Verify Bingbot” مدمجة.

DNS أفضل لفحص سجل لمرة واحدة؛ مطابقة نطاق IP أفضل للتحقق بكميات كبيرة. استخدم ما يناسبك — لكن استخدم واحدًا منها. وعامل كلاً من أسماء المضيفين المتوقعة وملفات النطاقات على أنها حالية حتى اليوم، وليست دائمة — لقد غيّرت Google وBing هذه المسارات من قبل (تم نقل ملفات JSON لنطاقات IP وإعادة تسميتها منذ كتابة هذه المقالة لأول مرة)، لذا أعد التحقق من مستند التحقق المباشر إذا توقف بحث كان يعمل سابقًا عن التطابق.

مطابقة UA ليست دليلاً على النتائج النهائية

حتى الطلب المُتحقق منه بالكامل — عنوان IP حقيقي لـ Googlebot، وDNS عكسي مؤكد أماميًا، كل شيء يبدو صحيحًا — يثبت شيئًا واحدًا فقط: ذلك الطلب وصل إلى خادمك. من المغري تقريب ذلك إلى ادعاء أكبر بكثير، لكن كل من هذه حقائق منفصلة تتطلب أدلة منفصلة:

  • تم استلام الطلب — طلب يحمل وكيل المستخدم هذا وصل إلى خادمك. (ما يثبته التحقق من السجلات فعليًا.)
  • تم تأكيد الهوية — الطلب جاء فعلًا من الزاحف الذي يدّعي أنه هو. (ما يضيفه مطابقة DNS العكسي / نطاقات IP فوق ذلك.)
  • تم جلب المحتوى وعرضه — نجح الزاحف في عرض الصفحة (بدون أخطاء، بدون موارد محجوبة). ليس مضمونًا فقط لأن طلبًا وصل.
  • تمت الفهرسة — وصل الرابط إلى فهرس البحث. الجلب الناجح لا يضمن الفهرسة.
  • تم استخدامه للاسترجاع أو الاستشهاد أو التدريب — خاصة بالنسبة لزواحف الذكاء الاصطناعي (Google-Extended، GPTBot، وغيرها)، الزحف ليس دليلًا على أن المحتوى الخاص بك تم استرجاعه لإجابة محددة، أو الاستشهاد به، أو استخدامه في تدريب النموذج. تلك خطوات منفصلة وغير قابلة للملاحظة في الغالب، وتحدث بعد الزحف.

زيارة Googlebot موثقة في سجلاتك هي إشارة حقيقية — فقط لا تمددها أكثر مما تظهره فعليًا.

Web Bot Auth: أين يتجه التحقق

في عام 2026، بدأت Google في تجربة Web Bot Auth“بروتوكول تشفير تجريبي يُستخدم للتحقق من الطلبات المرسلة من قبل الروبوتات.” الفكرة هي “الانتقال من الترويسات التي يسهل تزويرها إلى هوية موثقة وفصل هوية الوكيل عن عناوين IP.” توقّع الروبوتات طلباتها تشفيريًا؛ تتحقق المواقع من التوقيع مقابل المفاتيح العامة المنشورة من Google، وتحمل الطلبات الموقعة ترويسة Signature-Agent. تحذير Google نفسه مهم: “نحن لا نوقّع كل طلب لوكيل معين. تأكد من أنك تعود إلى الطرق المعتمدة للتحقق من الروبوتات.” لذا فهو إضافة، وليس بديلًا — يبقى DNS العكسي ونطاقات IP خط الأساس اليوم.

المتصفحات أصبحت أصعب في التحليل من سلسلة UA أيضًا

كل ما سبق يتعلق بالزواحف، لكن نفس الدرس “لا تثق كثيرًا في السلسلة” ينطبق على المتصفحات، وهو يزداد قوة. بدأت Chrome في طرح تقليل User-Agent: تجميد أو تخشين أجزاء من سلسلة UA الخاصة بها (إصدار المتصفح الكامل، إصدار نظام التشغيل، طراز الجهاز) بدلاً من الإبلاغ عنها بدقة، بحيث لا يمكن استخدام السلسلة لتحديد هوية مستخدم معين. صياغة Google نفسها: “يمكن أن تؤدي دقة التفاصيل ووفرتها إلى تحديد هوية المستخدم. التوفر الافتراضي لهذه المعلومات يمكن أن يؤدي إلى تتبع خفي.” عمليًا، هذا يعني أن تحليل سلسلة UA للحصول على إصدار المتصفح/نظام التشغيل/الجهاز الدقيق — التحليلات، اكتشاف الجهاز، فرز الأخطاء — أصبح غير موثوق بشكل متزايد وسيزداد الأمر سوءًا.

البديل الذي توصي به Chrome هو User-Agent Client Hints (UA-CH): بيانات منظمة يرسلها المتصفح فقط عندما يطلبها الخادم صراحةً. تلميحات منخفضة الإنتروبيا (علامة المتصفح، الإصدار الرئيسي، علامة الجوال) تُرسل افتراضيًا؛ التلميحات عالية الإنتروبيا (الإصدار الدقيق، إصدار المنصة، طراز الجهاز) تتطلب من الخادم الاشتراك عبر ترويسة استجابة Accept-CH أولاً — تفاوض صريح، وليس بثًا. تحذيران قبل الاعتماد عليه: إنها آلية خاصة بعائلة Chrome/Chromium، وليست شيئًا يرسله كل متصفح، وحتى حيث تكون مدعومة، “قد تكون القيمة فارغة، أو لا تُرجع، أو تُملأ بقيمة متغيرة.” تحل Client Hints مشكلة سلسلة المتصفح؛ لكنها ليست آلية للتحقق من الزواحف — لا تزال Google وBing تتحققان من زواحفهما عبر DNS ونطاقات IP، وليس عبر Client Hints.

استهداف User-Agent والتضليل (Cloaking)

الخطوة المغرية — “اكتشاف Googlebot عبر UA الخاص به وتقديم شيء خاص له” — هشة تقنيًا وتشكل انتهاكًا للسياسة.

هشة، لأن Google لا تزحف باستخدام UA واحد. ستحتاج إلى التعامل بشكل صحيح مع Googlebot (الجوال وسطح المكتب)، وGoogle-InspectionTool، وAdsBot، وGoogleOther، والمزيد، من عناوين IP متغيرة — من المستحيل عمليًا إنشاء قائمة بيضاء نظيفة.

انتهاك للسياسة، لأن تقديم محتوى مختلف لزاحف الويب عن المحتوى المقدم للمستخدمين هو إخفاء (cloaking): “تقديم محتوى مختلف للمستخدمين ومحركات البحث بهدف التلاعب في ترتيب البحث وخداع المستخدمين.” وتتراوح العقوبة بين الخفض الخوارزمي والإزالة الكاملة من الفهرس. لاحظ السطر: التكيف المشروع (التخطيطات المتجاوبة، التفاوض على المحتوى) أمر مقبول — إنما استبدال المحتوى نفسه بين الروبوتات والمستخدمين هو ما يندرج تحت الإخفاء.

لمعرفة مكان وكيل المستخدم في خط الأنابيب الأوسع، راجع الزحف (المحور) و الزاحف. للتحكم فيما يُسمح لهذه الروبوتات بجلبه، راجع robots.txt.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.