Skip to content
  • Schema Markup
  • GEO
  • AI Visibility
  • Content Architecture
  • Intent Mapping
  • Internal Linking
  • Crawl Optimization
  • Core Web Vitals
  • LLM Traffic
  • Looker Studio
  • Technical SEO
  • Organic Growth
Technical SEOFirst published: Mar 2025Updated: October 22, 202612 min read

What Is Schema Markup? JSON-LD Examples and Implementation Guide

Learn how schema markup describes page information to search engines. Set up JSON-LD step by step, copy examples for seven schema types and set realistic expectations for search results.

What is schema markup?

Schema markup (structured data) describes information such as a person, article, product, business or event using standard types and properties from Schema.org. Seeing the name “Merve Algan” on a page is not the same as understanding that she authored the article. Schema describes what information means and how it relates to other facts.

Think of a shipping label. Seeing “Izmir” on a box does not tell you whether it is the sender's or delivery address. Similarly, on a product page, markup can identify 849 TRY as the price, 750 ml as the capacity and “in stock” as availability. Schema does not replace visible content; it gives machines a structured description of it.

Why use JSON-LD?

Structured data can be added as JSON-LD, Microdata or RDFa. JSON-LD keeps markup in one application/ld+json script instead of spreading it across HTML elements. An editor can update copy while a developer generates the right JSON-LD from the page template. Google recommends JSON-LD among its supported formats because it is straightforward to implement and maintain.

  • JSON-LD - The markup lives in one block and is usually the easiest format to maintain in a new implementation.

  • Microdata - Schema properties are added to HTML elements. If an existing system uses it, there is no need to rewrite it just to change formats.

  • RDFa - Structured data is added through HTML attributes; it can be kept when compatibility with an existing implementation matters.

Copyable schema markup examples

The code below is a starting point. Replace example.com, names, prices, dates and contact details with verified values of your own. Each property must match visible page content. Do not publish sample data unchanged. Use the copy button to adapt these JSON-LD examples to your template.

1. Article: blog post schema example

Article or its more specific subtype BlogPosting describes a post's headline, author, publication date and publisher. Use the true publication date; change dateModified only after a meaningful update. The example uses this article's new URL.

BlogPosting JSON-LD

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "What Is Schema Markup? JSON-LD Examples and Implementation Guide",
  "description": "An example-led guide to schema markup and JSON-LD.",
  "mainEntityOfPage": "https://mervealgan.com/blog/schema-markup-nedir/",
  "datePublished": "2025-03-01",
  "dateModified": "2026-10-22",
  "author": { "@type": "Person", "name": "Merve Algan", "url": "https://mervealgan.com/hakkimda/" },
  "publisher": { "@type": "Organization", "name": "Merve Algan", "url": "https://mervealgan.com/" }
}
</script>

2. Organization: a brand or company

Organization connects a company or brand with its official site and profiles. Add only verified social links that genuinely belong to the organization to sameAs. This does not guarantee a Knowledge Graph entry; it helps distinguish the same organization across sites. Person may be more appropriate for an individual expert website.

Organization JSON-LD

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example Brand",
  "url": "https://www.example.com/",
  "logo": "https://www.example.com/images/logo.png",
  "sameAs": ["https://www.linkedin.com/company/example-brand/", "https://www.instagram.com/example-brand/"],
  "contactPoint": { "@type": "ContactPoint", "contactType": "customer support", "email": "support@example.com", "availableLanguage": ["English"] }
}
</script>

3. FAQPage: frequently asked questions

FAQPage marks up questions and answers written by the site and visible to visitors. QAPage is different and intended for user-submitted forum answers. The current status matters: Google stopped showing FAQ rich results in Search on May 7, 2026. FAQPage remains a Schema.org type for describing content; do not expect expandable questions in Google just because you add this markup.

FAQPage JSON-LD

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    { "@type": "Question", "name": "Does schema markup improve rankings?", "acceptedAnswer": { "@type": "Answer", "text": "No, not by itself. Schema describes page information and may help determine eligibility for some Google features; it does not guarantee better rankings or a special appearance." } },
    { "@type": "Question", "name": "Will FAQ schema appear in search for every site?", "acceptedAnswer": { "@type": "Answer", "text": "No. Google stopped showing FAQ rich results in Search on May 7, 2026. FAQPage remains a Schema.org type for describing content; do not expect expandable FAQs in Google." } }
  ]
}
</script>

4. HowTo: step-by-step instructions

HowTo describes ordered steps for completing a task. The example marks up the five implementation steps shown just below; adapt it to the visible steps on your own page. Google removed HowTo rich results in 2023, so use HowTo to describe genuine step-by-step content, not to seek a special Google appearance.

HowTo JSON-LD for the five implementation steps

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "How to implement schema markup in five steps",
  "step": [
    { "@type": "HowToStep", "name": "Choose a page", "text": "Start with one URL, such as a product, article or contact page. Define what it offers visitors." },
    { "@type": "HowToStep", "name": "Find a suitable type", "text": "Choose the closest type in Schema.org. If you want a Google search feature, separately check whether Google supports it." },
    { "@type": "HowToStep", "name": "Map real data", "text": "Compare headline, author, date, price and address with visible page content. Never invent an unknown value." },
    { "@type": "HowToStep", "name": "Confirm there is one source", "text": "If an SEO plugin outputs Article, do not add the same code in the theme. In custom software, generate it from the page's CMS data." },
    { "@type": "HowToStep", "name": "Test and monitor", "text": "Check structure with Schema.org Validator and eligibility for Google's supported features with Rich Results Test. Monitor Search Console after publishing." }
  ]
}
</script>

BreadcrumbList describes a page's location using a sequence such as Home → Blog → Article. Names and URLs in JSON-LD should match visible breadcrumb links. Do not invent parent pages just to fill schema.

BreadcrumbList JSON-LD

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://mervealgan.com/" },
    { "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://mervealgan.com/blog/" },
    { "@type": "ListItem", "position": 3, "name": "What Is Schema Markup?", "item": "https://mervealgan.com/blog/schema-markup-nedir/" }
  ]
}
</script>

6. Product: product and offer details

Product describes a specific item. Name, image, price, currency and availability must match what visitors see. If prices change often, generate JSON-LD from the product catalog; stale prices may mislead customers. Do not use Product on a service page or invent reviews and ratings.

Product JSON-LD

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Stainless Steel Water Bottle",
  "image": "https://www.example.com/images/bottle.jpg",
  "description": "Reusable 750 ml stainless steel water bottle.",
  "sku": "SS-750",
  "offers": { "@type": "Offer", "url": "https://www.example.com/products/steel-bottle/", "priceCurrency": "USD", "price": "24.00", "availability": "https://schema.org/InStock" }
}
</script>

7. LocalBusiness: a local business

A business with a physical location or defined service area may use LocalBusiness. Keep address, phone and opening hours real and current. If you work from home and your address is not public, do not publish it. Organization may be more appropriate for an online-only brand.

LocalBusiness JSON-LD

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Example Coffee Shop",
  "url": "https://www.example.com/",
  "telephone": "+1-555-010-1000",
  "address": { "@type": "PostalAddress", "streetAddress": "10 Example Street", "addressLocality": "Example City", "postalCode": "10000", "addressCountry": "US" },
  "openingHoursSpecification": [{ "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], "opens": "09:00", "closes": "18:00" }]
}
</script>

Which schema type should I choose?

Choose by the page's real purpose, not a keyword. Use Article or BlogPosting for a post, Organization for a company, Person for an individual profile, Product for a product page, LocalBusiness for a physical location, and FAQPage for genuine visible Q&A. A page with ordered instructions may use HowTo, while a visible hierarchy may use BreadcrumbList. Multiple types can appear if each describes a distinct, accurate fact.

How can schema markup support SEO and GEO?

Schema markup gives search engines a clearer description of page content and relationships. It is part of technical SEO, not a replacement for useful content, accessible HTML, a correct canonical or good site architecture. For types Google supports, it may help determine rich result eligibility; it does not guarantee display or better rankings.

The same realistic expectations apply to GEO. How much AI systems use schema varies by platform and cannot always be measured externally. Rather than adding FAQPage just to attract citations, answer genuine questions, identify the author, support claims with reliable sources and keep content current. Schema complements this information in a machine-readable form; it does not secure citations by itself.

How to implement schema markup in five steps

  • 1. Choose a page - Start with one URL, such as a product, article or contact page. Define what it offers visitors.

  • 2. Find a suitable type - Choose the closest type in Schema.org. If you want a Google search feature, separately check whether Google supports it.

  • 3. Map real data - Compare headline, author, date, price and address with visible page content. Never invent an unknown value.

  • 4. Confirm there is one source - If an SEO plugin outputs Article, do not add the same code in the theme. In custom software, generate it from the page's CMS data.

  • 5. Test and monitor - Check structure with Schema.org Validator and eligibility for Google's supported features with Rich Results Test. Monitor Search Console after publishing.

Schema validation and maintenance

Schema.org Validator checks vocabulary and syntax. Rich Results Test checks page eligibility for rich result features Google supports. They do different jobs: markup can be valid Schema.org without qualifying for a special Google appearance.

Whenever possible, test the live URL; checking JSON alone does not confirm the script was added correctly. Monitor relevant Search Console reports and URL Inspection. Update the source when prices, stock, addresses or hours change. Generating changing product data from a catalog reduces stale information.

Common schema mistakes

  • Marking up hidden information - Do not add questions, prices, reviews or services absent from the page. Structured data should reflect visible content.

  • Using sample code unchanged - Replace sample domains, phone numbers and prices. Test data on a live site can mislead visitors.

  • Duplicating the same schema - A theme and SEO plugin may both output the same Article data. Check the source and keep one source of truth.

  • Treating a test as a ranking guarantee - Passing a test means the code cleared a technical check; it does not promise rankings or rich results.

Frequently asked questions about schema markup

Does schema markup improve rankings?

No, not by itself. Schema describes page information and may help determine eligibility for some Google features; it does not guarantee better rankings or a special appearance.

Will FAQ schema appear in search for every site?

No. Google stopped showing FAQ rich results in Search on May 7, 2026. FAQPage remains a Schema.org type for describing content; do not expect expandable FAQs in Google.

How do I add schema markup to WordPress?

Check whether your SEO plugin already outputs the relevant schema. If not, add JSON-LD through plugin settings or the theme template with developer help. Do not duplicate the same markup through both plugin and manual code.

Does schema guarantee AI citations?

No. Schema structures content but cannot guarantee citations from ChatGPT, Gemini or another AI. Clear answers, reliable sources, accurate author information and regular maintenance remain the core work.