Schema / JSON-LD Builder — User Guide
This tool builds valid Schema.org structured data as JSON-LD, ready to paste into your page <head>. Everything runs in your browser — nothing is uploaded.
Quick start
- Pick a schema type (Person, Article, FAQ, Service, LocalBusiness, Breadcrumb, or SoftwareApplication).
- Fill in the fields. Required fields are marked with a red asterisk.
- Watch the live JSON-LD update on the right, with a validity indicator.
- Keep Wrap in
<script>tag on to get paste-ready HTML, or turn it off for raw JSON. - Copy or Download, then paste into your page
<head>.
Supported types
- Person — author and about pages (name, job title, social profiles via
sameAs). - Article — blog posts and news (headline, author, publisher, dates, canonical URL).
- FAQ — question/answer pairs eligible for FAQ rich results.
- Service — a service you offer (name, provider, area served).
- LocalBusiness — a physical business with a postal address.
- Breadcrumb — a navigation trail.
- SoftwareApplication — an app or software product (with optional offer + rating).
List fields
Some fields take one item per line:
- Social profile URLs (Person) — one URL per line.
- FAQ — one per line as
Question :: Answer. - Breadcrumb — one per line as
Name :: URL, top level first.
Validation
The builder flags issues live:
- Errors — a required field is empty (the JSON-LD is incomplete).
- Warnings — a URL field isn't an absolute
http(s)URL, a date isn't ISO 8601 (YYYY-MM-DD), or an FAQ/breadcrumb line is missing its::separator.
A green Valid badge means all required fields are present.
Verify before you ship
After pasting the script tag, confirm it with Google's Rich Results Test or the Schema Markup Validator. Structured data helps search engines understand your page and can unlock rich results, but it doesn't guarantee them.
Tips
- Switching types keeps each type's values, so you can build several blocks in one session.
- Add multiple JSON-LD blocks to a page (e.g. Person + Breadcrumb) — each in its own script tag.
- Use absolute URLs everywhere (
https://…), not relative paths.