Hello,
I apologize for the inconvenience you are facing with the WooCommerce Variation Product SKU not showing in the product schema. To ensure that the SKU is included in the product schema, please follow these steps:
-
Edit Your Product: Head over to your product and click on Edit.

-
Navigate to the Schema Settings for the Product: Click on the Schema tab and then click on Schema Generator.

-
Navigate to the Schema Builder: Find the WooCommerce Product Schema from the list and click on Use to open the Schema Builder.

-
Save the Schema Type: In the Schema Builder, click on Save for this Post.

By following these steps, you can configure the WooCommerce Product Schema to include the SKU information in the product schema. If you encounter any further issues or need additional assistance, please feel free to reach out.
Thank you for bringing this concern to our attention.
Best regards.
Sources:
How to Use Product Schema for WooCommerce Products » Rank Math
Google Search Console Missing Field Warning » Rank Math
How to Use Product Schema for WooCommerce Products » Rank Math
How to Customize Schema Markup for WooCommerce Products » Rank Math
Resolving Rank Math Schema Markup Related Issues
Hi, I have followed these instructions, the schema was already set to woocommerce products, but I deleted this and set it to woocommerce product and it has not fixed the issue.
Hello,
Thank you for your patience.
In this case, please refer to this filter code to ensure that the SKU is included in each offers property in your schema:
add_filter( 'rank_math/snippet/rich_snippet_product_entity', function( $entity ) {
if ( ! is_product() ) {
return $entity;
}
$product = wc_get_product( get_the_ID() );
if ( ! $product->is_type( 'variable' ) ) {
return $entity;
}
$variations = $product->get_available_variations();
if ( ! empty( $variations ) ) {
$offers = [];
foreach ( $variations as $variation ) {
$price_valid_until = get_post_meta( $variation['variation_id'], '_sale_price_dates_to', true );
$offers[] = [
'@type' => 'Offer',
'description' => strip_tags( $variation['variation_description'] ),
'price' => $variation['display_price'],
'priceCurrency' => get_woocommerce_currency(),
'availability' => $variation['is_in_stock'] ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',
'priceValidUntil' => $price_valid_until ? date_i18n( 'Y-m-d', $price_valid_until ) : '2025-12-31',
'url' => $product->get_permalink(),
'sku' => $variation['sku'],
];
}
}
$entity['offers'] = $offers;
return $entity;
} );
If you’re not sure how to add this code, you can follow this guide:
https://rankmath.com/kb/wordpress-hooks-actions-filters/
Once done, clear your website’s cache and check again the applied schema to your product.
Let us know how this goes.
Thanks very much this looks like it has fixed it to me, I will just wait to see if this results in more visibility in time. I appreciate your prompt and comprehensive help.
Cheers
Hello,
Sure, do let us know how that goes. We are glad that we could address your concern.
If you have another question in the future, please feel free to create a new forum topic, and it will be our pleasure to assist you again.
Thank you.