Skip to main content
Free tool

LocalBusiness schema generator

Answer a few questions and get valid JSON-LD to paste into any website, on any platform. Proper openingHoursSpecification, a complete address, and nothing invented.

Your business

Two letters. Never guessed for you.
Write them the way you would say them. Anything that cannot be read is listed back to you rather than dropped.
Optional extras

A worked example

This is a real, valid example for an Italian restaurant in Bristol, so you can see the shape before you type anything. Fill in the form to replace it with yours.

{
    "@context": "https://schema.org",
    "@type": "Restaurant",
    "name": "Bella Vista",
    "address": {
        "@type": "PostalAddress",
        "streetAddress": "12 Mill Lane",
        "addressLocality": "Bristol",
        "addressRegion": "Somerset",
        "postalCode": "BS1 4XE",
        "addressCountry": "GB"
    },
    "telephone": "+44 117 496 0000",
    "url": "https://bellavista.example",
    "priceRange": "££",
    "image": "https://bellavista.example/photo.jpg",
    "geo": {
        "@type": "GeoCoordinates",
        "latitude": 51.4545,
        "longitude": -2.5879
    },
    "openingHoursSpecification": [
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": [
                "https://schema.org/Tuesday",
                "https://schema.org/Wednesday",
                "https://schema.org/Thursday",
                "https://schema.org/Friday",
                "https://schema.org/Saturday"
            ],
            "opens": "12:00",
            "closes": "14:30"
        },
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": [
                "https://schema.org/Tuesday",
                "https://schema.org/Wednesday",
                "https://schema.org/Thursday",
                "https://schema.org/Friday",
                "https://schema.org/Saturday"
            ],
            "opens": "18:00",
            "closes": "22:00"
        },
        {
            "@type": "OpeningHoursSpecification",
            "dayOfWeek": [
                "https://schema.org/Sunday"
            ],
            "opens": "12:00",
            "closes": "16:00"
        }
    ],
    "sameAs": [
        "https://www.facebook.com/bellavista.example"
    ],
    "servesCuisine": "Italian",
    "acceptsReservations": true
}

Paste it inside <script type="application/ld+json"> </script> anywhere in your page's HTML.

On a Webkio site you do not need this. Filling in your business details under Project settings produces the same markup on your pages automatically. This tool is here for sites built anywhere else. See the website builder.

Questions

Inside a <script type="application/ld+json"> tag anywhere in the page's HTML - the head or the body, it makes no difference. One block per business, on the page that represents that business, usually the home page or a contact page. On a Webkio site you do not need to: filling in your business details under Project settings produces it for you.

It makes you eligible; it does not make you chosen. Valid markup is what lets Google show opening hours, a map pin or a phone number beside your listing, but whether it does is its decision. Anyone promising a result is guessing.

Because "Mon-Fri 9:00-17:30, Sat 10-14" is how people actually write them. It is turned into the structured openingHoursSpecification form Google reads, rather than the older openingHours string that quietly does less. Anything it cannot read is listed back to you rather than dropped silently.

A rating nobody gave is a fabricated review. Publishing one is against Google's policies and, in the UK and EU, against consumer law. Ratings belong in markup only when they come from real reviews you actually hold.

No. The page builds the markup from what is in the address bar and keeps nothing. That is also why you can bookmark or share a filled-in link - the values are the URL.

More free tools

See all free tools