By the end of this guide, your website will be able to tell Google in plain, machine readable terms exactly what your business is, where it operates, what it offers, and how to reach you. That hidden layer is called schema markup: a block of structured data that sits in your page code and labels your facts, so a search engine does not have to guess them. Getting it right can help your listing appear as a richer result, showing details like opening hours, a location, or ratings, instead of a plain blue link. Here is the sequence, one action per step, that gets you there.
Step 1: Which schema type actually fits your business?
Schema comes in types, and picking the wrong one is like filing a document in the wrong drawer. Start by matching your business to the shape that describes it. Use this quick matrix:
- Shop, salon, clinic, or restaurant with a storefront: the LocalBusiness type, or a more specific version of it such as Restaurant or Dentist, usually fits.
- You travel to customers, a plumber, electrician, or cleaner: LocalBusiness still applies, and you can name the region you cover alongside it. Know the tradeoff, though: Google asks for a real postal address in the markup before a business is eligible for the local business rich result, and a service area on its own does not stand in for one. If there is no address you are willing to publish, mark up what is true and expect a plain result rather than the extra detail.
- You sell products online: Product schema can sit alongside your business schema on each product page.
- You publish guides or articles: Article schema may apply to those specific pages.
The type you choose decides which rich result you are even eligible for. A restaurant marked only as a generic business can miss out on the extras built for restaurants. Pick the closest match to what you truly are, not the fanciest label.
Step 2: What exact facts does your markup need?
Before you touch any code, write your facts down in one place. Schema is only as good as the details you feed it, and vague or inconsistent details can do more harm than good. Here is a short checklist, the Five Facts every LocalBusiness entry leans on:
- Business name, spelled exactly the way it appears on your signage, your invoices, and everywhere else online.
- Address or service area, matching what a customer would actually type or see.
- Phone number that genuinely reaches you.
- Opening hours, including any seasonal or holiday differences you keep.
- Website address and primary category, so the markup points back to the right place and describes the right trade.
The list is worth the effort because search engines can cross-check the facts in your markup against the visible page and against other places your business appears. When those facts agree, your markup can be trusted and used. When they contradict each other, it can be quietly ignored.
Step 3: How do you get the structured data into your site?
Schema is usually written in a format called JSON-LD, a small script block placed in your page code that lists your facts using the shared vocabulary from schema.org. It is invisible to visitors and speaks only to machines. You do not have to hand-write it from scratch: there are free generators where you fill in your details and copy out the finished block, which then goes into the page code.
Say you run a small bakery. Filled in, a minimal block for it looks like this, and every line in it is simply a fact about the business:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Bakery",
"name": "Corner Lane Bakery",
"url": "https://www.example.com",
"telephone": "+1 212 555 0148",
"address": {
"@type": "PostalAddress",
"streetAddress": "48 Corner Lane",
"addressLocality": "Brooklyn",
"addressRegion": "NY",
"postalCode": "11201",
"addressCountry": "US"
},
"openingHours": "Tu-Sa 07:00-15:00"
}
</script>Swap the values for your own, keep the field names exactly as they are, and leave out any field you cannot fill in honestly. An empty or invented value is worse than a missing one.
The catch: this is the step where a do-it-yourself site builder often falls down. On a shared template you frequently cannot edit the raw code, and the schema that ships with the template can be generic or missing entirely. That is a structural limit of building on someone else's template, not a knock on any one product. If you cannot reach the code, you cannot place clean markup, and clean markup is part of what makes a listing eligible for the richer treatment.
Step 4: How do you check the markup is valid before trusting it?
Never assume markup works just because you pasted it in. Google offers a free tool that reads a page or a pasted code block and tells you whether the structured data is valid and eligible for rich results, along with any errors and warnings. Run your page through it, then fix what it flags. Errors can block eligibility outright; warnings are optional fields worth filling in when they apply.
A single mistyped field can invalidate a whole block, and you would never see it on the page itself. Testing turns an invisible guess into something you can actually confirm.
Step 5: How do you keep the code and the page telling the same story?
Markup is not a set-and-forget task. The moment your visible details change, your markup has to change with them. Imagine a florist who updates the opening hours printed on the page but forgets the same hours buried in the JSON-LD. Now the page says one thing and the code says another, and a search engine that spots the mismatch may distrust or ignore the markup rather than pick a side.
The tradeoff: the more schema types you add, the more facts you commit to keeping accurate. Every phone number, price, or opening hour in your markup is now a fact you have promised to maintain in two places at once. This is exactly the kind of ongoing upkeep a human maintaining your site can handle, and the kind that can silently rot on a template nobody tends.
Step 6: How do you layer on the schema that unlocks richer results?
Once your core business markup is clean and passing, you can add types that can earn extra detail in search:
- Review and rating schema: worth knowing where the limit sits. Google does not show star ratings that a business publishes about itself, so review markup you add to your own site about your own business will not put stars on your result, however genuine those reviews are. Stars in search come from review platforms that host the ratings themselves, which is where that effort belongs. Showing real reviews on your own pages is still worth doing for the visitors who read them, but that is the visible page doing the work, not the markup around it.
- FAQ schema: still a valid structured data type, and markup you already have can stay, but Google has retired the FAQ rich result: questions and answers no longer expand underneath a search listing. Mark up your FAQs because it makes that content explicit to the machines reading your page, not because it will change how your listing looks.
- Breadcrumb schema: can help your result show a clean path instead of a raw address, which many readers find easier to scan.
Each type you qualify for is another chance to take up more space in the results and give a searcher a reason to choose you before they even click. None of it is guaranteed, Google decides what to show and which of these features it offers at all, but eligible, accurate markup is what keeps you in the running.
What you now have working behind your pages
You have a plan that moves from picking the right type, to writing down your true facts, to placing valid markup, testing it, keeping it in sync, and layering on the extras. That is the same structured data groundwork that many polished local listings rely on, and it is the part do-it-yourself builders often skip or get wrong. The code stays invisible to your customers, but the clearer your site can describe itself, the fewer guesses a search engine has to make about who you are and who you serve.