All Tools

Schema Markup Validator

Paste your JSON-LD structured data to validate it against schema.org rules. Catch syntax errors, missing required fields, and see exactly what Google reads before you deploy.

What Is JSON-LD Schema Markup?

JSON-LD (JavaScript Object Notation for Linked Data) is the recommended way to add structured data to your website. You embed a block of JSON inside a <script type="application/ld+json"> tag in your HTML head that tells Google exactly what your page represents: a product, a software tool, a person, an FAQ, an article, or an organization.

Google uses this structured data to generate rich results in search: star ratings, pricing panels, expandable FAQ sections, breadcrumb trails, and knowledge panel entries. These rich results dramatically increase click-through rates by making your search listing larger and more informative than plain blue links. A SoftwareApplication schema on a product page, for example, can show your average rating and price directly in search results without the user needing to click.

Schema Types and the Rich Results They Unlock

FAQPageExpandable Q&A accordion directly in search results — expands your listing to 3-5x its normal height
SoftwareApplicationStar rating, price, and operating system shown in the search snippet
ProductPrice, availability, and review stars in search and Google Shopping
Article / BlogPostingPublication date and author name displayed under the title
BreadcrumbListURL path replaced with readable breadcrumb trail (e.g. Home > Blog > Topic)
WebSiteSitelinks search box inside Google results for your brand name

How to Add FAQPage Schema in Next.js

FAQPage schema is the highest-impact schema type for most indie maker tool pages and blog posts. Define your FAQ items as an array, then output the schema in a script tag. Multiple JSON-LD blocks on the same page are supported:

// page.tsx
const faqItems = [
  { q: "How does this work?", a: "You enter a URL and we fetch..." },
  { q: "Is it free?", a: "Yes, completely free with no signup..." },
]

const faqSchema = {
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": faqItems.map(({ q, a }) => ({
    "@type": "Question",
    "name": q,
    "acceptedAnswer": { "@type": "Answer", "text": a },
  })),
}

// In JSX:
<script
  type="application/ld+json"
  dangerouslySetInnerHTML={{ __html: JSON.stringify(faqSchema) }}
/>

Schema and AI Search Visibility

AI systems use structured data to understand what a page is about without having to parse the full body content. A FAQPage schema tells AI retrievers exactly what questions your page answers and exactly what the answers are, making it far more likely that your content is cited in AI-generated answers. SoftwareApplication schema tells AI tools that your page describes a specific product with a specific price — information that can surface your product when someone asks an AI assistant for tool recommendations.

Frequently Asked Questions

What schema types unlock rich results in Google Search?

Google supports rich results for a specific set of schema types. The most useful for indie makers and SaaS products are: FAQPage (shows expandable Q&A directly in search results), SoftwareApplication (shows star ratings, price, and operating system), Product (shows price, availability, and reviews), Article and BlogPosting (shows article date and author), BreadcrumbList (shows site hierarchy in the URL display), and WebSite (enables the search box inside Google results). Not every schema type produces visible rich results — some only help Google understand context without displaying anything extra.

What is the difference between JSON-LD, Microdata, and RDFa?

All three are ways to embed structured data in a web page for search engines. JSON-LD embeds the data as a JavaScript object in a script tag — it is completely separate from your HTML markup and is the format Google recommends. Microdata embeds structured data directly inside HTML elements using special attributes. RDFa is similar to Microdata but uses a different attribute syntax. For new implementations, always use JSON-LD. It is easier to write, easier to debug, does not require changes to your HTML template, and is the only format supported by Google's Rich Results Test for all schema types.

How do I add FAQPage schema to a Next.js page?

Create your FAQ array as a constant, then output a JSON-LD script tag using a script element with type='application/ld+json' and dangerouslySetInnerHTML. The FAQPage type requires a mainEntity array where each item has @type: 'Question', a name field (the question), and an acceptedAnswer object with @type: 'Answer' and a text field (the answer). Include both a WebApplication schema and a FAQPage schema as separate script tags on the same page — Google processes multiple JSON-LD blocks on a single page.

Does Google guarantee rich results if my schema is valid?

No. Valid schema makes your page eligible for rich results, but Google decides whether to display them based on additional quality signals. Pages with thin content, low authority, or content that does not match the schema claims may have valid schema but receive no rich result treatment. Google's Rich Results Test shows whether your page is eligible, not whether rich results will actually appear. Monitor Google Search Console under Enhancements to see which schema types are generating impressions and clicks.

What happens if my JSON-LD has a syntax error?

A JSON syntax error (misplaced comma, unclosed bracket, unescaped quote) causes the entire JSON-LD block to fail silently. Google cannot parse it, the schema is ignored completely, and no rich results are generated. The page itself still loads normally since the script tag type is not executed as JavaScript. This is why validation is critical — errors are completely invisible to users and require a tool to detect. Use this validator before deploying any schema changes to catch syntax errors before they reach production.

Report a Bug

Something broken?

Send Feedback

Share your thoughts

Request a Feature

What should we build?