Seo product price not in html

Moderate effort

Found on 19% of audited stores.

Render product prices in server-side HTML so search engines and rich-result parsers can read them without executing JavaScript.

What it is

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.

Why it matters

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.

How to fix it

  1. Audit your product page HTML source: right-click the page in a browser and choose 'View Page Source' (not Inspect), then search for the price value. If you cannot find it, the price is JavaScript-rendered.
  2. Identify where the price originates: is it fetched via an API call, injected by a third-party app/widget, or driven by a client-side framework? This determines the fix approach.
  3. Move price rendering to the server side: configure your storefront template or theme to output the price directly in the HTML template (e.g. Liquid, Twig, PHP, or server-side component) so it is present in the initial HTTP response.
  4. Add or update Product structured data (JSON-LD) on the same page to include the 'offers.price' and 'offers.priceCurrency' fields — this reinforces the price for rich results even if the visible price is already in HTML.
  5. Verify the fix by fetching the page with 'View Page Source' again and confirming the price appears in the raw markup. Also use Google Search Console's URL Inspection tool → 'Test Live URL' and check the rendered HTML to confirm Google sees the price.
  6. Test structured data with Google's Rich Results Test to confirm the price is parsed correctly and your product page qualifies for price-related rich result features.
{
  "@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"
  }
}

Fix it on your platform

Pick your platform for the exact steps.

How to fix seo product price not in html on Shopify
  1. In your Shopify admin, go to Online Store → Themes → click Actions → Edit code.
  2. Open the product template file: templates/product.json (Dawn and newer themes) or templates/product.liquid (older themes). The actual price rendering lives in a section — look in sections/main-product.liquid or similar.
  3. Confirm the price is output using a Liquid tag such as {{ product.price | money }} or {{ product.selected_or_first_available_variant.price | money }}. These render server-side and will appear in the static HTML.
  4. If a third-party app is overriding the price display with JavaScript, disable or reconfigure that app so Shopify's native Liquid price tag is what appears in the HTML source.
  5. Shopify automatically injects Product JSON-LD on product pages in most themes; verify it includes 'offers.price' by using View Page Source and searching for 'schema.org'.
  6. Use Online Store → Themes → Preview, then View Page Source in your browser to confirm the price value is visible in raw HTML before publishing.
How to fix seo product price not in html on WooCommerce
  1. In WordPress admin, go to Appearance → Theme File Editor (or use a child theme via FTP/SFTP).
  2. Locate the single product template: woocommerce/templates/single-product/price.php (or the override in your theme at yourtheme/woocommerce/single-product/price.php).
  3. 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.
  4. 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.
  5. 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.
  6. Verify by visiting a product page, right-clicking → View Page Source, and searching for the price value and 'schema.org/Product'.
How to fix seo product price not in html on BigCommerce
  1. In BigCommerce admin, go to Storefront → Themes → click Advanced → Edit Theme Files (Stencil theme editor or downloaded theme via Stencil CLI).
  2. Open templates/pages/product.html and locate the price Handlebars helper — it should reference {{price.without_tax}} or {{price.with_tax}}. These are server-side rendered by the Stencil engine.
  3. If you have customized the theme to fetch the price via the Storefront API (JavaScript), revert to the Handlebars template variable so the price is in the initial server response.
  4. BigCommerce automatically outputs Product structured data; confirm 'offers.price' is present by viewing page source and searching for 'application/ld+json'.
  5. Use the BigCommerce Preview or a staging URL to do a View Page Source check confirming the price appears before any scripts run.
  6. If using a headless/custom storefront (Next.js, etc.), ensure Server-Side Rendering (SSR) or Static Site Generation (SSG) is used for product pages so the price is in the HTML payload.
How to fix seo product price not in html on Wix
  1. Wix renders Wix Stores product prices server-side by default — first confirm whether the issue is caused by a custom-coded widget or third-party HTML embed block that shows the price via JavaScript.
  2. In the Wix Editor, click on the product price element on your product page. If it is a native Wix Stores element, it renders server-side automatically; no change is needed for that element.
  3. If you added a custom HTML/embed widget or Velo (Wix Code) block to display the price, replace it with the native Wix Stores price element from Add → Store → Product Page elements.
  4. To add structured data, go to your Wix dashboard → SEO → Structured Data Markup (available in Wix's SEO tools) and ensure Product schema with price is enabled for product pages.
  5. Verify by using Wix's SEO Inspector tool or an external 'View Page Source' check on the published site to confirm the price appears in raw HTML.
How to fix seo product price not in html on Squarespace
  1. Squarespace Commerce renders product prices server-side through its built-in product blocks — if you are using a standard Squarespace product page, the price should already be in the HTML.
  2. Check whether a custom Code Block or custom JavaScript injection (Settings → Advanced → Code Injection) is overriding or hiding the default price display. If so, remove or replace it with a native product element.
  3. In the Page Editor, ensure your product page uses the native Product Block (with price displayed) rather than a manually coded section that fetches price via JS.
  4. Squarespace automatically generates Product JSON-LD for Commerce products; verify by using View Page Source on your live product page and searching for 'application/ld+json'.
  5. If you need to customize price display styling, use CSS overrides (Design → Custom CSS) rather than replacing the price element with a JavaScript-rendered alternative.
How to fix seo product price not in html on Webflow
  1. In the Webflow Designer, open your Product Template page (Ecommerce → Product Template).
  2. Ensure the price is bound to the CMS Product field using a native Webflow Text element with a dynamic binding to the 'Price' field — this renders server-side at publish time.
  3. Do NOT use Webflow's Embed element or custom JavaScript to fetch and display the price from an external source, as this will be JS-only and invisible to crawlers.
  4. For structured data, add a JSON-LD embed in the product template's <head> using Webflow's Page Settings → Custom Code (Head Code), binding the price value with a CMS embed tag if using Webflow CMS, or use a third-party Webflow SEO app like Semflow or Relume.
  5. After publishing, use View Page Source on a live product URL and confirm the price value appears in the raw HTML.
  6. If using Webflow's Ecommerce, verify the auto-generated structured data includes 'offers.price' by searching the page source for 'schema.org'.
How to fix seo product price not in html on Adobe Commerce (Magento)
  1. In the Magento admin, go to Stores → Configuration → Catalog → Price and check whether 'Catalog Price Scope' and any third-party dynamic pricing extension is configured to output prices via AJAX/JS rather than PHP templates.
  2. Locate the product price template file at vendor/magento/module-catalog/view/frontend/templates/product/price/ (or your theme override at app/design/frontend/<Vendor>/<Theme>/Magento_Catalog/templates/product/price/). Ensure prices are rendered via PHP template, not replaced by a JS component.
  3. If you use Magento's built-in 'price box' UI component, note that by default Magento 2 renders the base price in server-side HTML but may use JS for tier/group pricing. Ensure at least the base price is in the initial HTML.
  4. Disable or reconfigure any dynamic pricing or currency-conversion extensions that inject prices purely via JavaScript AJAX calls; configure them to use server-rendered fallback prices.
  5. Add or verify Product structured data: go to your theme's layout XML (catalog_product_view.xml) and confirm a JSON-LD block with 'offers.price' is included, or install an SEO extension such as MageWorx SEO Suite or Amasty SEO Toolkit.
  6. Flush cache (System → Cache Management → Flush Magento Cache), then use View Page Source on a product URL to confirm the price appears in the raw HTML response.

Does your site have this issue?

Run a free SEOLZ audit to find seo product price not in html — and every other issue — across your whole site in minutes.

Scan my site free

Frequently asked questions

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.

Why does seo product price not in html matter?

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.

How do I fix seo product price not in html?

Render product prices in server-side HTML so search engines and rich-result parsers can read them without executing JavaScript.

Authoritative references

Related SEO issues