الصور المتجاوبة (srcset)

كيفية تقديم الصور المتجاوبة بسمتي srcset وsizes وعنصر picture، ومتى تستخدم كلاً منها، وكيف تعالج الصور المتجاوبة LCP وCLS من دون أن تكون إشارة ترتيب مباشرة.

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

الصور المتجاوبة تجعل المتصفح، عبر srcset وsizes، أو المؤلف، عبر <picture>، يقدم صورة مناسبة الحجم لكل جهاز. srcset/sizes لتبديل الدقة للصورة نفسها ويختار المتصفح، أما <picture> فللتوجيه الفني أو تبديل التنسيق ويفرض المؤلف القص أو التنسيق. تحتاج معظم المواقع إلى srcset/sizes فقط. ليست هذه إشارة ترتيب مباشرة ولا تغير ما تفهرسه Google، فهي تفهرس عنوان src، لكنها إصلاح Lighthouse العملي للصور المفرطة الحجم، ومع width وheight تمنع CLS. ثبّت نص alt وعناوين الصور عبر نقاط التوقف ولا تستخدم التحميل الكسول لصورة LCP.

الخلاصة — مهمتان ضمن عائلة صياغة واحدة. يعني srcset/sizes على <img> تبديل الدقة، أي الصورة نفسها والمتصفح يختار الأنسب بوصفه اقتراحاً. ويعني <picture> التوجيه الفني أو تبديل التنسيق، حيث يفرض المؤلف القص أو التنسيق بوصفه أمراً. تحتاج معظم المواقع إلى الأول فقط. الصور المتجاوبة ليست إشارة ترتيب مباشرة ولا تغير ما تفهرسه Google؛ فهي تفهرس عنوان src، لذا ثبّت نص alt وأسماء الملفات وعناوين الصور عبر نقاط التوقف. المكسب الحقيقي هو مؤشرات أداء الويب الأساسية: تحجيم الصور هو إصلاح تدقيق Lighthouse «تحجيم الصور بصورة صحيحة» الذي يفشل عند فارق 4KiB، وتحجز width/height أو aspect-ratio المساحة لمنع CLS، لا srcset. لا تستخدم التحميل الكسول لصورة LCP. وأعيد هنا النمط نفسه من مقالتي عن CLS في Ahrefs.

Evidence for this claim The HTML responsive-image features srcset, sizes, and picture let browsers select an appropriate image candidate. Scope: Current HTML responsive image behavior. Confidence: high · Verified: WHATWG HTML: Responsive images Evidence for this claim Google can process responsive images and recommends src as a fallback while using srcset or picture for responsive delivery. Scope: Current Google Images responsive-image guidance. Confidence: high · Verified: Google Search Central: Responsive images

مهمتان مختلفتان وعائلة صياغة واحدة

ينحصر الموضوع في آليتين، وينشأ كثير من الالتباس من الخلط بينهما:

  1. تبديل الدقة — الصورة نفسها بأحجام أو كثافات بكسل مختلفة. تقدم للمتصفح قائمة عبر srcset وsizes على <img>، ويقرر المتصفح الملف الذي يجلبه وفق منفذ العرض وكثافة الشاشة. وهذه الحالة الشائعة.
  2. التوجيه الفني — صورة مختلفة فعلاً لكل شرط: قص عريض لسطح المكتب، أو قص رأسي محكم للهاتف، أو تنسيق ملف مختلف كلياً. وهنا تفرض أنت الاختيار بواسطة <picture>.

يصوغ درس الصور المتجاوبة في web.dev الفرق بدقة: مع srcset يحصل المتصفح على اقتراحات، بينما «يعطي العنصر picture أوامر». ويحدد web.dev النطاق أيضاً: “You probably won’t need to use the picture element for most of your responsive images — the srcset and sizes attributes on the img element cover a lot of use cases.” (ترجمة) «لن تحتاج على الأرجح إلى العنصر picture لمعظم صورك المتجاوبة؛ فسمتا srcset وsizes على img تغطيان حالات استخدام كثيرة». استخدم <picture> عندما تحتاج إلى صورة مختلفة، لا مجرد حجم مختلف للصورة نفسها.

srcset وsizes: تبديل الدقة

واصفات w في مقابل واصفات x

تقبل srcset قائمة ملفات مرشحة مفصولة بفواصل، ولكل ملف واصف. والواصفات نوعان:

  • واصفات العرض (w) — تذكر العرض الداخلي لكل ملف بالبكسل، مثل puppy-2000.jpg 2000w. يدمج المتصفح ذلك مع قيمة sizes ليحدد الملف الأنسب للمساحة ولكثافة بكسل الجهاز. وهذا الخيار المرن الذي ستستخدمه غالباً.
  • واصفات كثافة البكسل (x) — تحدد الملف المناسب لكل نسبة بكسل جهاز، مثل logo.png 1x, logo@2x.png 2x. استخدمها للصور ثابتة الحجم كالصورة الرمزية أو الشعار؛ ولا تحتاج إلى sizes مع واصفات x.

قاعدة عملية: الصور المرنة بعرض المحتوى ← واصفات w + sizes؛ وصور واجهة المستخدم ثابتة الحجم ← واصفات x.

لماذا تهم sizes؟ وماذا يحدث إذا حذفتها؟

مع واصفات w ليست sizes زينة اختيارية، بل هي ما يخبر المتصفح بحجم عرض الصورة ليختار قبل تنفيذ التخطيط. ووفق web.dev، فإن sizes «تخبر المتصفح بالحجم المتوقع لعرض الصورة في ظروف مختلفة»، ضمن قائمة مفصولة بفواصل لشروط الوسائط والعروض:

sizes="(max-width: 600px) 480px, 1000px"

اقرأها هكذا: «إذا كان منفذ العرض 600px أو أضيق فسيكون عرض الصورة نحو 480px، وإلا فنحو 1000px». وإذا حذفت sizes يفترض المتصفح أن الصورة تملأ عرض منفذ العرض كله (100vw)؛ لذلك قد يجلب أكبر ملف على شاشة عريضة لصورة لا يتجاوز عرضها الفعلي 400px، فيضيع الغرض كله. غياب sizes هو أكثر أخطاء srcset شيوعاً.

لا تخمّن قيم العرض من تصورك للتخطيط؛ افحص عرض CSS الفعلي للصورة في المتصفح عند كل نقطة توقف مهمة (DevTools ← Elements ← العرض المحسوب لصندوق <img>) واضبط sizes لتطابقه. والقيمة التي لا تطابق العرض الفعلي تجعل المتصفح يختار المرشح الخطأ حتى لو كانت الصياغة صحيحة؛ لن يكشف تحقق الصياغة وحده ذلك، لذا استخدم فحص currentSrc أدناه لتأكيد الملف المحمل.

مثال عملي: النمط الذي أعيد استخدامه

هذا هو النمط نفسه من مقالتي في Ahrefs ما تغيّر التخطيط التراكمي (CLS) وكيف تحسنه؟, بعد توسيعه بإضافة sizes:

<img
  src="puppy-1000.jpg"
  srcset="puppy-1000.jpg 1000w,
          puppy-2000.jpg 2000w,
          puppy-3000.jpg 3000w"
  sizes="(max-width: 600px) 480px, 1000px"
  width="1000" height="1000"
  alt="Puppy with balloons" />

لكل جزء وظيفة أساسية: src هو البديل وعنوان URL الذي تفهرسه Google؛ وsrcset يسرد المرشحين بواصفات w؛ وتوضح sizes عرض الصورة عند ظهورها؛ وتحجز width/height المساحة، وهو إصلاح CLS؛ ويبقى alt متطابقاً أياً كان الملف المحمل.

العنصر picture: التوجيه الفني وتبديل التنسيق

متى تحتاج إليه فعلاً؟

استخدم <picture> لأمرين لا تستطيع srcset فعلهما:

  1. التوجيه الفني — قص مختلف عند كل نقطة توقف. ففي مثال web.dev قد تقدم للهاتف الضيق قصاً رأسياً محكماً، وللسطح العريض قصاً قصيراً وعريضاً؛ الموضوع نفسه بتأطير مختلف عمداً.
  2. تبديل التنسيق — تقديم AVIF/WebP مع JPEG احتياطي عبر عنصر source مشروط بسمة type، ليأخذ المتصفح أول تنسيق يدعمه. وهذا يرتبط مباشرة بإرشادات التنسيق في محور SEO للصور.

الصياغة وقاعدة البديل الاحتياطي

يلف العنصر <picture> عنصراً واحداً أو أكثر من <source> وينتهي دائماً بعنصر <img> عادي:

<!-- Art direction: different crop per breakpoint -->
<picture>
  <source media="(max-width: 600px)" srcset="hero-crop-mobile.jpg">
  <img src="hero-crop-desktop.jpg" width="1200" height="675"
       alt="Product hero shot">
</picture>

<!-- Format switching: modern format with a fallback -->
<picture>
  <source type="image/avif" srcset="hero.avif">
  <source type="image/webp" srcset="hero.webp">
  <img src="hero.jpg" width="1200" height="675" alt="Product hero shot">
</picture>

عنصر <img src> الأخير ليس اختيارياً. تقول Google ذلك مباشرة بالاستناد إلى القسم 4.8.1 من معيار HTML: “make sure that you provide an img element as a fallback with a src attribute when using the picture element.” (ترجمة) «تأكد من توفير عنصر img احتياطي بسمة src عند استخدام العنصر picture». إنه الملف الذي تعود إليه المتصفحات القديمة وبرامج الزحف، وهو أيضاً ما تفهرسه Google.

هل تساعد srcset في SEO؟ مباشرة أم بصورة غير مباشرة؟

هذا هو التأطير الذي تخطئ فيه الأدلة المنافسة، لذا سأكون صريحاً.

مباشرة: لا. ترميز الصور المتجاوبة ليس إشارة ترتيب مثل نص alt أو أسماء الملفات في بحث الصور. لا ترفع إضافة srcset مواضعك ولا تغير ما يظهر في صور Google. تفهرس Google الصورة المشار إليها في src؛ أما نسخ srcset/<picture> فهي آلية تسليم وليست أصولاً مستقلة قابلة للفهرسة. أبق نص alt واسم الملف والبيانات المنظمة مرتبطة بصورة src الأساسية.

بصورة غير مباشرة: نعم، وهي من أكبر وسائل التحسين. الصور مناسبة الحجم من أنجع الإصلاحات العملية لمؤشري LCP وCLS من مؤشرات أداء الويب الأساسية، وهما يغذيان إشارات تجربة الصفحة لدى Google. هذا هو المكسب كله؛ وكما في قصة WebP/AVIF ضمن محور SEO للصور، لا دفعة للتنسيق نفسه بل المكسب في السرعة.

الصور المتجاوبة وLCP

الصور المفرطة الحجم من أكثر أسباب بطء سرعة عرض أكبر محتوى، والصور المتجاوبة هي الإصلاح الذي توصي به Lighthouse. يسرد تدقيق «تحجيم الصور بصورة صحيحة» في Lighthouse كل الصور غير المناسبة الحجم مع الوفورات المحتملة؛ فالملف الأكبر من اللازم لا يفعل إلا هدر وحدات البايت وإبطاء التحميل. وإصلاحه حرفياً: “With responsive images, you generate multiple versions of each image, and then specify which version to use in your HTML or CSS using media queries, viewport dimensions, and so on.” (ترجمة) «تنشئ مع الصور المتجاوبة نسخاً متعددة من كل صورة، ثم تحدد النسخة المستخدمة في HTML أو CSS بواسطة استعلامات الوسائط وأبعاد منفذ العرض ونحو ذلك».

تفصيلان جديران بالمعرفة:

  • عتبة الفشل 4KiB. لا تشير Lighthouse إلى الصورة إلا عندما يكون حجم العرض أصغر من الحجم الفعلي بما لا يقل عن 4KiB. لا تُحتسب التجاوزات الصغيرة، أما تقديم ملف بعرض 3000px داخل خانة 400px فيُحتسب.
  • اختصار بالأدوات. توصي Google بأداة RespImageLint، وتصفها بأنها “a helpful bookmarklet for identifying the optimal srcset and sizes values for your images.” (ترجمة) «إشارة مرجعية مفيدة لتحديد قيم srcset وsizes المثلى لصورك». شغلها قبل حساب نقاط التوقف يدوياً.

لا تستخدم التحميل الكسول لصورة LCP

هذه أكثر القواعد خرقاً. لا بأس باستخدام srcset في الصورة الرئيسية، لكن لا تقرنها بالتحميل الكسول على عنصر LCP. يجب تحميل أكبر صورة فوق خط الطي فوراً عبر fetchpriority="high" كما يشرح محور SEO للصور. وعند بناء صورة رئيسية متجاوبة داخل <picture>، أبق منطق التبديل أصلياً؛ فتحذر Google من أنها «لن تحمل المحتوى الذي يتطلب تفاعل المستخدم» كالتمرير أو النقر، لذا يخفي عنها مخطط JavaScript الذي لا يحمل الصورة الحقيقية إلا بعد التفاعل.

الصور المتجاوبة وCLS

هنا الفخ: لا تفعل srcset وحدها شيئاً لمنع تغيّر التخطيط. يحدد تبديل الدقة الملف الذي يحمل، لكنه لا يحجز له مساحة. ومن دون أبعاد، يوضح دليل web.dev لتحسين CLS أنه «أثناء تحميل الصور ينتقل النص إلى أسفل الصفحة لإفساح مكان لها»، لأن المساحة «لا يمكن تخصيصها حتى يبدأ المتصفح تنزيل الصورة ويتمكن من تحديد أبعادها».

الحل هو تحديد الأبعاد صراحة، وهو ينسجم مع الترميز المتجاوب:

  • اضبط سمتي width وheight على <img>. تضبط المتصفحات الحديثة نسبة العرض إلى الارتفاع الافتراضية للصور استناداً إلى هاتين السمتين، فتحجزان الصندوق الصحيح قبل تنزيل أي نسخة من srcset. (web.dev)
  • اقرنهما بـheight: auto في CSS للحاويات المرنة. لا يوجد تعارض: توصي web.dev باستخدام CSS لتغيير حجم الصورة إلى عرض الحاوية، وضبط height: auto; لتجنب قيمة ارتفاع ثابتة. تحدد سمات HTML نسبة الأبعاد الداخلية، ويسمح CSS للصورة بالتدرج بمرونة. معاً يمنعان CLS ويحافظان على التجاوب.
  • أو استخدم aspect-ratio في CSS لحجز المساحة عندما يتعذر ضبط السمات.

وهذا يدحض خرافة مستمرة: لا تكسر سمات width/height التخطيطات المرنة. فالسمات مع height: auto هي التركيبة الصحيحة وليست تعارضاً. أشرح آليات تغيّر التخطيط كاملة في مقالتي عن CLS في Ahrefs؛ وخلاصتها “reserve the space so that there’s no shift” (ترجمة) «احجز المساحة حتى لا يحدث تغير»، ثم دع الصورة تملأها.

آثار الفهرسة التي تعطي الأولوية للجوال

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

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

ماذا عن Bing؟

لا توجد إرشادات خاصة من Bing عن srcset أو sizes أو العنصر <picture>؛ فلا تتناول وثائقه العامة ترميز الصور المتجاوبة. لذلك لا تبررها بآلية خوارزمية لدى Bing؛ فالحجة هي الأداء وتجربة المستخدم، اللذان يعاملهما Bing، مثل Google، بوصفهما جودة في تجربة الصفحة لا قاعدة موثقة خاصة بالصور المتجاوبة.

أخطاء شائعة

  • نسيان sizes مع واصفات w؛ يفترض المتصفح 100vw وقد يجلب أكبر ملف لخانة صغيرة.
  • حذف src الاحتياطي من <picture>؛ وهو مخالفة للمواصفة تنبه إليها Google صراحة، كما أنه عنوان URL الذي تفهرسه برامج الزحف.
  • عدم تطابق نسبة width/height مع الصورة المقدمة فعلاً؛ وهذا يظل يسبب التغير.
  • التحميل الكسول لصورة LCP الرئيسية؛ يؤخر LCP بلا فائدة، فحمّلها فوراً عبر fetchpriority="high".
  • إعادة إنشاء عناوين الصور لكل طلب؛ تكسر تخزين Google المؤقت وقاعدة «عنوان URL ثابت» في فهرسة الجوال.
  • استخدام <picture> حين تكفي srcset/sizes؛ تعقيد غير لازم، وتقول web.dev إن معظم المواقع لا تحتاج إليه.

موضع هذا الموضوع

هذا شرح معمق للتحجيم والتسليم ضمن محور SEO للصور الأوسع، أي نصف الأداء من SEO للصور، بموازاة معالجة دليل نص alt لنصف بحث الصور. لآليات تغيّر التخطيط كاملة راجع مقالتي عن CLS في Ahrefs؛ أما LCP وfetchpriority واستراتيجية التحميل فهي أعمال مؤشرات أداء الويب الأساسية بواجهة صور.

Add an expert note

Pin an expert quote

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