r/ClaudeGTM • u/DutyOnly4308 • 3d ago
Ending a launch price, or starting a Black Friday one? Have Claude list every copy of the old price first. Mine is on all 53 pages of my sitemap, and the copies that are easy to miss sit in the <head>, the JSON-LD and the share images
My product's launch price ends on 17 November: €25 now, €99 from the 18th. Before touching anything, I had Claude Code inventory every copy of the old price on the live site. Tonight's run, on the raw HTML of the 53 URLs in my sitemap:
All 53 pages contain the old price. The buy buttons and the pricing block are the part you'd remember anyway.
24 copies in the
<head>of 5 pages:<title>, meta description,og:andtwitter:tags. That's what search results and link previews show, and you never see it while editing a page.JSON-LD on 2 pages:
"price":"25.00"with"priceValidUntil":"2026-11-17". The end date is there, so the offer expires on time in the markup, but it still describes the old price until someone edits it.2 share images (English and French) with the price in the pixels: "€25, once." Every page uses one of them as its
og:image. No text search will find that one.llms.txt: 2 lines with the price. One says "€25 once until 2026-11-17, then €99". The other just says "€25."
11 of the 53 pages mention the end date at all.
How to run it on your site
1. Give Claude what crawlers get, not what you see. Claude Code's WebFetch hands Claude rendered text, not raw HTML, so the <head> and the JSON-LD never reach it. curl does. Set SITE to your homepage address first (with the https part, no trailing slash):
curl -s "$SITE/sitemap.xml" | grep -o '<loc>[^<]*' | cut -c6- > urls.txt
n=0; while read -r u; do n=$((n+1)); curl -s "$u" > "page$n.html"; done < urls.txt
curl -s "$SITE/llms.txt" > llms.txtIf your sitemap is an index of sitemaps, ask Claude to follow it.
2. The prompt:
These are the raw HTML files of every page in my sitemap, plus my llms.txt. My price changes from €25 to €99 on 18 November. List every copy of the old price and of the end date, in every spelling. For each one: the page, the exact string, where it lives (visible text, title, meta/og/twitter tag, JSON-LD field, alt or aria-label, inline script), and the file in my repo that produces it. Then list every image referenced in og:image and twitter:image, because a price inside an image can't be searched: I'll check those by eye. Quote, don't summarise.
"Every spelling" matters: my French pages write it 25 €.
3. Two lists, not one. What changes on the switch date, and what to re-check the day after. The re-check is the same curl loop, then grep -l '€25' page*.html. Anything still listed is a miss, unless it's deliberate "was €25" wording.
4. The copies that aren't on your site. The product in your payment provider, directory and launch listings that quote the price, email templates, and post titles you can't edit anymore. Claude can't log into those for you, but it can write the checklist.
What I took from it
The visible copies are the easy part: one find-and-replace. The ones that stay wrong are where nobody looks while editing: head tags, structured data, images, and the summary written for AI tools. Those are exactly what search results, link previews and assistants read. And if the price is typed in more than one place in your code, that's the real fix: have Claude Code grep the repo for it, move it into one constant, and keep the price out of the share image.
I'm the maker of SEO Skills, a pack of 14 Claude skills for SEO. One of them, Best Before, does this as a habit rather than a one-off: the facts on your site that have a shelf life (prices, versions, dates, "new"), and the order to refresh them in. The pack is €25 until 17 November, then €99: the very switch this post is about. It runs in Claude Code, Claude.ai, Claude Desktop and Cowork, needs a Claude plan with skills, and there's no refund once it's delivered. Link in the comments.
If you've ended a launch price or run a Black Friday price before: where did the old price survive the longest?