مخطط ProductGroup

كيفية استخدام مخطط ProductGroup لتجميع تنويعات المنتج حسب المقاس واللون والمادة عبر hasVariant وvariesBy وproductGroupID، والفرق عن item_group_id وغياب دعم Bing.

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

يجمع ProductGroup تنويعات Product تحت مجموعة أب واحدة من دون استبدال ترميز كل تنويعة. استخدم hasVariant للنمط المتداخل أو isVariantOf وinProductGroupWithID للنمط المسطح، واجعل variesBy عناوين كاملة مثل https://schema.org/color واستخدم عمدًا القيمة النصية نفسها في productGroupID وitem_group_id. لا يدعم Bing الترميز، وهو للأهلية والفهم لا للترتيب.

الخلاصة — يضم ProductGroup كائنات Product المتنوعة تحت مجموعة أب واحدة. وهو ترميز إضافي؛ فتحتفظ كل تنويعة بترميزها الكامل. اربطها بـhasVariant للموقع ذي الصفحة الواحدة أو بـisVariantOf وinProductGroupWithID للموقع متعدد الصفحات. يجب أن يستخدم variesBy عناوين schema.org كاملة، بينما productGroupID نص عادي وليس عنوان URL، وهو منفصل عن item_group_id في Merchant Center. الخاصية المطلوبة فعلياً هي name فقط. ولا يدعم Bing هذا الترميز. إنه يساعد الفهم والأهلية ولا يعد عامل ترتيب.

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

هذا شرح عميق لتنفيذ المخطط: JSON-LD الكامل، ومرجع الخصائص، والمطابقة مع Merchant Center، واستكشاف الأخطاء. أما قرار منح كل تنويعة عنوان URL قابلاً للفهرسة واختلاف Shopify وWooCommerce وBigCommerce وMagento فهو موضوع دليل SEO لتنويعات المنتجات. وProductGroup مخصص لعائلة تنويعات؛ أما العنصر غير المتنوع فيكفيه Product.

لماذا يوجد ProductGroup؟

تقول Google: “To help Google better understand which products are variations of the same parent product, use the ProductGroup class with associated properties variesBy, hasVariant, and productGroupID to group such variants together.” (ترجمة) «لمساعدة Google على فهم أن المنتجات تنويعات للأب نفسه، استخدم ProductGroup وخصائصه لتجميعها». والفئات هي “apparel, shoes, furniture, electronic devices, and luggage… sold in different variations (for example various sizes, colors, materials, or patterns).” (ترجمة) «الملابس والأحذية والأثاث والأجهزة والحقائب التي تباع بتنويعات في المقاس أو اللون أو المادة أو النمط».

Evidence for this claim Google documents ProductGroup relationships including variesBy, hasVariant, productGroupID, and inverse variant references. Scope: Google Search product-variant requirements; use the pattern matching the site's URL architecture. Confidence: high · Verified: Google: Product variants

العائد هو الأهلية لا الترتيب. تقول Google: “Adding this markup also makes your products eligible for display with variant information in merchant listing experiences.” (ترجمة) «إضافة الترميز تؤهل المنتجات للعرض بمعلومات التنويعات في تجارب قوائم التجار». وهو يساعد الفهم والأهلية ولا يرفع موضع النتيجة.

إنه إضافي — النموذج الذهني الذي يمنع معظم الأخطاء

يجمع ProductGroup كائنات Product ولا يستبدلها. المجموعة ليست معروضة للبيع ولا تحمل سعرًا واحدًا؛ فكل تنويعة تبقى كائن Product كاملًا له sku/gtin وimage وoffers وavailability. وإذا وضعت offers/price واحدًا على المجموعة فقد خلطت بين المجموعة والعنصر المباع.

Evidence for this claim ProductGroup groups variant Product entities; it does not replace the Product data required for individual variants. Scope: Google Search product-variant guidance; each purchasable variant retains its relevant Product and Offer data. Confidence: high · Verified: Google: Product variants

الخصائص الأساسية الثلاث

ProductGroup adds the parent relationship; it never replaces the Product markup on each sellable variant. المصدر: Patrick Stox

A ProductGroup named Wool winter coat declares productGroupID 44E01 and variesBy values using full schema.org URLs for color and size. It connects to green small, green large, and blue small Product variants. Every variant keeps a unique SKU, Offer, image, and availability. The connection can use hasVariant in a nested model or isVariantOf in a flat model.

© Patrick Stox LLC · CC BY 4.0 ·

hasVariantisVariantOf)

تعرّف Google hasVariant بأنها “a nested Product property that is one of the variants of the ProductGroup property… A ProductGroup typically has multiple nested variant Product properties.” (ترجمة) خاصية Product متداخلة تمثل إحدى تنويعات ProductGroup، وعادةً تضم المجموعة عدة منتجات متنوعة. ضع كائنات Product داخل المجموعة.

والعكس موجود أيضاً: “a variant Product property can reference back to its parent ProductGroup using the isVariantOf property on the Product property.” (ترجمة) «يمكن للتنويعة الرجوع إلى المجموعة الأب عبر isVariantOf». يعتمد الاختيار على بنية عناوين URL.

variesBy — عناوين schema.org كاملة لا سلاسل قصيرة

تعلن variesBy الجوانب التي تختلف بها التنويعات. وتقول Google حرفياً: “Reference these variant-identifying properties through their full Schema.org URL.” (ترجمة) أشِر إلى خصائص تعريف التنويعات بعناوين Schema.org الكاملة.

أي:

"variesBy": ["https://schema.org/size", "https://schema.org/color"]

وليس "variesBy": ["size", "color"]. هذا أكثر أخطاء التنفيذ شيوعاً. الموثق هو وجوب العنوان الكامل؛ أما نتيجة مخالفته فلا توثقها Google. في اختباراتي وتقارير ممارسين آخرين ينجح تحقق JSON-LD لكن لا يعمل التجميع المحسن. تعامل مع ذلك كملاحظة قوية قابلة للتحقق، لا كتصريح رسمي.

الأبعاد المدعومة هي https://schema.org/color وhttps://schema.org/size وhttps://schema.org/suggestedAge وhttps://schema.org/suggestedGender وhttps://schema.org/material وhttps://schema.org/pattern.

productGroupID — نص عادي وليس item_group_id

تصفه Google بأنه “the identifier of the product group (also known as the parent sku). This identifier must be provided for the ProductGroup property or, alternatively, using inProductGroupWithID property for variants.” (ترجمة) معرّف مجموعة المنتج أو SKU الأب، ويقدم على ProductGroup أو عبر inProductGroupWithID للتنويعات. إنه نص عادي مثل "44E01" وليس URL.

والقيد الصريح: “If you provide the identifier for both the ProductGroup property and its variant Product properties, they must match.” (ترجمة) إذا قدمته في المجموعة والتنويعات فيجب أن تتطابق القيم. لا توثق Google أثر المخالفة؛ وفي اختباراتي قد يُسقط اختلاف القيمة التنويعة من المجموعة بلا خطأ ظاهر، لذا تحقّق بنفسك.

نمطان للتنفيذ: متداخل ومسطح

تحدد بنية عناوين URL النمط المناسب.

موقع الصفحة الواحدة — متداخل (hasVariant). تُختار كل التنويعات في URL واحد. تقول Google: “For single-page websites only: The URL (without variant selectors) where the ProductGroup property is located.” (ترجمة) للمواقع ذات الصفحة الواحدة فقط: عنوان موضع ProductGroup من دون محددات التنويعة. يوجد عنوان أساسي واحد، وتُضمّن كل التنويعات عبر hasVariant.

موقع متعدد الصفحات — مسطح (isVariantOf + inProductGroupWithID). لكل تنويعة URL مستقل. تقول Google: “this doesn’t apply since there is no single canonical URL representing the ProductGroup property.” (ترجمة) لا تنطبق قاعدة العنوان الواحد لأنه لا يوجد URL أساسي يمثل ProductGroup. ويجب أن تحمل كل صفحة “full, self-contained markup for the entities defined on that page” (ترجمة) ترميزاً كاملاً مستقلاً لكياناتها. يشير Product إلى الأب بـisVariantOf، وتقول Google: “Each product group must have a unique ID in its corresponding structured data markup, specified with the inProductGroupWithID property.” (ترجمة) يجب أن تحمل كل مجموعة معرّفاً فريداً عبر inProductGroupWithID.

وفي الحالتين: “Each variant must have a unique ID in its corresponding structured data markup (for example, using the sku or gtin properties).” (ترجمة) يجب أن يكون لكل تنويعة معرّف فريد، مثل sku أو gtin.

ويجب الوصول إلى كل تنويعة عبر URL مميز قابل للتحديد المسبق. تقول Google: “The site must have the ability to preselect each variant directly with a distinct URL (using URL query parameters), for example https://www.example.com/winter_coat/size=small&color=green.” (ترجمة) يجب أن يتيح الموقع تحديد كل تنويعة مباشرةً بعنوان مميز، ويمكن استخدام معاملات الاستعلام. حالة JavaScript بلا URL مستقل لا يمكن التحقق منها أو فهرستها كتنويعة.

المطلوب والموصى به

  • المطلوب في ProductGroup: الخاصية name فقط، مثل "Wool winter coat".
  • الموصى به: variesBy وhasVariant وproductGroupID وbrand وdescription وaggregateRating وreview وhasAdultConsideration وurl للمواقع ذات الصفحة الواحدة.

تقنياً لا يلزم سوى name، لكن variesBy وproductGroupID أساسيان وظيفياً. قد ينجح التحقق من دونهما من دون ظهور التجميع المطلوب.

productGroupID مقابل item_group_id في Merchant Center

هذه نقطة التباس تتجاوزها أدلة كثيرة، لذا يلزم التفريق بدقة.

  • productGroupID حقل schema.org في بيانات الصفحة المنظمة ويدعم فهم البحث العضوي.
  • item_group_id سمة في خلاصة Google Merchant Center. تقول Google: “Use the item group ID [item_group_id] attribute to group product variants in your product data.” (ترجمة) استخدم سمة معرّف مجموعة العناصر لتجميع التنويعات في بيانات المنتج. وهي تدعم إعلانات Shopping والقوائم المجانية.
Evidence for this claim Merchant Center item_group_id groups variants in product data, while ProductGroup.productGroupID and Product.inProductGroupWithID are on-page structured-data properties. Google's docs cross-reference the concepts but do not establish automatic synchronization or a universal requirement that the literal values match across feed and markup. Scope: product data Confidence: high · Verified: Item group ID [item_group_id]

هما نظامان منفصلان ولا تزامن Google قيمتيهما تلقائيًا. استخدم القيمة نفسها عمدًا كي تتفق الخلاصة والترميز على وحدات SKU التابعة للمجموعة. قد لا يعطل اختلاف القيم النظامين، لكنه يزيل اتساق الإشارات وقد ينتج مجموعات مختلفة.

ملاحظة في حالة الأحرف: تكتب مساعدة Merchant Center أحياناً productGroupId بحرف d صغير، بينما تستخدم Search Central ‏productGroupID. اتبع صيغة Search Central في JSON-LD.

كما في العناوين الأساسية وعناوين التنويعات، ينبغي أن تتفق الإشارات كي لا تضطر Google إلى التخمين.

لا يدعم Bing مخطط ProductGroup

لا يدعم Bing حاليًا ترميز schema.org/ProductGroup. قال Fabrice Canel من Microsoft إنه غير مدعوم بعد لكنه “on our radar” وأن الفريق “closely monitoring its adoption.” (ترجمة) «إنه ضمن ما نتابعه، ويراقب الفريق مدى اعتماده عن كثب». هذا تقرير Search Engine Roundtable عن حوار في سبتمبر 2024، لا وثيقة Microsoft أولية.

توثيق Bing Webmaster Tools عرض عام لا يتضمن ProductGroup أو variesBy أو productGroupID. يجري تجميع تنويعات Bing Shopping عبر itemGroupId في خلاصة Microsoft Advertising، لا عبر ترميز الصفحة. نفّذ ProductGroup لـGoogle، وعالج Bing عبر الخلاصة.

ملاحظة عن الترميز الديناميكي

تحذر Google: “Be aware that dynamically-generated markup can make Shopping crawls less frequent and less reliable, which can be an issue for fast-changing content like product availability and price.” (ترجمة) قد يجعل الترميز المولد ديناميكياً زحف Shopping أقل تواتراً وموثوقية، خصوصاً للسعر والتوفر سريعَي التغير. لذلك وازن حقن offers/availability بجافاسكربت مع العرض من الخادم.

تحقّق قبل النشر

  • Rich Results Test — يفحص الأهلية وأخطاء الخصائص المطلوبة.
  • Schema Markup Validator — يتحقق من نوعي ProductGroup وProduct مستقلاً عن ميزات Google.
  • Search Console — تعرض تقارير قوائم التجار ومقتطفات المنتجات الأخطاء على نطاق واسع، وتوضح URL Inspection كيفية قراءة صفحة بعينها.

الصلاحية لا تعني أن كل شيء يعمل. قد يمر variesBy كسلسلة قصيرة في التحقق ولا يؤدي إلى التجميع وفق اختباراتي. افحص يدوياً عناوين variesBy الكاملة وتطابق productGroupID.

للسياق الأوسع راجع محوري البيانات المنظمة وترميز schema اللذين يندرج تحتهما المقال.

Add an expert note

Pin an expert quote

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