A search result is a small sales pitch. Before someone visits your site, Google may show your business name, review rating, price, availability, event date or service details. Schema markup helps search engines understand the information behind those details. Knowing how to create schema markup gives your website a clearer way to describe what it is, who it is for and what each page offers.
It is not a shortcut to page-one rankings, and it will not fix thin content, a slow website or weak local SEO. But when the page already deserves to rank, accurate schema can make it easier for Google to interpret and present it properly. That is useful for any business trying to turn more searches into enquiries.
What schema markup actually does
Schema markup is a piece of structured data added to a web page. It uses a shared vocabulary, usually Schema.org, to label information in a format search engines can read reliably. Rather than asking Google to infer that a block of text is a service area, opening hour or customer review, you state it clearly.
For example, a local electrician’s website might use LocalBusiness schema to identify its name, address, telephone number and opening hours. A service page could use Service schema to explain the work offered. An article can use Article schema, while a product page may use Product schema with price and stock information.
The most common format is JSON-LD. This is a short block of code placed in the page’s “ section or, in many website platforms, added through an SEO plugin or code area. Visitors do not see it on the page. Search engines do.
One point worth keeping clear: schema and rich results are not the same thing. Schema gives Google information. A rich result is the enhanced display Google may choose to show. You can implement everything correctly and still not receive stars, FAQs or other visual features in search. Google decides what is appropriate for each query and page.
Choose the schema that matches the page
The biggest mistake is treating schema as a box-ticking exercise. Adding every possible type of markup to every page creates confusion, not clarity. Start with the actual purpose of the page and the information visible to visitors.
For a typical small business website, Organisation or LocalBusiness schema is a sensible foundation. It establishes the business identity and key contact details. If you serve customers at a physical location or within a defined local area, select the most accurate subtype available, such as Restaurant, Dentist, LegalService or ProfessionalService. Do not claim a more specific category just because it sounds better.
Service pages benefit from Service schema where the page clearly describes a particular offering. A web design agency, for example, might describe website development, SEO management or Google Ads management as separate services. Keep the description aligned with the on-page copy. Schema should support the page, not make promises the page does not make.
Use Article schema for genuinely editorial blog posts, and Product schema only for items people can buy. Event schema works for real upcoming events with clear dates, locations and ticket information. FAQPage schema may still help search engines understand question-and-answer content, but do not add it merely to chase extra space in results. Google has restricted FAQ rich results for most commercial sites.
How to create schema markup step by step
1. Gather the facts before touching code
Start with one page, not the entire website. Write down the information you need to mark up: page title, service name, business name, URL, image, telephone number, address, opening hours, prices or reviews where relevant.
Every factual detail in your schema should be visible somewhere on the page or easily verifiable elsewhere on your site. This protects trust and reduces the chance of invalid or misleading markup. If your opening hours change, update both the page and the schema at the same time.
2. Build JSON-LD markup
You can create JSON-LD manually, use a reputable schema generator, or configure a plugin if your website runs on WordPress or another content management system. A generator can save time, but it is not a substitute for checking the output. Many produce fields that are irrelevant, incomplete or poorly matched to the page.
Here is a simplified example for a local business:
“`json { “@context”: “https://schema.org”, “@type”: “ProfessionalService”, “name”: “Example Business”, “url”: “https://www.example.co.uk/”, “telephone”: “+44 20 1234 5678”, “address”: { “@type”: “PostalAddress”, “streetAddress”: “10 Example Street”, “addressLocality”: “Manchester”, “postalCode”: “M1 1AA”, “addressCountry”: “GB” }, “openingHours”: “Mo-Fr 09:00-17:00” } “`
Replace the example values with real details. Do not add review ratings unless they come from genuine reviews that meet Google’s guidelines, and never mark up reviews that are not displayed or are collected in a misleading way.
For a service page, the core structure is similar, but the focus changes to the service itself. You can identify the provider, the service name and a concise description. If your business serves a region rather than a walk-in premises, use an area served field carefully. It should reflect where you genuinely work, not every town you hope to rank for.
3. Add the markup to the right page
Place business-wide Organisation or LocalBusiness markup on the homepage, or site-wide if the details are genuinely the same throughout the site. Place page-specific markup, such as Service, Article, Product or Event, only on the relevant page.
If you use a plugin, check whether it already adds basic schema automatically. Adding a second, conflicting version through another plugin or manual code can cause problems. This is particularly common after changing themes, migrating websites or installing several SEO tools.
For bespoke sites, a developer can place JSON-LD in the page template or content management system fields. The right route depends on how the site is built. The goal is not to make the implementation clever. It is to make it accurate, maintainable and easy to update.
4. Test before publishing
Run the page through Google’s Rich Results Test to see whether it is eligible for supported rich result types and whether errors are present. Use Schema Markup Validator as well when you need to check the wider structured-data syntax.
A warning is not always a reason to stop. Some fields are recommended rather than required, and whether you need them depends on the schema type. Errors are more urgent because they can prevent Google from reading the markup correctly. Fix the source of the error rather than hiding it with a workaround.
After publishing, check Google Search Console over the following weeks. Its enhancement reports can flag structured-data issues found during crawling. Do not expect immediate visual changes in search results. Crawling, indexing and display decisions take time.
Common schema mistakes that waste time
The first is marking up information that is not on the page. If schema says a service costs from £500 but the page gives no pricing context, visitors and search engines receive mixed signals. The same applies to invented FAQs, unsupported claims and ratings.
The second is using the wrong type. A blog post about a service is not necessarily a Service page; an organisation without a public premises should not pretend to be a local shop. Pick the closest truthful type, then keep the markup simple.
The third is forgetting maintenance. Schema is not fit-and-forget code. A new telephone number, office move, updated prices, discontinued product or changed opening hours should trigger a review. Businesses often lose trust through small inconsistencies long before they notice a technical warning.
Finally, do not rely on schema to compensate for poor page quality. Clear headings, helpful copy, credible proof, fast loading and an obvious enquiry route will affect results more than adding another property to a code block.
When to ask for help
Basic LocalBusiness and Article schema are manageable for many website owners. More complex setups deserve a closer look, particularly ecommerce catalogues, multi-location businesses, courses, events, job listings and sites where several plugins are already generating structured data.
A good implementation starts with the customer journey, not a pile of code. If a potential customer searches for your service, lands on the page and needs reassurance before getting in touch, your content, page structure and schema should all tell the same honest story.
Treat schema markup as good signposting: clear enough for search engines to understand, useful enough for customers to trust, and simple enough that your business can keep it accurate as it grows.
