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

آخر تحديث 28‏‏/3‏‏/2026
البيانات المنظمة النتائج الغنية

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

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

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

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

JSON-LD (JavaScript Object Notation for Linked Data) هو أسلوب لترميز البيانات المنظمة باستخدام صيغة 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>

المؤلف والناشر كلاهما من نوع Organization. للمدونات الشخصية، يمكن أن يكون المؤلف من نوع Person مع اسم ورابط 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. كل عنصر هو من نوع Question مع إجابة مقبولة. تدعم 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 الصفحة الفردية ويربطها بالموقع الأب باستخدام علاقة 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 لمخطط الموقع والصفحة
<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 لاختبار أي رابط URL أو لصق HTML خام. تؤكد Google أنواع النتائج الغنية المكتشفة وتبرز الخصائص المطلوبة المفقودة.

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

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

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

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

Google Search Console

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

المراقبة على نطاق واسع بعد الإطلاق

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

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