A store audit finds the small, boring faults that cost you sales: product pages with no real description, images with no alt text, a checkout that surprises people with a fee, a policy page that contradicts the product page. Claude is good at the reading part of that. It is bad at knowing what your analytics say or what your site looks like on a cheap phone, so this checklist has you collect the facts and Claude do the sorting. Set aside a weekend morning.
Status: the checklist items are practical advice, not Shopify-endorsed requirements. I could not read Shopify's own help pages (a command-line fetch returned a verification challenge), so I make no claims about how Shopify's admin works beyond describing what to look for. The script was run on a made-up four-row product CSV. Prompts are untested templates. No benchmarks or conversion numbers appear here because I have none for your store.
What do I collect before I start?
Gather these into one folder. This is the whole "audit kit".
- A product export from your admin (CSV). Look for the export option on the Products page, because menu names change.
- The text of your homepage, two collection pages, three top product pages, and your shipping, returns and privacy policy pages. Copy and paste into a text file.
- A PageSpeed Insights report for the homepage, a collection page and a product page, mobile tab. Copy the metric numbers.
- Your last 90 days of top landing pages and top search queries if you use Search Console. Skip it if you do not.
- Your last 30 customer support questions with names removed.
- Your list of installed apps and what each one does.
Keep customers' personal data out. Your product copy, public pages and anonymised questions are enough. The privacy guide on what not to paste into AI chatbots lists what to keep out.
Step 1: audit the catalogue data with a script
Product data is where the cheapest wins hide, and it is also where language models are least reliable, because it means reading thousands of rows precisely. A short script is better. This one reads a Shopify-style product CSV and flags thin descriptions, missing SEO descriptions, images without alt text, duplicate titles and compare-at prices that are not higher than the selling price.
The column names below are written from memory of the usual export header and may differ in your file. The script stops and prints your actual header row if it cannot find them, so edit the COL dictionary to match.
import csv, re, sys, collections
COL = {
"handle": "Handle", "title": "Title", "body": "Body (HTML)",
"alt": "Image Alt Text", "seo_desc": "SEO Description",
"price": "Variant Price", "compare": "Variant Compare At Price",
}
rows = list(csv.DictReader(open(sys.argv[1], encoding="utf-8-sig")))
missing = [v for v in COL.values() if v not in rows[0]]
if missing:
sys.exit(f"columns not found: {missing}. Header row is: {list(rows[0])}")
products = collections.OrderedDict()
for r in rows:
h = r[COL["handle"]]
p = products.setdefault(h, {"title": "", "body": "", "alts": [], "seo": "", "bad_compare": False})
p["title"] = r[COL["title"]] or p["title"] # variant rows leave Title blank
p["body"] = r[COL["body"]] or p["body"]
p["seo"] = r[COL["seo_desc"]] or p["seo"]
if r[COL["alt"]] or r.get("Image Src"):
p["alts"].append(r[COL["alt"]])
try:
if r[COL["compare"]] and float(r[COL["compare"]]) <= float(r[COL["price"]]):
p["bad_compare"] = True
except ValueError:
pass
titles = collections.Counter(p["title"].strip().lower() for p in products.values())
for h, p in products.items():
text = re.sub(r"<[^>]+>", " ", p["body"])
n = len(re.findall(r"\w+", text))
issues = []
if n < 30: issues.append(f"body {n} words")
if not p["seo"]: issues.append("no SEO description")
if any(not a for a in p["alts"]): issues.append("image without alt text")
if p["bad_compare"]: issues.append("compare-at price not above price")
if titles[p["title"].strip().lower()] > 1: issues.append("duplicate title")
print(f"{h}: {'; '.join(issues) if issues else 'ok'}")
I ran it on a four-row test file with three products, one of them deliberately sloppy. Real output on 2026-10-09:
indigo-kurta: image without alt text; duplicate title
indigo-kurta-copy: body 2 words; no SEO description; compare-at price not above price; duplicate title
soy-candle: ok
The 30-word threshold is mine, picked for the demo. Change it. What matters is the shape: a list of handles with reasons, which you can paste into Claude for prioritisation instead of pasting 400 rows. If the script flags the same fault across 60 products, you have a template problem, not 60 separate problems.
Step 2: read the product and collection pages like a shopper
Open three product pages on your phone, not on a laptop. Then work down this list.
- Can I tell what it is, what it costs and whether it's in stock without scrolling?
- Are size, material, care and dimensions stated, or only adjectives? For clothing, check the size guidance against the size chart and fit FAQ approach.
- Do the photos show scale, back and detail, or only hero shots?
- Are shipping time and cost, and returns, stated near the buy button or only in the footer?
- Do variants behave? Pick each size and colour; does the image, price and stock status change correctly?
- Is there social proof you can verify, such as real reviews, or has it been faked? Do not generate reviews. They also mislead shoppers.
For collections, ask whether the page is a useful landing page or a bare grid. The collection page SEO workflow covers intros and thin-content checks, so I won't repeat it.
Paste each page's text to Claude with the prompt in the final section and let it point at what's missing. It reads text well, but it cannot see photos you haven't attached and it does not know your margins.
Step 3: check speed with the published targets
Google's web.dev page on Core Web Vitals (read 2026-10-09) sets these targets, measured at the 75th percentile of page loads across mobile and desktop:
| Metric | What it measures | Target |
|---|---|---|
| Largest Contentful Paint (LCP) | Loading speed | 2.5 seconds or less |
| Interaction to Next Paint (INP) | Responsiveness | 200 milliseconds or less |
| Cumulative Layout Shift (CLS) | Visual stability | 0.1 or less |
Run PageSpeed Insights on your homepage, one collection page and one product page. If the report shows field data from real users, trust that over the lab score; if your store is small it may show none. Write down the three numbers per page. Then ask which of your apps and theme sections plausibly load scripts or large images on those pages. Claude can suggest suspects from your app list, but only measurement confirms it: disable an app on a test theme or preview, re-run, and compare.
Step 4: walk the money path
Buy something from your own store, or go through checkout without paying, on a phone. Note every surprise.
- Shipping cost shown before the last step, or only at the end?
- Does it ask you to create an account before buying?
- Which payment methods are offered, and do they match what your buyers use? For Indian stores, the Razorpay, UPI and COD setup guide covers the options.
- If you offer cash on delivery, is there any message that helps cut failed deliveries? See COD versus prepaid messaging.
- What do the confirmation email and any WhatsApp or SMS say, and are they accurate?
- Abandoned cart emails: do they exist, and do they sound like you? The abandoned cart prompts post has templates.
Write the findings in plain notes with the page and the step. Do not ask a model to guess what your checkout looks like.
Step 5: policies, trust and consistency
Paste your shipping, returns and privacy pages and a product page into one prompt and ask Claude to find contradictions: delivery time on the product page versus the policy page, return window in the footer versus the FAQ, a refund promise your payment setup cannot keep. This is a strong use of a model, because spotting inconsistent statements across long text is the reading task it handles well.
Policy wording is a legal matter. Have Claude flag mismatches, then fix the wording yourself or ask a professional. Do not let a model rewrite legal terms without a human who knows your obligations reading them.
Step 6: discoverability basics
- Does each key page have a unique, human-written title and meta description, or are they all the store name?
- Does Google's search result for your brand name show the right pages?
- If you run Google Shopping or free listings, does your Merchant Center feed agree with your pages on price and stock? See AI product feed optimization for Merchant Center.
- Google's product structured data introduction (page last updated 2025-12-10, read 2026-10-09) says feeds and on-page markup together maximise eligibility and help Google verify your data. Test a product URL with Google's Rich Results Test rather than asking a model whether your markup is correct.
Step 7: apps and operations
List every installed app, what it costs, what it does, and whether you used it in the last 60 days. Unused apps can slow pages and add monthly cost, and that is worth checking, but whether a given app slows your store is something to measure, not assume. Uninstall on a duplicate theme first when you can, and note that uninstalling can leave code behind in the theme, so check your theme files or ask the app's support.
Also check who has staff accounts, whether two-step sign-in is on for the owner account, and who receives order notifications. Those are quick and have real consequences.
How do I get Claude to turn the findings into a plan?
Put everything into one conversation (or a Claude project, see the Claude Projects guide) and use two prompts. If you want to compare a general chatbot with Shopify's built-in assistant on the same data, the Sidekick vs ChatGPT test gives a scoring sheet. Both are untested templates.
Prompt 1: find problems in the pasted material.
You are auditing a small online store. Below are: the output of a
catalogue check script, the text of 3 product pages, 2 collection pages
and 3 policy pages, PageSpeed numbers, and my notes from walking the
checkout on a phone. Use only what I pasted. For each problem, return:
- what is wrong, quoting the exact text or number
- where (page or step)
- why a shopper would care
- confidence: high if directly visible in the pasted text, medium or low
if inferred
Do not invent metrics, competitor data or conversion statistics. If you
need information I did not paste, list it under "need more info".
Prompt 2: rank the fixes.
From the problems above, build a table: problem, effort (under 30 min,
half day, more than a day), who does it (me, designer, developer,
supplier), and what could go wrong if fixed carelessly. Then order them
by effort and likely shopper impact. Say which impact judgments are
guesses. Put the 5 fastest fixes first.
What to do with the result
Pick the five fixes marked under 30 minutes and do them this week. Re-run the catalogue script afterwards; the flagged list should shrink. Write the date, the PageSpeed numbers and the open items in a note, and repeat the audit in a quarter or after any big change. Measure a fix by something you can count, such as support questions about delivery time, rather than by whether the page feels better. If Claude's claim about your store cannot be traced to something you pasted or measured, treat it as a hypothesis and test it.



