How to fix seo product price not in html on WooCommerce
Render product prices in server-side HTML so search engines and rich-result parsers can read them without executing JavaScript.
Steps for WooCommerce
- In WordPress admin, go to Appearance → Theme File Editor (or use a child theme via FTP/SFTP).
- Locate the single product template: woocommerce/templates/single-product/price.php (or the override in your theme at yourtheme/woocommerce/single-product/price.php).
- Confirm the price is rendered using WooCommerce's PHP function woocommerce_template_single_price() or the $product->get_price_html() method — these are server-side and output price in the initial HTML.
- If a plugin (e.g. a dynamic pricing or currency-switcher plugin) is replacing the price via JavaScript/AJAX, configure it to use server-side rendering or find an alternative that outputs price in HTML.
- Install the free 'Schema & Structured Data for WP & AMP' plugin or use Yoast SEO / Rank Math to ensure Product JSON-LD with 'offers.price' is present in the page source.
- Verify by visiting a product page, right-clicking → View Page Source, and searching for the price value and 'schema.org/Product'.
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Your Product Name",
"offers": {
"@type": "Offer",
"priceCurrency": "USD",
"price": "29.99",
"availability": "https://schema.org/InStock",
"url": "https://example.com/products/your-product"
}
}What is seo product price not in html?
Every product page has a price, but if that price is inserted into the page by JavaScript after the page loads, it exists only "in the browser" — it is never written into the raw HTML file that the server sends. Search engines and other crawlers fetch that raw HTML first. If your price only appears after JavaScript runs, many crawlers simply never see it. "Rendering the price in server HTML" means the price number is baked directly into the HTML source code the server delivers, visible the moment the page is downloaded — no JavaScript required to reveal it.
Google uses prices shown in static HTML to power Shopping rich results and structured-data price snippets in search, which increase click-through rates and can drive significantly more organic traffic to your product pages. When a price is JavaScript-only, Google's crawler may index the page without a price, preventing your listings from qualifying for rich results like price drops or availability badges. Non-JS crawlers (price-comparison sites, affiliate aggregators, accessibility tools) also cannot read JS-rendered prices, shrinking your distribution. Additionally, if prices shown to users differ from what crawlers can read, Google may flag the page for inconsistent content, hurting your overall crawl trust and rankings.
See the complete Seo product price not in html guide for every platform and the full background.
Not sure if your WooCommerce store has this?
Run a free SEOLZ audit — we’ll find seo product price not in html and every other issue across your whole site.
Scan my site free