Schema type · LocalBusiness Local business schema generator
Create markup for a shop, restaurant, clinic or office that customers visit. Type opening hours the way you would write them on a door, such as Mo-Fr 09:00-18:00, and the tool turns them into openingHoursSpecification.
- Required and recommended checks
- Rich-result status as of 2026
- Runs locally
Generate LocalBusiness JSON-LD
Name and full address are required. Pick the most specific business type; Restaurant adds a cuisine field.
One question per block: first line is the question, the lines below are the answer. Separate blocks with an empty line.
BlogPosting for blog posts, NewsArticle for news, Article for anything else.
The title as shown on the page.
One per line. Google suggests 16:9, 4:3 and 1:1 versions.
ISO 8601, e.g. 2026-11-02T09:00:00-05:00.
Only change it when the content really changed.
Just the name, no "by" or job title.
A profile page that identifies the author.
One per line.
Your own stock code.
8, 12, 13 or 14 digits from the barcode. Leave empty if the product has none.
Number only, dot for decimals: 59.00. Symbols are removed automatically.
ISO 4217: USD, EUR, GBP…
YYYY-MM-DD. Leave empty if the price has no end date.
Only if real customer reviews are shown on the page.
A short name or acronym people search for.
At least 112×112 px, readable on a white background.
One URL per line: LinkedIn, X, YouTube, Wikipedia…
With country code: +1-415-555-0100.
Two letters: US, GB, DE…
One level per line: Name | URL. The last line is the current page and can omit the URL.
Pick the most specific one.
A photo of the place.
With country and area code.
e.g. $$ or $10–20 (under 100 characters).
e.g. Ramen, Japanese
Two letters.
At least 5 decimals.
At least 5 decimals.
One rule per line: Mo-Fr 09:00-18:00, Sa,Su 10:00-16:00. Closed days: just leave them out.
Google’s list of applicationCategory values.
e.g. Windows, macOS or Android 10+.
0 for free apps.
Required when the price is above 0.
Google requires a rating or a review for this rich result.
Minutes (45), 1:30, or ISO 8601 (PT1H30M).
One per line (things used up).
One per line (things you need but keep).
One step per line. Optional short title: Title | what to do.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Harbor Noodle Bar",
"image": "https://example.com/images/dining-room.jpg",
"url": "https://example.com/",
"telephone": "+1-206-555-0142",
"priceRange": "$$",
"servesCuisine": "Ramen, Japanese",
"address": {
"@type": "PostalAddress",
"streetAddress": "1201 Alaskan Way",
"addressLocality": "Seattle",
"addressRegion": "WA",
"postalCode": "98101",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 47.60621,
"longitude": -122.34012
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"opens": "11:00",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Saturday",
"Sunday"
],
"opens": "10:00",
"closes": "23:00"
}
]
}
</script>Paste it into the page’s <head> or <body>. The values must match what visitors can see on that page.
Checks
Errors break eligibility; warnings are recommended properties or likely mistakes.
- OKRestaurant: all required properties are present, so it can qualify for a Google rich result. Google still decides whether to show one.
Version v1.0Updated Update history
What the generator gives you
A code block, a list of checks and three links. Each answers a different question.
The JSON-LD block
A <script type="application/ld+json"> tag with one object. It can go anywhere in the HTML; the head is the usual place. If your CMS already outputs schema for the same thing (many SEO plugins do), replace theirs rather than adding a second, conflicting copy.
Errors
A required property is missing or a value has the wrong format: a date like 11/09/2026, a price written as $59, a currency written as usd. Google ignores an item with errors for rich results, though the page itself still ranks normally.
Warnings
Recommended properties you left out, or things that are valid but risky, such as a relative image URL or a time without a time zone. Add a recommended property only when the information really appears on the page.
Eligible is not the same as shown
“All required properties present” means the item can qualify. Google still decides per query whether to show a rich result, and some types (FAQ, HowTo) are no longer shown at all. The tool says so on those types instead of pretending.
The checks follow schema.org and Google Search Central’s structured data pages as of November 2026. Google’s own Rich Results Test is the final word on eligibility; test the live URL after publishing.
Four steps from form to rich result
Most of the work is copying facts that are already on the page.
-
1
Choose the type
Match the main content of the page: a product page gets Product, a blog post Article, the home or about page Organization. One page can carry several types, each in its own block.
-
2
Fill in the visible facts
Copy names, prices, dates and ratings exactly as visitors see them. Markup that describes content not on the page breaks Google’s guidelines.
-
3
Clear the errors
Work down the checks list until there are no errors. Warnings are optional but usually worth fixing.
-
4
Publish and test
Paste the block into the page template, deploy, then run the live URL through the Rich Results Test and watch the Enhancements reports in Search Console.
LocalBusiness rules
Name and address are required. The rest is recommended and should match your Google Business Profile and the page.
- Use the most specific type (Restaurant, Dentist…); additionalType is ignored
- Coordinates need at least 5 decimal places
- Ratings are only for sites that collect reviews about other businesses
- One block per location; chains use one page per branch
| Property | Required | Format |
|---|---|---|
| name | Yes | Business name as on the sign |
| address | Yes | PostalAddress with street, city, postal code, country |
| geo | Recommended | latitude / longitude, ≥ 5 decimals |
| openingHoursSpecification | Recommended | dayOfWeek + opens + closes (24-hour) |
| telephone | Recommended | With country and area code |
| priceRange | Recommended | Under 100 characters, e.g. $$ |
A noodle bar with weekend hours
A restaurant in Seattle open later at weekends.
| You type | dayOfWeek | opens – closes |
|---|---|---|
| Mo-Fr 11:00-22:00 | Monday … Friday | 11:00 – 22:00 |
| Sa-Su 10:00-23:00 | Saturday, Sunday | 10:00 – 23:00 |
| Mo,We 09:00-12:00 | Monday, Wednesday | 09:00 – 12:00 |
Open 24 hours: write 00:00-23:59. Past midnight (18:00-02:00) is one rule, as Google’s documentation shows.
Why valid-looking markup gets ignored
Most structured data that never produces a rich result fails for one of these reasons.
Marking up what visitors cannot see
Ratings with no reviews on the page, FAQs that only exist in the code, or prices that differ from the page. Google treats this as spam and can apply a manual action.
Local date and price formats
09/11/2026, 1.299,00 € and ¥199 are normal on a page and wrong in JSON-LD. Use ISO dates and plain numbers.
Two plugins, two copies
A theme and an SEO plugin both output Product or Organization with different values. Keep one source of truth.
Chasing retired rich results
FAQ and HowTo markup no longer produce rich results in Google. Adding them to every page is wasted effort.
See whether search traffic follows
Structured data is a means; clicks are the result. TapCub puts search performance, crawler activity and page behaviour next to each other, so you can see what happened after you shipped the markup.
Search Console and Bing in one view
Clicks, impressions, CTR and position by query and page, with content-decay alerts for pages losing traffic.
Learn moreSearch engines and AI crawlers counted apart
Googlebot, Bingbot and AI crawlers are kept out of human reports and shown on their own lines.
Learn morePage reports
Entry and exit pages, 404s with the referrer that sent people there, and pages that used to rank and now slip.
Learn moreSchema markup generator questions
Still have a question?
Chat with the team behind TapCub — we usually reply within a few hours on business days.
Do I still need this if I have a Google Business Profile?
The profile is what drives Maps and the local pack. Markup on your own site confirms the same facts and helps when Google reads your site. Keep both consistent: same name, address and phone.
Can I add star ratings for my own business?
You can mark them up, but Google does not show stars for reviews a business hosts about itself (self-serving reviews). Ratings are meant for sites that review other businesses.
How do I show holiday hours?
Add an extra openingHoursSpecification with validFrom and validThrough for the dates. For a day you are closed, Google’s convention is opens and closes both set to 00:00 within that date range.
Update history
New features, fixes and data refreshes for this tool, newest first.
-
· v1.0
LaunchedFirst release.
Missing something or found an error? Tell us — requests that come up often go into the next update. All tool updates
Check the result, then the rest of the page
Validate the published page, then make sure the title and description earn the click.