Schema markup is structured data vocabulary that lives inside your HTML, but it's not HTML. It's a separate layer of code that tells search engines what your content means—turning a string of text into a recognized entity like a product price, review rating, or business address. You implement schema using one of three formats. JSON-LD is a JavaScript notation block placed in a script tag, typically in the head or footer of your HTML. Microdata uses HTML attributes like itemprop and itemscope directly on existing tags. RDFa works similarly with attributes like vocab and typeof. Google explicitly recommends JSON-LD because it keeps your structured data separate from page markup, making it cleaner to maintain and less likely to break when you update page design. When we audit sites in the Ottawa SEO portfolio, we see JSON-LD on 90%+ of properly marked-up pages. It looks like a script block with type application/ld+json and contains nested objects describing your content. For example, a LocalBusiness schema defines your NAP, hours, and service area without touching the HTML that visitors see. Microdata, by contrast, wraps your visible HTML—so if you change a product name in the markup, you risk breaking the schema if attributes aren't updated in sync. Common mistake: treating schema as optional decoration. It's not a ranking factor in the traditional sense, but rich results—star ratings, FAQs, breadcrumbs—drive measurably higher click-through rates. We've seen CTR lifts of 15–40% when review stars appear in SERPs for local service pages. Schema also feeds Google's Knowledge Graph, helping you control how your brand appears in entity-related searches. If you're on WordPress, plugins like Rank Math or Schema Pro generate JSON-LD automatically. Custom builds need manual implementation or a tag manager solution. Always validate with Google's Rich Results Test before deploying—malformed schema won't throw visible errors but silently fails to trigger enhancements. The code sits in your HTML, but schema itself is a semantic layer that speaks directly to crawlers.