Audit any Shopify storefront for speed, SEO, image, and revenue issues — no login, no API keys, just a URL.
npx shoplint yourstore.comshoplint crawls a storefront exactly the way Google and your customers see it — the public HTML — and produces a scored, actionable report in your terminal, as JSON, or as a shareable HTML file.
shoplint report — https://examplestore.com
Shopify storefront · 3 pages · audit of home, product, collection
────────────────────────────────────────────────────────────
Overall score: 68/100 grade C
────────────────────────────────────────────────────────────
Performance 55/100 (C)
✖ 4 render-blocking script(s) in <head> (no async/defer)
▲ ~2.1 MB of JavaScript on the home page (measured 28 scripts)
▲ 46 external scripts on home page
Images 72/100 (B)
▲ 19/64 images missing alt text on product page
▲ Oversized image (1,240 KB) on home page
Installed apps & trackers
ℹ Klaviyo — 3 script(s), ~310 KB
ℹ Judge.me Reviews — 2 script(s), ~180 KB
▲ Detected apps/trackers add ~780 KB of JavaScript
Revenue opportunities
$ No product bundle offers detected — bundles typically lift AOV 10–30%
$ No free-shipping threshold message detected
Slow, under-optimized storefronts silently tax every visitor: worse Core Web Vitals → worse rankings → fewer sessions, and heavier pages → lower conversion. Most merchants find out only after paying an agency for an audit. shoplint gives you the same first-pass audit in thirty seconds, free.
# one-off
npx shoplint yourstore.com
# or install globally
npm install -g shoplint
shoplint yourstore.comRequires Node 18.17+.
shoplint examplestore.com # terminal report
shoplint examplestore.com --verbose # include passed checks
shoplint examplestore.com --json > report.json # machine-readable
shoplint examplestore.com --html report.html # shareable client-ready reportThe exit code is 1 if any critical issue is found, 0 otherwise — so you can run shoplint in CI and fail the build when a theme change ships a regression:
# .github/workflows/storefront-audit.yml
- run: npx shoplint yourstore.com| Category | Examples |
|---|---|
| Performance | render-blocking scripts, total JS transfer size, script count, HTML weight, response time, resource hints |
| SEO | titles & meta descriptions (presence + length), canonicals, accidental noindex, H1 structure, Open Graph tags, robots.txt, sitemap.xml |
| Images | alt-text coverage, missing width/height (CLS), lazy loading below the fold, oversized files, legacy formats, products with no/one photo |
| Structured data | Product schema (price/availability rich results), aggregateRating, Organization/WebSite, BreadcrumbList, invalid JSON-LD |
| Installed apps & trackers | identifies 50+ known Shopify apps & pixels from their scripts and measures what each costs in KB |
| Revenue opportunities | missing bundles, quantity breaks, cross-sells, free-shipping thresholds, reviews/social proof |
The last two categories are informational — they never affect the score.
Every Shopify storefront exposes public, unauthenticated endpoints (/products.json, /collections.json) plus its rendered HTML. shoplint fetches the home page, one product page, and one collection page, parses them, and probes a bounded sample of assets for real transfer sizes. Nothing is scraped beyond what any browser downloads; no store credentials are ever needed.
Note on rate limits: Shopify's edge throttles unfamiliar IPs aggressively (HTTP 429). If you hit one, wait a minute and retry — audits from residential IPs are rarely throttled.
- Core Web Vitals field data via the CrUX / PageSpeed Insights API
- Theme accessibility checks (contrast, focus states, tap targets)
- Checkout & cart friction heuristics
-
--comparemode to diff two audits (before/after a theme change)
PRs and issue reports are very welcome.
git clone https://github.com/Outpost-Apps/shoplint
cd shoplint && npm install
npm test # unit + e2e tests (no network needed)
node bin/shoplint.js somestore.comAdding an app to the detector is a one-line PR in src/checks/apps.js.
MIT © Outpost Apps Pte. Ltd.
Built by Outpost Apps, makers of LaunchLab (cart upsells & bundles) and Snapshot (AI product photography) for Shopify.