To add schema markup: pick the type that matches your page, generate the JSON-LD block, paste it into the page's HTML, and validate it. That's the whole procedure, and for most pages it takes under five minutes. No plugin required, no developer required for most platforms, and no ongoing maintenance beyond updating the block when the facts on the page change.
The part that deserves your attention isn't the pasting. It's choosing which types to deploy, because the schema ecosystem has a freshness problem: Google has retired the visible rewards for several popular types, and most generators and tutorials haven't caught up. Adding markup that earns nothing isn't harmful, but the time is real, and you should spend it where it still counts.
What schema markup is, in one paragraph
Schema markup is structured data that restates your page's facts in a format built for machines. The modern form is JSON-LD: a script block that says, in effect, "this page is about a business named X, at this address, with this phone number, and these are its official profiles." Machines can read your HTML without it. What schema removes is doubt, and systems that assemble answers, from Google to the AI assistants, prefer facts they don't have to infer. Whether that translates into AI citations is a separate question with a fair amount of nuance, and we've written up what the evidence says about schema and AI citations separately. This piece is the how.
Step 1: pick the type that matches the page
Match the markup to what the page actually is. For most businesses that means:
- LocalBusiness on the homepage or contact page: name, address, phone, URL, and your profile links. Google's vocabulary includes specific subtypes (Plumber, Electrician, HVACBusiness, Dentist and dozens more), and the specific subtype beats the generic one when it fits.
- Organization for the entity behind the site, especially if you aren't a local business: name, URL, logo, and
sameAslinks to your real profiles. - Article on blog posts and guides: headline, author, publish date, modified date. This is how your dates and authorship become legible instead of inferred.
- FAQPage on pages with genuine question-and-answer content, with a caveat covered below.
One page, one primary type. A plumbing homepage doesn't need Article markup, and a blog post doesn't need LocalBusiness.
Step 2: know what's been retired before you build
This is the step the tutorials skip, so here it is as a plain timeline, all of it from Google's own documentation and announcements:
HowTo rich results were deprecated in September 2023. FAQ rich results were restricted to government and health sites in August 2023, then removed entirely in May 2026. Neither type earns the visual treatment in search results anymore, for anyone.
What that means practically: skip HowTo completely, and treat FAQ markup as optional entity hygiene rather than a search feature. The markup remains valid schema, and restating your questions and answers in machine-readable form is a defensible, cheap thing to do for AI systems that parse structure. It is not a rich-results play, and any tool or agency still selling it as one is working from a three-year-old playbook. That's also why our own generator refuses to offer HowTo and puts a warning on the FAQ tab: a tool that will cheerfully produce obsolete markup is a tool optimizing for your click, not your outcome.
Still earning visible treatment where they apply: Review snippets, Product markup, Breadcrumb, Event, and a handful of others. For the average service business, though, the workhorses are LocalBusiness, Organization, and Article, and their value doesn't depend on a visual rich result at all.
Step 3: generate the block
You can write JSON-LD by hand, but a generator is faster and avoids syntax errors. Our free schema markup generator builds LocalBusiness, Organization, Article, and FAQ blocks in your browser, omits any field you leave blank, and hands you the finished script tag.
Here's the shape of a LocalBusiness block, trimmed to the essentials, as a template you can adapt directly:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Plumber",
"name": "Bold City Plumbing",
"url": "https://boldcityplumbing.com",
"telephone": "+1-904-555-0123",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "Jacksonville",
"addressRegion": "FL",
"postalCode": "32202",
"addressCountry": "US"
},
"sameAs": [
"https://www.facebook.com/boldcityplumbing",
"https://www.yelp.com/biz/bold-city-plumbing"
]
}
</script>
Two details that matter more than they look. First, the name, address, and phone in this block must match your Google Business Profile and your citations character for character. Machines cross-reference sources, and consistency is a big part of how LLMs decide which brands to trust; your own site disagreeing with your own listings is a self-inflicted wound. Second, sameAs should point at profiles that are actually yours and actually live. An empty or broken profile link is worse than none.
A quick word on format, since older tutorials still show alternatives: use JSON-LD, not microdata or RDFa. Microdata weaves the markup into your HTML attributes, which makes it fragile (a theme update can silently shred it) and miserable to maintain. JSON-LD lives in one self-contained block, survives template changes, and is the format Google's own documentation recommends. If your site carries old microdata that validates, leave it; for anything new, JSON-LD.
Step 4: paste it
JSON-LD goes anywhere in the page's HTML. The head is the convention, and most platforms give you a way in without touching code: WordPress themes have header-script boxes or hooks, site builders have custom-code embeds, and anything custom just takes the block in the template. It renders nothing visible on the page, which is exactly right: this is machine-facing text.
The three ways schema goes wrong
Adding the markup is easy enough that the failures are rarely mechanical. They're judgment failures, and the same three keep showing up in audits:
First, markup that disagrees with the page. Google's guidelines require structured data to reflect content that's visible on the page. Marking up services you don't list, an address you don't show, or reviews that appear nowhere isn't clever; it's the one schema behavior that can draw a manual action. The block describes the page. It doesn't extend it.
Second, self-serving review markup. Google stopped displaying review stars that a business marks up about itself in September 2019. Putting aggregateRating on your own LocalBusiness with your own testimonials earns nothing and signals that whoever built the site is working from a very old playbook. Reviews belong on the platforms that collect them.
Third, set-and-forget drift. The business moves, the phone number changes, the markup keeps broadcasting 2023. Because schema is invisible, nobody notices until a machine repeats the wrong fact somewhere visible. Put the block on the same update checklist as your Google Business Profile, and touch both in the same sitting.
Step 5: validate, or don't bother at all
Unvalidated schema is a coin flip. One stray comma and the entire block is invisible to every parser, silently, forever. So the last step is non-negotiable:
- Run the page through Google's Rich Results Test. It confirms the markup parses and names any rich result the page is eligible for.
- For types Google doesn't reward visually, validator.schema.org checks the syntax against the full vocabulary.
- Re-validate whenever the block changes. Schema that has drifted from reality (an old phone number, a moved office) is worse than no schema, because it actively feeds machines the wrong fact.
Where schema belongs in your priorities
Near the end of the technical checklist, after the things that decide whether you can rank at all. Our website launch checklist puts indexability, page coverage, and titles first for a reason: schema clarifies a page that already answers something. It cannot rescue a page that doesn't. In the Reforge Method, schema lands in the technical pass of the Assay phase: foundation work, done once, checked quarterly, never billed as a growth lever.
That's the fair summary of the whole topic: cheap, quick, worth doing, and worth doing accurately, because the only thing schema really promises is that machines will take you at your word. Make sure your word is current.