Disable Yoast SEO Schema and Structured Data

Yoast SEO adds a JSON-LD schema graph to every page, built from your plugin settings. To disable Yoast schema output completely, return false on the wpseo_json_ld_output filter. Recent Yoast versions also have a settings toggle that does the same thing.

You’d do this when a theme, a dedicated schema plugin or hand-written JSON-LD already covers your structured data, and Yoast’s graph creates duplicates.

If you only want to drop the breadcrumb markup, see remove Yoast breadcrumbs schema. To change the trail itself, see add a link to Yoast SEO breadcrumbs.

The Code

Add this line to your child theme’s functions.php file or to a custom plugin:

add_filter( 'wpseo_json_ld_output', '__return_false' );

How It Works

Yoast applies wpseo_json_ld_output right before it prints the <script type="application/ld+json" class="yoast-schema-graph"> block. If the filter returns false or an empty array, Yoast prints nothing.

That removes the entire graph: Organization or Person, WebSite, WebPage, Article, BreadcrumbList, and the schema from Yoast’s FAQ and How-to blocks. Titles, meta descriptions and Open Graph tags are separate outputs and stay in place.

A named function that returns an empty array works too, since Yoast treats false and [] the same way. __return_false is just shorter.

To disable schema only on certain pages, return false conditionally and pass the original value through everywhere else:

add_filter( 'wpseo_json_ld_output', function( $data ) {
	if ( is_page( 'contact' ) ) {
		return false;
	}
	return $data;
} );

Disable Yoast Schema Without Code

Yoast SEO 26.8 added a Schema settings page. Go to Yoast SEO > Settings > Advanced > Schema and switch off Enable Schema Framework. On the front end, that adds the same __return_false filter shown above.

Yoast strongly recommends keeping the toggle on. Only turn it off when another tool fully replaces the graph, because without structured data the way your pages appear in search results can change.

If the toggle shows as off and switching it on gives the message “Yoast Schema Framework can’t be enabled”, some code already returns false or an empty array on wpseo_json_ld_output.

It may be your theme, a plugin or an old snippet. To find it, search your wp-content folder:

grep -rn "wpseo_json_ld_output" wp-content/

Remove that filter, or make it conditional, and the toggle works again.

Remove Only Part of the Schema

Many “Yoast broke my schema” problems are really duplicates: another plugin also outputs an Article or BreadcrumbList. You can drop just the overlapping piece and keep the rest of the graph.

Every piece has a wpseo_schema_needs_<identifier> filter. The identifiers are article, webpage, main_image, breadcrumb, website, organization, person, author, faq and howto.

// Keep Yoast's graph but drop its Article piece.
add_filter( 'wpseo_schema_needs_article', '__return_false' );

Other pieces may still reference the one you removed by @id. Check the output in the Rich Results Test, and for breadcrumbs use the full snippet on the breadcrumbs page linked above.

For more ways to adjust Yoast’s output, see Yoast SEO filters and the Yoast Schema API docs.

FAQs

Common questions about disabling Yoast SEO schema:

Does disabling Yoast schema affect my SEO titles and meta descriptions?
No. The wpseo_json_ld_output filter and the Schema toggle only remove the JSON-LD block. Titles, meta descriptions, canonicals, robots and social tags are output separately and keep working.
Do I need to uninstall Yoast SEO to get rid of its schema?
No, the filter or toggle is enough. If you do uninstall the plugin, note that deleting it leaves its data (the wp_yoast_ tables, options and post meta) in the database, so reinstalling restores your settings.
Is the Wincher integration related to Yoast schema?
No. Wincher is a keyphrase rank tracker and adds nothing to your structured data. To turn it off, go to Yoast SEO > Integrations and switch off the Wincher toggle.
I added the filter but the schema is still there. What's wrong?
Usually a page cache is serving the old HTML, so purge it and view the source again. If JSON-LD is still there, check its class: anything without yoast-schema-graph comes from another plugin or the theme.
Discussion
[  0 Comments  ]

Leave a Comment

To add code, use the buttons below. For instance, click the PHP button to insert PHP code within the shortcode. If you notice any typos, please let us know!