JSON-LD स्कीमा मार्कअप: पूर्ण SEO कार्यान्वयन गाइड
JSON-LD संरचित डेटा सर्च इंजन को आपके कंटेंट का सही अर्थ बताता है। सही स्कीमा मार्कअप से Google Search में FAQ ड्रॉपडाउन, आर्टिकल कैरोसेल, ब्रेडक्रंब ट्रेल्स जैसे रिच परिणाम सीधे सर्च पेज पर मिलते हैं।
यह गाइड हर प्रमुख स्कीमा प्रकार को वास्तविक C# कोड और सटीक JSON आउटपुट के साथ कवर करता है। सभी उदाहरण सीधे प्रोडक्शन Blazor कोडबेस से लिए गए हैं।

सामग्री सूची
JSON-LD क्या है और SEO के लिए क्यों महत्वपूर्ण है
JSON-LD (JavaScript Object Notation for Linked Data) JSON फॉर्मेट का उपयोग करके संरचित डेटा को एन्कोड करने की एक विधि है। Google जैसे सर्च इंजन इस डेटा को पढ़कर आपके कंटेंट का अर्थ समझते हैं, केवल कीवर्ड नहीं।
जब Google आपके संरचित डेटा को पार्स कर पाता है, तो आपकी साइट रिच परिणामों के लिए योग्य हो जाती है — जो रेटिंग, FAQ ड्रॉपडाउन, आर्टिकल इमेज, ब्रेडक्रंब ट्रेल्स और अन्य फीचर्स सीधे सर्च रिजल्ट पेज पर दिखाते हैं। रिच परिणाम सामान्य नीले लिंक से अधिक क्लिक प्राप्त करते हैं।
Google आधिकारिक रूप से JSON-LD को Microdata और RDFa पर प्राथमिकता देता है क्योंकि इसे पेज के किसी भी हिस्से में, जैसे हेड में रखा जा सकता है और मौजूदा HTML तत्वों को संशोधित करने की आवश्यकता नहीं होती। संरचित डेटा आपके मार्कअप से पूरी तरह अलग होता है।
रिच परिणाम पात्रता
सही स्कीमा मार्कअप आपकी पेज को Google Search में FAQ ड्रॉपडाउन, आर्टिकल कैरोसेल, ब्रेडक्रंब ट्रेल्स और अन्य रिच फीचर्स के लिए योग्य बनाता है।
एक ही रैंकिंग से अधिक क्लिक
सामाजिक स्पष्टता
संरचित डेटा अस्पष्टता को दूर करता है। प्रश्न-उत्तर विषय वाली पेज को स्पष्ट रूप से FAQPage घोषित किया जाता है, जिससे Google इसे FAQ रिच परिणाम के रूप में प्रदर्शित करता है।
सर्च इंजन को ठीक वही बताएं जो आपके पास है
कोई HTML परिवर्तन नहीं
JSON-LD हेड में एक स्क्रिप्ट टैग में रहता है। यह आपके दृश्य HTML को प्रभावित नहीं करता, इसलिए स्कीमा जोड़ने या अपडेट करने से लेआउट या एक्सेसिबिलिटी खराब होने का खतरा नहीं होता।
स्पष्ट जिम्मेदारी पृथक्करण
JSON-LD बनाम Microdata बनाम RDFa
वेब पेजों में schema.org संरचित डेटा एम्बेड करने के तीन प्रारूप हैं। Google सभी को समझता है, लेकिन इनका उपयोग और रखरखाव अलग-अलग होता है।
| फॉर्मैट | सिंटैक्स स्थान | रखरखाव | SEO प्रभाव | 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 Search में रिच परिणाम खोलते हैं।
| स्कीमा प्रकार | उपयोग मामला | रिच परिणाम प्रकार |
|---|---|---|
| Article | ब्लॉग पोस्ट, गाइड, समाचार लेख | आर्टिकल कैरोसेल, टॉप स्टोरीज |
| FAQPage | प्रश्न/उत्तर वाले पेज | सर्च परिणामों में FAQ ड्रॉपडाउन |
| BreadcrumbList | नेविगेशन हायार्की वाला कोई भी पेज | URL के नीचे ब्रेडक्रंब ट्रेल |
| WebSite / WebPage | होमपेज, हब पेज, लैंडिंग पेज | साइटलिंक सर्च बॉक्स, एंटिटी पहचान |
| SoftwareApplication | ऐप्स, टूल्स, सॉफ़्टवेयर उत्पाद | रेटिंग और कीमत के साथ ऐप रिच परिणाम |
Schema.org शब्दावली
सभी स्कीमा प्रकार schema.org पर परिभाषित हैं। हर JSON-LD ब्लॉक में @context प्रॉपर्टी पार्सर्स को schema.org शब्दावली के अनुसार गुण नाम समझने को कहती है। आप एक पेज पर कई स्कीमा प्रकार जोड़ सकते हैं — Google प्रत्येक स्क्रिप्ट ब्लॉक को स्वतंत्र रूप से प्रोसेस करता है।
लेख स्कीमा कार्यान्वयन
लेख स्कीमा कंटेंट-आधारित साइटों के लिए सबसे महत्वपूर्ण प्रकार है। यह Google को हेडलाइन, विवरण, प्रकाशन तिथि, लेखक और प्रकाशक बताता है — रिच परिणाम पात्रता के लिए न्यूनतम आवश्यक गुण।
नीचे दिया गया C# क्लास सीरियलाइज़ेशन मॉडल है। प्रत्येक प्रॉपर्टी JsonPropertyName एट्रिब्यूट्स के साथ सीधे संबंधित JSON-LD फील्ड से जुड़ी है।
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; }
}आवश्यक गुण हैं: headline, image, datePublished, dateModified, author, और publisher। articleSection ऐरे वैकल्पिक लेकिन अनुशंसित है — यह Google को लेख के विषय क्षेत्र का संकेत देता है।
<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 हो।
रिच स्निपेट्स के लिए FAQ स्कीमा
FAQPage स्कीमा FAQ रिच परिणाम बनाता है — प्रश्न/उत्तर जोड़े जो सीधे Google Search परिणामों में आपके पेज के नीचे दिखते हैं। इससे आपके परिणाम की ऊर्ध्वाधर जगह बढ़ती है, दृश्यता और क्लिक-थ्रू दर में सुधार होता है।
FaqPage क्लास प्रश्न इकाइयों की सूची रखता है। प्रत्येक इकाई में नाम (प्रश्न) और acceptedAnswer के साथ text प्रॉपर्टी (उत्तर) होना आवश्यक है।
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 प्रकार का होता है जिसमें acceptedAnswer होता है। Google प्रति पेज दस प्रश्न तक रिच परिणाम के लिए सपोर्ट करता है।
<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>FAQPage ब्लॉक पर @id स्कीमा को एक विशिष्ट URL फ्रैगमेंट से जोड़ता है। यह उन पेजों के लिए सर्वोत्तम अभ्यास है जिनमें कई स्कीमा ब्लॉक होते हैं, क्योंकि यह पार्सर्स को प्रत्येक इकाई को स्पष्ट रूप से पहचानने देता है।
WebSite और WebPage स्कीमा
WebSite और WebPage स्कीमा साइट के लिए मूलभूत एंटिटी ग्राफ बनाते हैं। WebSite साइट का नाम, URL, भाषा, और प्रकाशक बताता है। WebPage व्यक्तिगत पेज का वर्णन करता है और इसे isPartOf संबंध के माध्यम से मूल WebSite से जोड़ता है।
दोनों क्लास समान JSON-LD पैटर्न का पालन करते हैं। WebSite पर @id डोमेन रूट होता है; WebPage पर @id पूरा पेज URL होता है।
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 को आपकी साइट का पूर्ण एंटिटी मॉडल बनाने में मदद करता है।
<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 ब्लॉक्स बनती हैं। यह किसी भी सीरियलाइज़्ड स्कीमा पेलोड को आवश्यक स्क्रिप्ट टैग में लपेटता है जिसमें application/ld+json MIME टाइप होता है।
यह वह मेथड है जिसे सेवा के सभी स्कीमा बिल्डर कॉल करते हैं — Article, FAQPage, BreadcrumbList, WebSite, और WebPage सभी अपना सीरियलाइज़्ड JSON इसी यूटिलिटी को देते हैं।
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 मेथड के लिए प्रवेश बिंदु है। यह पेज के लिए सभी स्कीमा ब्लॉक्स बनाने के लिए आवश्यक डेटा ले जाता है — प्रकार, मेटाडेटा, FAQ सूची, ब्रेडक्रंब पदानुक्रम, और लेख डेटा।
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 और ब्रेडक्रंब हमेशा जोड़े जाते हैं यदि मौजूद हों, पेज प्रकार की परवाह किए बिना। इसका मतलब है कि किसी भी पेज प्रकार में FAQ ब्लॉक या ब्रेडक्रंब ट्रेल जोड़ा जा सकता है बिना मुख्य डिस्पैच लॉजिक बदले।
अपने स्कीमा का परीक्षण और सत्यापन
मान्य JSON-LD सिंटैक्स रिच परिणाम पात्रता की गारंटी नहीं देता। Google के टूल सिंटैक्स वैधता और आपके कंटेंट की प्रत्येक रिच परिणाम प्रकार की नीति आवश्यकताओं को जांचते हैं।
रिच परिणाम परीक्षण
किसी भी URL का परीक्षण करने या कच्चा HTML पेस्ट करने के लिए search.google.com/test/rich-results का उपयोग करें। Google पुष्टि करता है कि कौन से रिच परिणाम प्रकार पाए गए और कोई भी आवश्यक गुण जो गायब हैं उन्हें हाइलाइट करता है।
Google का आधिकारिक पात्रता परीक्षक
स्कीमा मार्कअप वैलिडेटर
validator.schema.org आपके मार्कअप को schema.org विनिर्देश के खिलाफ Google के रिच परिणाम नीतियों से स्वतंत्र रूप से जांचता है। यह गुण नाम की टाइपो और प्रकार असंगतियों को पकड़ने में उपयोगी है।
Schema.org सिंटैक्स सत्यापन
Google Search Console
Search Console का Enhancements सेक्शन आपके इंडेक्स किए गए पेजों में स्कीमा त्रुटियों और चेतावनियों की व्यापक रिपोर्ट देता है। प्रारंभिक सत्यापन के बाद निरंतर निगरानी के लिए इसका उपयोग करें।
लॉन्च के बाद बड़े पैमाने पर निगरानी करें