Fix · Identity
No machine-readable identity
Your page never states, in a form a machine can read, who this business is. So every system has to infer it from prose, or take a third party's word for it.
What we found
D1 · No structured data — The initial HTML declares no JSON-LD. Nothing on the page states the business name, address, telephone or opening hours in a machine-readable form. Evidence EV-003
Why it matters
An assistant asked "where can I get farm ice cream near Penrith" has to decide which business you are before it can recommend you. With structured data it reads your name, place and contact directly. Without it, it guesses from prose, or it uses a directory entry written by somebody else three years ago, and a system that is unsure tends to stay quiet rather than risk being wrong.
Before and after
Now
<head> <title>Wraycroft Creamery</title> <!-- nothing machine-readable --> </head>
After
<!-- paste before </head> --> <script type="application/ld+json"> { "@context": "https://schema.org", … } </script>
The full block
Wraycroft Farm Creamery is an invented business. The telephone number is from the range Ofcom reserves for fiction, so nothing here belongs to anybody. Replace every value with yours, and make sure each one is also visible to a human on the page.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FoodEstablishment",
"@id": "https://wraycroftcreamery.co.uk/#business",
"name": "Wraycroft Farm Creamery",
"legalName": "Wraycroft Dairy Ltd",
"url": "https://wraycroftcreamery.co.uk/",
"telephone": "+44 1632 960142",
"email": "hello@wraycroftcreamery.co.uk",
"address": {
"@type": "PostalAddress",
"streetAddress": "Wraycroft Farm, Nether Rigg",
"addressLocality": "Kirkby Rigg",
"addressRegion": "Cumbria",
"postalCode": "CA00 0AA",
"addressCountry": "GB"
},
"geo": { "@type": "GeoCoordinates", "latitude": 54.6000, "longitude": -2.7000 },
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],
"opens": "11:00",
"closes": "17:00"
}],
"sameAs": [
"https://www.facebook.com/yourpage",
"https://www.tripadvisor.co.uk/your-listing"
]
}
</script>
What each field is for
| Field | What to put there |
|---|---|
@type | The most specific type that fits. FoodEstablishment, Dentist, Plumber, Store; fall back to LocalBusiness. |
@id | A stable identifier for the business. Pick it once and never change it; every page uses the same one. |
name | The trading name, exactly as it appears on the page. |
legalName | The registered company name, if it differs. This is what connects the website to the company register. |
telephone | International format: +44 then the number without its leading zero. |
address | The postal address, one field per part. It must match the address shown on the page and on your listings. |
geo | Coordinates of the premises. Any map service gives them. |
openingHoursSpecification | Real hours, kept current. Stale hours here are worse than none. |
sameAs | Only profiles you control and have checked resolve. A dead link here weakens you. |
The one rule that breaks this. Every value must also be visible to a human on the page. Structured data that claims hours, prices or an address the page does not show is a policy breach, and it is the fastest way to lose the benefit you were adding.
Where it goes
| Platform | Where |
|---|---|
| WordPress | Theme header, or a header-scripts plugin. Not inside a post body. |
| Squarespace | Settings → Advanced → Code Injection → Header |
| Wix | Settings → Custom Code → add to Head, all pages |
| Shopify | theme.liquid, before </head> |
| Hand-built | In <head> of every page, with the same @id |
Prove it worked. Paste your page URL into Google's Rich Results Test.
Expected: the business type detected, zero errors, and every field matching what a visitor can see.
Then view source and search for ld+json — if it is missing there but visible in dev
tools, it is being injected by JavaScript and some crawlers will never see it.
What it will not do
It will not make you rank, and it will not make an assistant recommend you. It removes the guesswork about who you are, which is a precondition for both and a guarantee of neither.