Schema markup is code that tells search engines, in a shared vocabulary, exactly what a page describes: this is a business with this address and phone number, this is a product at this price in pounds, this article was written by this person. Google uses it to understand pages and to decide whether they qualify for a rich result, the enhanced listing that shows prices, stock, dates or breadcrumbs instead of a plain blue link. I plan the structured data your site needs, write it, put it in place on your platform and check that Google reads it without errors.
What structured data changes, and what it does not
Done properly, structured data gives Google an unambiguous description of your business and of each page. Products can show price, availability and delivery details in results and in Google’s shopping features. Articles, events, videos and job vacancies can appear in the formats Google has built for them. Your organisation’s name, logo, contact details and official profiles are stated once and consistently, so Google is less likely to confuse you with a business of a similar name.
It does not raise rankings by itself. Google describes structured data as a way to understand content and to enable search features, and valid markup only makes a page eligible for a rich result; whether one appears is Google’s decision, search by search. Markup cannot rescue a page that Google has not indexed or that does not answer the search. If your pages are missing from Google altogether, the fault sits further upstream and technical SEO is the place to start.
The rules also move. Since 2023 Google has shown FAQ rich results only for a narrow group of well-known government and health websites, it has dropped How-to results, and it has retired several smaller result types since. Structured data is also talked about as a way into AI answers, yet Google’s own guidance says no special markup is needed to appear in AI Overviews. Clear identity markup helps machines work out who you are, so I treat it as one supporting part of AI search optimisation, not a shortcut. Part of this service is telling you which markup still earns something visible, rather than adding every type a plugin offers.
Who this service suits
- Online shops whose products appear in Google without price, stock or delivery information, or whose product feed and page markup disagree.
- Service businesses and practices whose name, address and opening hours are described differently on the site, in Google Business Profile and in directories.
- Publishers, recruiters and event organisers whose content has a dedicated result format in Google.
- Sites where Search Console reports structured data errors or warnings that nobody has dealt with.
- Sites running two or three plugins or apps that each add their own markup, so Google receives conflicting descriptions of the same page.
It suits a small brochure site less. Five pages and a contact form need identity and breadcrumb markup, which is a small job rather than a project, so I would normally fold it into wider work such as local SEO instead of selling it on its own.
What the work covers
Business identity
I start with the markup that describes you: Organisation schema or the closest LocalBusiness subtype, with your trading name, logo, UK address with the country set to GB, a telephone number in +44 format, opening hours and links to the profiles that genuinely belong to you, such as your Companies House record and social accounts. For a sole trader or consultant, the person behind the business is described as well. Each of these is defined once and referenced from other pages, so the whole site tells Google one consistent story.
Markup for each page type
Every template gets the types that fit what it shows: Service for service pages, Article for guides and blog posts, BreadcrumbList across the site, Event for dated events, JobPosting for vacancies and VideoObject where a video is the main content. I map templates to types before writing any code, because markup belongs to templates rather than to individual pages. A shop with 2,000 products usually has only a handful of templates, and getting those right covers every product at once.
Products and Merchant Center
For shops, Product schema carries the price in GBP, availability, condition, brand, a GTIN where you have one, and the shipping and returns details that let Google show delivery costs and return windows. If you list products through Google Merchant Center, the feed, the markup and the page all have to agree, or products can be disapproved for mismatched prices. Prices shown to UK consumers include VAT, and the markup should carry the same figure the shopper sees at checkout.
Implementation on your platform
I write markup as JSON-LD, the format Google recommends, which sits apart from the visible HTML so a redesign is less likely to break it. On WordPress I configure the schema output of the SEO plugin you already run and extend it where it falls short, rather than adding another plugin on top; the wider set-up is covered by WordPress SEO. On Shopify I edit the theme’s Liquid templates, because many themes ship product markup without shipping, returns or identifiers, and the store-wide work sits under Shopify SEO. Wix and Squarespace allow less, and I work within what they permit. Where a developer owns the code, I supply the finished JSON-LD and say which template each block belongs in.
Validation and monitoring
Every template is checked in Google’s Rich Results Test and in the Schema.org validator before release, again on the live site, and then in the Search Console enhancement reports as Google recrawls. I fix errors first, because they make a page ineligible, and then the warnings that matter for the result type you are aiming for.
How I run a schema markup project
- Inventory. I crawl the site and extract the markup from every template, including whatever themes, plugins and apps add without anyone knowing.
- Plan. A short schema plan lists each template, the types it gets, the properties to fill and where each value comes from in your system.
- Build and test. I write the JSON-LD on a staging copy where one exists and test it against Google’s documentation for each result type.
- Release. I make the changes or hand them to your developer, then remove the duplicate markup the old set-up produced.
- Confirm. I check the live pages, ask Google to recrawl the key URLs and watch Search Console until the counts of valid items settle.
Problems I see most often on UK sites
- Duplicate and conflicting markup. The theme, an SEO plugin and a reviews app each output their own Organisation or Product block, with different names or prices.
- Markup that does not match the page. A price, rating or opening time in the code that visitors cannot see, or that has gone out of date. This breaches Google’s structured data guidelines, and a manual action for it can remove rich results across the whole site.
- Self-serving review stars. Businesses marking up reviews of themselves on their own homepage or service pages. Google stopped showing stars for that in 2019, so the markup achieves nothing.
- American defaults. Prices in dollars, the country set to US or a missing currency, usually copied from a generator or a theme built for another market.
- Effort in the wrong place. Detailed markup on tag pages and archives that are kept out of the index, while the pages that bring in money carry none.
- Retired types kept alive. FAQ and How-to markup added to every page in the hope of extra space in results that Google no longer gives most sites.
What you receive
- An inventory of the markup on the site, template by template, with errors and conflicts marked.
- A schema plan mapping each template to its types and data sources.
- The JSON-LD itself, live on your site or packaged for your developer with notes on where each block goes.
- Validation results for every template, before and after release.
- A short note for whoever edits the site, saying which fields feed the markup, so new products, events or branches stay correct.
Next step
If your listings look plain beside your competitors’, or Search Console is flagging structured data problems, request a free SEO audit and mention schema in your note. I will look at the markup on your main templates and tell you what is missing, what is broken and whether fixing it is likely to change anything you can see in search.
