← Module Overview
Schema Markup — Practical
Schema Markup — A to Z Practical Guide

Schema Markup
Practical Implementation

Transcript se seedha practical knowledge. JSON-LD likhna, validate karna, nest karna, entity relationships banana, aur advanced semantic triples — step by step, real code ke saath.

⚡ Part 1 — Basic Implementation
Tip #1

Format Choose Karo — JSON-LD

Step 1 of 14

Schema markup 3 formats mein likha ja sakta hai. Lekin decision ek second mein hota hai:

✅ JSON-LD — Use This

HTML se bilkul alag. <script> tag mein. Google officially recommend karta hai. Easy to maintain. Page ke <head> mein rakho — search engine HTML parse karne se pehle padh leta hai.

❌ Microdata — Avoid

HTML tags ke andar mix hoti hai. itemscope, itemtype, itemprop attributes use karta hai. HTML clutter hoti hai, maintain karna mushkil.

❌ RDFa — Avoid

Microdata jaisa — HTML ke andar wrap hota hai. Different vocabulary (vocab, typeof, property). Academic sites ke liye theek hai, regular SEO mein zaroorat nahi.

💡 Why JSON-LD Wins
Search engines ka cost of retrieval kam karna chahte hain. JSON-LD separately rakha hota hai — Google HTML, CSS, JavaScript parse kiye baghair sirf JSON-LD padh sakta hai. <head> section mein hone se crawl budget bhi bachta hai.
JSON-LD — Basic Wrapper
HTML <head> mein rakho
<script type="application/ld+json">
{
  "@context": "https://schema.org",   // vocabulary source — hamesha yahi
  "@type": "Organization",          // entity type — Capital letter se shuru
  "name": "Sunrise Bakery"           // property — small letter se shuru
}
</script>

🔑 Golden Rule — Capital vs Small Letter

Schema Type → Capital Letter
Organization
Person
Product
LocalBusiness
PostalAddress
Schema Property → Small Letter
name
address
contactPoint
openingHours
aggregateRating

Ye rule todte ho → algorithms confuse hote hain. Parsing errors aate hain. Always follow karo.

Tip #2

Content Type Identify Karo

Step 2 of 14

Schema likhne se pehle ye samjho: is page ka macro context kya hai? Kaunsa user intent answer kar raha hai ye page?

🏢
Organization
Homepage, About Page
👤
Person
Author, Profile Pages
📦
Product
Product Pages, Listings
📰
Article
Blog Posts, News
📍
LocalBusiness
Location-based Businesses
FAQPage
Q&A Sections
📌 Schema.org Hierarchy
Sab kuch Thing se start hota hai — sab se generic type. Phir: CreativeWork, Organization, Person, Place, Product, Action. Organization ka subtype LocalBusiness hai. LocalBusiness ka subtype FoodEstablishment, Store etc. Hamesha sab se specific type use karo — Organization ke bajaye Airline use karo agar airline hai.
Tip #3

Organization Schema — Homepage ke liye

Step 3 of 14

Homepage ya About page pe Organization schema lagao. Ye aapki entity ki basic identity declare karta hai knowledge graph mein:

JSON-LD — Organization Schema
schema.org/Organization
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Sunrise Bakery",
  "url": "https://sunrisebakery.com",
  "logo": "https://sunrisebakery.com/logo.png",
  "contactPoint": {
    "@type": "ContactPoint",         // nested schema type
    "telephone": "+92-300-1234567",
    "contactType": "customer service"
  }
}
</script>

Important Properties

PropertyStatus
nameRequired
urlRecommended
logoRecommended
contactPointRecommended
sameAsOptional
foundingDateOptional
numberOfEmployeesOptional
📖 Schema.org pe Check Karo
Har schema type ke liye schema.org pe 4 cheezein milti hain:

1. Specific properties (us type ke liye)
2. Parent type properties (Thing se inherited)
3. More specific subtypes
4. Examples (JSON-LD format mein)
⚠️ Supersedes — Old vs New Property
Schema.org pe kabhi kabhi supersedes word aata hai — matlab pehle koi aur property thi jo ab replace ho gayi. Example: serviceArea → ab areaServed. Hamesha new property use karo.
Tip #4

LocalBusiness Schema — Physical Location

Step 4 of 14

Agar aapka business kisi specific location pe serve karta hai — LocalBusiness schema use karo. Address, coordinates aur opening hours zaroori hain:

JSON-LD — LocalBusiness Schema
schema.org/LocalBusiness
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Sunrise Bakery",
  "address": {
    "@type": "PostalAddress",           // nested type for address
    "streetAddress": "123 Main Street",
    "addressLocality": "Springfield",   // city
    "addressRegion": "IL",             // state/province
    "postalCode": "62701",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",         // exact location on map
    "latitude": 39.7817,
    "longitude": -89.6501
  },
  "openingHours": "Mo-Fr 09:00-18:00",    // when to visit
  "telephone": "+1-555-123-4567"
}
🗺️ Why GeoCoordinates?
Address components (street, city, postal code) hierarchical geographical understanding dete hain. GeoCoordinates exact point pe pin karta hai map pe. Dono milke local SEO pack mein appearance improve karte hain.
Tip #5

Validate Karo — Dono Tools Se

Step 5 of 14

Schema likha? Hamesha dono tools se validate karo pehle publish karne se:

🔍
schema.org Validator

Official tool. Code snippet ya URL paste karo. Format errors, missing brackets, wrong commas — sab catch karta hai. Fast response milti hai.

validator.schema.org
🎯
Google Rich Results Test

Rich snippets ke liye kaun se properties zaroori hain — ye batata hai. Critical issues aur warnings alag alag show hoti hain. Live URL ya code dono se test karo.

search.google.com/test/rich-results
Live validator output — Organization schema ke liye:
Organization — Detected
@type Organization
name Sunrise Bakery
url https://sunrisebakery.com
contactPoint ContactPoint

⚠️ Comma Missing hone pe error:

⚠️ Uncategorized Errors
Missing comma or bracket in object declaration
Fix: Har property ke baad comma — except last property ke.

3 cheezein jo sabse zyada parsing errors deti hain:

Missing comma — har property ke baad comma chahiye, except last one ke
Missing inverted commas — property name aur value dono ke aage-peeche "..." zaroori
Extra/missing bracket — nested types ke liye { } aur array ke liye [ ] — balance hona chahiye
Fix — Color coding se check karo: property names yellow honi chahiye, values green. Red matlab error hai
🔮 Part 2 — Intermediate Implementation
Tip #6

Article Schema — Blog Posts ke liye

Step 6 of 14

Har blog post ya written content pe Article schema lagao. Author, publisher, aur dates clearly declare karo:

JSON-LD — Article Schema with Author & Publisher
schema.org/Article
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Apple announces iPhone SE",
  "description": "New iPhone announced at 11:30 in California",
  "image": "https://example.com/images/iphone-se.jpg",
  "datePublished": "2024-03-15",
  "dateModified": "2024-03-16",
  "author": {
    "@type": "Person",              // nested — person entity
    "name": "Emily Rodriguez",
    "url": "https://sunrisebakery.com/authors/emily"
  },
  "publisher": {
    "@type": "Organization",       // nested — organization entity
    "name": "Sunrise Bakery",
    "logo": {
      "@type": "ImageObject",       // logo bhi nested type
      "url": "https://sunrisebakery.com/logo.png"
    }
  },
  "about": {
    "@type": "Event",               // article kis event ke baare mein hai
    "name": "Apple's March Event"
  }
}
🔗 Semantic Graph Building
Notice karo — Article mein Author (Person) hai, Publisher (Organization) hai, Logo (ImageObject) hai, About (Event) hai. Ye ek chhota sa semantic graph ban raha hai — interconnected entities. Search engine apne knowledge graph se is graph ko match karta hai.

Article ke specific subtypes:

NewsArticle BlogPosting TechArticle ScholarlyArticle SatiricalArticle SocialMediaPosting
Tip #7

Product Schema — E-Commerce ke liye

Step 7 of 14

Product schema schema.org ka sab se prominent type hai kyunke Google rich snippets (price, availability, ratings) sirf isi se show karta hai:

JSON-LD — Product Schema (Full)
schema.org/Product
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Artisan Sourdough Loaf",
  "image": "https://sunrisebakery.com/products/sourdough.jpg",
  "description": "Handcrafted sourdough bread baked fresh daily",
  "brand": {
    "@type": "Organization",
    "name": "Sunrise Bakery"
  },
  "offers": {
    "@type": "Offer",                      // price info nested
    "price": "8.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://sunrisebakery.com/products/sourdough"
  },
  "aggregateRating": {
    "@type": "AggregateRating",           // overall rating
    "ratingValue": "4.8",
    "reviewCount": "127"
  }
}
🚨 Critical Property — price
Google Rich Results Test mein agar price property missing ho — Critical Issue aati hai. Merchant listings rich result nahi dikhta bina price ke. Ye required property hai product ke merchant listing feature ke liye.
availability values
schema.org/InStock
schema.org/OutOfStock
schema.org/PreOrder
schema.org/Discontinued
Useful Product Properties
sku — stock unit number
gtin — global trade item
color — product color
isVariantOf — parent product
Tip #8

Breadcrumb Schema — Site Hierarchy

Step 8 of 14

Breadcrumb schema search engine ko batata hai ke ye page site ke kin sections mein hai. SERP mein URL ke bajaye breadcrumb path dikhta hai:

JSON-LD — BreadcrumbList Schema
schema.org/BreadcrumbList
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [             // array bracket — multiple items
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://sunrisebakery.com"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Products",
      "item": "https://sunrisebakery.com/products"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Sourdough Bread",
      "item": "https://sunrisebakery.com/products/sourdough"
    }
  ]
}
📌 Array Bracket [ ] ka use
Jab bhi ek property ke under multiple items hon — [ ] (square bracket) use karo. Single nested type ke liye { } (curly bracket). Ye difference samajh lo — breadcrumbs, reviews, multiple offers sab mein array chahiye.
Tip #9

FAQ Schema — Questions & Answers

Step 9 of 14

FAQ schema search engine ko target audience ke questions convey karta hai. Direct search result mein accordion format mein questions show ho sakte hain:

JSON-LD — FAQPage Schema
schema.org/FAQPage
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "WebHostingPK ka cheapest plan kya hai?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Basic plan sirf PKR 499/month se start hota hai — NVMe SSD, free SSL, aur 24/7 support ke saath."
      }
    },
    {
      "@type": "Question",
      "name": "Kya local support available hai?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Haan, 24/7 Urdu aur English mein live chat aur phone support available hai."
      }
    }
  ]
}
Structure samjho:
FAQPage
Question (array)
acceptedAnswer
Answer → text
⚡ Part 3 — Advanced Strategies
Tip #10

Nested & Combined Schema Types

Step 10 of 14

Advanced implementation mein ek page pe multiple schema types combine karte hain. Product page pe Product + Review + Offer sab saath:

JSON-LD — Nested Product + Review + Rating
Multiple nested types
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Artisan Sourdough Loaf",
  "brand": {
    "@type": "Organization",           // nested type #1
    "name": "Sunrise Bakery"
  },
  "aggregateRating": {
    "@type": "AggregateRating",         // nested type #2
    "ratingValue": "4.8",
    "reviewCount": "127"
  },
  "review": {
    "@type": "Review",                 // nested type #3
    "datePublished": "2024-01-15",
    "reviewBody": "Best sourdough I have ever tasted!",
    "author": {
      "@type": "Person",              // nested type inside nested type
      "name": "Ahmed Khan"
    },
    "reviewRating": {
      "@type": "Rating",
      "ratingValue": "5"
    }
  },
  "offers": {
    "@type": "Offer",
    "price": "8.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}
🧩 Rich Semantic Web
Ye ek page pe Product + Organization + AggregateRating + Review + Person + Rating + Offer — 7 schema types ek saath. Search engine ko product ki poori picture milti hai — entity, brand, price, reviews, rating — sab ek structured unit mein.
Tip #11

@id se Entity Relationships

Step 11 of 14

@id ek unique identifier hai jo ek entity ko repeatedly reference karne deta hai — bina poora schema dobara likhne ke. Internal linking of schema:

JSON-LD — @id aur @graph ka use
Entity cross-referencing
{
  "@context": "https://schema.org",
  "@graph": [                          // multiple entities ek saath
    {
      "@type": "Organization",
      "@id": "https://sunrisebakery.com/#organization", // unique ID
      "name": "Sunrise Bakery",
      "url": "https://sunrisebakery.com"
    },
    {
      "@type": "Article",
      "name": "Best Sourdough Recipe",
      "publisher": {
        "@id": "https://sunrisebakery.com/#organization"
        // poora organization dobara likhne ki zaroorat nahi
        // sirf ID se reference karo — machine connect kar leti hai
      }
    },
    {
      "@type": "Product",
      "name": "Sourdough Loaf",
      "brand": {
        "@id": "https://sunrisebakery.com/#organization"
        // same organization — same ID — machines ek unit samjhti hain
      }
    }
  ]
}
@graph = site ka internal knowledge graph
🏢
Organization — #organization
Sunrise Bakery
↓ publisher of
📰
Article
Best Sourdough Recipe
↓ brand of
📦
Product
Sourdough Loaf
💡 Jump Links Analogy
WordPress mein jump links yaad hain? Jaise #section-1 ek page ke kisi section se link karta hai — waise hi schema mein @id ek entity se doosri jagah link karta hai. Machines is ID ko dekh ke poori entity samajh leti hain bina repeat kiye.
Tip #12

Complex Hierarchies — Multi-Location Organizations

Step 12 of 14

Multiple locations ya departments wali organizations ke liye — hierarchical relationships:

JSON-LD — Parent + Sub Organization
parentOrganization / subOrganization
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Sunrise Bakery — Lahore Branch",
  "parentOrganization": {   // main HQ se connect karo
    "@type": "Organization",
    "name": "Sunrise Bakery Group",
    "url": "https://sunrisebakery.com"
  }
}
Tip #13

Semantic Triples — Search Engine ki Language

Step 13 of 14

Schema markup ki har property ek Semantic Triple banati hai: Subject → Predicate → Object. Ye Google ke "Knowledge Based Trust" research paper ka core concept hai — information ka ye format quality metric hai:

Semantic Triple Examples — Schema se banate hain
Subject
Sunrise Bakery
Predicate
makesOffer
Object
Sourdough Loaf
Subject
Sourdough Loaf
Predicate
hasOffer
Object
price: $8.99 InStock
Subject
Article: Recipe
Predicate
hasAuthor
Object
Emily Rodriguez
📊 Quality Metric
Google ka "Knowledge Based Trust" paper kehta hai: jitne zyada symmetric triples ek page mein hon — utna zyada quality score. Multiple pages compare karte waqt Google woh page prefer karta hai jisme zyada information semantic triple format mein ho. Schema markup automatically triples create karta hai.

Sochne ka tariqa change karo — schema likhte waqt poocho:

WHO Organization, Person — subject kaun hai?
DOES makesOffer, hasAuthor, isPartOf — predicate kya hai?
WHAT Product, Event, Article — object kya hai?
Tip #14

sameAs — External Knowledge Bases se Connect

Step 14 of 14

sameAs property entity disambiguation ke liye sabse powerful tool hai. Search engine ko bata do: "ye entity jo main describe kar raha hoon — ye wahi entity hai jo in platforms pe exist karti hai":

JSON-LD — sameAs Property (Person Entity)
Entity Disambiguation
{
  "@context": "https://schema.org",
  "@type": "Person",
  "@id": "https://sunrisebakery.com/#founder",
  "name": "Maria Santos",
  "jobTitle": "Founder & Head Baker",
  "sameAs": [              // array — multiple external profiles
    "https://www.linkedin.com/in/mariasantos-baker",
    "https://twitter.com/mariasantos_bakes",
    "https://www.wikidata.org/wiki/Q123456789",
    "https://en.wikipedia.org/wiki/Maria_Santos"
  ]
}
🔗 Entity Disambiguation
"Maria Santos" naam bohot logon ka ho sakta hai. sameAs se aap search engine ko prove karte ho: is Maria Santos ka LinkedIn ye hai, Wikipedia ye hai, Wikidata ye hai — ab Google confuse nahi hoga. Ye knowledge panel appearance ke liye bhi important hai.
sameAs mein provide karo:
LinkedIn Profile Twitter/X Account Facebook Page Wikipedia Article Wikidata ID Crunchbase Profile Google Business Profile Instagram Page YouTube Channel
Summary

Advanced Best Practices — Checklist

Consistency — Har Page Same Name

Agar organization ka naam "Sunrise Bakery" hai — har page ke schema mein same naam rakho. Ek jagah "Sunrise Bakery Pvt Ltd" aur doosri jagah "Sunrise Bakery" — dono alag entities ban jaati hain machines ke liye.

Visible Content Only

Jo information page pe visible nahi — schema mein mat daalo. Google explicitly kehta hai: hidden content ka schema markup = policy violation. Penalty aa sakti hai.

Most Specific Type Use Karo

Airline ke liye Organization mat use karo — Airline use karo. Restaurant ke liye FoodEstablishment ya Restaurant. Generic types se specific types zyada context dete hain.

Schema Update Karo — Content ke Saath

Price change hui? Phone number change hua? Schema bhi update karo. Backend aur frontend mismatch = misleading content = Google warning.

Progressive Implementation

Ek baar mein sab kuch mat karo. Pehle homepage Organization schema. Phir blog posts mein Article. Phir product pages. Phir FAQ. Phir advanced — @id, @graph, sameAs.

Google Search Console Monitor Karo

"Enhancements" section mein schema errors aur warnings milti hain. Monthly check karo. Rich results kitne pages pe show ho rahe hain — track karo.

Bonus

Google Documentation vs Schema.org — Fark

Google Documentation

Sirf woh schema types aur properties cover karta hai jinke liye rich results show hote hain. Zyada practical — CTR boost, merchant listings, review stars, FAQ accordion.

developers.google.com/search/docs/appearance/structured-data
Schema.org

Complete vocabulary — 800+ properties, 1000+ types. Google documentation mein jo nahi hai woh sab yahaan milega. Semantic SEO ke liye non-rich-result properties bhi equally important hain.

schema.org
🎯 Strategy
Rich results chaahiye → Google documentation padho aur required properties pehle implement karo. Knowledge graph + entity clarity chaahiye → schema.org ki poori vocabulary use karo. Dono ka combination ideal hai.
Future

LLMs aur Schema Markup — 2024 Reality

Microsoft Copilot ne officially confirm kiya hai:

"Microsoft uses schema markup to help its LLMs like those powering Copilot understand web content. The structured data integration is crucial for enhancing search visibility, generating rich search features and improving the accuracy of AI-driven responses."

LLMs Schema kyun pasand karte hain?

Cost of retrieval kam hota hai
Embedding generate karne ki zaroorat kam
Entity aur attributes already structured
RAG model mein directly usable
🤖 AI-Powered SEO
ChatGPT by default Bing use karta hai — aur Bing schema markup use karta hai LLMs ke liye. Gemini (Google) explicit hai ke structured data zaroori hai. Claude bhi web se schema padh sakta hai. Schema = future-proof SEO.
🎓

14 Tips — Complete!

Format choose karna se leke semantic triples optimize karne tak — schema markup ka poora practical safar. Ab implement karo, validate karo, aur monitor karo.

✓ JSON-LD Format ✓ Organization Schema ✓ LocalBusiness Schema ✓ Article Schema ✓ Product Schema ✓ Breadcrumb + FAQ ✓ Nested Types ✓ @id Entity Links ✓ Semantic Triples ✓ sameAs Disambiguation