← All guides
Setup guide

The easiest way to add detailed schema markup to WordPress

Yoast and Rank Math cover the basics. FullSchema adds the detail Google and AI assistants look for, on every post, page and WooCommerce product.

  • Free plugin on WordPress.org, works with any theme
  • Works alongside Yoast and Rank Math
  • Then paste and save on each post, page or product
  • Article, Product, LocalBusiness, Recipe and more

Free page check first, then $10 free to start. No card needed.

leafandloam.com/blog/repot-a-monstera

Your page

Tap a detail to trace it

Plant care

How to repot a monstera without shocking it

By Dana Ruiz·Aug 14, 2026

FullSchema reads it and writes the schema search engines and AI read.

In search results

leafandloam.com › blog › repot-a-monstera

How to repot a monstera without shocking it

Aug 14, 2026 · Water it the day before, keep the root ball intact and move up just one pot size.

In AI answers

How do I repot a monstera without shocking it?

Water it the day before, keep the root ball intact and move up just one pot size. Source: How to repot a monstera without shocking it by Dana Ruiz, Aug 14, 2026.

leafandloam.com
Post editor → FullSchema box
<!-- pasted into the post's FullSchema box -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "BlogPosting",
"@id": "https://leafandloam.com/blog/repot-a-monstera#article",
"headline": "How to repot a monstera without shocking it",
"description": "Water it the day before, keep the root ball intact and move up just one pot size.",
"image": {
"@type": "ImageObject",
"url": "https://leafandloam.com/wp-content/uploads/monstera-repot.jpg",
"width": 1200,
"height": 800
},
"datePublished": "2026-08-14T08:00:00-07:00",
"dateModified": "2026-08-20T10:30:00-07:00",
"author": {
"@id": "https://leafandloam.com/#/person/dana-ruiz"
},
"publisher": { "@id": "https://leafandloam.com/#org" },
"mainEntityOfPage": {
"@id": "https://leafandloam.com/blog/repot-a-monstera#webpage"
},
"articleSection": "Plant care",
"about": {
"@type": "Thing",
"name": "Monstera deliciosa",
"sameAs": "https://en.wikipedia.org/wiki/Monstera_deliciosa"
},
"wordCount": 1380,
"inLanguage": "en-US"
},
{
"@type": "Person",
"@id": "https://leafandloam.com/#/person/dana-ruiz",
"name": "Dana Ruiz",
"url": "https://leafandloam.com/author/dana/",
"jobTitle": "Houseplant editor",
"sameAs": ["https://www.instagram.com/danaruizplants"]
},
{
"@type": "Organization",
"@id": "https://leafandloam.com/#org",
"name": "Leaf & Loam",
"url": "https://leafandloam.com/",
"logo": "https://leafandloam.com/wp-content/uploads/logo.png",
"sameAs": ["https://www.pinterest.com/leafandloam"]
},
{
"@type": "WebSite",
"@id": "https://leafandloam.com/#website",
"url": "https://leafandloam.com/",
"name": "Leaf & Loam",
"publisher": { "@id": "https://leafandloam.com/#org" }
},
{
"@type": "WebPage",
"@id": "https://leafandloam.com/blog/repot-a-monstera#webpage",
"url": "https://leafandloam.com/blog/repot-a-monstera",
"name": "How to repot a monstera without shocking it | Leaf & Loam",
"isPartOf": { "@id": "https://leafandloam.com/#website" },
"breadcrumb": {
"@id": "https://leafandloam.com/blog/repot-a-monstera#breadcrumb"
}
},
{
"@type": "BreadcrumbList",
"@id": "https://leafandloam.com/blog/repot-a-monstera#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://leafandloam.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Plant care",
"item": "https://leafandloam.com/category/plant-care/"
},
{
"@type": "ListItem",
"position": 3,
"name": "How to repot a monstera"
}
]
}
]
}
</script>
✓ Valid JSON-LD93 lines65 fieldswritten from one page

Official WordPress plugin

FullSchema for WordPress

Free on WordPress.org. Works with any theme, Yoast, Rank Math and WooCommerce.

Get the plugin ↗

Short answer

To add schema markup to WordPress, install the free FullSchema plugin, generate the JSON-LD for a page from its URL, and paste it into the FullSchema box under the editor. Save the page and the schema is live. It works alongside Yoast and Rank Math, on posts, pages and WooCommerce products.

Recommended
Official FullSchema plugin
Where it goes
A box under the editor
Each page
Paste and save

Updated

Step by step

How to add it

With the official FullSchema plugin

The recommended way. Install it once, and from then on each page takes a paste and a save.

  1. 1

    Install the plugin

    Free, and it works with any theme. One time, about a minute.

    1. 1
      In your WordPress admin, go to Plugins → Add New Plugin.
    2. 2
      Search for FullSchema.
    3. 3
      Click Install Now, then Activate.
    Get it on WordPress.org ↗
    Installing the free FullSchema schema plugin from Plugins → Add New Plugin in the WordPress admin
    Plugins → Add New Plugin: search for FullSchema, then Install Now and Activate.
  2. 2

    Generate the schema

    A few seconds per page.

    1. 1
      Open the page on your live site and copy its address from the browser bar.
    2. 2
      Paste it into FullSchema and click Generate schema.
    3. 3
      Using Yoast or Rank Math? Keep Add alongside selected. It fits into their schema instead of repeating it.
    4. 4
      Keep HTML selected and click Copy.
  3. 3

    Paste it on the page

    Every post, page and WooCommerce product has the box.

    1. 1
      In WordPress, open the post, page or product for editing.
    2. 2
      Scroll down to the FullSchema box under the editor.
    3. 3
      Paste the code. The box checks it right away and says Looks good. Save the page to add it.
    4. 4
      Click Update (or Publish on a new page).
    FullSchema box under the WordPress post editor with a pasted JSON-LD schema script and the message Looks good
    The FullSchema box under the editor checks the code as soon as you paste it.
  4. Step 4

    Check it's live

    One click, and it's free.

    1. 1
      Back in FullSchema, click Check it's live under the result.
    2. 2
      When it says It's live, you're done.
    3. 3
      Using a caching plugin? Clear its cache first so the page shows the new code.
    Example search result for a WordPress blog post with headline, date and thumbnail, each matched to its BlogPosting schema field
    What complete Article schema tells search engines about a post. The search engine decides how to show it.

    That's it. Search engines and AI tools can now read this page's full details.

Good to know

Why a plugin and not a Custom HTML block? The code lives in its own box, not in your content, so editing the page, rearranging blocks or switching to Elementor or Divi can't break it. It goes into the page's <head>, and WordPress can't strip it for users who aren't allowed to post scripts.

Small on purpose. No settings page, no account connection, and it never contacts any server. It adds only the schema you pasted, and only after checking that it's valid schema code.

Already using Yoast or Rank Math? Keep it. FullSchema detects the plugin's graph and the result page defaults to Add alongside, a block that links into the plugin's @ids instead of repeating them.

To update a page's schema, paste the new code over the old one and save. To remove it, empty the box and save. The blog page and the WooCommerce shop page use the box on their page under Pages.

Other ways

Other ways to add schema to WordPress

Can't install plugins, or prefer not to? The same code works in any of these. They just take a little more care.

Custom HTML block
In the block editor, click +, add a Custom HTML block anywhere on the page and paste the code as is. Visitors don't see it. Authors and Contributors can't save script tags this way, and on multisite only Super Admins can.
Page builders
In Elementor, Divi or Beaver Builder, use the builder's HTML or Code element. A Text element escapes the script tag and prints the code on the page instead.
Classic editor
Switch to the Text tab, not Visual, and paste the code at the end of the content. The Visual tab turns it into plain text.
Site-wide code
A header and footer code plugin puts code on every page. Use it only for what's true everywhere, like your Organization details. Page-specific schema belongs on its own page.
On your own

How to add schema to WordPress manually

Without FullSchema: what the same result takes by hand.

You can add complete schema to WordPress on your own. It takes longer per page, and this is what the work looks like.

1. Use what your SEO plugin already offers
In Yoast, each post's Schema tab lets you pick the page type and article type, and its FAQ block adds FAQ markup for the questions inside it. Rank Math's free Schema Generator has ready forms for types like Product, LocalBusiness, Event and Recipe; you fill in each field by hand. Custom types and reusable templates are part of Rank Math PRO.
2. Write the rest by hand
For anything the plugin doesn't cover, write a JSON-LD block yourself. Pick the most specific type on schema.org, check Google's documentation for the fields that type needs to qualify for a rich result, and use only details that are visible on the page. The FullSchema plugin's box takes hand-written JSON-LD too, or use a Custom HTML block.
3. Validate before you move on
Google's Rich Results Test shows whether the page qualifies for a rich result. The Schema Markup Validator checks everything else, including types Google doesn't display. Fix every error; warnings about optional fields are worth a look too.
4. Keep it in step with the page
Hand-written schema doesn't update itself. When a price, opening hours or a service changes on the page, change the block too. Markup that no longer matches the page can lose its rich result, and Google's guidelines treat misleading markup as spam.
Yoast and Rank Math

One page, one graph: how FullSchema fits next to your SEO plugin

Yoast SEO and Rank Math write a schema graph on every page: Organization (or Person), WebSite, WebPage and BreadcrumbList, each with an @id like https://yoursite.com/#organization. That graph is meant to be extended, not fought. Most tools ignore it and hand you a second full block; search engines then see two WebPages and two Organizations describing the same thing and pick one, not always the better one. FullSchema reads the plugin's graph first and builds the block to slot into it.

What gets left out
WebSite, BreadcrumbList and the plain WebPage node. The plugin already has them, and they'd be identical.
What gets merged
Your business entity. If the page is about a LocalBusiness, MedicalBusiness or any organization type, FullSchema gives that node the plugin's #organization @id. Same entity, one identity, with the address, phone, hours and social profiles the plugin never wrote added to it. A FAQPage merges into the plugin's WebPage the same way, so the page gains the type instead of being declared twice.
What stays
The page-specific entity the plugin doesn't write: Product, Service, Article details, Event, branches. Their isPartOf, publisher and provider links point at the plugin's @ids, so the whole thing reads as one graph.
Installation check knows both
Check it's live and Site Monitor accept either the Add alongside block or the full Replace everything block. You don't have to tell us which one you pasted.

In practice: keep Yoast or Rank Math for titles, sitemaps and the site graph; paste FullSchema's block into the FullSchema box on the pages that need a real entity. Nothing to change in Yoast or Rank Math, no PHP filter.

From the forums

What people ask about WordPress schema, answered

Collected from Reddit, the WordPress community and SEO forums. Straight answers, including the cases where you don't need us.

Yoast or RankMath already adds schema. Do I still need to add Product or FAQ schema myself?

Both plugins write a site graph on every page: Organization, WebSite, WebPage, BreadcrumbList, plus Article on posts. They only write FAQPage if you use their FAQ block, and Product only through a WooCommerce add-on. For everything else (services, events, recipes, a LocalBusiness with hours) the page-specific block is on you. Keep the plugin's graph. FullSchema recognizes it and, by default, gives you an Add alongside block that links into the plugin's @ids and merges your business entity into its Organization node, so nothing is declared twice. Paste it into the page's FullSchema box and you're done.

My FAQ schema validates, but the FAQ rich result never shows in Google.

Google stopped showing FAQ rich results for every site on May 7, 2026. Valid FAQPage markup still tells search engines and AI assistants what the questions and answers on the page are, so FullSchema keeps writing it when the page has a real Q&A section. It just won't add the accordion under your listing. If the goal is a visual result, put the effort into Product, Article, Event or LocalBusiness instead.

Rich Results Test shows two Product blocks after I added mine. Which one do I delete?

Neither, unless you want to. WooCommerce, an SEO plugin or a page builder often writes its own Product, and two blocks for the same product aren't an error: search engines read both. What matters is that they agree. If the other block shows a different name or price, fix it where it comes from (the product itself or the plugin's settings). Turning the thinner one off in the SEO plugin's schema settings is tidier but optional.

I pasted the script tag but it shows up as text on the page, or disappears after saving.

It shows up as text in a Paragraph block, the Classic editor's Visual tab or a plain Text widget, all of which escape HTML. It disappears when your user role isn't allowed to save scripts. The FullSchema plugin avoids both, because its box keeps the code outside your content. Without the plugin, use the Custom HTML block, your page builder's HTML or Code widget, or the Classic editor's Text tab. Then confirm on the live page with View Page Source, not the editor preview.

Should the schema go in the head through a header/footer plugin, or inside the post content?

Google reads JSON-LD anywhere in the HTML. Page-specific schema belongs on that page only. The FullSchema plugin puts it in that page's <head>, which is the tidiest place; a block in the content works just as well for search engines. A header plugin is for site-wide schema (your Organization details), added once, not repeated in every post.

Does the FullSchema plugin work with WooCommerce products?

Yes. Every product gets the FullSchema box under the product editor, the same as posts and pages, and the shop page uses the box on the Shop page under Pages. If WooCommerce or another plugin already writes a thinner Product block, see the question about two Product blocks above.

Do I have to do this for every single post and page?

No. Start with the pages that can earn a rich result or that already rank: products, services, location pages, the top articles. Tag archives, author pages and pagination can wait. Add the site to FullSchema and the free site report shows which pages have only the plugin's graph and which have nothing, so you can pick a first batch instead of guessing.

Not sure what your WordPress pages have today? The site report is free.

Check every page free
About the setup

WordPress schema markup questions

Will this conflict with my SEO plugin's schema?

No, and you don't have to touch the plugin. When FullSchema sees Yoast's or Rank Math's graph on the page, the result defaults to Add alongside: the block leaves out what the plugin already writes (WebSite, WebPage, BreadcrumbList), links into the plugin's nodes by @id, and merges your business or page entity into the plugin's node instead of declaring it twice. Paste it into the FullSchema box. If you'd rather turn the plugin's schema off and run one full block, switch to Replace everything on the result page.

Do I have to use the FullSchema plugin?

No, it's just the easiest way. A Custom HTML block does the same job for one page, as described under Other ways above. The plugin keeps the code out of your content, checks it as you paste, and works the same for every user role.

Is the plugin free, and will it slow my site down?

It's free, from the WordPress.org plugin directory. It has no settings and never contacts any server, FullSchema's included. On the page it adds only the schema you pasted, so there's nothing extra to load.

What happens if I deactivate or delete the plugin?

The schema stops showing on your pages right away. Deleting the plugin also removes everything it stored, so if you install it again later, paste the code again.

Ready to generate WordPress schema?

Paste your page's URL and FullSchema handles the rest. No dropdowns, nothing to fill in by hand.

Free page check first, then $10 free to start. No card needed.