Schema markup implementation follows a clear, repeatable process — audit what’s already on the page, choose the right vocabulary types, write clean JSON-LD, validate it before it goes live, and then watch how search engines respond. This walkthrough takes you through each of those phases using an illustrative scenario so you can see the reasoning at every decision point, not just the final code.
The scenario: a mid-size online learning platform covering digital marketing topics. Several pages had no schema at all, some had outdated Microdata fragments from a theme update years back, and none of the course or FAQ content was marked up. The goal was to fix all of it systematically, not just slap a plugin on and hope for the best — which is exactly how we approach structured data work at Salterra and how we teach it here at SEO University.
Before writing a single line of new markup, run a full structured-data audit. The fastest starting point is Google Search Console’s Rich Results report — it surfaces pages with errors or warnings in whatever schema types Google has already detected. Pair that with a crawl using Screaming Frog (enable the “Structured Data” extraction tab) or Schema App’s auditor to catch what GSC might not surface yet.
In our scenario, the audit turned up three categories of problems. First, the homepage had leftover itemtype Microdata attributes from an old theme — schema that Google could read but that referenced types no longer recommended (WebSite without a SearchAction, Organization missing a logo). Second, every course landing page was completely unmarked. Third, a blog section with 40+ posts had Article markup with a missing author property — which matters enormously for E-E-A-T signals in the current search environment.
Document everything in a simple spreadsheet: URL, current schema type (if any), errors found, priority (high/medium/low). This becomes your implementation roadmap and your before/after benchmark.
Schema.org has hundreds of types, but in practice most websites need fewer than a dozen of them done well. The selection criteria are: Does Google support rich results for this type? and Is this type an accurate description of the content? Accuracy matters — stuffing a page with mismatched types to chase rich results is a quality signal problem, and Google’s documentation explicitly warns against it.
For our scenario, the decision tree looked like this:
One decision the team had to make explicitly: should article pages use Article or NewsArticle? The answer was Article — the content is evergreen educational material, not time-sensitive news. Using NewsArticle would be inaccurate and could create a mismatch signal. Match the type to the actual content.
JSON-LD is the recommended format for all new schema implementations. It lives in a <script type=”application/ld+json”> tag in the <head> — it doesn’t touch your visible HTML, so it’s easy to add, update, or remove without redesigning pages. Microdata and RDFa work, but they intertwine schema with your HTML structure and become a maintenance headache.
The homepage JSON-LD block covered the core entity: the learning platform’s legal name, canonical URL, logo URL (direct image link, not a page link), and an array of sameAs URLs pointing to verified social profiles. This establishes the organization as a named entity that AI systems — not just traditional search — can resolve. AI Overviews, ChatGPT’s browsing, and Perplexity all use entity signals to decide whether a source is authoritative. A clean Organization block contributes to that recognizability.
Each course page got a Course block. The critical properties are name, description (written to be genuinely descriptive, not keyword-stuffed), and provider (referencing the same Organization entity from the homepage via @id). Where courses had a defined duration, timeRequired in ISO 8601 format (PT4H for a four-hour course) was added. Nesting properties correctly — and referencing the org entity by ID rather than duplicating it — creates a coherent knowledge graph across the site, not just isolated schema blocks on individual pages.
The most impactful fix on article pages was adding a proper author property. Instead of “author”: “Admin” (useless) or leaving it out entirely (a gap Google notices), each article got an author object with @type: “Person”, the author’s full name, a url pointing to their author bio page, and optionally a sameAs to their LinkedIn or other verifiable profile. This directly addresses E-E-A-T — Google’s quality rater guidelines specifically look for identifiable, credentialed authors on YMYL-adjacent and expertise-driven content.
Never push schema to production unvalidated. Two tools cover you from different angles.
Google’s Rich Results Test (search.google.com/test/rich-results) shows whether Google can parse your markup and whether the page is eligible for specific rich result types. Paste the URL or the raw HTML. It will flag missing required properties, incorrect value formats, and type mismatches. It also previews what the rich result could look like in SERPs — useful for setting realistic expectations.
Schema Markup Validator (validator.schema.org) is the more permissive, spec-level checker maintained by schema.org itself. Use it to catch structural JSON errors, deprecated properties, or schema.org type issues that Google’s tool might not surface. Run both — they catch different things.
In our walkthrough scenario, the initial course markup had a formatting error: timeRequired was entered as a plain string (“4 hours”) instead of ISO 8601 format. Google’s Rich Results Test flagged it as an invalid value. Fixed in five minutes, but only because validation ran before launch. Without that step, it would have sat broken for months.
After pushing validated schema, the changes don’t appear in search immediately. Google needs to recrawl and reprocess — for an active site, that typically takes days to a few weeks depending on crawl frequency. Watch two things: the Rich Results report in Search Console (it will move errors to valid as pages are processed) and the Performance report filtered by appearance type to track impressions from rich result formats.
In our scenario, the FAQPage markup on the top-traffic course comparison pages produced visible FAQ accordions in desktop SERPs within about two weeks of going live. More meaningfully, the Article markup corrections contributed to a noticeable uptick in organic click-through on blog content — structured author data correlates with trust signals that affect both ranking and clicks, even when no explicit rich result is generated.
Structured data has always been about machine readability, but the stakes have risen substantially with AI-generated search experiences. Google’s AI Overviews pull from pages it considers authoritative and well-structured. Perplexity and ChatGPT’s web-browsing mode parse page content as entities and facts, not just keyword occurrences. A page with clean Organization, Article, and FAQPage schema is unambiguously easier for those systems to interpret accurately.
This means schema markup is no longer a nice-to-have for chasing rich snippets. It’s a foundational layer for how your content gets represented in every AI-mediated discovery surface — whether that’s a traditional SERP feature, an AI Overview summary, or a cited answer in a conversational interface. We tell clients at Salterra: if AI systems are going to quote your content, make sure the metadata tells them exactly who wrote it, what organization stands behind it, and what the content is actually about.
Running through this process on dozens of sites reveals a consistent set of errors that teams make when implementing schema without a clear process.
For sites with hundreds of pages, manual JSON-LD on every page isn’t realistic. The sustainable approach is template-level implementation: schema generated dynamically from CMS fields. In WordPress, that means a plugin like RankMath or Yoast (or custom code pulling from custom fields) generates the JSON-LD from structured data already in the CMS — the post author, course duration, FAQ blocks. The logic lives once; the markup scales automatically.
The audit-and-fix phase still needs to happen manually because templates produce consistent output, and if the template logic has an error, it replicates that error across hundreds of pages. Audit a representative sample (homepage, 5 articles, 5 courses, 5 FAQs) against the Rich Results Test before trusting the template to scale. That’s the same review cadence we use before recommending any site-wide schema solution in Salterra client engagements.
After implementing valid schema and having your pages recrawled, rich results typically appear within one to four weeks — though high-crawl-frequency sites can see changes faster, and new sites may take longer as Google builds trust in the domain.
Schema is not a direct ranking factor in the traditional sense, but it influences visibility through rich results (which affect click-through rate), entity recognition (which supports E-E-A-T evaluation), and how AI-generated search features represent your content — all of which have measurable impact on organic traffic.
All three are formats for adding schema.org markup to HTML, but JSON-LD is a standalone script block that doesn't touch your visible markup, making it far easier to implement and maintain; Microdata and RDFa embed schema attributes directly into your HTML elements, which works but creates tightly coupled markup that's harder to audit and update.
Yes — a page can legitimately include multiple JSON-LD blocks or a single block with multiple types, as long as each type accurately describes the content; for example, an article page might include both Article and BreadcrumbList markup, and a course page might include Course, FAQPage, and BreadcrumbList together.
Minor warnings (missing recommended but non-required properties) usually don't disqualify a page from rich results, but errors in required properties — or JSON syntax errors that break the entire block — will prevent Google from processing the markup at all; Search Console's Rich Results report will show which pages have errors and what specifically needs to be fixed.
Start with your highest-traffic, highest-priority existing pages — homepage, top course or product pages, and the blog posts driving the most organic sessions — because the visibility impact is immediate and measurable; new pages should get schema at publish time so there's no debt to clean up later.
Terry has 30+ years in software and SEO. He’s the founder of Salterra Digital Services and SEO Spring Training, host of the Roundtable SEO Mastermind, and lead instructor at SEO University — teaching the exact tactics his team uses on client work.
This guide is one lesson from the Advanced Schema course. Get every lesson, framework and checklist — plus the full 38-course catalog — inside SEO University.
Practitioner-focused training across the full digital marketing stack — from technical SEO to conversion optimization and the AI search era. By Salterra Digital Services, since 2011.