Guide

How to track competitor prices in Google Sheets (free)

7 min read

If you want to track a handful of competitor prices without paying for a tool, Google Sheets can do it - for free. It takes some setup and has real limits, but it works. Here are two approaches (a quick one and a robust one), the gotchas, and the point where a spreadsheet stops making sense.

The quick way: IMPORTXML on a product page

Google Sheets' IMPORTXML can pull a price straight off a product page using an XPath to the price element. In a cell:

=IMPORTXML("https://competitor.com/products/some-product", "//span[contains(@class,'price')]")
This is the fastest to set up but the most fragile: the XPath/class differs per store and theme, and breaks whenever they redesign. Good for a few URLs, painful at scale.

The robust way: Apps Script on products.json

The reliable approach reads Shopify's structured products.json instead of scraping HTML, so it doesn't break on a redesign. Plain IMPORTDATA/IMPORTXML can't parse JSON, so you use a small Apps Script function (Extensions > Apps Script), then call it like a formula:

function SHOPIFYPRICE(storeUrl, handle) {
  const url = storeUrl.replace(/\/$/, '') + '/products/' + handle + '.json';
  const data = JSON.parse(UrlFetchApp.fetch(url).getContentText());
  return data.product.variants[0].price;
}

// then in a cell:
// =SHOPIFYPRICE("https://competitor.com", "some-product-handle")
This reads the first variant's price from the public product JSON - structured, stable, and it returns the real price string Shopify uses.

Building the tracker

  1. 1List your competitor product URLs (or store + handle) down column A.
  2. 2Add a price column using IMPORTXML or the SHOPIFYPRICE function above.
  3. 3Add a 'last checked' column with =NOW() so you can see freshness.
  4. 4Optionally, copy the price into a dated column each day to build a history.
  5. 5Set the sheet to recalculate (Apps Script triggers can refresh on a schedule).

The limits you'll hit

A spreadsheet works for a small, static list. Here's where it breaks down:

  • No real alerts - you have to open the sheet and notice a change yourself. The whole point of monitoring is to be told, not to check.
  • It breaks silently - IMPORTXML stops working on a redesign, cells error out, and you don't find out until you look.
  • No history by default - you only see today's price unless you manually snapshot it each day.
  • It doesn't scale - 5 products is fine; 50 products across 10 competitors becomes a maintenance project.
  • No stock, new-product or removal tracking - just whatever price you wired up, one cell at a time.

When to stop spreadsheeting

The spreadsheet is a great way to prove the value to yourself. But the moment you're tracking more than a few products, or you catch yourself forgetting to check, it's costing you more time than it saves - and you're missing the changes that happen between your checks.

Shop Sentry does the same job automatically: paste a competitor's domain and it tracks every product's price and stock, keeps the full history, and alerts you by email or Telegram the instant something changes - no formulas, no broken XPaths, no forgetting. Its free plan covers one competitor store, so you can replace the sheet for free.

Frequently asked questions

Can Google Sheets track Shopify prices?

Yes - IMPORTXML can pull a price from a product page, or an Apps Script function can read the stable price from the product's .json. Both are free; the Apps Script method is more reliable because it doesn't break on redesigns.

Why doesn't IMPORTDATA work on products.json?

IMPORTDATA and IMPORTXML are built for CSV and HTML/XML, not JSON. To read products.json in Sheets you need a short Apps Script function using UrlFetchApp (shown above).

Can the sheet alert me when a price changes?

Not out of the box - you'd have to build email triggers in Apps Script, and even then it's fragile. For reliable instant alerts, a monitoring tool is far less work.

When should I switch from a spreadsheet to a tool?

Once you're tracking more than a few products, want stock/new-product tracking too, or keep forgetting to check. That's when the manual sheet costs more time than it saves.

Replace the spreadsheet - for free

Shop Sentry tracks competitor prices, stock and new products automatically and alerts you the moment they change. Free on your first store, no card, no formulas.

Keep reading