العرض الديناميكي

ما هو العرض الديناميكي، ووظيفتا ترويسة Vary User-Agent، ولماذا أصبح نمطًا قديمًا، وكيف يختلف عن التصميم المتجاوب والعرض المسبق الديناميكي.

نُشر أول مرة: 2 يوليو 2026 · آخر تحديث: 11 أغسطس 2026 · Advanced
اللغات

يعني العرض الديناميكي أن يعيد عنوان URL واحد HTML/CSS مختلفًا بحسب وكيل المستخدم الطالب — يحصل سطح المكتب على صفحة ويحصل الجوال على أخرى — وعلى الخادم إرسال ترويسة Vary: User-Agent حتى لا تقدم ذاكرات التخزين المؤقت وبرامج الزحف النسخة الخطأ. وهو أحد إعدادات الجوال الثلاثة: التصميم المتجاوب، والعرض الديناميكي، وعناوين m-dot المنفصلة. وتوصي Google بالتصميم المتجاوب لأن العرض الديناميكي يعتمد على اكتشاف وكيل المستخدم المعرّض للأخطاء وعلى ترويسات Vary الصحيحة. لا تخلطه بالعرض المسبق الديناميكي لصفحات JavaScript أمام برامج الروبوت. وفي 2026 هو غالبًا نمط قديم تدققه في موقع قديم أو مؤسسي، لا نمطًا تبني به موقعًا جديدًا؛ فقد رفعت الفهرسة المعتمدة على الجوال أولًا كلفة أخطاء عرض الأجهزة، بينما تجزّئ Vary: User-Agent ذاكرات CDN المؤقتة.

الخلاصة — العرض الديناميكي = عنوان URL نفسه مع HTML/CSS مختلف حسب وكيل المستخدم، يُكتشف على الخادم ويُعلَن بترويسة الاستجابة Vary: User-Agent. وهو أحد إعدادات الجوال الثلاثة إلى جانب التصميم المتجاوب الذي توصي به Google وعناوين URL المنفصلة من نوع m-dot. تؤدي Vary وظيفتين: تمنع ذاكرات التخزين من تقديم نسخة الجهاز الخطأ، وساعدت Googlebot تاريخيًا في اكتشاف نسخة الجوال. لكنها تكلف أيضًا؛ فهي تجزّئ مفاتيح ذاكرة CDN عبر كل سلسلة UA مختلفة وتضاعف حمل المصدر. واكتشاف وكيل المستخدم عرضة للأخطاء، وقد يجعل خطأ الاكتشاف أو غياب Vary Google ترى نسخة خاطئة أو مكسورة، وهنا تنشأ مخاطرة التمويه. لا تخلطه بـالعرض المسبق الديناميكي لصفحات JS أمام الزواحف. في 2026 هو نمط قديم ينبغي تدقيقه والتخلص منه، لا بناؤه من جديد.

Evidence for this claim Dynamic serving uses one URL with device-dependent HTML and should send Vary: User-Agent. Scope: Current official or standards documentation. Confidence: high · Verified: Google: Mobile configurations Evidence for this claim Google supports dynamic serving but recommends responsive design because it is easier to implement and maintain. Scope: Current official or standards documentation. Confidence: high · Verified: Google: Mobile-first indexing

ما العرض الديناميكي تحديدًا؟

تعريف Google في مستند أفضل ممارسات الفهرسة المعتمدة على الجوال أولًا هو: “Dynamic serving: Uses the same URL regardless of device. This configuration relies on user-agent sniffing and the Vary: user-agent HTTP response header to serve a different version of the HTML to different devices.” (ترجمة) «العرض الديناميكي: يستخدم عنوان URL نفسه بصرف النظر عن الجهاز. يعتمد هذا الإعداد على تحسس وكيل المستخدم وترويسة استجابة HTTP ‏Vary: user-agent لتقديم نسخة مختلفة من HTML إلى الأجهزة المختلفة.» وصاغت صفحة Google المخصصة والمتقاعدة الأمر بوضوح أكبر: “a setup where the server responds with different HTML (and CSS) on the same URL depending on which user agent requests the page (mobile, tablet, or desktop).” (ترجمة) «إعداد يستجيب فيه الخادم بـHTML وCSS مختلفين على عنوان URL نفسه، تبعًا لوكيل المستخدم الذي يطلب الصفحة: جوال أو جهاز لوحي أو سطح مكتب.»

وهو أحد إعدادات الجوال الثلاثة، ويوضحه جدول من ثلاثة صفوف:

الإعدادعنوان URL نفسه؟HTML نفسه؟الإشارة الأساسية
التصميم المتجاوبنعمنعماستعلامات وسائط CSS، بلا عمل على الخادم
العرض الديناميكينعملا، حسب وكيل المستخدمترويسة Vary: User-Agent
عناوين URL منفصلة (m-dot)لالاrel=canonical/rel=alternate + Vary

يعتمد اثنان من الإعدادات الثلاثة على Vary. وتوضح Google أن العناوين المنفصلة “like dynamic serving, this configuration relies on the user-agent and Vary HTTP headers.” (ترجمة) «تعتمد، مثل العرض الديناميكي، على وكيل المستخدم وترويسات HTTP ‏Vary». أما التصميم المتجاوب وحده فلا يضم نسختين قد تفقدان التزامن، ولهذا توصي به Google. راجع التصميم المتجاوب وكيف تجتمع الإعدادات في محور SEO للجوال.

كيف يعمل: اكتشاف وكيل المستخدم وترويسة Vary

يفحص الخادم سلسلة وكيل المستخدم الواردة، وهي المعرّف الذي يرسله كل عميل، ويقرر إن كان الجهاز هاتفًا أو جهازًا لوحيًا أو سطح مكتب، ثم يعيد HTML المناسب. ولأن عنوان URL واحد للجميع، يجب أن يعلن الخادم أن الاستجابة تختلف حسب وكيل المستخدم. هذه هي Vary: User-Agent، وتذكر إرشادات Google المؤرشفة أنها تؤدي وظيفتين منفصلتين:

“It signals to caching servers used in ISPs and elsewhere that they should consider the user agent when deciding whether to serve the page from cache or not. Without the Vary HTTP header, a cache may mistakenly serve mobile users the cache of the desktop HTML page or vice versa. It helps Googlebot discover your mobile-optimized content faster, as a valid Vary HTTP header is one of the signals we may use to crawl URLs that serve mobile-optimized content.” (ترجمة) «تشير إلى خوادم التخزين المؤقت لدى مزودي خدمة الإنترنت وغيرها بأن تراعي وكيل المستخدم عند تقرير تقديم الصفحة من الذاكرة المؤقتة. ومن دون ترويسة Vary HTTP قد تقدم الذاكرة لمستخدمي الجوال نسخة HTML الخاصة بسطح المكتب أو العكس. كما تساعد Googlebot على اكتشاف المحتوى المحسن للجوال أسرع، لأن ترويسة Vary HTTP الصالحة إحدى الإشارات التي قد نستخدمها لزحف عناوين URL التي تقدم محتوى محسنًا للجوال.»

إذًا الوظيفة الأولى هي صحة التخزين المؤقت، وهي مسألة تجربة مستخدم وصحة مستقلة عن محركات البحث، والثانية هي اكتشاف الزحف. لا تذكر صفحات مصطلحات منافسة كثيرة إلا الأولى أو تخلطهما. وتبدو الاستجابة الحقيقية هكذا:

HTTP/1.1 200 OK
Content-Type: text/html
Vary: User-Agent
Content-Length: 5710

إذا كان الخادم يرسل Vary أصلًا لشيء آخر مثل Accept-Encoding، فأضف User-Agent إلى القائمة بدل استبدالها.

ومن المهم الفصل: Vary نفسها آلية HTTP عادية للتخزين المؤقت وليست اختراعًا في SEO. فهي تخبر الذاكرة بأي ترويسات طلب تدخل في مفتاح التخزين كي تحفظ المتغير الصحيح؛ ولا تكتشف الأجهزة ولا تفهم SEO. منطق وكيل المستخدم على خادمك يفعل ذلك منفصلًا، واستخدام Google للترويسة في اكتشاف الزحف هو وصف Google لإشارة تراقبها، لا شرطًا بروتوكوليًا تتبعه كل ذاكرة بالطريقة نفسها. أرسلها باتساق لعنوان URL، بما في ذلك استجابات 304 Not Modified وأي استجابة افتراضية أو احتياطية، وإلا قد تحفظ الذاكرة بيانات وصفية غير متسقة.

الكلفة التي تتجاهلها أدلة كثيرة: تجزئة ذاكرة CDN

Vary: User-Agent ليست مجانية؛ إنها تجزّئ الذاكرة المؤقتة. يعتمد مفتاح الذاكرة جزئيًا على الترويسات المذكورة في Vary، ولذلك تعني الترويسة نسخة مخزنة منفصلة لكل سلسلة وكيل مستخدم تزور الموقع: كل إصدار متصفح وبنية نظام تشغيل وروبوت. تصبح آلاف المتغيرات لمحتوى لا يضم فعليًا إلا نسختين أو ثلاثًا. لكن مقدار فقد إعادة الاستخدام يعتمد على تعامل CDN نفسه مع مفاتيح التخزين؛ فبعضها يطبّع السلاسل أو يجمع المتشابه، ومعظمها لا يفعل. لذلك لا توجد خسارة واحدة عامة لمعدل الإصابة، وأي مُضاعف محدد، بما فيه تقدير SiteGround أدناه، تقدير مورّد لا رقم مضمون لبنيتك.

وصفت SiteGround الكلفة عمليًا: “With the User-Agent [header] enabled, the system will keep different copies for each combination of OS and browser version visiting your site… you will have 5-30 dynamic requests for the same 100 visits. So the very same site will use 5-30 times the resources.” (ترجمة) «مع تفعيل ترويسة User-Agent سيحتفظ النظام بنسخ مختلفة لكل تركيبة من نظام التشغيل وإصدار المتصفح التي تزور موقعك… سيكون لديك 5–30 طلبًا ديناميكيًا لكل 100 زيارة، ولذلك سيستخدم الموقع نفسه موارد أكثر 5–30 مرة.» ويؤثر ذلك في الزواحف بقوة: “If such [a] bot starts crawling your site and you have the Vary: User-Agent header, each request it makes to your site would be a dynamic one and will eat up your resources.” (ترجمة) «إذا بدأ روبوت كهذا زحف موقعك وكانت لديك ترويسة Vary: User-Agent، فسيكون كل طلب يرسله إلى موقعك ديناميكيًا وسيستهلك مواردك.»

ليست المشكلة جديدة. ففي 2013 حذرت Cindy Krum في Search Engine Land من أن شبكات CDN المؤسسية تعامل الترويسة إشارةً إلى أن المحتوى “cannot be cached or served from the CDN and must be fetched directly from your server” (ترجمة) «لا يمكن تخزينه أو تقديمه من CDN ويجب جلبه مباشرة من خادمك»، بما قد يؤدي إلى “rendering your CDN completely useless” (ترجمة) «جعل CDN عديمة الفائدة تمامًا» للصفحات المعروضة ديناميكيًا. تغير سلوك الموردين المحدد منذ 2013، لكن التوتر الأساسي، وهو تجزئة مفاتيح التخزين، ما زال حقيقيًا تقنيًا وكان سببًا مهمًا لتراجع هذا النمط. وتضيف SiteGround أن “most of the sites don’t actually serve different HTML for their mobile versions. It’s the responsive CSS that does all the heavy lifting” (ترجمة) «معظم المواقع لا تقدم HTML مختلفًا فعلًا لنسخ الجوال، بل تنجز CSS المتجاوبة العمل كله»، أي إن ترويسة Vary: User-Agent في حالات كثيرة مجرد إعداد قديم متبقٍ في موقع متجاوب.

هل يُعد العرض الديناميكي تمويهًا؟

ليس في ذاته. تتعلق المخاطرة بالنتيجة والقصد لا بالتقنية. اكتشاف الجهاز وتقديم محتوى مناسب له مقبول؛ والخطر إما خطأ اكتشاف أو غياب Vary فيقدم إلى Googlebot نسخة خاطئة أو مكسورة، وإما تقديم محتوى مختلف جوهريًا إلى محركات البحث عمدًا. وحذرت إرشادات Google المؤرشفة بوضوح:

“Be very careful of cloaking when detecting user agents… it should not be looking specifically for Googlebot. All Googlebot user agents identify themselves as specific mobile devices, and you should treat these Googlebot user agents exactly like you would treat these devices.” (ترجمة) «توخ الحذر الشديد من التمويه عند اكتشاف وكلاء المستخدم… لا ينبغي أن يبحث المنطق عن Googlebot تحديدًا. تعرّف كل وكلاء Googlebot أنفسهم بوصفهم أجهزة جوال محددة، وينبغي معاملتهم تمامًا كما تعامل تلك الأجهزة.»

ويظهر المبدأ الموازي في مستند العرض المسبق الديناميكي: “As long as your dynamic rendering produces similar content, Googlebot won’t view dynamic rendering as cloaking,” (ترجمة) «ما دام العرض المسبق الديناميكي ينتج محتوى مشابهًا، فلن يعدّه Googlebot تمويهًا»، بينما “serving completely different content to users and crawlers can be considered cloaking.” (ترجمة) «قد يُعد تقديم محتوى مختلف تمامًا للمستخدمين والزواحف تمويهًا». وينطبق المنطق نفسه هنا: المحتوى المتشابه جوهريًا لكل جهاز مقبول، أما الإعداد الخاطئ الذي يبدو تمويهًا فهو الخطر الحقيقي.

العرض الديناميكي مقابل العرض المسبق الديناميكي

هذا أوضح موضع تخطئ فيه الصفحات المنافسة، لذلك يلزم خط فاصل صريح:

  • العرض الديناميكي = اختلاف حسب الجهاز: عنوان URL نفسه وHTML مختلف للجوال وسطح المكتب. وهو موضوع هذه الصفحة، وقد دمجت Google إرشاداته في مستند الفهرسة المعتمدة على الجوال أولًا.
  • العرض المسبق الديناميكي = اختلاف في عرض JavaScript للروبوتات: تقديم نسخة معروضة مسبقًا أو على الخادم من صفحة ثقيلة بـJavaScript للزواحف، بينما يحصل المستخدمون على النسخة المعروضة في العميل. له مستند Google مستقل لا يزال منشورًا، وتغطيه Bing في منشورها عن bingbot لعام 2018: “Dynamic rendering is about detecting user agent and rendering content differently for humans and search engine crawlers” (ترجمة) «العرض المسبق الديناميكي هو اكتشاف وكيل المستخدم وعرض المحتوى بصورة مختلفة للبشر وزواحف محركات البحث»؛ وهذا عن عرض JS لـbingbot، لا العرض القائم على الجهاز.

يسهل الخلط لأن الاثنين يستخدمان اكتشاف وكيل المستخدم ويثيران سؤال التمويه، لكنهما مشكلتان مختلفتان ولهما مستندات مختلفة.

اكتشاف وكيل المستخدم عرضة للأخطاء فعلًا

تذكر إرشادات Google المؤرشفة أعطالًا لا تزال قائمة: تحتاج قوائم وكلاء المستخدم إلى صيانة مستمرة ولا تطابق الوكلاء الجدد؛ ومن السهل الخطأ، “sometimes detecting a desktop user agent as a mobile one or detecting a mobile user agent as a desktop” (ترجمة) «فتكتشف أحيانًا وكيل سطح مكتب على أنه جوال أو وكيل جوال على أنه سطح مكتب»؛ والخطأ الكلاسيكي هو “a common mistake for sites is to inadvertently treat tablet devices as smartphones.” (ترجمة) «من الأخطاء الشائعة أن تعامل المواقع الأجهزة اللوحية بوصفها هواتف ذكية من غير قصد». وتلخص Google الأمر: “Use the Vary HTTP header to signal your changes depending on the user agent. Detect user agent strings correctly.” (ترجمة) «استخدم ترويسة Vary HTTP للإشارة إلى التغييرات بحسب وكيل المستخدم، واكتشف سلاسله بطريقة صحيحة». تبدو بسيطة، لكنها عبء الصيانة كله في جملتين.

تعالج Google هذه الأخطاء منذ عقد. ففي يناير 2015 أشار Pierre Far من Google إلى أبرز مشكلات التنفيذ التي رآها، والمتعلقة بمعالجة متغيرات JavaScript وCSS والصور عبر الأجهزة، لا ترويسة Vary وحدها؛ فتذكّر أن «أضف الترويسة» لم يكن القصة كاملة قط.

لماذا أصبح التصميم المتجاوب هو الافتراضي؟

جعل عاملان العرض الديناميكي نمطًا قديمًا. أولًا، توصي Google بالتصميم المتجاوب “because it’s the easiest design pattern to implement and maintain” (ترجمة) «لأنه أسهل نمط تصميم في التنفيذ والصيانة» منذ 2015 على الأقل: نسخة واحدة ولا مخاطرة اكتشاف أجهزة. ثانيًا، اكتملت الفهرسة المعتمدة على الجوال أولًا في 2023–2024، فرفعت كلفة الخطأ؛ نسخة الجوال هي التي تزحف إليها Google وتفهرسها وترتبها أساسًا. لذلك لا يقدم الخطأ صفحة جوال سيئة فحسب، بل يقدم محتواك الأساسي المفهرس على نحو خاطئ. وينطبق الدفع بعيدًا عن الإعدادات الخاصة بالأجهزة، بما فيها عناوين m-dot المنفصلة، على العرض الديناميكي أيضًا: وحّد الصفحة في عنوان متجاوب واحد فتختفي فئة المشاكل بأكملها.

Evidence for this claim Google supports dynamic serving but recommends responsive design because it is easier to implement and maintain. Scope: Current official or standards documentation. Confidence: high · Verified: Google: Mobile-first indexing

وللصورة الكاملة عن تكافؤ المحتوى ومؤشرات Core Web Vitals على الجوال وقابلية الاستخدام والنوافذ البينية ووضع AMP، راجع محور SEO للجوال وقائمة تدقيق SEO للجوال.

كيف تعرف إن كان الموقع يستخدم العرض الديناميكي؟

الاختبار مباشر وسريع: اطلب عنوان URL نفسه مرتين بسلسلتي وكيل مستخدم مختلفتين وقارن. إذا اختلف HTML وحملت الاستجابة Vary: User-Agent فهذا عرض ديناميكي. وإذا تطابق HTML وأعاد ترتيب نفسه عبر CSS فهو تصميم متجاوب. يضم تبويب Scripts نسخ curl وDevTools وbookmarklet. والإشارة التي ينبغي مراقبتها هي اختلاف HTML حسب الجهاز مع غياب Vary؛ فهذا الخلل الذي يهدد بتقديم النسخة الخطأ من الذاكرة إلى المستخدمين والزواحف.

Evidence for this claim Dynamic serving uses one URL with device-dependent HTML and should send Vary: User-Agent. Scope: Current official or standards documentation. Confidence: high · Verified: Google: Mobile configurations

Add an expert note

Pin an expert quote

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