Free tool, runs in your browser
Generate JSON-LD structured data
Pick a type, fill in the fields and copy a ready JSON-LD block into your page's head. Each type comes with notes on what Google requires and what it will and won't show.
Paste into the page's <head>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Acme Invoices",
"url": "https://your-app.example/",
"logo": "https://your-app.example/logo.png",
"description": "Invoicing for freelancers.",
"sameAs": [
"https://www.linkedin.com/company/your-company",
"https://x.com/your-company"
]
}
</script>Test the page afterwards in Google's Rich Results Test. Everything you mark up must match what visitors can see on the page.
What structured data does
Structured data is a standard way to state facts about a page, such as who publishes it, what product it sells or what questions it answers, in a form machines read directly. Google uses it to understand pages and to make them eligible for rich results. JSON-LD in a script tag is the format Google recommends.
The markup must describe content visitors can actually see on the page. Marking up things that aren't there, such as ratings you don't have, breaks Google's guidelines.
Which type to use
| Type | Where | What Google says |
|---|---|---|
| Organization | Home page or about page | No required properties. Add name, url, logo (at least 112 by 112 pixels) and sameAs links to your official profiles. |
| WebSite | Home page only | Used to choose the site name shown in search results. |
| SoftwareApplication | Your app's landing page | Rich results need name, offers.price and a real aggregateRating or review. |
| FAQPage | A page with visible questions and answers | Google no longer shows FAQ rich results in search. The markup still states your answers in machine-readable form. |
Add it to your app
Paste the generated block into the head of the page. In Next.js you can render it from a Server Component so it is in the HTML the server sends. Then test the page with Google's Rich Results Test.
const jsonLd = { "@context": "https://schema.org", "@type": "Organization", name: "Acme", url: "https://your-app.example" };
export default function Page() {
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd).replace(/</g, "\\u003c") }}
/>
);
}Frequently asked questions
Does structured data improve rankings?
Google describes structured data as a way to help it understand a page and to make it eligible for rich results. It does not promise better rankings from adding it.
Can I add a star rating to my app's markup?
Only if the page shows real ratings or reviews from real users. Google requires aggregateRating or review for software rich results, and invented ratings break its guidelines.
Is FAQ markup still worth adding?
Google no longer shows FAQ rich results in search. If your page has real questions and answers, the markup still describes them in a form machines read directly, but don't add it expecting a change in Google's results.
Why does the output escape the < character?
So text you type can never close the script tag early. Escaping < as \u003c keeps the JSON valid and the page safe.
Sources
- 1.Google Search Central: Introduction to structured data
- 2.Google Search Central: Organization structured data
- 3.Google Search Central: Site names
- 4.Google Search Central: Software app structured data
- 5.Google Search Central: FAQ structured data
- 6.Google Rich Results Test
- 7.Schema.org: SoftwareApplication