دليل شامل لتطبيق ترميز JSON-LD لتحسين محركات البحث

آخر تحديث 9‏‏/10‏‏/1447 بعد الهجرة
البيانات المنظمة النتائج الغنية

توضح البيانات المنظمة بصيغة JSON-LD لمحركات البحث محتوى موقعك بدقة، مما يتيح ظهور نتائج غنية في بحث Google مثل قوائم الأسئلة الشائعة، دوارات المقالات، ومسارات التنقل مباشرة في صفحة النتائج.

يغطي هذا الدليل جميع أنواع المخططات الرئيسية مع أمثلة حقيقية لكود C# والمخرجات الدقيقة بصيغة JSON، مأخوذة من قاعدة شفرة Blazor حقيقية.

رسم توضيحي يبين كيف تغذي البيانات المنظمة بصيغة JSON-LD النتائج الغنية في بحث Google مثل قوائم الأسئلة الشائعة، دوارات المقالات، ومسارات التنقل
تُعد البيانات المنظمة بصيغة JSON-LD الطريقة الأكثر سهولة في الصيانة لإضافة ترميز المخطط، حيث توضع في وسم سكريبت منفصل تمامًا عن HTML الخاص بك.

ما هو JSON-LD ولماذا هو مهم لتحسين محركات البحث

JSON-LD (ترميز جافا سكريبت للبيانات المرتبطة) هو أسلوب لترميز البيانات المنظمة باستخدام صيغة JSON، حيث تقرأ محركات البحث مثل Google هذه البيانات لفهم معنى المحتوى وليس مجرد الكلمات المفتاحية.

عندما تتمكن Google من تحليل بياناتك المنظمة، تصبح مؤهلة للظهور في نتائج غنية — قوائم بحث محسنة بصريًا تعرض التقييمات، قوائم الأسئلة الشائعة، صور المقالات، مسارات التنقل، وغيرها مباشرة في صفحة النتائج، مما يزيد من معدلات النقر مقارنة بالروابط العادية.

توصي Google رسميًا باستخدام JSON-LD بدلاً من Microdata وRDFa لأنه يمكن وضعه في أي مكان في الصفحة، بما في ذلك وسم الرأس، ولا يتطلب تعديل عناصر HTML الحالية، مما يجعل البيانات المنظمة منفصلة تمامًا عن ترميز الصفحة.

الأهلية للنتائج الغنية

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

زيادة النقرات من نفس الترتيب

وضوح دلالي

تزيل البيانات المنظمة الغموض، حيث يتم تصنيف الصفحة التي تحتوي على أسئلة وأجوبة بوضوح كصفحة FAQPage، مما يمكن Google من عرضها كنتيجة غنية للأسئلة الشائعة.

أخبر محركات البحث بما لديك بدقة

دون تعديل HTML

يتم وضع JSON-LD داخل وسم سكريبت في الرأس، ولا يؤثر على HTML المرئي، مما يضمن عدم تعطل التصميم أو الوصول عند إضافة أو تحديث المخطط.

فصل واضح للمسؤوليات

JSON-LD مقابل Microdata مقابل RDFa

توجد ثلاث صيغ لتضمين بيانات schema.org المنظمة في صفحات الويب، جميعها مفهومة من Google، لكنها تختلف بشكل كبير في طريقة التطبيق والصيانة.

الصيغة موقع الصياغة الصيانة تأثير تحسين محركات البحث توصية Google
JSON-LD وسم سكريبت منفصل سهل — دون تعديل HTML دعم كامل للنتائج الغنية موصى به
Microdata سمات HTML مضمنة مرتفع — مرتبط ارتباطًا وثيقًا بالترميز دعم كامل للنتائج الغنية مدعوم
RDFa سمات HTML مضمنة مرتفع — مرتبط ارتباطًا وثيقًا بالترميز دعم كامل للنتائج الغنية مدعوم

لماذا يتفوق JSON-LD في سهولة الصيانة

مع Microdata وRDFa، تتوزع سمات المخطط في جميع أنحاء HTML، وقد يؤدي تغيير التصميم إلى كسر البيانات المنظمة بصمت. JSON-LD هو كتلة مستقلة — تحديث السكريبت مرة واحدة دون التأثير على HTML.

اختيار تعلم تطوير الويب

إتقان تطوير الويب الحديث مع أفضل ممارسات SEO

نصيحة مني وجدت هذه الدورة مفيدة لفهم كيفية تفاعل SEO التقني، والبيانات المنظمة، والمعايير الحديثة للويب في المشاريع العملية.

  • تعلم كيفية تطبيق علامات HTML الوصفية، وOpen Graph، وبيانات JSON-LD المنظمة.
  • استراتيجيات SEO عملية لتحسين ظهور موقعك وترتيبه في محركات البحث.
  • مشاريع تطبيقية تشمل التصميم المتجاوب وتحسين الأداء.
استكشف دورة تطوير الويب

أنواع المخططات الأساسية ومتى تستخدمها

يحدد Schema.org مئات الأنواع، لكن القليل منها يغطي معظم محتوى الويب، وهذه هي الأنواع التي تتيح ظهور نتائج غنية في بحث Google.

نوع المخطط حالة الاستخدام نوع النتيجة الغنية
Article مقالات المدونات، الأدلة، الأخبار دوار المقالات، الأخبار العاجلة
FAQPage صفحات تحتوي على أسئلة وأجوبة قائمة الأسئلة الشائعة في نتائج البحث
BreadcrumbList أي صفحة تحتوي على هيكل تنقل مسار التنقل أسفل الرابط
WebSite / WebPage الصفحة الرئيسية، صفحات المحاور، صفحات الهبوط صندوق بحث روابط الموقع، التعرف على الكيانات
SoftwareApplication التطبيقات، الأدوات، المنتجات البرمجية نتيجة غنية للتطبيق مع التقييم والسعر

مفردات Schema.org

جميع أنواع المخططات معرفة في schema.org. خاصية @context في كل كتلة JSON-LD توجه المحللات لتفسير أسماء الخصائص وفقًا لمفردات schema.org. يمكنك دمج عدة أنواع مخططات في صفحة واحدة — حيث تعالج Google كل كتلة سكريبت بشكل مستقل.

تطبيق مخطط المقالة

مخطط المقالة هو الأهم للمواقع المعتمدة على المحتوى، حيث يخبر Google بعنوان المقال، الوصف، تاريخ النشر، المؤلف، والناشر — وهي الحد الأدنى من الخصائص المطلوبة للأهلية للنتائج الغنية.

فئة C# أدناه هي نموذج التسلسل، حيث ترتبط كل خاصية مباشرة بحقل JSON-LD المقابل باستخدام سمات JsonPropertyName.

C#فئة ArticleSchema في C# (JsonLdService.cs)
private class ArticleSchema
{
    [JsonPropertyName("@context")]
    public string Context { get; } = "https://schema.org";

    [JsonPropertyName("@type")]
    public string Type { get; } = "Article";

    [JsonPropertyName("headline")]
    public string? Headline { get; set; }

    [JsonPropertyName("description")]
    public string? Description { get; set; }

    [JsonPropertyName("image")]
    public string? Image { get; set; }

    [JsonPropertyName("url")]
    public string? Url { get; set; }

    [JsonPropertyName("author")]
    public Organization? Author { get; set; }

    [JsonPropertyName("publisher")]
    public ArticlePublisher? Publisher { get; set; }

    [JsonPropertyName("datePublished")]
    public string? DatePublished { get; set; }

    [JsonPropertyName("dateModified")]
    public string? DateModified { get; set; }

    [JsonPropertyName("articleSection")]
    public List<string>? ArticleSection { get; set; }
}

الخصائص المطلوبة هي: العنوان، الصورة، تاريخ النشر، تاريخ التعديل، المؤلف، والناشر. مصفوفة articleSection اختيارية لكنها موصى بها — تشير إلى نطاق موضوع المقالة لـ Google.

HTMLمخرجات JSON-LD لمخطط المقالة
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "JSON-LD Schema Markup: Complete SEO Implementation Guide",
  "description": "Learn how to implement JSON-LD structured data for Article, FAQPage, BreadcrumbList, WebSite, and WebPage schema types.",
  "image": "https://ghostlyinc.com/images/web/jsonldguide/opengraph/hero-1200.png",
  "url": "https://ghostlyinc.com/en/json-ld-schema-markup-seo-guide/",
  "author": {
    "@type": "Organization",
    "name": "GhostlyInc",
    "url": "https://ghostlyinc.com"
  },
  "publisher": {
    "@type": "Organization",
    "name": "GhostlyInc",
    "logo": {
      "@type": "ImageObject",
      "url": "https://ghostlyinc.com/images/logo.png"
    }
  },
  "datePublished": "2026-03-28T10:00:00Z",
  "dateModified": "2026-03-28T10:00:00Z",
  "articleSection": [
    "What is JSON-LD and why it matters for SEO",
    "JSON-LD vs. Microdata vs. RDFa",
    "Core schema types and when to use them",
    "Article schema implementation"
  ]
}
</script>

يتم تصنيف المؤلف والناشر كمنظمة. في المدونات الشخصية، يمكن أن يكون المؤلف شخصًا مع اسم ورابط URL.

مخطط الأسئلة الشائعة للنتائج الغنية

مخطط FAQPage ينشئ نتائج غنية للأسئلة الشائعة — أزواج أسئلة وأجوبة قابلة للتوسيع تظهر مباشرة في نتائج بحث Google أسفل قائمتك، مما يزيد من مساحة ظهور النتيجة ويعزز الرؤية ومعدلات النقر.

فئة FaqPage تحتوي على قائمة من الكيانات السؤال، ويجب أن يحتوي كل كيان على اسم (السؤال) وإجابة مقبولة مع خاصية نص (الإجابة).

C#فئة FaqPage في C# (JsonLdService.cs)
private class FaqPage
{
    [JsonPropertyName("@context")]
    public string Context { get; } = "https://schema.org";

    [JsonPropertyName("@type")]
    public string Type { get; } = "FAQPage";

    [JsonPropertyName("@id")]
    public string? Id { get; set; }

    [JsonPropertyName("name")]
    public string? Name { get; set; }

    [JsonPropertyName("mainEntity")]
    public List<FaqEntity>? MainEntity { get; set; }
}

private class FaqEntity
{
    [JsonPropertyName("@type")]
    public string Type { get; } = "Question";

    [JsonPropertyName("name")]
    public string? Name { get; set; }

    [JsonPropertyName("acceptedAnswer")]
    public FaqAnswer? AcceptedAnswer { get; set; }
}

private class FaqAnswer
{
    [JsonPropertyName("@type")]
    public string Type { get; } = "Answer";

    [JsonPropertyName("text")]
    public string? Text { get; set; }
}

المخرجات هي كتلة FAQPage واحدة مع مصفوفة mainEntity. كل عنصر هو نوع سؤال مع إجابة مقبولة. تدعم Google حتى عشرة أسئلة لكل صفحة للنتائج الغنية.

HTMLمخرجات JSON-LD لمخطط الأسئلة الشائعة
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "@id": "https://ghostlyinc.com/en/json-ld-schema-markup-seo-guide/#faq",
  "name": "Frequently asked questions",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is the difference between JSON-LD and Microdata?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "JSON-LD is a separate script block that lives in the head and does not touch HTML. Microdata adds attributes directly to HTML elements. Google recommends JSON-LD for its maintainability."
      }
    },
    {
      "@type": "Question",
      "name": "How many FAQ questions can I mark up?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Google supports up to ten questions per page for the FAQ rich result. Additional questions are still valid schema but will not appear in the search result enhancement."
      }
    }
  ]
}
</script>

خاصية @id في كتلة FAQPage تربط المخطط بمقطع URL محدد، وهو أفضل ممارسة للصفحات التي تحتوي على عدة كتل مخطط، مما يسمح للمحللات بتحديد كل كيان بوضوح.

مخطط WebSite و WebPage

يحدد مخطط WebSite و WebPage الرسم البياني الأساسي للكيانات في الموقع. يحدد WebSite الموقع نفسه — اسمه، رابطه، لغته، والناشر. يصف WebPage الصفحة الفردية ويربطها بالموقع الأب عبر علاقة isPartOf.

تتبع الفئتان نفس نمط JSON-LD. خاصية @id في WebSite هي جذر النطاق؛ و@id في WebPage هو رابط الصفحة الكامل.

C#فئات WebSiteSchema و WebPageSchema في C# (JsonLdService.cs)
private class WebSiteSchema
{
    [JsonPropertyName("@context")]
    public string Context { get; } = "https://schema.org";

    [JsonPropertyName("@type")]
    public string Type { get; } = "WebSite";

    [JsonPropertyName("name")]
    public string? Name { get; set; }

    [JsonPropertyName("url")]
    public string? Url { get; set; }

    [JsonPropertyName("inLanguage")]
    public string? InLanguage { get; set; }

    [JsonPropertyName("publisher")]
    public Organization? Publisher { get; set; }
}

private class WebPageSchema
{
    [JsonPropertyName("@context")]
    public string Context { get; } = "https://schema.org";

    [JsonPropertyName("@type")]
    public string Type { get; } = "WebPage";

    [JsonPropertyName("@id")]
    public string? Id { get; set; }

    [JsonPropertyName("name")]
    public string? Name { get; set; }

    [JsonPropertyName("description")]
    public string? Description { get; set; }

    [JsonPropertyName("url")]
    public string? Url { get; set; }

    [JsonPropertyName("inLanguage")]
    public string? InLanguage { get; set; }

    [JsonPropertyName("isPartOf")]
    public WebSiteReference? IsPartOf { get; set; }
}

خاصية inLanguage تستخدم رموز لغات BCP 47 (مثل en، de، fr). رابط isPartOf يربط WebPage بكيان WebSite عبر الإشارة إلى @id النطاق، مما يساعد Google في بناء نموذج كيان كامل لموقعك.

HTMLمخرجات JSON-LD لمخطط WebSite و WebPage
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "GhostlyInc",
  "url": "https://ghostlyinc.com",
  "inLanguage": "en",
  "publisher": {
    "@type": "Organization",
    "name": "GhostlyInc",
    "url": "https://ghostlyinc.com"
  }
}
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebPage",
  "@id": "https://ghostlyinc.com/en/json-ld-schema-markup-seo-guide/",
  "name": "JSON-LD Schema Markup: Complete SEO Implementation Guide",
  "description": "Learn how to implement JSON-LD structured data for Article, FAQPage, BreadcrumbList, WebSite, and WebPage schema types.",
  "url": "https://ghostlyinc.com/en/json-ld-schema-markup-seo-guide/",
  "inLanguage": "en",
  "isPartOf": {
    "@type": "WebSite",
    "@id": "https://ghostlyinc.com"
  }
}
</script>

أفضل ممارسات التنفيذ

طريقة WrapInScriptTag هي النقطة الوحيدة التي تتحول فيها سلاسل JSON إلى كتل JSON-LD صالحة، حيث تغلف أي حمولة مخطط مسلسلة في وسم سكريبت مطلوب بنوع MIME application/ld+json.

هذه الطريقة هي التي تستدعيها جميع منشئي المخططات في الخدمة — حيث يمرر كل من Article، FAQPage، BreadcrumbList، WebSite، وWebPage بيانات JSON المسلسلة إلى هذه الأداة نفسها.

C#طريقة WrapInScriptTag (JsonLdService.cs)
private static MarkupString WrapInScriptTag(string json)
{
    var builder = new StringBuilder();
    builder.AppendLine("<script type=\"application/ld+json\">");
    builder.AppendLine(json);
    builder.AppendLine("</script>");

    return new MarkupString(builder.ToString());
}

كائن SchemaContext هو نقطة الدخول لطريقة BuildSchema، ويحمل جميع البيانات اللازمة لبناء مجموعة كاملة من كتل المخطط لصفحة — النوع، البيانات الوصفية، قائمة الأسئلة الشائعة، تسلسل التنقل، وبيانات المقالة.

C#منطق توزيع BuildSchema (JsonLdService.cs)
public SchemaBuildResult BuildSchema(SchemaContext context)
{
    if (context == null) throw new ArgumentNullException(nameof(context));

    var jsonLd = new List<MarkupString>();

    switch (context.PageType)
    {
        case PageSchemaType.Home:
            jsonLd.Add(WebSite(context));
            jsonLd.Add(WebPage(context));
            break;
        case PageSchemaType.Article:
            jsonLd.Add(Article(context.Article!));
            break;
        case PageSchemaType.Tool:
            jsonLd.Add(WebPage(context));
            jsonLd.Add(SoftwareApplication(context.SoftwareApplication!));
            break;
        case PageSchemaType.Hub:
            jsonLd.Add(WebPage(context));
            break;
    }

    if (context.Faqs != null && context.Faqs.Count > 0)
    {
        jsonLd.Add(FAQ(context.Faqs.ToList(), context.FaqTitle, context.Url));
    }

    if (context.ParentHierarchy.Count > 0)
    {
        jsonLd.Add(BreadcrumbList(BuildBreadcrumbItems(context)));
    }

    return new SchemaBuildResult(jsonLd, context.PageType == PageSchemaType.Article);
}

تجعل مفتاح التوزيع منشئ المخطط قابلًا للتكوين، حيث تُضاف الأسئلة الشائعة ومسارات التنقل دائمًا إذا كانت موجودة، بغض النظر عن نوع الصفحة، مما يسمح بإضافة كتلة FAQ أو مسار تنقل لأي نوع صفحة دون تعديل المنطق الأساسي.

اختبار والتحقق من صحة المخطط الخاص بك

صحة صياغة JSON-LD لا تضمن الأهلية للنتائج الغنية، حيث تتحقق أدوات Google من صحة الصياغة وما إذا كان المحتوى يفي بمتطلبات السياسات لكل نوع من النتائج الغنية.

اختبار النتائج الغنية

استخدم search.google.com/test/rich-results لاختبار أي رابط أو لصق HTML خام. تؤكد Google أنواع النتائج الغنية المكتشفة وتبرز الخصائص المطلوبة المفقودة.

أداة التحقق الرسمية من الأهلية لدى Google

مدقق ترميز المخطط

يقوم validator.schema.org بفحص ترميزك مقابل مواصفات schema.org بشكل مستقل عن سياسات نتائج Google الغنية، وهو مفيد لاكتشاف أخطاء أسماء الخصائص وعدم تطابق الأنواع.

التحقق من صحة صياغة Schema.org

Google Search Console

يبلغ قسم التحسينات في Search Console عن أخطاء وتحذيرات المخطط على نطاق واسع عبر صفحاتك المفهرسة، استخدمه للمراقبة المستمرة بعد التحقق الأولي.

المراقبة الشاملة بعد الإطلاق

الأسئلة المتكررة

إجابات على الأسئلة الشائعة حول ترميز مخطط JSON-LD