The Honest Reality of Web Scraping
Every price tracker that watches public retailer pages is doing a version of the same thing: visiting the page like a browser would, parsing the HTML, finding the price element, and saving the number. Retailers have business reasons to make that harder — pricing is a competitive signal, and unrestricted scraping costs them server time and infrastructure.
The result is a constant low-level arms race. Trackers refine their extraction logic; retailers tweak their page structure or add bot-detection layers; the cycle repeats. Most of the time, the tracker wins and you get a price. Sometimes the page changes in a way that breaks extraction, or the request gets blocked entirely, and you see a "needs review" or empty state instead. That's not a bug in the tracker — it's the cost of working against systems designed to make tracking inconvenient.
Bot Walls and Anti-Automation
Some retailers serve a different page to traffic that looks automated. Amazon, Walmart, Best Buy, and Etsy all do this to varying degrees. The blocked page might show a CAPTCHA, an empty product listing, or a generic "we couldn't load this page" message — depending on the retailer's specific bot strategy.
PricePaste handles this by switching to stealth-mode browser proxies for known-tough sites, which costs more per scrape but resolves most blocks. Even so, you'll occasionally see a tracker fail with a "needs review" status. The right response is usually to wait — the next scheduled check will retry, and bot detection isn't 100% consistent. If a specific product fails repeatedly, the URL is sometimes the issue (a search-result URL instead of a product detail page).
Variant URLs and Hidden Pricing
Many retailers list a "starting at" price on the main listing and then change the actual price based on which variant the user has selected. Etsy, Walmart Marketplace, and even some Amazon listings work this way. The page's HTML at first load reflects the cheapest variant or a generic placeholder — not the variant most buyers will actually purchase.
If your tracker followed a URL with no variant selected, it'll keep returning the starting-at price even when the variant you want costs more. PricePaste preserves variant parameters in some cases (Etsy's `variation0` and `variation1` query parameters are honored, for example), but the cleanest fix is always to copy the URL after explicitly selecting the variant on the page. If the URL still doesn't change, the retailer is using non-URL state to track variant selection — and no tracker can read state that isn't in the URL.
JavaScript-Only Prices
Some pages load the price after the initial HTML response, using JavaScript to fetch it from a separate API. A naive scraper that just reads the first HTML response sees an empty price field. Modern trackers (PricePaste included) use a headless browser that runs the JavaScript before extraction, so this works most of the time.
Where it breaks down is when the JavaScript fetch is gated behind something the tracker can't satisfy — a login session, a regional cookie, an A/B test bucket, a bot challenge. The page renders fine for you because your browser carries those signals; the tracker visits the same URL and gets a different response. Login-gated pricing (like Costco.com items that show "sign in for price") is the most common case and is genuinely unsolvable without sharing credentials, which no responsible tracker should ask for.
Geographic and Account Variation
Online pricing is increasingly personalized. The price you see on a product page can depend on your shipping ZIP code, your account history with the retailer, browser fingerprint, currently active promotions, and even the time of day. A tracker visiting from a different IP, with no account context, may see a different price than you do — sometimes higher, sometimes lower.
The practical effect is that "your" price for a product can briefly differ from the tracker's recorded price. This is most noticeable for grocery delivery, marketplaces with seller-specific pricing, and products with location-aware shipping costs baked into the listing. If you spot a meaningful gap between what the tracker shows and what you see when you click through, the personalization is usually the explanation, not a tracker bug.
When the Price Is Right but the Email Is Off
A subtle failure mode: the tracker correctly recorded the drop, but you didn't get the email. This usually means notifications were paused at the account level, the product was muted, the email landed in spam, or the unsubscribe link was clicked at some point in the past.
PricePaste keeps the dashboard history visible regardless of email state, which makes this kind of issue easier to diagnose — if you see the drop in the dashboard but didn't get an email, the issue is on the notification path, not the tracking path. The settings page has an account-wide toggle and the dashboard shows per-product alert state, so you can quickly tell which one is responsible.
What to Do When a Tracker Fails
If a specific product keeps failing with a "needs review" status, try the simplest cleanup first: copy the URL fresh from the product detail page (not from a search result, ad, or referral link) and re-add the tracker. Many failures resolve immediately with a cleaner URL.
If that doesn't help, the tracker is likely hitting a structural issue with that retailer's page — bot detection, variant gating, or JavaScript-only pricing. In those cases, the tracker isn't going to recover on its own, and a similar product on a different retailer is usually the easier path. Failing trackers are visible in the dashboard so you can prune them; leaving them around indefinitely doesn't hurt anything but does clutter the view.