These filters allow you to customize SEO-related behavior in SureCart.
surecart/noindex_query_vars
Filter query vars that trigger noindex meta tag.
add_filter ( 'surecart/noindex_query_vars' , function ( $vars ) {
// Add custom query vars to noindex
$vars [] = 'my_var' ;
return $vars ;
} );
Control whether SEO meta tags are output for products.
add_filter ( 'sc_display_product_seo_meta' , function ( $display , $product ) {
// Use your own SEO plugin instead
if ( class_exists ( 'WPSEO_Frontend' ) ) {
return false ;
}
return $display ;
}, 10 , 2 );
surecart/og:image/size
Filter the image size used for Open Graph meta tags.
add_filter ( 'surecart/og:image/size' , function ( $size ) {
return 'large' ; // or 'medium', 'thumbnail', 'full', etc.
} );
Product Schema
sc_display_product_json_ld_schema
Control whether JSON-LD schema markup is output for products.
If you’re using a third-party SEO plugin (like Yoast SEO, Rank Math, or All in One SEO) that generates product schema, you should disable SureCart’s schema output to avoid duplicate structured data. Duplicate schema can confuse search engines and negatively impact your SEO.
Whether to display the schema markup.
The product model object.
Disable when using Yoast SEO:
add_filter ( 'sc_display_product_json_ld_schema' , function ( $display , $product ) {
// Disable SureCart schema when Yoast SEO is active
if ( class_exists ( 'WPSEO_Frontend' ) || defined ( 'WPSEO_VERSION' ) ) {
return false ;
}
return $display ;
}, 10 , 2 );
Disable when using Rank Math:
add_filter ( 'sc_display_product_json_ld_schema' , function ( $display , $product ) {
// Disable SureCart schema when Rank Math is active
if ( class_exists ( 'RankMath' ) ) {
return false ;
}
return $display ;
}, 10 , 2 );
Disable for any SEO plugin:
// Completely disable SureCart's product schema output
add_filter ( 'sc_display_product_json_ld_schema' , '__return_false' );
Yoast SEO Integration
sc_wpseo_frontend_presenters
Filter Yoast SEO presenters for SureCart pages.
add_filter ( 'sc_wpseo_frontend_presenters' , function ( $title_presenters , $presenters ) {
// Modify SEO presenters
return $title_presenters ;
}, 10 , 2 );
Use Cases
Disable Schema for Free Products
add_filter ( 'sc_display_product_json_ld_schema' , function ( $display , $product ) {
// Fetch product with prices relation loaded.
$product = \SureCart\Models\ Product :: with ([ 'prices' ]) -> find ( $product -> id );
// Don't output schema for free products
if ( ! empty ( $product -> prices -> data ) ) {
foreach ( $product -> prices -> data as $price ) {
if ( $price -> amount === 0 ) {
return false ;
}
}
}
return $display ;
}, 10 , 2 );