Skip to content
induwara.lk
induwara.lkDeveloper · SEO

Schema Markup Generator (JSON-LD Structured Data)

Fill a short form and get a Google-valid JSON-LD block for the eight rich-result types people actually use, LocalBusiness, Organization, Article, Product, FAQPage, BreadcrumbList, Event and Person. Copy, paste into your <head>, done. Free, no signup, and it never leaves your browser.

By Induwara AshinsanaUpdated Jul 9, 2026
JSON-LD structured data
Valid JSON verified
Schema type

Shops, restaurants, clinics, show hours, address and phone in Google.

Address
Opening hours

No hours added. Add a row and pick the days it applies to.

Google property checklist

Required fields missing
namerequired
address (street + city)recommended
telephonerecommended
openingHoursSpecificationrecommended
imagerecommended

Generated JSON-LD· 0 properties

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness"
}
</script>
Paste this inside the <head> of your page.Test in Google Rich ResultsSchema Markup Validator
Everything runs in your browser, nothing is uploaded.

How it works

Structured data is a small, machine-readable summary of what a page is about. Search engines read it to understand your content and to decide whether the page qualifies for a rich result, the star ratings, FAQ drop-downs, business panels and breadcrumb trails you see in Google. This generator produces that summary in JSON-LD, the format Google names as its recommended syntax in the Introduction to structured data guide.

It is a serializer, not a numeric calculator. For the type you select it maps each form field to the correct schema.org property and builds a JSON object, then pretty-prints it with JSON.stringify. Because the JSON is assembled from real objects rather than glued together as text, every quote, backslash and newline in your input is escaped correctly. It is not possible to produce a broken block by typing an awkward character. The four rules it follows:

  1. Envelope. Every block opens with "@context": "https://schema.org" and the chosen @type, exactly as schema.org requires.
  2. Correct nesting. Compound values become their own typed objects, an address is a PostalAddress, opening hours are OpeningHoursSpecification entries, and an author is a nested Person. Day names and availability become full schema.org URLs.
  3. Omission. Any field you leave blank is dropped entirely, the output never contains an empty string, a null, or a half-filled object. This keeps the block minimal and avoids validator warnings.
  4. Auto-numbering. BreadcrumbList positions are assigned 1, 2, 3… from the order of your rows, so you never hand-number them.

The live checklist below the form compares the block it just built against Google's documented required and recommended properties for that type, green when satisfied, amber for a missing recommended field, red for a missing required one. As a final cross-check the tool round-trips the output through JSON.parse and confirms the @context, showing a “Valid JSON verified” badge only when the block parses cleanly. Structural validity is guaranteed here; whether Google then awards a rich result depends on your content and its own policies.

Worked examples

LocalBusiness, a Colombo bakery

name + address + one grouped opening-hours block

"@type": "LocalBusiness",
"name": "Sena Bakery",
"telephone": "+94112345678",
"address": { "@type": "PostalAddress",
  "streetAddress": "42 Galle Road",
  "addressLocality": "Colombo", "addressCountry": "LK" },
"openingHoursSpecification": [{ "@type": "OpeningHoursSpecification",
  "dayOfWeek": [".../Monday", ".../Tuesday", ".../Friday"],
  "opens": "06:30", "closes": "19:00" }]

Checklist: name ✓ required; address, telephone and hours ✓ recommended. Validates as a LocalBusiness.

FAQPage, the omission rule in action

two filled Q&As, a third row left blank

"@type": "FAQPage",
"mainEntity": [
  { "@type": "Question", "name": "Is the tool free?",
    "acceptedAnswer": { "@type": "Answer",
      "text": "Yes, completely free with no signup." } },
  { "@type": "Question", "name": "Where do I paste it?",
    "acceptedAnswer": { "@type": "Answer",
      "text": "In the <head> of your page." } }
]

The empty third row is dropped, so mainEntity has 2 questions, not 3, the required check passes because at least one has an answer.

BreadcrumbList, auto-numbered positions

three crumbs, positions assigned automatically

"@type": "BreadcrumbList",
"itemListElement": [
  { "@type": "ListItem", "position": 1, "name": "Home",
    "item": "https://induwara.lk" },
  { "@type": "ListItem", "position": 2, "name": "Tools",
    "item": "https://induwara.lk/tools" },
  { "@type": "ListItem", "position": 3, "name": "Schema Generator",
    "item": "https://induwara.lk/tools/schema-markup-generator" }
]

Positions run 1 → 3 from row order. Delete the middle crumb and the remaining two renumber to 1 and 2.

Supported types

Version 1 covers the eight types that map to documented Google rich results. Niche types (Recipe, JobPosting, Course, Video) are planned for a later version.

  • LocalBusinessShops, restaurants, clinics, show hours, address and phone in Google.
  • OrganizationA company or brand, logo, site and social profiles for the Knowledge panel.
  • ArticleBlog posts and news, headline, author and dates for article rich results.
  • ProductA product with price, availability and rating for merchant listings.
  • FAQPageQuestion-and-answer pairs eligible for the FAQ rich result.
  • BreadcrumbListThe trail of links Google shows above your page title in results.
  • EventConcerts, workshops, webinars, name, dates and location for event results.
  • PersonAn author or public figure, job title, site and social profiles.

Frequently asked questions

Sources & references

Property names, casing, nesting and the required/recommended checklists were last cross-checked against these sources on 2026-07-09. Google revises its feature requirements occasionally; this page is reviewed on that date and whenever a change is announced.

Related tools

Comments & feedback

Spotted a bug or want an improvement? Tell us, our team reviews every comment, and good ideas get built. Comments are public and anonymous.

Found a bug, edge case, or want another schema type supported?

Email me at [email protected] , most fixes ship within 24 hours.