Free Template · Updated 2026-11

Schema Starter Pack: Free Generators, Testers and 6 Copy-Paste Examples

Six JSON-LD templates (LocalBusiness, Organization, Product, Breadcrumb, Article, FAQ) built from Google's docs, plus the free tools to generate and test them.

Copy-paste schema markup for the types a small business actually needs, written from Google's own documentation. Swap in your details, test it with two free tools and publish.

For: Small business owners and founders who want to add schema markup themselves without hiring a developer.

  • Read this first: 5 rules that keep schema safe · 5
  • Which schema for which page · 8
  • 6 copy-paste JSON-LD templates · 6
  • Filled example: a dental clinic (illustrative) · 1
  • Copy-paste prompt: write schema from your page · 1
  • Free schema generators · 3
  • Free schema testers · 3
  • How to add it on your platform · 4
  • Your first schema in 20 minutes · 5
  • Common schema mistakes · 5

Free. You also get my weekly newsletter on SEO + AI search. Unsubscribe anytime.

How to use it
  1. Find your page in the "which schema for which page" table.
  2. Copy that template, replace the capitals, delete any line you can't fill truthfully.
  3. Test it in the Rich Results Test and the Schema Markup Validator before and after you publish.
  4. Use the 20-minute workflow to ship your first one today.

Read this first: 5 rules that keep schema safe

  • Use JSON-LD.

    Google supports JSON-LD, Microdata and RDFa, and recommends JSON-LD.

  • Only mark up what visitors can see on the page.

    Google's guidelines: don't mark up content that isn't visible to readers.

  • Don't add review stars for your own business.

    Google says pages using LocalBusiness or Organization markup are ineligible for star reviews when the business controls reviews about itself.

  • Valid schema doesn't guarantee rich results.

    Google says it does not guarantee your structured data will show up in search results.

  • Use the most specific type you can (Restaurant, Dentist, Plumber instead of LocalBusiness).

    Google recommends the most specific schema.org subtype that fits.

Which schema for which page

Start with one row. Most small sites need only the first three.

PageSchema to addCan earn in GoogleMust have
Homepage (local business)LocalBusiness (or a subtype like Dentist)Business details in Search and Mapsname, address
Homepage (online business)OrganizationLogo and business info in knowledge panelsNo required properties; add name, url, logo
Every page below the homepageBreadcrumbListBreadcrumb trail in results2+ ListItems with position and name
Product pageProduct with OfferPrice, availability, ratings if realname + offers, review or aggregateRating
Blog postArticle (or BlogPosting)Better title, image and date displayNo required properties; add headline, image, dates, author
FAQ sectionFAQPage (optional)Nothing visible in Google since May 7, 2026Questions and answers exactly as on the page
Event pageEventEvent listing in resultsname, startDate, location (with address)
Video pageVideoObjectVideo badge and key momentsname, thumbnailUrl, uploadDate

6 copy-paste JSON-LD templates

Paste one into the page's HTML (the <head> or body both work). Replace placeholders. Delete any line you can't fill truthfully.

1. LocalBusiness (homepage or location page)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "YOUR BUSINESS NAME",
  "url": "https://www.example.com/",
  "telephone": "+1-555-555-5555",
  "priceRange": "$$",
  "image": "https://www.example.com/images/storefront.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main St",
    "addressLocality": "Your City",
    "addressRegion": "ST",
    "postalCode": "00000",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 40.76129,
    "longitude": -73.98229
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "09:00",
      "closes": "17:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "10:00",
      "closes": "14:00"
    }
  ]
}
</script>

Required by Google: name and address. Change @type to your specific business type. Hours use 24-hour time. Coordinates need at least 5 decimal places.

2. Organization (homepage or About page, online businesses)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "YOUR COMPANY",
  "url": "https://www.example.com/",
  "logo": "https://www.example.com/images/logo.png",
  "description": "One plain sentence about what you do.",
  "email": "hello@example.com",
  "sameAs": [
    "https://www.linkedin.com/company/your-company",
    "https://www.youtube.com/@yourchannel"
  ]
}
</script>

Google has no required properties here. You only need it on one page, usually the homepage or About page. sameAs = your real social profiles.

3. Product (one product page)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "PRODUCT NAME",
  "image": "https://www.example.com/images/product.jpg",
  "description": "What it is, in one sentence.",
  "offers": {
    "@type": "Offer",
    "price": 49.0,
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://www.example.com/product"
  }
}
</script>

Google needs name plus one of offers, review or aggregateRating. Use a three-letter currency code. Only add ratings if you show real customer reviews on the page.

4. BreadcrumbList (any page below the homepage)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Services",
      "item": "https://www.example.com/services/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Plumbing",
      "item": "https://www.example.com/services/plumbing/"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Emergency plumbing"
    }
  ]
}
</script>

At least two items. The last item (the current page) doesn't need an 'item' URL.

5. Article (blog posts)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "YOUR ARTICLE TITLE",
  "image": [
    "https://www.example.com/images/cover-16x9.jpg"
  ],
  "datePublished": "2026-10-19T08:00:00+00:00",
  "dateModified": "2026-10-19T08:00:00+00:00",
  "author": [
    {
      "@type": "Person",
      "name": "AUTHOR NAME",
      "url": "https://www.example.com/about/author-name"
    }
  ]
}
</script>

No required properties. Author name only, no 'Dr.' or 'posted by'. Dates in ISO 8601 with time zone. Update dateModified only after a real change.

6. FAQPage (optional, read the tip)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "QUESTION 1, exactly as shown on the page?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Answer 1, exactly as shown on the page."
      }
    },
    {
      "@type": "Question",
      "name": "QUESTION 2?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Answer 2."
      }
    }
  ]
}
</script>

Google stopped showing FAQ rich results in Search from May 7, 2026, and removed its FAQ documentation in June 2026. This will not get you FAQ dropdowns. It's still valid schema.org markup; whether it helps any search or AI system now is unconfirmed (Hypothesis). Questions and answers must match the visible page.

Filled example: a dental clinic (illustrative)

A made-up clinic so you can see a finished, specific version. Every value must come from your own page.

Dentist (a LocalBusiness subtype), filled
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dentist",
  "name": "Smile Studio Dental Clinic",
  "url": "https://www.example.com/",
  "telephone": "+91-20-5555-0000",
  "image": "https://www.example.com/images/clinic-front.jpg",
  "priceRange": "₹₹",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "12 FC Road",
    "addressLocality": "Pune",
    "addressRegion": "MH",
    "postalCode": "411004",
    "addressCountry": "IN"
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],
      "opens": "10:00",
      "closes": "19:00"
    }
  ],
  "sameAs": [
    "https://www.instagram.com/YOURHANDLE"
  ]
}
</script>

Fictional business and address. Note "Dentist" instead of "LocalBusiness": always use the most specific type that fits.

Copy-paste prompt: write schema from your page

Generate JSON-LD from page text
Write JSON-LD schema for the page below. Rules:
- Use the most specific schema.org type that fits (for example Dentist, not LocalBusiness).
- Use ONLY facts that appear in the page text. If a property needs a fact that isn't there, leave it out. Never invent ratings, reviews, prices or addresses.
- No aggregateRating or review unless real customer reviews appear in the text.
- Output one <script type="application/ld+json"> block and nothing else.

PAGE URL: [url]
PAGE TEXT:
[paste the visible text of the page]

Always run the output through both testers. AI tools sometimes add properties that don't exist.

Free schema generators

  1. Rank Math (WordPress)Free plugin includes Article, Product, Local SEO, Breadcrumb, FAQ, Event, Person, Service and more; some types (Dataset, Podcast, Speakable, ItemList…) are PRO

    WordPress SEO plugin that adds schema from a menu, no code.

    Best for: WordPress sites that want schema without touching code.

    Ritik's note: Turn on the Local SEO module for LocalBusiness.

  2. Yoast SEO (WordPress)Free plugin covers the core types · LocalBusiness and VideoObject need Premium/paid add-ons

    Adds a schema graph automatically: Organization or Person, WebSite, WebPage, Article, Breadcrumb and more.

    Best for: WordPress sites that want sensible defaults with no setup.

    Ritik's note: Set Organization vs Person correctly in Site representation settings.

  3. TechnicalSEO.com Schema Markup GeneratorFree in the browser · no sign-in shown on the tool page (checked Nov 2026)

    Browser form that writes JSON-LD for common types as you fill it in.

    Best for: Shopify, Webflow or custom sites where you paste code yourself.

    Ritik's note: Still test the output. Generators can include fields Google doesn't use.

Free schema testers

  1. Rich Results TestFree · live URL or pasted code

    Google's test of which rich results your markup can earn, with errors and warnings.

    Best for: Testing Google-supported types like Product, LocalBusiness, Breadcrumb, Article.

    Ritik's note: Paste the code before you publish. Then test the live URL after.

  2. Schema Markup ValidatorFree · no account

    Schema.org's validator for every type, including ones Google ignores.

    Best for: Checking syntax and Organization/FAQ markup the Rich Results Test won't evaluate.

    Ritik's note: Run one page through it today. That's the whole homework.

  3. Search Console URL InspectionFree · needs site verification

    Shows the structured data Google found on the indexed version of a page.

    Best for: Confirming Google actually sees the markup after publishing.

    Ritik's note: Use 'Test live URL' after a change, then check the Enhancements reports over the next weeks.

How to add it on your platform

  1. WordPress

    Easiest: use Rank Math or Yoast. For custom code, use a header/footer code plugin or your theme's custom code area to add the <script> block to one page.

  2. Shopify

    Many themes already output Product schema; check a product URL in the Rich Results Test first so you don't add a duplicate. For LocalBusiness or Organization, add the script in your theme code (theme.liquid) or with an app. (Practical advice; check your theme's docs.)

  3. Webflow

    Paste the script into Page settings > Custom code (inside <head> tag) for a single page, or Site settings for site-wide code. (Practical advice; check Webflow's help docs.)

  4. Any site

    Test the live URL in the Rich Results Test, then URL Inspection in Search Console.

Your first schema in 20 minutes

  1. Minute 0 to 3: check what you already have

    Paste your homepage into the Rich Results Test. Many themes and plugins already add schema. If it finds Organization or LocalBusiness, edit that one instead of adding a second.

  2. Minute 3 to 10: fill the template

    Copy template 1 (LocalBusiness) or 2 (Organization). Replace every capital-letter placeholder with the details shown on your page. Delete lines you can't fill.

  3. Minute 10 to 13: test the code

    Paste the code (Code tab) into the Rich Results Test, then the Schema Markup Validator. Fix every error. Warnings are optional fields.

  4. Minute 13 to 17: add it to the page

    Use the platform steps below. One script block per type, on the page it describes.

  5. Minute 17 to 20: test live and request indexing

    Test the live URL in the Rich Results Test. Then Search Console > URL Inspection > Request indexing.

Common schema mistakes

  • Adding a second Organization block when your plugin already outputs one.

    Two conflicting blocks confuse parsers. Check first, then edit one.

  • Marking up reviews or prices the page doesn't show.

    Google's guidelines: markup must match visible content, or you risk a manual action.

  • Copying the template without deleting placeholder lines.

    "123 Main St" in your live schema tells Google the wrong address.

  • Expecting FAQ stars.

    Google stopped showing FAQ rich results on May 7, 2026.

  • Testing once and forgetting.

    Theme updates can break schema. Re-test after any template change.

Unlock the full template

Everything above, plus the branded PDF to keep.

Free. You also get my weekly newsletter on SEO + AI search. Unsubscribe anytime.

FAQ

Frequently asked questions

Does schema markup help SEO rankings?
Google uses structured data to understand pages and to make them eligible for rich results like product prices or breadcrumbs. It does not guarantee rich results. Practical advice: treat it as clarity, not a ranking boost.
Which schema should a small business add first?
LocalBusiness (or Organization for online-only businesses) on the homepage, Breadcrumb on inner pages, Product on product pages and Article on blog posts.
Does FAQ schema still work?
Not for rich results. Google stopped showing FAQ rich results from May 7, 2026. The markup is still valid schema.org, but it won't produce FAQ dropdowns in Google.
How do I test schema markup for free?
Use Google's Rich Results Test for Google features and the Schema Markup Validator at validator.schema.org for everything else.
Do I need a developer to add schema?
No. On WordPress, Rank Math or Yoast add it from settings. On other platforms you paste one script block into the page's custom code area, then test it with Google's free Rich Results Test.