Skip to main content
Blog|
How-to guides

How to add schema markup to WordPress

|
May 10, 2026|18 min read
HOW-TO GUIDESHow to add schema markup toWordPressHOSTNEYhostney.comMay 10, 2026

Short answer: install Yoast SEO or Rank Math. Both ship the schema types most WordPress sites need – Article, Organization, BreadcrumbList, WebSite – and output them automatically as JSON-LD in the page head. Then add specialized schema (FAQ, HowTo, Product, LocalBusiness, Recipe) only on the pages where it actually applies, either through your SEO plugin’s per-page controls or through a dedicated plugin for that schema type. Test every change with Google’s Rich Results Test before assuming it works.

Schema markup is the part of WordPress SEO that most articles overcomplicate. The plugins handle 80% of it for free. The remaining 20% is knowing which schema types to add manually, where to put them, and how to test them. This guide walks through each of those decisions.

Schema markup at a glance#

Schema typeWhat it tells search enginesBest forHostney needs
Article / BlogPostingThis is editorial content with an author, date, headlineEvery blog postAuto via Yoast or Rank Math
OrganizationWho publishes this siteSitewide, set onceAuto via Yoast or Rank Math
WebSiteSitewide search action (sitelinks search box)HomepageAuto via Yoast or Rank Math
BreadcrumbListThe navigation hierarchy of this pageEvery page with breadcrumbsAuto via Yoast or Rank Math
FAQPageThis page contains question-and-answer pairsGenuine FAQ pages and articles with FAQ sectionsBlock, plugin, or manual JSON-LD
HowToStep-by-step instructionsTutorials with discrete numbered stepsBlock, plugin, or manual JSON-LD
ProductThis is a product with price, availability, reviewsWooCommerce stores, comparison pagesWooCommerce + an SEO plugin, or a dedicated product schema plugin
LocalBusinessPhysical business with address and hoursService-area sites, single-location businessesYoast Local SEO, Rank Math local module, or manual
RecipeCooking instructions with ingredients and timesFood blogsWP Recipe Maker, Tasty Recipes, similar
VideoObjectPage contains a video with title, duration, thumbnailVideo tutorials, embedded videosYoast Video SEO or manual

If you only ever set up the first four, your site is already ahead of the majority of WordPress sites Google indexes.

Why schema markup matters#

Schema markup, also called structured data, is a standard vocabulary that tells search engines and AI systems what your page is about in a machine-readable form. The vocabulary lives at schema.org, maintained by Google, Microsoft, Yahoo, and Yandex. The format Google prefers is JSON-LD, a block of JSON inside a <script type="application/ld+json"> tag in the page head.

Three things change when schema is in place.

Rich results in Google. FAQ accordions in the SERP, HowTo step counters, recipe cards with star ratings and cook time, product cards with price and availability, breadcrumb trails instead of raw URLs, sitelinks search boxes on branded queries. None of these are guaranteed even with valid schema, but they cannot appear without it.

Knowledge graph and entity recognition. Organization schema is how Google links your site to a company entity, your social profiles to that entity, and your authors to person entities. Author E-E-A-T signals lean heavily on this.

AI and LLM citations. This is the new layer. ChatGPT, Claude, Gemini, Perplexity, AI Overviews, and AI Mode all consume structured data when they crawl. A page with a clear FAQ block answering a specific question is materially more likely to be cited as a source than the same content without the markup. As answer engine optimization becomes a meaningful traffic channel, schema is doing double duty.

The core trade-off is that schema is invisible to your visitors. You write it, test it, and trust that the search engines and AI crawlers consuming it are picking up what you sent. The only way to know it works is to test it – which is the part most setup guides skip.

How long does it take to set up#

TaskTimeWhy this matters
Install and configure Yoast or Rank Math30-45 minCovers Article, Organization, BreadcrumbList, WebSite for the whole site
Add Organization schema fields (logo, social profiles, founder)10 minRequired for the publisher block on every Article
Add FAQ schema to one existing article10 minEither with the FAQ block in your SEO plugin or a dedicated plugin
Add HowTo schema to one tutorial15-20 minSteps need names and ordered structure – more work than FAQ
Set up Product schema across a WooCommerce store30-60 minYoast WooCommerce SEO or Rank Math’s WooCommerce module – mostly automatic once installed
Add LocalBusiness schema20 minAddress, phone, hours, geo coordinates, service area
Validate with Rich Results Test5 min per templateRun after every change
First rich result to appear in Google1-4 weeksCrawling, indexing, and Google’s editorial decision are sequential

If this is your first time, plan a 2-hour first session: install the SEO plugin, finish its setup wizard, validate the homepage and one blog post. The rest can be done one schema type at a time.

The four ways to add schema to WordPress#

There is no single right method. Pick based on the schema type and how often you will use it.

Yoast SEO and Rank Math both output Article, Organization, BreadcrumbList, and WebSite schema automatically as soon as you finish the setup wizard. You will not write a line of JSON-LD.

Where they differ is in the schema types they cover beyond the basics:

  • Yoast (free): Article, Organization, WebSite, BreadcrumbList, Person (for author archives), and Search Action. Premium adds support for inserting custom schema fields per post.
  • Yoast Premium and add-ons: Yoast Local SEO (LocalBusiness with hours, geo, multiple locations), Yoast WooCommerce SEO (Product, Offer, AggregateRating from WooCommerce data), Yoast Video SEO (VideoObject from embedded videos), Yoast News SEO.
  • Rank Math (free): everything in Yoast’s free tier plus FAQ block, HowTo block, and per-post schema selector that exposes Article, Book, Course, Event, JobPosting, LocalBusiness, Music, Product, Recipe, Restaurant, Service, Software Application, Video, and “custom”.
  • Rank Math Pro: more granular control over the same types, schema templates, and AI-assisted schema generation.

For most sites the right call is “install one of them, do not install both.” Running two SEO plugins produces duplicate JSON-LD blocks, which is a validation error and a real ranking risk. We covered this trade-off in the WordPress SEO beginner’s guide – the conclusion holds: pick one, commit to it.

Method 2: Dedicated schema plugin#

If you want schema features without changing your SEO plugin, dedicated schema plugins do that job. The two long-running options:

  • Schema Pro by Brainstorm Force: visual schema builder, supports 13+ schema types, lets you map fields to custom fields or ACF fields. $79/year for one site, lifetime option available.
  • WP SEO Structured Data Schema: free, supports Article, Blog Posting, Newsarticle, Book, Course, Event, Local Business, Product, Recipe, Service, Software Application, Video Object. Per-post meta boxes, no global templates.

These are useful when your SEO plugin is locked in for other reasons (existing site uses SEOPress for example, and you want richer schema than SEOPress’s free tier provides) or when you need a schema type that your SEO plugin does not cover well.

The risk: a dedicated schema plugin and an SEO plugin can both output Article schema for the same post. Pick one source per schema type. If Yoast outputs Article schema and Schema Pro also outputs Article schema, Google sees two Article entities on the same URL and treats both as suspect.

Method 3: Block-level schema (FAQ and HowTo)#

The Gutenberg block editor has native FAQ and HowTo blocks ready in most modern SEO plugins. Drop the FAQ block into a post, type your questions and answers, and the plugin generates valid FAQPage schema for you. Same for HowTo.

This is the easiest way to add per-page schema. You do not touch JSON-LD, the schema is tied to the visible content (so it stays in sync when you edit), and Google’s Rich Results Test sees both the visible block and the generated schema on the same page.

Limits: only FAQ and HowTo are well-supported as blocks. Product, Recipe, Event, and LocalBusiness still need either a plugin’s meta box or manual JSON-LD.

Method 4: Manual JSON-LD insertion#

For schema types your plugins do not cover, or when you want exact control over every field, you write the JSON-LD yourself and insert it into the page head.

The fast way: use a code-snippets plugin to inject JSON-LD into specific pages without editing the theme. WPCode (formerly Insert Headers and Footers) and Code Snippets both work.

A minimal Article schema looks like this:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to add schema markup to WordPress",
  "datePublished": "2026-05-10",
  "dateModified": "2026-05-10",
  "author": {
    "@type": "Person",
    "name": "Your Name",
    "url": "https://example.com/author/your-name"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Your Site",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.com/blog/post-slug"
  }
}
</script>

Manual insertion is the right choice for one-off schema (a single LocalBusiness page, a single Event), for combining multiple schema types on one page ( @graph arrays), or for fields no plugin exposes. It is the wrong choice for sitewide schema, because every change requires a code edit and validation.

Common schema types for WordPress and when to use each#

Article and BlogPosting. Use Article for evergreen editorial. Use BlogPosting for date-stamped blog posts. Both qualify for the article rich result. Yoast and Rank Math pick the right type automatically based on the post type and your settings.

Organization. Set this once, sitewide. Required fields: name, URL, logo, contact info, social profile URLs ( sameAs array). The publisher block on every Article inherits from this. Misconfigured Organization schema is the most common reason Article rich results do not appear.

BreadcrumbList. Output by your SEO plugin if breadcrumbs are enabled in the theme. Replaces the URL in the SERP with a clickable breadcrumb trail. Free and high-impact – most users click breadcrumbs more than URLs.

WebSite with SearchAction. Sitewide. Lets Google show a search box right in your sitelinks for branded queries. Output automatically by every major SEO plugin.

FAQPage. Mark up the genuine FAQ section of a page or article. Important rule: the questions and answers in the schema must match the visible content exactly. Google removed rich result eligibility from FAQ schema for most sites in 2023 – it is now mainly shown for government and authoritative health sites. The schema is still useful for AI citation and entity understanding even when the rich result does not appear.

HowTo. Mark up the steps of a tutorial. Each step needs a name and a position. Google reduced HowTo rich results to mobile-only and only for select queries. Like FAQ, the rich result is now rare but the schema still helps with AI consumption.

Product. WooCommerce + Yoast WooCommerce SEO or Rank Math’s WooCommerce module handles this. Includes price, availability, brand, SKU, and AggregateRating from product reviews. Critical for product rich results – star ratings, price, stock – which materially affect SERP CTR.

LocalBusiness. For service-area businesses and single-location storefronts. Includes name, address, phone, hours, geo coordinates, service area. Required for local pack inclusion when combined with a Google Business Profile.

Recipe. Recipe-specific plugins (WP Recipe Maker, Tasty Recipes, Recipe Card Blocks) handle this. Recipe rich results are still strong – cook time, calories, ratings, ingredient lists in the SERP. If you run a food blog, this is non-negotiable.

Event. Event start time, location, ticket URL. Plugins like The Events Calendar output this automatically. Manual JSON-LD works fine for one-off events.

Person. For author pages. Yoast outputs this for author archives. Useful for E-E-A-T signals.

Step-by-step: add schema to a WordPress site from scratch#

This is the path I would walk through on a fresh site.

1. Pick Yoast or Rank Math and install it. Either works. Run the setup wizard end to end. Most of the wizard is about schema – site type (affects the default @type ), company-or-person choice (affects Organization vs Person publisher), social profile URLs (populate sameAs ), default Open Graph image. Skip nothing. The same plugin is also where you set your site’s other meta tags on the homepage, so finishing the wizard once gets you both layers in place.

2. Add the Organization details. In the plugin’s general or company settings, fill in: name, logo URL, contact email or phone, address (even if just country), and every social profile URL you have. The plugin uses this on every Article schema as the publisher block. If logo URL is missing, Article rich results never appear.

3. Verify breadcrumbs are enabled in your theme. Most modern themes have a breadcrumbs option in Customizer or theme options. Turn it on. The plugin auto-generates BreadcrumbList schema from the visible breadcrumb trail.

4. Open one published post and validate. Go to search.google.com/test/rich-results, paste the post URL, and run the test. You should see Article, Organization (in the publisher block), BreadcrumbList, and WebSite. Errors here are usually missing required Article fields – headline, datePublished, image – or a broken Organization logo URL.

5. Add FAQ schema where it fits. Add the FAQ block to articles that have a genuine FAQ section. Do not invent FAQs to game schema. Google explicitly penalizes schema that does not match visible content.

6. Add HowTo schema to step-by-step tutorials. Same rule: only on pages with discrete numbered steps that match the visible content.

7. If WooCommerce, install Yoast WooCommerce SEO or Rank Math’s WooCommerce module. Product schema is automatic from there. Verify a product page in Rich Results Test – confirm price, availability, and brand show up.

8. If a physical location, configure LocalBusiness. Yoast Local SEO or Rank Math’s local module. Match the data to your Google Business Profile exactly. Inconsistencies cause Google to ignore both.

9. Set up Search Console and watch the Enhancements reports. Google reports schema errors in the Enhancements section per schema type (Articles, Products, FAQs, HowTos, Breadcrumbs, Logos). These reports lag indexing by 1-3 weeks. Check monthly.

10. Re-test after major changes. Theme update, SEO plugin update, schema plugin update, or site migration – any of these can break schema output. Validate before assuming it survived.

Testing tools you should actually use#

Google Rich Results Test (search.google.com/test/rich-results). Tests for rich result eligibility specifically. This is the one Google actually uses to decide what shows up in the SERP. If it says “Page is eligible for rich results”, you are in. If it says “Page is not eligible” with no errors, the schema is valid but Google has not chosen to show a rich result for that type (common for FAQ and HowTo since the policy changes).

Schema Markup Validator (validator.schema.org). Validates JSON-LD against the full schema.org vocabulary. Looser than Google’s test – it accepts valid schema that Google does not currently render rich results for. Use this when you are debugging a manual JSON-LD block.

Google Search Console Enhancements reports. The lagging indicator. Shows which pages have which schema types, which have warnings, and which have errors. Errors here are urgent. Warnings often mean optional fields are missing – usually fine but worth fixing.

Browser developer tools. Open any page, view source, search for application/ld+json . Copy the block. Paste into one of the validators above. Faster than running the URL through Google’s tool when you are iterating on a manual block.

Symptom-to-cause: schema problems and how to fix them#

SymptomLikely causeFix
Rich Results Test says “no items detected”Plugin not configured, theme stripping head output, or page is gated behind loginCheck view-source for ld+json , finish plugin wizard if not done, check theme’s wp_head() call
Article schema valid but no rich result in GoogleMissing required field (image, datePublished, author) or Organization logo brokenLook at warnings in Rich Results Test, fix the publisher logo URL
Two Article entities on one pageTwo SEO plugins active, or SEO plugin plus dedicated schema plugin both outputtingDisable one
FAQ schema valid but accordion never appears in SERPGoogle policy change in 2023 – FAQ rich results now restricted to government and authoritative health domainsKeep the schema for AI citation value, do not expect a SERP accordion
HowTo schema valid but no rich resultSame policy change – HowTo restricted to mobile and select queriesKeep the schema, do not expect SERP changes
Product price not showing in SERPAggregateRating missing or Offer.priceValidUntil expiredAdd reviews, refresh priceValidUntil annually
Breadcrumbs show URL not breadcrumb trailBreadcrumbList schema not output, or theme renders breadcrumbs but plugin does not see themEnable plugin’s breadcrumbs and use plugin’s breadcrumb function in the theme
Recipe rich result shows wrong cook timeSchema field uses ISO 8601 duration format – “PT30M” not “30 minutes”Use the recipe plugin’s structured field, not free-text
Local pack absence despite LocalBusiness schemaNAP (name, address, phone) inconsistent with Google Business ProfileMatch exactly, including punctuation

Common schema mistakes#

Marking up content that is not on the page. The single biggest mistake. Schema must match the visible content. FAQ schema for questions that are not on the page, HowTo schema for steps that are not in the article, Product schema with prices that do not match the visible price – all are policy violations and can earn a manual action.

Running two SEO plugins. Yoast and Rank Math both output Article, Organization, and WebSite schema. If both are active, both will output. Google sees the duplicate, flags it, and the rich result either does not appear or gets revoked.

Using FAQ schema for product feature lists. “What does this product do?” with the answer being “It does X, Y, Z” is not a FAQ. It is a product description in question form. Google treats this as schema spam.

Forgetting the Organization logo. Article schema’s publisher block requires a logo. Without it, Article rich results do not appear, even though Rich Results Test does not always flag this as an error. Set Organization logo first, before anything else.

Hardcoded JSON-LD in the theme that conflicts with the plugin. If you migrated from a custom build to a plugin-managed setup, the old hardcoded schema is probably still in the theme files. Search the theme directory for application/ld+json and remove leftovers.

Schema on staging and production with the same URLs. Staging environments that leak @id URLs pointing to production confuse Google’s entity model. Either block staging in robots.txt, or strip schema in non-production environments.

Trusting the plugin without testing. Plugin updates change schema output. Theme updates can strip the head section. Page builders sometimes inject content after the plugin renders schema. Validate after every meaningful change.

Spending hours on schema for a single rich result type that Google has restricted. FAQ and HowTo rich results are now rare in regular search. The schema is still worth adding for AI citation, but treat it as an AEO investment, not a SERP win.

Adding schema to thin pages to chase rich results. Schema does not rescue thin content. Google’s Rich Results Test can pass on a 200-word page with valid schema, but Google’s editorial layer will not feature a thin page in rich results. Fix the content first.

How Hostney handles schema markup#

Schema markup is plugin-driven on WordPress, and Hostney’s job is to make sure every byte of that schema reaches Google and the AI crawlers without being stripped, blocked, or delayed.

Crawl access. Our bot detection verifies Googlebot, Bingbot, GPTBot, ClaudeBot, OAI-SearchBot, PerplexityBot, and other legitimate crawlers via reverse-DNS confirmation, not user-agent string. Verified bots bypass bot scoring and challenges, which means schema-bearing pages are crawled at full speed without the friction that hits malicious bots.

Server-rendered head section. WordPress renders schema in the page head before any client-side JavaScript runs. Server-side rendering means crawlers that do not execute JS still see the schema, which matters for AI crawlers that often skip JS execution to save compute.

Page caching that respects schema. Hostney’s server-level page cache stores the full rendered HTML, schema block included. When the cache serves the page, the JSON-LD is right there in the HTML response – no plugin reinitialization required. We covered the caching architecture in our caching plugin comparison.

HTTP/3 for crawler efficiency. Faster head-section delivery means less crawl budget spent per page, which means more pages crawled per visit.

Daily backups. Schema configuration lives in plugin settings (Yoast options, Rank Math options) which are stored in the database. Daily backups mean a botched schema migration is one restore away from being undone.

What we do not do. We do not generate schema for you, audit your structured data, or warn you if your plugin’s output is invalid. That layer belongs to your SEO plugin and Search Console. We make sure what your plugin outputs is delivered cleanly and quickly to every crawler.

Frequently asked questions#

Do I need schema markup if I use Yoast or Rank Math?

You already have it. Both output Article, Organization, BreadcrumbList, and WebSite automatically once the setup wizard is done. The remaining work is per-page schema (FAQ, HowTo, Product, LocalBusiness) on the pages where it applies.

Can I add schema without a plugin?

Yes – manually with <script type="application/ld+json"> blocks injected via WPCode or directly in the theme. For most sites this is more work than installing an SEO plugin. For developers building a custom theme that intentionally avoids SEO plugins, it is the right path.

Does schema markup directly improve rankings?

No. Google has stated repeatedly that schema is not a ranking signal. It improves SERP appearance (rich results) and AI citation likelihood, both of which improve CTR and indirect traffic. Better CTR can improve effective rank for the queries that earn rich results.

How long until rich results appear?

1-4 weeks typically. Google must crawl the page, parse the schema, validate it, and decide whether to feature a rich result. Fast crawl frequency (which a healthy site gets) shortens the front of that window.

Can I use multiple schema types on one page?

Yes. Use a @graph array to combine them. A blog post might combine Article, BreadcrumbList, and FAQPage. SEO plugins handle this combination automatically.

Does FAQ schema still work in 2026?

Limited rich result rendering since the 2023 policy change – now restricted mostly to government and authoritative health domains. The schema is still valuable for AI citation and entity understanding. Add it where it genuinely fits, do not expect a SERP accordion on a regular site.

Will schema markup get my page into ChatGPT or Claude?

It increases the chance. AI systems consume structured data when crawling, and schema is one of the strongest signals that a page contains a specific kind of answerable content (a definition, a step-by-step process, a product spec, a Q-and-A). It does not guarantee citation, but pages without structured data are at a clear disadvantage.

What is the safest schema to add first?

Article and Organization. Both are universally understood, both are generated automatically by every major SEO plugin, both are required for the full publisher attribution chain to work. Get these right before adding anything else.

Quick checklist#

  1. Pick one SEO plugin – Yoast or Rank Math, not both
  2. Run its setup wizard end to end
  3. Fill in Organization name, logo URL, social profiles
  4. Enable theme breadcrumbs
  5. Validate the homepage and one blog post in Rich Results Test
  6. Add FAQ block to articles with genuine FAQ sections
  7. Add HowTo block to genuine step-by-step tutorials
  8. If WooCommerce, install your SEO plugin’s WooCommerce module
  9. If physical location, configure LocalBusiness
  10. Hook up Search Console and watch the Enhancements reports monthly
  11. Re-validate after every theme, plugin, or schema change

The cost of getting schema right on a WordPress site is mostly time, mostly one-time, and almost entirely paid back in better SERP appearance and AI discoverability. The cost of getting it wrong is invisible – missing rich results, ignored entities, lost AI citations – which is why so many sites neglect it. Treat it as foundational SEO work that compounds quietly over years.

Related articles