Skip to main content
These filters allow you to customize SEO-related behavior in SureCart.

Meta Tags

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;
} );

sc_display_product_seo_meta

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.
Parameters
Filter Parameters
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 );