Skip to main content

WooCommerce 3 introduced a new format to structured product data called JSON/LD.  Overall it’s a big improvement from WooCommerce 2.x.  That said some of us may generate our own Schema Data with other plugins or custom code.  So how do we turn off and disable the WooCommerce function?

Going through the templates and removing really isn’t an ideal solution here.  Luckily there is a single function you can add to your child theme’s functions.php file that will disable this.

/* Remove the default WooCommerce 3 JSON/LD structured data */
function remove_output_structured_data() {
  remove_action( 'wp_footer', array( WC()->structured_data, 'output_structured_data' ), 10 ); // This removes structured data from all frontend pages
  remove_action( 'woocommerce_email_order_details', array( WC()->structured_data, 'output_email_structured_data' ), 30 ); // This removes structured data from all Emails sent by WooCommerce
add_action( 'init', 'remove_output_structured_data' );

I’ve added comments above, the first remove action is for frontend pages and the second is for emails.  You can choose to use either one or both.

We have a Structured Data plugin in the works that will be released before the end of April that gives you more control over the Schema Data.  Within this plugin we’ll include the option to disable not only the WooCommerce Schema Data, but also Yoast’s Schema Data.  We’ll drop a link here once it’s approved and released!


Leave a Reply