Schema markup is structured data code that sits in your HTML, most commonly as a JSON-LD block inside a <script> tag with type="application/ld+json". It looks like nested property-value pairs defining entities—Organization, Article, Product, LocalBusiness, FAQPage, and hundreds of others. A basic LocalBusiness schema for a Canadian agency might include "@type": "LocalBusiness", "name": "Your Company", "address" with streetAddress, addressLocality (like Ottawa), addressRegion (ON), postalCode, and addressCountry (CA), plus "telephone", "url", and "geo" coordinates. An Article schema wraps headline, author, datePublished, dateModified, publisher details, and image. You can write schema manually, use plugins like Yoast or Rank Math for WordPress, or generate it through Google's Schema Markup Helper or dedicated tools like Merkle's generator. The code lives in your <head> or <body>, and you validate it with Google's Rich Results Test or Schema.org validator before publishing. Key tradeoffs: JSON-LD is cleanest and Google's preference—no need to weave microdata attributes through your visible HTML. Microdata and RDFa are older formats that tag existing HTML elements, but they're harder to maintain and more error-prone. JSON-LD keeps your markup separate, so CMS updates or template changes won't break it as easily. Common mistakes include mismatched required properties (like missing "image" on Article or "priceRange" on LocalBusiness), nesting types incorrectly, or duplicating schema that your CMS already generates. Always check for errors and warnings in Search Console's Enhancements report. At Ottawa SEO, we audit existing schema on client sites first—many themes and plugins add conflicting or incomplete markup. We strip redundant code, consolidate into clean JSON-LD blocks, and prioritize schema types that unlock rich results: FAQPage for PAA boxes, HowTo for step snippets, Product for e-commerce stars and pricing. Schema doesn't directly boost rankings, but it improves click-through by making your listings richer and helps Google understand entity relationships, which matters for local packs and knowledge panels.