Free Fix Guide 1 of 27

Add Structured Data to Your Website

Give search engines and AI assistants a machine-readable copy of your business facts.

Signal this fixes
structured_data_valid
Time
30-45 minutes
Cost
Free
Difficulty
Moderate - you paste one block of code

What we measured

We checked whether your website contains valid JSON-LD structured data identifying your business, and whether it parses without errors.

Why it matters

Structured data is a small block of code that states your name, address, phone, hours and services in a format machines read perfectly every time. Without it, a search engine or AI assistant has to guess those facts from your page text - and guessing produces wrong phone numbers and outdated hours.

Google requires only two properties for eligibility: name and address. Everything beyond that is optional but improves how completely your business is understood.

One thing to be clear about: structured data is not a ranking booster on its own, and it does not override your Google Business Profile. Google Business Profile is what feeds Google Maps. Your structured data is what everything else reads - Bing, AI assistants, aggregators, and any system that isn't Google.

Fix it yourself

Check whether you already have it Many website builders and SEO plugins (Yoast, RankMath, Squarespace, Wix) already output structured data. Adding a second block creates contradictory data, which is worse than none.

Open your homepage, press Ctrl+U (Windows) or Cmd+Option+U (Mac) to view the page source, then Ctrl+F for application/ld+json. If you find a block that already contains your business name and address, skip to Step 5 and just fix what's wrong in it.

Step 1

Collect your exact business facts

Write these down first, exactly as they appear on your Google Business Profile. These must match everywhere.

Legal/trading business name

Street address, city, state, ZIP

Phone in +1-555-555-0142 format

Website URL

Opening hours for each day

The cities or ZIP codes you serve

Your social profile URLs

Step 2

Get your exact map coordinates free: open Google Maps, right-click your location, and click the latitude/longitude that appears to copy it. Use at least 5 decimal places.

Fill in the template

Replace every ALL-CAPS value below. Change HomeAndConstructionBusiness to whichever type fits you: Plumber, Electrician, HVACBusiness, RoofingContractor, MovingCompany, Dentist, AccountingService, LegalService, BeautySalon, or ProfessionalService as a general fallback.

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "HomeAndConstructionBusiness",
"name": "EXACT BUSINESS NAME",
"description": "One or two plain sentences about what you do and for whom.",
"url": "https://www.EXAMPLE.com/",
"telephone": "+1-555-555-0142",
"email": "hello@EXAMPLE.com",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "1234 Main St",
"addressLocality": "CITY",
"addressRegion": "ST",
"postalCode": "00000",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 00.00000,
"longitude": -00.00000
},
"openingHoursSpecification": [
{ "@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "08:00", "closes": "17:00" }
],
"areaServed": [
{ "@type": "City", "name": "CITY ONE" },
{ "@type": "City", "name": "CITY TWO" }
],
"sameAs": [
"https://www.facebook.com/YOURPAGE",
"https://www.instagram.com/YOURHANDLE"
]
}
</script>

Hours edge cases: open 24 hours is "opens": "00:00", "closes": "23:59". Closed that day is "opens": "00:00", "closes": "00:00". Past midnight is one entry, same day, e.g. "opens": "18:00", "closes": "02:00".

Step 3

Common mistakes

Markup that doesn't match your visible page. If your code says you're open until 6 and your page says 5, Google treats it as spam. They must agree.

Marking up your own star rating. Adding aggregateRating for your own business is a common penalty trigger.

Leave it out.

Pasting through Word. Smart quotes and curly apostrophes break the code. Paste through a plain text editor first.

Rounded coordinates. Two or three decimal places isn't enough. Use five or more.

Two competing blocks. Check for an existing one before you add yours.

This fix is free. You can earn and keep any Agenarys Seal tier - including Platinum - without paying Agenarys anything beyond the audit itself. If you would rather have help doing it, we sell that. We never sell passage.

Sources and further reading

Google Search Central - Local Business structured data: developers.google.com/search/docs/appearance/structured-data/local-business schema.org/LocalBusiness

Schema Markup Validator: validator.schema.org

Agenarys · Operational Intelligence Audit · Standard v2026.1 Issued July 2026 · agenarys.com/guides/json-ld-setup

Paste it into your site

Put the whole block inside the <head> section of your homepage and your contact page.

WordPress: use a plugin like "Insert Headers and Footers," or your theme's header settings.

Squarespace: Settings → Advanced → Code Injection → Header.

Wix: Settings → Custom Code → Add Code → Head.

Shopify: Online Store → Themes → Edit code → theme.liquid, before </head>.

Important: do not add it through Google Tag Manager. Google may still read it, but AI crawlers will not - they don't run JavaScript. It has to be in the raw page.

Step 4

Validate it

Two free checks, both required: 1. https://validator.schema.org/ - paste your URL. This checks the code is correct.

2. https://search.google.com/test/rich-results - paste your URL. This checks Google-specific eligibility.

Fix any error before moving on. A single stray comma silently breaks the whole block.

Step 5

validator.schema.org reports no errors for your homepage.☐

The Rich Results Test detects your business.☐

Viewing your page source shows the JSON-LD block in the raw HTML.☐

Every fact in the code matches your Google Business Profile exactly.☐