hiraeth node.studio

Home / Guides / Build a schema

Guide · Any system, checked with the Schema.org validator

Build and validate a LocalBusiness schema

Without structured data every machine has to guess from your prose whether your business is a bakery in Lüneburg or something else entirely. This block states it in a form that leaves no room, and it is where your website, your Google listing and your directory entries converge into one business.

Why this matters is explained in Structured data (schema) explained: how Google and AI understand your business.

How to do it

  1. Take this template and replace the values with your own. The address has to match your Google listing character for character, otherwise a machine sees two businesses.
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Bakery",
      "@id": "https://www.deine-domain.de/#betrieb",
      "name": "Musterbäckerei Schmidt",
      "telephone": "+49 4131 000000",
      "url": "https://www.deine-domain.de/",
      "image": "https://www.deine-domain.de/media/laden.jpg",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "Musterweg 1",
        "postalCode": "21335",
        "addressLocality": "Lüneburg",
        "addressCountry": "DE"
      },
      "openingHoursSpecification": [{
        "@type": "OpeningHoursSpecification",
        "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
        "opens": "06:30", "closes": "18:00"
      }],
      "sameAs": ["https://www.google.com/maps/place/…"]
    }
    </script>
  2. Set the exact subtype at „@type“ instead of the generic „LocalBusiness“: „Bakery“ for a bakery, „HousePainter“ for a painting trade, „HairSalon“ for a hairdresser.The full list of subtypes is on schema.org/LocalBusiness. If yours is not there, „LocalBusiness“ stays correct, just less precise.
  3. Open validator.schema.org/?hl=en. A dialog „Test structured data“ appears with two tabs, „Fetch URL“ and „Code snippet“. Switch to „Code snippet“.The parameter matters. Without it the validator serves the language of your location, not of your browser: from Germany it came up in German even with an English browser and an English Accept-Language header. Measured on 1 September 2026.
  4. Paste your block into the field and click „Run test“ at the bottom right.The button carries the same label on both tabs. If the tab is still on „Fetch URL“ it answers that the URL was not found, even though your code is sitting in the field.
  5. On the right a card appears with the name of your type and, next to it, „0 ERRORS“ and „0 WARNINGS“. Only then is the block clean. Anything else: fix the code and go round again via „Run new test“ at the top right.
  6. Put the finished block into the head of your home page, between <head> and </head>. Where that lives differs from builder to builder, and each one gets its own guide.

How you can tell it worked

Once the page is live, return to validator.schema.org/?hl=en, this time via the „Fetch URL“ tab, and enter your home page address. If the validator finds the block there too, it is not just written correctly but installed correctly.

A clean schema produces no ranking. It makes your details unambiguous, and whether a search engine uses them is its decision. Across one study of 1,885 tracked pages, adding JSON-LD produced no measurable change in citations; other studies found one. Install it to get the foundations right, not as a lever.