Fix librarySearch

Search

Describe your business in a language search engines read

Your page has no structured data, so search engines have to guess what your business is, where it is, and what it does.

Why it matters

Structured data is a small block of information that states your name, address, phone number, and opening hours in a format machines understand rather than infer. It is what enables the richer search results: star ratings, opening hours, and knowledge panels beside your listing.

How you would notice it

  • Your Google listing shows no opening hours or ratings even though you have them recorded elsewhere.
  • Search engines show a generic description rather than your business details.

What to do

We added structured data to our own site from the same shared head as everything else. Two notes from that pass.

Stage 1Steps 1–1 · includes the code for this stage

  1. Copy this block and paste it into the head section of your homepage. Replace every value with your own.

    The punctuation matters. JSON uses double quotes throughout and commas between entries, with no comma after the last one.

Our production dispatch

One block, identical on all 32 pages

Our JSON-LD block is written once and emitted on every page from the shared head, so all 32 pages carry identical markup, and a check asserts the blocks stay identical as the site grows. Hand-writing a variant per page is how the details drift: one copy keeps an old phone number and search engines then read two versions of your business. Write it once and let every page reuse it.

Source: Site-wide schema identity check across our built pages

Code for this stage
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Clearwater Plumbing",
  "telephone": "+1-559-555-0134",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "1200 Fulton St",
    "addressLocality": "Fresno",
    "addressRegion": "CA",
    "postalCode": "93721",
    "addressCountry": "US"
  },
  "url": "https://www.example.com/",
  "openingHours": "Mo-Fr 08:00-17:00"
}
</script>

Stage 2Steps 2–3 · includes the code for this stage

  1. Repeat the block on other pages where it makes sense, changing the type to match the page. An article page uses Article; a frequently asked questions page uses FAQPage.
  2. Validate the block before you publish.

    Paste your page URL into that validator. It reports anything malformed, which is far easier than hunting for a missing comma by eye.

Our production dispatch

Structured data is data, not script

Adding 32 of these blocks to our site changed nothing about what we allow to run: the script audit still counted one distinct executable fingerprint before and after, because the blocks are classified as non-executable data. That matters under a strict script policy, where every executable block needs its own exemption, and each exemption is a thing you must maintain. Structured data should never force a script exemption; if your tooling asks for one, the tooling is wrong, not the policy.

Source: Inline script hash audit after our structured data change

Code for this stage
https://validator.schema.org/

How to check it worked

Confirm it worked

Paste your page address into the validator and confirm it reports zero errors and recognises your business name and address. Re-run the Siege Test and confirm the Structured data check turns green.

Want this handled for you?

Bring your report to The Council and we will scope the repairs, the rebuild, or the full stronghold.