Sale price schema is a check in the E-Commerce SEO (WooCommerce) category. It is a lower-priority optimization — address it after the critical issues are handled — but it is one of the easiest wins on the list, and on a store running frequent promotions it pays for itself quickly.

What this check is really about

When a WooCommerce product is on sale, your structured data should say so — clearly and correctly. In schema.org terms that means the product’s Offer exposes the current price as the sale price, ideally with a priceValidUntil date marking when the promotion ends. Get this right and Google can render the discounted price, and sometimes a strikethrough, directly in the search result.

The check fails when your markup still advertises the regular price while the storefront shows the sale price, or when a sale has no end date so Google cannot tell whether the discount is still live. A mismatch between what the page shows and what the schema claims is worse than no schema at all — it is exactly the kind of inconsistency that gets rich results suppressed.

Why it matters

A sale price in the SERP is free conversion lift. The shopper sees the discount before they click, which raises click-through on exactly the products you are trying to move. The reverse is also true: if the schema shows a price you are no longer honouring, you invite a “the price is wrong” complaint and a bounce. Accuracy here is not pedantry — it is the mechanism working as intended.

How to fix this in WordPress

Difficulty Level: EASY – This fix is straightforward and can typically be completed by anyone with basic WordPress knowledge.

Estimated Time: 15 min

  1. Let one system own the product schema. WooCommerce emits Product markup itself, and so do Yoast SEO and Rank Math. Running two at once produces duplicate, conflicting Offer blocks. Pick one source of truth and disable the others.
  2. Set the sale price properly on the product (Product data → General → Sale price), and use the schedule fields to define start and end dates. That end date is what feeds priceValidUntil.
  3. Run a live sale product through Google’s Rich Results Test and confirm the price in the output equals the sale price on the page, with a valid priceValidUntil.
  4. Check a variable product too — variation pricing is where these mismatches usually hide.

Recommended Tools & Plugins

  • Yoast SEO – Comprehensive SEO plugin with built-in checks
  • Rank Math – Feature-rich SEO plugin with detailed analysis
  • Google Search Console – Free tool to monitor your site’s search presence
  • SEO Roadmap – Complete SEO audit and action plan tool

Common mistakes I see

  • Two plugins both emitting Product schema, so Google sees conflicting prices and shows neither.
  • Setting a sale price but leaving the schedule blank, so there is no priceValidUntil and the discount looks permanent.
  • Forgetting that a sale ended — the schema keeps advertising a price the store no longer offers.
  • Testing only a simple product and never checking a variable one, where the pricing logic is more fragile.

This guide is part of the SEO Roadmap knowledge base – your complete resource for WordPress SEO optimization.

Leave a Reply

Your email address will not be published. Required fields are marked *

Close Search Window