انتقل إلى المحتوى
SEO Madmanby Adam Hafez
أداة مجانية

فحص الحقول المطلوبة في بيانات Recipe

افحص JSON-LD للوصفات: الحقلان المطلوبان name وimage، وقاعدة السعرات والحصص، وأوقات ISO 8601. أداة مجانية تعمل في متصفحك.

تعمل بالكامل في متصفحك. لا يُرفع ما تُدخله، ولا يُسجَّل، ولا يُحفظ.

يُحلَّل بدالة JSON.parse في متصفحك وفق جداول الخصائص التي توثّقها Google لـ Recipe. لا يُرسل أي شيء تكتبه إلى أي مكان.

أهم النقاط

  • توثّق Google خاصيتين مطلوبتين فقط في Recipe هما name وimage، وتعدّ كل حقل آخر مقترحًا لا مطلوبًا.
  • تقول Google إنه إذا حُدّدت nutrition.calories فيجب تحديد recipeYield أيضًا بعدد الحصص.
  • توثّق Google الحقول prepTime وcookTime وtotalTime كمدد ISO 8601، فالنص الحر مثل "30 دقيقة" ليس الصيغة الموثّقة.
  • توصي Google بـ HowToStep في recipeInstructions، فتأخذ كل خطوة كائنًا خاصًا بها بدل كتلة نص واحدة.
  • تقرأ الأداة JSON-LD المُدخل فقط، ولا تستطيع تأكيد أن عنوان الصورة قابل للزحف أو أن الصفحة مفهرسة.

ما تحتاج إليه

  • كائن JSON-LD ملصوق من نوع Recipe

أدوات أخرى

كلها مجانية، وكلها تعمل في المتصفح.

تصفّح الأدوات

طريقة الاستخدام

  1. 1الصق JSON-LD للوصفةانسخ محتوى الوسم script من النوع application/ld+json الذي يصف الوصفة، لا ترميز الصفحة المحيط به.
  2. 2أصلِح name وimage أولًاتوثّق Google هاتين الخاصيتين كخاصيتين مطلوبتين، وعقدة Recipe التي تنقصها إحداهما هي أول ما يجب إصلاحه.
  3. 3عالِج قاعدة السعراتإذا وُجدت nutrition.calories فأضِف recipeYield بعدد الحصص، لأن Google تقول إنهما يجب أن يظهرا معًا.
  4. 4حوّل الأوقات إلى ISO 8601اكتب prepTime وcookTime وtotalTime كمدد مثل PT15M أو PT1H30M بدل النص الحر.
  5. 5فضّل HowToStep في التعليماتضع كل خطوة في كائن HowToStep، وهو الشكل الذي توصي به Google، ثم أعِد الفحص لترى ما بقي من فجوات مقترحة.

الصق JSON-LD من نوع Recipe من صفحة وصفة، وستختبره الأداة وفق جداول الخصائص في وثائق Google عن البيانات المنظَّمة للوصفات.

تحلّل الأداة JSON بدالة JSON.parse في متصفحك، وتعرض خطأ الصياغة قبل أي فحص للخصائص، ولا ترسل أي شيء.

ماذا تفحص الأداة؟

  • عقدة Recipe: تبحث في الكائن المفرد أو المصفوفة أو قائمة @graph عن أول عقدة قيمة @type فيها Recipe.
  • المطلوب: name وimage. توثّق Google هاتين فقط كخاصيتين مطلوبتين.
  • أربع عشرة خاصية مقترحة: author وdatePublished وdescription وkeywords وprepTime وcookTime وtotalTime وrecipeCategory وrecipeCuisine وrecipeIngredient وrecipeInstructions وrecipeYield وaggregateRating وvideo، وتظهر كل منها موجودة أو مفقودة.
  • قاعدة السعرات: تقول Google إنه إذا حُدّدت nutrition.calories فيجب تحديد recipeYield بعدد الحصص. ولا تشغّل الأداة هذا الفحص إلا عند وجود السعرات.
  • صيغة المدة: أي قيمة موجودة في prepTime أو cookTime أو totalTime يجب أن تكون مدة ISO 8601 مثل PT30M أو PT1H30M.
  • صيغة التعليمات: توصي Google بـ HowToStep في recipeInstructions. وإذا كانت أي خطوة نصًا عاديًا، تذكر الأداة ذلك.

كيف تقرأ النتائج؟

مشكلة تعني أن شرطًا موثّقًا مكسور: لا عقدة Recipe، أو name أو image مفقودة، أو سعرات بلا recipeYield. وتحذير يعني أن القيمة موجودة بصيغة خاطئة، وهنا يعني وقتًا ليس مدة ISO 8601.

ومعلومة تدل على خاصية مقترحة غائبة، أو تعليمات مكتوبة كنص عادي. وناجح يعني أن الفحص تحقق.

الحقلان المطلوبان وقاعدة السعرات وحدها يمكن أن تعطي “مشكلة”. والقائمة الطويلة من أسطر “معلومة” طبيعية: تعدّ Google تلك الخصائص مقترحة، والأداة التي تعرضها كأخطاء تبالغ في تصوير المشكلة.

مثال عملي

تُفتح الأداة على وصفة “Simple pancakes”: name وimage وauthor وdatePublished، وprepTime PT10M، وcookTime PT15M، وrecipeYield “4 servings”، وثلاثة مكوّنات، وnutrition.calories “270 calories”، وكائنا HowToStep. النتائج:

  • name وimage: ناجح.
  • author وdatePublished وprepTime وcookTime وrecipeIngredient وrecipeInstructions وrecipeYield: ناجح.
  • description وkeywords وtotalTime وrecipeCategory وrecipeCuisine وaggregateRating وvideo: معلومة، “مفقودة”.
  • recipeYield مع nutrition.calories: ناجح.
  • prepTime وcookTime مدتان بصيغة ISO 8601: ناجح.
  • recipeInstructions تستخدم HowToStep: ناجح، “خطوات منظَّمة”.

احذف recipeYield فيتغير سطران: تصبح recipeYield معلومة، وتصبح قاعدة السعرات مشكلة، لأن العقدة ما زالت تحدد السعرات. وغيّر cookTime إلى “15 minutes” فيتحول سطر مدتها إلى تحذير.

أخطاء شائعة تكشفها

  • صورة مفقودة: تعرض الصفحة صورة، لكن الترميز لا يشير إليها أبدًا، وهي إحدى خاصيتين مطلوبتين فقط.
  • سعرات بلا حصص: معلومات غذائية أضافتها إضافة ما بينما بقيت recipeYield فارغة.
  • أوقات مكتوبة للقارئ: “15 minutes” أو “1 hour” بدل PT15M أو PT1H.
  • تعليمات في كتلة واحدة: recipeInstructions كنص واحد بدل كائنات HowToStep منفصلة.

ما لا تستطيع الأداة فحصه: هل عنوان الصورة قابل للزحف ويلبي إرشادات الحجم عند Google، وهل تُستخدم prepTime وcookTime معًا، وهل يطابق الترميز ما تعرضه الصفحة.

أدوات ومقالات ذات صلة

المصادر

  1. 1.Recipe (Recipe, HowTo, ItemList) structured data، Google Search Centralمصدر أساسي

أسئلة شائعة

هل تضمن عقدة Recipe السليمة ظهور نتيجة غنية؟

لا. تقول Google إنها لا تضمن ظهور الميزات التي تعتمد على البيانات المنظَّمة في نتائج البحث، حتى عند استيفاء المتطلبات. الاستيفاء يجعل الصفحة مؤهلة، وتبقى Google هي التي تقرر عرض الميزة.

هل recipeIngredient مطلوبة؟

لا. تضع Google الخاصية recipeIngredient ضمن الخصائص المقترحة، لذلك يظهر غيابها هنا كمعلومة لا كمشكلة.

هل يمكن أن يكون JSON-LD داخل @graph؟

نعم. تبحث الأداة في الكائن المفرد أو المصفوفة أو قائمة @graph عن أول عقدة قيمة @type فيها Recipe.

كيف أكتب prepTime وcookTime؟

كمدد بصيغة ISO 8601، مثل PT15M لمدة 15 دقيقة أو PT1H30M لساعة ونصف. وتنصح Google باستخدام prepTime وcookTime معًا، أو totalTime. وتتحقق الأداة من صيغة كل قيمة، لكنها لا تتحقق من اكتمال الزوج.

ما الصورة التي تريدها Google للوصفة؟

تطلب Google صورة للطبق بعد اكتماله، وتضع إرشادات لنسب العرض إلى الارتفاع 16x9 و4x3 و1x1، وحدًا أدنى للدقة قدره 50K بكسل. وتتأكد الأداة فقط من وجود image، لا من حجمها ولا من قدرة Googlebot على جلبها.