Free tool

Schema markup generator: JSON-LD for FAQ, Article, Product and SaaS

A schema markup generator writes JSON-LD structured data that tells Google and AI search engines what a page is — an article, a product, a software app, an organization or a set of FAQs. Pick a type, fill in the fields, and the tool validates them against Google's required and recommended properties before you copy the script tag.

Updated

Schema type

For apps and SaaS products. Google needs a name, a price (use 0 for free) and a rating or review to show a software rich result.

Only mark up ratings that are visible on the page and come from real users.

1 error to fix

  • Error: Google requires aggregateRating or review for software rich results. Add a rating only if it's real and shown on the page.

JSON-LD (paste into the page's HTML)

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebApplication",
  "name": "Example Analytics",
  "url": "https://example.com",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Web",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "USD"
  }
}
</script>

Key takeaways

  • Google recommends JSON-LD over Microdata and RDFa. Put the script tag anywhere in the page's HTML — head or body.
  • Required fields decide whether a page is eligible for a rich result: SoftwareApplication needs name, a price and a rating or review; Product needs name plus offers, a rating or a review.
  • Only mark up what's visible on the page. Invented ratings or hidden FAQs violate Google's guidelines and can trigger a manual action.
  • Structured data makes a page eligible for rich results; it doesn't guarantee them and isn't a direct ranking factor.

What each schema type is for

TypeUse it onGoogle requiresRich result today
FAQPagePages with a visible list of questions and answersmainEntity → Question.name + acceptedAnswer.textOnly for well-known government and health sites since August 2023
Article / BlogPostingBlog posts, news, guidesNothing strictly; headline, image, dates and author recommendedBetter title, image and date display; Top stories eligibility for news
SoftwareApplication / WebApplicationApp and SaaS product pagesname, offers.price, and aggregateRating or reviewSoftware app rich result with rating and price
OrganizationHomepage or About pageNothing strictly; name, url, logo, sameAs recommendedLogo and details in knowledge panels
ProductProduct detail pagesname, plus offers, review or aggregateRatingProduct snippets and merchant listings (price, availability, ratings)
Requirements per Google Search Central structured-data documentation, as of October 2026.

Why there's no HowTo option

Google deprecated HowTo rich results in 2023 and no longer shows them on desktop or mobile, so we left the type out rather than generate markup with no visible effect in Google. HowTo is still valid schema.org vocabulary if another consumer you care about reads it.

How to add schema markup to a page

  1. 1.Pick the type that matches the page's main content. One primary type per page is the norm; an Organization block on the homepage can sit alongside it.
  2. 2.Fill in the fields with the same facts that are visible on the page — the same price, the same rating, the same questions.
  3. 3.Fix everything the validator flags as an error. Errors mean the page isn't eligible for the rich result; warnings are recommended properties that improve it.
  4. 4.Copy the script tag into the page. In Next.js, render it in the page component; in WordPress, use a header-scripts plugin or your SEO plugin's custom schema field.
  5. 5.Test the live URL with Google's Rich Results Test and the Schema Markup Validator, then watch the Enhancements reports in Search Console.

Example: SaaS product page markup

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebApplication",
  "name": "Example Analytics",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Web",
  "offers": { "@type": "Offer", "price": "9", "priceCurrency": "USD" },
  "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.8, "ratingCount": 132 }
}
</script>
Only include aggregateRating if those ratings are real and shown on the page.

Does schema markup help with AI search and AI Overviews?

Indirectly. Google says structured data helps it understand page content and that there's no special markup for AI Overviews — they draw on the same index and signals as regular search. For other answer engines, JSON-LD is a clean, machine-readable statement of facts (price, author, dates, official profiles via sameAs) that is easy to extract, which matters when an engine decides what it's confident enough to say about you. The bigger levers remain letting AI crawlers in (see the AI crawler robots.txt generator) and writing answer-first content.

Common schema markup mistakes

  • Marking up content that isn't on the page — FAQ answers hidden from users, ratings from nowhere, prices that differ from the visible price.
  • Self-serving reviews. Google ignores review markup for an organization's own products when the reviews are about itself on its own site (LocalBusiness and Organization review snippets).
  • Relative URLs for image, logo and url. Use absolute https:// URLs.
  • Wrong currency or number formats: "$29" instead of price 29 with priceCurrency USD, or a comma as the decimal separator.
  • Stale dates. dateModified that never changes, or that changes on every build without real edits, both undermine trust.
  • Duplicated, conflicting blocks from a theme and a plugin. Check the page source for more than one Product or Organization block.

Rich results change click-through rates, not just rankings, so measure the effect: compare clicks before and after in Search Console, and use VisitTrack to see whether those visitors convert. Check the rest of the snippet with the SERP snippet preview.

Frequently asked questions

What is schema markup?

Schema markup is structured data, written with the schema.org vocabulary, that describes a page's content in a machine-readable way — for example that a page is a product with a price and rating. Search engines use it to understand pages and to show rich results such as ratings, prices and article dates.

Is JSON-LD better than Microdata?

For most sites, yes. Google recommends JSON-LD because it sits in one script block separate from the HTML, which makes it easier to add, generate and maintain. Microdata and RDFa are still supported.

Does schema markup improve rankings?

Not directly. Google has said structured data isn't a ranking factor by itself, but it can make a page eligible for rich results, which often improve click-through rate, and it helps search engines understand what the page is about.

Why don't my FAQ rich results show anymore?

Since August 2023 Google shows FAQ rich results only for well-known, authoritative government and health websites. FAQPage markup is still valid and still describes your Q&A to search and answer engines, but most sites won't get the expandable result in Google.

What fields does SoftwareApplication schema require?

Google requires name, an offers object with a price (use 0 for free apps), and either aggregateRating or review. applicationCategory and operatingSystem are recommended. Without a rating or review the page isn't eligible for the software rich result.

How do I test schema markup?

Run the live URL or code through Google's Rich Results Test to check eligibility for Google features, and the Schema Markup Validator (validator.schema.org) to check general schema.org validity. After publishing, Search Console's Enhancements reports show errors across the whole site.

Can I use multiple schema types on one page?

Yes. A page can have several JSON-LD blocks or one block with an @graph array — for example an Organization, a BreadcrumbList and an Article. Each must describe content that is actually on the page.

Related tools and guides

See which channels actually bring paying customers

VisitTrack is cookie-free analytics with revenue attribution built in. One script tag, no consent banner, live in two minutes. 14 days free, no card required.