How to fix seo product price not in html on Adobe Commerce (Magento)

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

Steps for 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.
Official Adobe Commerce (Magento) documentation ↗
{
  "@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 Adobe Commerce (Magento) 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

Fix seo product price not in html on another platform