Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
For a Chrome extension reading a product page already open in the browser, start with any usable Product data in JSON-LD, then use marketplace-specific DOM selectors to fill gaps. Keep each offer and variant tied to its identifiers, and check the extracted values against the product and offer the shopper actually sees. JSON-LD is a useful first source—not a guarantee that every marketplace page includes complete or current product data.
How the two extraction methods differ
| Approach | What it offers | What to watch for |
|---|---|---|
| JSON-LD | Structured fields can name and group product details such as name, brand, SKU or GTIN, and offer price, currency, and availability. | It may be absent, incomplete, or inconsistent with the selected variant or displayed offer. |
| DOM selectors | Selectors can read elements in the page’s accessible DOM, including visible product details. | Selectors depend on the marketplace’s page structure and need maintenance when that structure changes. |
These are complementary sources, not interchangeable guarantees. Google describes Product and ProductGroup as ecommerce-relevant structured-data types, but that does not mean every marketplace publishes complete markup. Google Search Central’s ecommerce structured-data guidance explains Google’s use of structured data; it does not establish coverage across all marketplace pages.
Read product JSON-LD from the accessible DOM
Chrome content scripts can use the standard DOM to read page details and communicate with the parent extension. Chrome describes them as “files that run in the context of web pages.” They run in an isolated world, however, so the content script cannot simply access JavaScript variables belonging to the host page. See Chrome’s content scripts documentation.
Recommended Free Tools
Look for script[type="application/ld+json"] elements and parse their text defensively. A block may contain an object, an array, or a graph of related objects. Treat JSON parsing as fallible: skip malformed blocks rather than letting one bad script stop extraction. Search the parsed structures for Product entries and related variants, then inspect their nested offers.
#1 Best Overall
Google Merchant Center recommends adding structured data as JSON-LD and gives a Product-with-Offer example. Its documented fields include name, sku, gtin, brand, price, priceCurrency, and availability. Schema.org’s Product vocabulary also includes properties such as brand, GTIN, color, and aggregate rating; the vocabulary defines possible fields, not fields a marketplace must provide. See Google Merchant Center’s structured-data setup guidance and Schema.org’s Product definition.
Preserve variants and offer associations
Do not flatten a page with several offers or variants into one unqualified price. Keep each offer associated with its product or variant, and retain a matching SKU or GTIN where the markup supplies one. Google’s matching guidance specifically addresses identifiers for multiple offers and variants; preserving those links helps avoid assigning one variant’s price or availability to another.
Rank #2
A practical normalized record can include product name and brand, available SKU or GTIN, and a collection of offers. For each offer, retain price, currency, availability, and condition when present, along with the source object or variant association. Missing fields should remain missing rather than being filled from an unrelated offer.
Check extracted data against what shoppers see
Before treating a value as the page’s current product data, compare it with the visible page—particularly the selected variant and displayed offer. Google Merchant Center says structured data should match what users see. Its guidance also says that, for its stated product-data matching conditions, markup must be in the HTML returned by the server rather than generated with JavaScript after page load. That requirement describes Google’s matching guidance; it does not mean a browser extension cannot inspect DOM content that appears later.
Rank #3
If the markup names a different variant, shows an old price, or conflicts with the visible offer, do not silently present it as authoritative. Use the page’s visible state to identify the relevant item and offer, and treat unresolved conflicts as uncertain rather than collapsing them into a single result.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Use marketplace-specific selectors for missing fields
When JSON-LD is missing or a field is unusable, query selectors tailored to that marketplace’s DOM. There is no universal selector for a product title, selected variant, or price across marketplaces. Keep selector rules isolated by site so a layout change can be handled without rewriting the JSON-LD parser or breaking extraction on unrelated stores.
Rank #4
Selectors can help fill gaps, but they do not remove the need to validate. A selector that matches the first price on a page may return a crossed-out price, a different seller’s offer, or an unselected variant. Confirm that the selected element corresponds to the visible product and offer before adding it to the normalized record.
Quick Recap
Best Value
A practical extraction sequence
- Read the page DOM: use the content script’s standard DOM access; do not expect direct access to page-owned JavaScript variables.
- Parse JSON-LD defensively: inspect each
application/ld+jsonblock, handle malformed JSON, and search objects, arrays, and graph structures for products, variants, and offers. - Build records without flattening: retain product identifiers and associate each offer’s price, currency, availability, and condition with the relevant product or variant.
- Compare with visible page state: check the selected variant and displayed offer, and investigate conflicts rather than assuming markup is current.
- Fill gaps with site-specific selectors: query only the fields that are absent or unusable, and keep the rules scoped to the marketplace whose layout they target.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

