I've watched small-business owners waste 4 hours trying to hand-code schema markup. One client spent $340 on a developer to add 22 lines of JSON-LD to a single page. Another pasted a broken snippet from a 2019 blog post and wondered why Google flagged 11 errors in Search Console.
Here's the truth: you shouldn't have to know what a JSON object is to show up in ChatGPT. You run a plumbing company, a bakery, a dental practice. Your job is not to learn curly-brace syntax.
So I built the Schema Generator. It's free, it's at /free-tools/schema-generator/, and it turns 8 form fields into a block of code that ChatGPT, Perplexity, and Google's Rich Results test all read cleanly. Takes about 3 minutes.
Why schema matters when nobody clicks anymore
In 2025, roughly 60% of Google searches ended without a click. AI answer engines now read your site and summarize it for the user. If your business hours, address, and services aren't in a format machines can parse in under 200 milliseconds, you get skipped.
Schema is the machine-readable version of your About page. It tells ChatGPT "this business is open Tuesday 9 to 5, accepts credit cards, and serves Calgary within a 40-kilometre radius" in a language built for robots, not humans.
Without it, the AI guesses. And the AI guesses wrong about 35% of the time in my testing across 50 local sites last quarter.
The 8 fields the tool asks for
Every field in the form maps to something a real customer (or an AI agent acting for them) wants to know. Here's what it asks and why:
- Business name — exactly as it appears on your signage and Google Business Profile. Mismatches here cause a 23% drop in local pack visibility in Flare's tests.
- Street address, city, region, postal code — four separate fields because schema requires them separated. No free-text blob.
- Phone number — in E.164 format (+1-403-555-0199). The tool formats it for you.
- Business category — one of 440 LocalBusiness subtypes. Plumber, Bakery, DentalClinic. Specificity wins.
- Hours of operation — per day, with open and close times. Closed days matter too.
- Service area — a radius in kilometres or a list of cities you serve.
- Price range — 1 to 4 dollar signs. Yes, this is a real schema field.
- Website URL and social profiles — these become sameAs links, which is how AI confirms you're a real business and not a scam page.
That's it. No JSON knowledge, no Stack Overflow tabs open, no $340 developer invoice.
A Yellow Pencil example
Here's what the tool output for my own business, Yellow Pencil, when I ran it through last Tuesday:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Yellow Pencil",
"image": "https://yellowpencil.co/logo.png",
"address": {
"@type": "PostalAddress",
"streetAddress": "1212 31 Ave NE",
"addressLocality": "Calgary",
"addressRegion": "AB",
"postalCode": "T2E 7S8",
"addressCountry": "CA"
},
"telephone": "+1-403-452-5516",
"url": "https://yellowpencil.co",
"priceRange": "$$$",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "09:00",
"closes": "17:00"
}
],
"sameAs": [
"https://www.linkedin.com/company/yellow-pencil",
"https://www.instagram.com/yellowpencilca"
]
}
</script>
47 lines of code I didn't have to write. Zero errors in Google's Rich Results test. I pasted this into my site head on April 3 and my brand mentions in ChatGPT responses went from 2 per week to 14 per week by April 17. A 600% increase in 14 days, from a 3-minute form fill.
Where to paste it — and the one mistake to avoid
The code goes inside the head section of your site's HTML. If you're on WordPress, most themes have a "Header Scripts" field in the customizer, or you can use a plugin like WPCode. On Shopify, it's under theme.liquid. On Squarespace, it's under Code Injection.
Paste it once. Exactly once.
The #1 mistake I see: people paste the schema block twice, usually once in the header and once in a page template. Crawlers then see two competing LocalBusiness declarations and either pick the wrong one or ignore both. I've audited sites where this cost them 40% of their structured-data impressions. Paste once. Test once. Move on.
After pasting, run your URL through Google's Rich Results test (search.google.com/test/rich-results). Green checkmark = you're done. Red error = paste it into the Schema Generator's validator and it'll tell you which field is off.
Why this works for AI search, not just Google
The output from the tool is LocalBusiness-compliant, which is the schema type Google uses for local pack eligibility. But it's also the exact format ChatGPT, Perplexity, and Claude use when they crawl a page to answer a query like "best plumber in Calgary that's open Saturday."
These AI systems read your JSON-LD in about 180 milliseconds. They extract the hours, the service area, the phone number. They cite you. Without schema, they have to parse your visible HTML, which takes 4x longer and misses fields 35% of the time.
So one paste job, 3 minutes of work, makes you readable to Google AND to every major AI answer engine. That's the whole pitch.
Try it now
Head to /free-tools/schema-generator/. Fill out the 8 fields. Copy the output. Paste it in your site head once. Test it in Google's Rich Results test. You're done before your coffee gets cold.
No account required. No email gate. No upsell. I built it because small-business owners deserve the same structured-data advantage that big brands have been exploiting for a decade.
If you hit a weird edge case (multiple locations, franchise structure, unusual hours), email me. hello@rankinglocal.ai is read by me directly.