Your markup
Choose the kind of page, fill in the fields and this tool writes a block of JSON-LD structured data you can paste into that page. It covers the six types a small UK website most often needs, builds the code only from what you type and checks for the gaps that stop Google using it. It all runs in your browser, so nothing you enter is sent to me or stored on this site.
How to use it
- Pick the type that matches the main thing the page is about. One page, one main type.
- Copy each value from the page itself: the business name as it appears in your footer, the price as it shows on the product page, the questions exactly as they are written. The grey text in each box is only an example.
- Use full addresses starting with https:// for every URL and image field.
- Generate the code, read the notes under it, fill any gaps and generate again.
- Copy the code into the page, then test the live address before you move on to the next page.
Which type to choose
Structured data does two jobs: it tells search engines plainly what a page is about, and for some types it makes the page eligible for a rich result, the enhanced listing with prices, dates or a breadcrumb path. Eligible is the key word. Google decides whether to show one, and correct markup is a condition, not a promise.
Local business
For a business that serves customers at an address or across an area. Google lists the business name and its postal address as the required properties for LocalBusiness markup, so complete the street, town, postcode and the country code GB even though the tool only insists on a name and website. Use the same name, address and phone number as your Google Business Profile and your directory listings, because NAP consistency is what lets Google trust they all describe one business. If schema.org has a more specific type for you, such as Dentist or Plumber, you can replace the word LocalBusiness in the code with it.
Article or blog post
The tool outputs the BlogPosting type. Google has no strictly required properties for article markup, but a real author name, the published and updated dates and an image all help it understand the post. Only change the updated date when the content has genuinely changed.
FAQ page
Since August 2023, Google has shown FAQ rich results only for well-known government and health websites, as it set out in its announcement on the HowTo and FAQ changes. For most businesses, FAQPage markup is still valid and can still help other systems read the questions, but expect no visible change in Google results. Every question and answer in the code must appear on the page word for word.
Breadcrumb trail
Mark up the breadcrumb trail that visitors can already see at the top of the page, from the homepage down to the current page. A level is only included when it has both a name and a URL, and the tool numbers whatever is left in order, so a half-filled level silently drops out. Check the generated list matches the trail on the page.
Product
For a single product page. Enter the price as a plain number such as 29.99, keep the currency as GBP, and use one of the schema.org availability values such as InStock, OutOfStock or PreOrder. The price in the markup must match the price on the page, including VAT if that is how you display it. On a shop with more than a handful of products, hand-pasted product markup goes stale the first time a price changes, so let the shop platform generate it from the product data instead.
Service
Google has no rich result for the Service type, so this markup changes nothing visible in search. It is still a clear, machine-readable description of what you offer, who provides it and where. The tool marks the provider as a Person, which suits a sole trader; if a limited company provides the service, change that type to Organization in the code. Keep the description short and match the wording on the page.
Reading the notes under your code
- Required and still empty. One of the fields the tool treats as essential is blank. Fill it rather than publishing the code without it.
- Nothing missing. Every field the tool treats as essential is filled and every URL is complete. It does not mean the markup matches the page; that check is still yours.
- Not a full URL. A web address or image field holds something like /contact/ instead of https://www.yourdomain.co.uk/contact/. Structured data needs the complete address.
- Describe only what is visible. This note appears every time. Marking up reviews, prices or questions that visitors cannot see breaks Google’s guidelines and can lead to a manual action, which can remove the site’s eligibility for rich results.
Where the markup goes and how to check it
Google reads JSON-LD in either the head or the body of the page. Paste each block into the page it describes: product markup on that product, article markup on that post. Business details usually sit on the homepage or the contact page.
On WordPress, check first whether your SEO plugin already outputs structured data. Yoast and Rank Math both do, and two conflicting blocks for the same business cause more confusion than having one. View the page source and search for application/ld+json before adding anything. If a plugin covers a type, fill in its settings instead of pasting code; my WordPress SEO service sorts out exactly this kind of overlap.
Once the page is live, run its address through the Rich Results Test to see which rich results it qualifies for, and the Schema Markup Validator to check types that Google does not support, such as Service. Over the following weeks, the enhancement reports in Google Search Console list errors across every page that carries the same type.
What the tool does not do
- It does not read your page, so it cannot tell whether the markup matches what is on it. That check is yours.
- It writes one type per block. Linking several types together, such as an organisation, its website and its people in one connected graph, needs writing by hand or a plugin.
- It does not add review or rating markup. Google does not show star ratings for reviews a business publishes about itself on its own site, so adding them for a local business usually earns nothing.
- Opening hours go out as a single line in the schema.org text format. For several sets of hours, or different hours on Saturdays, Google’s documentation uses the more detailed openingHoursSpecification property, which you would add by hand.
Next step
A generator suits a handful of pages. If you want structured data across a whole site, kept in step with your prices, posts and business details, my schema markup service plans the types, implements them through your CMS and tests every template. If you are not sure structured data is the right priority, send your site through the free SEO audit and I will tell you what I would fix first.
