Home › Guides
Guide · free method
How to track a competitor’s prices without a subscription
Shopify storefronts publish more price data than most merchants realise. Here is how to read it, what to write down each week, and how to tell a real move from noise — without paying for anything.
Watch ten items, not a catalogue
The instinct is to track everything a rival sells. Do not. A 200-item price list you check once and abandon is worth less than five items you actually look at every week.
Pick the items where you compete head to head: the products a customer would genuinely buy from either of you. Five to ten is the right number. Those are your watch items, and everything below is about them.
Where the prices live
You do not have to click through product pages one at a time. Most Shopify storefronts publish their catalogue as JSON at a predictable address:
- /products.json?limit=250 — the whole catalogue page by page. Add &page=2 for the next 250.
- /products/the-product-handle.json — a single product, which is the one to bookmark for a watch item.
Inside, each variant carries the three fields that matter: price, compare_at_price and available. Between them they tell you the live price, whether it is discounted, and whether you can even buy it.
compare_at_price is the field people miss
When compare_at_price is higher than price, that item is on sale right now — even if nothing on the page says so and no banner is running. It is the most reliable public signal that a competitor has started discounting.
Some merchants disable the JSON endpoint. If it 404s, the product page itself still shows the live price, and the sorted collection view at /collections/all?sort_by=price-ascending gives you their cheapest entry point in one glance.
What to record each week
One row per week. Keep it boring and numeric — the value is in comparing rows, so anything you cannot compare is wasted typing.
| Column | Example | What it tells you later |
|---|---|---|
| Date | 2026-09-14 | The interval a change happened in |
| Price per watch item | 39.00 | The headline number you are tracking |
| Compare-at price | 48.00 | Whether that price is a markdown or their new normal |
| Available | false | Sold out is an opportunity, and it explains odd price moves |
| Banner text | “20% off site-wide” | The campaign the price change belongs to |
Telling a real move from noise
Not every changed number deserves your afternoon. A workable filter:
- Under about 5 percent on one item: usually ignore. Rounding, currency conversion and variant edits all look like this.
- A new compare-at price: pay attention even if the discount is small. It means a campaign started, and campaigns come with email and ads behind them.
- The same direction across several items: that is repositioning, not a promotion, and it is the one that changes your plan rather than your week.
- A threshold crossed: $50 to $49 is one dollar and a different shelf in the customer’s head.
Answering a price cut without giving up margin
The reflex is to match. It is usually the worst available option, because it hands your pricing decision to a competitor who may be clearing stock, testing, or simply wrong.
- Bundle instead of discounting. A two-item bundle at a modest saving beats a straight cut on one item, and it raises order value rather than lowering it.
- Compete on the promise. Faster shipping, longer returns, a real guarantee. These cost less than the margin a match costs, and they are harder to copy by Friday.
- Segment the response. Answer to the customers actually comparing — recent browsers of that product — rather than announcing a discount to your whole list.
- Match deliberately, if at all. Only where the item is a commodity and price is genuinely the only reason someone picks you.
What this free method cannot do
Being straight about it: the manual version has real limits, and they are not solved by trying harder.
- No history. You see today’s number. Whether it is their third cut this month is invisible unless you logged the first two.
- It misses anything between checks. Weekend flash sales are the classic blind spot.
- It stops when you get busy. Which is exactly when a competitor’s move is most likely to hurt.
- Noticing is not responding. The email, the ad and the landing copy are still yours to write, and that is the part that takes the afternoon.
Common questions
Can I track competitor prices in Google Sheets?
Sheets has no native JSON import, so the realistic free version is a manual weekly log: one row per week, one column per watched item. That is fine, because the right number of items to watch is five to ten, not your rival's whole catalogue.
How big a price change is worth reacting to?
As a rule of thumb, ignore anything under about 5 percent on a single item: that is usually rounding, a currency conversion or a variant-level tweak. React to changes on your head-to-head bestsellers, to a new compare-at price that signals a campaign, and to anything that crosses a psychological threshold like $50.
Should I just match their price?
Usually not. Matching a price you did not choose hands your margin to someone else's decision. Answer it instead: bundle, improve the shipping or returns promise, or lean on the thing they cannot copy this week. Match only when the item is a genuine commodity and price is the only reason anyone buys it from you.
Is scraping a competitor's prices allowed?
Reading public product pages is ordinary competitive research. If you automate it, respect robots.txt, keep the request rate low and stay off anything behind a login. Promolexa's own checker honours robots.txt, which is why it sometimes declines to read a store.
See a rival’s current prices free
Paste a store address and get its live price range, product count and whatever promos are running right now. No install, no account.
Promolexa takes the weekly reading for you, emails you only when something moved, and drafts the response in your brand voice. Free plan available · Standard $29/month with a 7-day free trial.