Hello,
Thank you for contacting Rank Math, and sorry for any inconvenience that might have been caused due to that.
Please refer to our changelog, to know about our latest updates:
https://rankmath.com/changelog/page/3/
As for variable Product
pricing mismatch with Google Merchant Center, I looked at the source code of the URL shared and noticed the mismatch in the lowest price in the schema and the price output on the page.
The lowest price in the source code is "lowPrice":"5.75"
however on the page it is $25.00
which could be the reason for the mismatch.
Please check the WooCommerce settings to make sure that the price you are inserting doesn’t include taxes or anything that could alter the price.
Also, when you are adding/changing prices for each variation of the product, please let our plugin generate the schema automatically.
As the plugin will also generate the aggregate offers and apply the low and high price values that would indicate to Google the price range.
Please note, Google sees the price variants as you output them on your page, and the mismatch probably indicates the same, that it was found via a page crawl.
Please let us know how that goes. Looking forward to helping you further.
Thank you
Thanks for your reply.
Not sure what you mean when you
The lowest price in the source code is “lowPrice”:”5.75″ however on the page it is $25.00 which could be the reason for the mismatch.
The lowest price is 5.75 for that product and then there are 4 more prices and the one that I put in the feed for Google shopping ads is $25. The highest price is $178.50, so the aggregateoffer lowprice 5.75 and high price $178.50 in the schema markup is correct.
But the price for the variable that is in the google feed is 25 in the feed and on the website.
Any idea?
Hello,
Thank you for your patience.
The method we use for the Schema markup is according to Google guidelines for the Product Schema: https://developers.google.com/search/docs/advanced/structured-data/product
However, if you would like to modify that to show each offer and its data individually you can add and modify this filter to your particular needs:
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',
'itemCondition' => 'NewCondition',
'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;
} );
You can change each property according to your needs and remove any properties that you donāt require for the offers.
The filter should be added to your active themeās functions.php file. Hereās another way to apply the filter using the rankmath.php file:
https://rankmath.com/kb/filters-hooks-api-developer/#adding-filters-and-hooks-in-rank-math-php
Lastly, we also recommend that you read through this guide to learn more about the way Google tries to identify the price and the guidelines that you need to set for your prices on the website: https://support.google.com/merchants/answer/6324371
I hope that helps.
Thank you.
Thanks a lot for that, really appreciated!
Looked at GMC again today and it looks like Google changed its mind, only 1 product left with a price mismatch.
Hello,
Glad that helped.
Please feel free to reach out to us again in case you need any other assistance.
We are here to help.
Thank you.