What GitHub Repos Help Me Run Shopify SEO with Claude?

The open-source toolbox underneath our Shopify SEO workflow. Part of our AI workflows pillar. The audit half is in the Ahrefs + Claude post; the loop is in how do I use Claude to run SEO for Shopify. This post is the technical layer — what you install, what each one does, how Claude plugs in.
The customer pain point
"There's a tool for that" lists are a dime a dozen. What's missing is which repos actually compose into a working workflow with Claude, and where each one fits in the audit → fix → ship → monitor loop. That's this post.
Eight repos. All free. All maintained. Real install commands.
Table of Contents
- The Stack at a Glance
- 1. Shopify CLI
- 2. Shopify Theme Check
- 3. Google Lighthouse
- 4. Lighthouse CI
- 5. pa11y
- 6. sitespeed.io
- 7. Model Context Protocol Servers
- 8. Anthropic SDKs
- How They Compose with Claude
Key Takeaways
| Repo | Stage in the loop | Cost |
|---|---|---|
| Shopify/cli | Ship — theme edits, redirects, deploy | Free |
| Shopify/theme-check | Audit — Liquid lint, perf hints | Free |
| GoogleChrome/lighthouse | Audit — CWV, SEO basics | Free |
| GoogleChrome/lighthouse-ci | Monitor — automated weekly perf diffs | Free |
| pa11y/pa11y | Audit — accessibility (correlates with SEO) | Free |
| sitespeedio/sitespeed.io | Audit — multi-URL perf + budgets | Free |
| modelcontextprotocol/servers | Plumbing — connect Claude to local files/data | Free |
| anthropics/anthropic-sdk-python | Automate — scheduled audits via API | Free (API metered) |
The Stack at a Glance
The loop again, with repos slotted in:
- Audit — Lighthouse + theme-check + pa11y + sitespeed.io
- Hand off to Claude — paste outputs, or pipe via MCP file server
- Decide — Claude (no repo, just the prompt)
- Ship — Shopify CLI for theme/redirect changes, Shopify connector for product/collection data
- Monitor — Lighthouse CI on schedule, Anthropic SDK for the weekly digest email
You don't need all eight on day one. Start with Shopify CLI + Lighthouse. Add the rest when the weekly loop is in place.
1. Shopify CLI
Repo: github.com/Shopify/cli
What it does: Official Shopify CLI. Pull/push themes, run a local dev server, lint, manage apps and stores.
Where it fits: Stage 4 (ship). Most SEO fixes that touch theme files (schema.org JSON-LD, image dimensions, lazy-load, font preload, heading hierarchy) go through the CLI — Claude writes the change, you shopify theme push to a draft theme to preview, then publish.
npm install -g @shopify/cli @shopify/theme
shopify auth login --store yourstore.myshopify.com
shopify theme pull --theme=published
shopify theme dev # local preview
shopify theme push --unpublished --json # push to draft
The auth is per-store, not global — re-auth when switching between client stores. (We learned this the hard way; it's in our global notes on Shopify theme gotchas under deployment pitfalls.)
2. Shopify Theme Check
Repo: github.com/Shopify/theme-check
What it does: Liquid linter + performance/SEO checker for Shopify themes. Flags missing alt text, broken image_url calls, unused snippets, deprecated tags, and structural SEO issues.
Where it fits: Stage 1 (audit) for anything theme-resident.
gem install theme-check
cd your-theme/
theme-check
Output is a list of file:line warnings. Pipe it to Claude:
Here's theme-check output for our Shopify theme. Group these into:
1. SEO-impacting (missing alt, missing schema, broken images)
2. Performance (unused snippets, render-blocking patterns)
3. Maintenance (deprecated tags, dead code)
For group 1, rank by severity and tell me which 3 to fix this week.
3. Google Lighthouse
Repo: github.com/GoogleChrome/lighthouse What it does: The official Lighthouse audit engine. Performance, accessibility, best practices, SEO scores. Runs in Chrome DevTools, as a CLI, or as a Node module. Where it fits: Stage 1 (audit), per URL.
CLI mode gives you JSON output Claude can ingest:
npm install -g lighthouse
lighthouse https://yourstore.com/products/bestseller \
--output=json --output-path=./lh-pdp.json \
--emulated-form-factor=mobile --throttling-method=simulate
Then attach lh-pdp.json in Claude:
This is the Lighthouse JSON for our top-selling PDP. Don't summarize
scores. Tell me:
1. The single biggest LCP contributor and how to fix it on a
Shopify theme (specific Liquid changes)
2. Any third-party scripts that should be deferred
3. Image opportunities I can ship via the theme editor
4. Lighthouse CI
Repo: github.com/GoogleChrome/lighthouse-ci What it does: Runs Lighthouse on a schedule (cron / GitHub Actions), stores results, alerts on regressions against budgets you set. Where it fits: Stage 5 (monitor). This is how you catch the "an app installed last Tuesday tanked LCP on PDPs" before traffic drops.
npm install -g @lhci/cli
lhci autorun --collect.url=https://yourstore.com/ \
--collect.url=https://yourstore.com/collections/bestsellers \
--assert.preset=lighthouse:no-pwa
Wire it to a GitHub Actions cron, dump the result JSON, and have an Anthropic-SDK script (see #8) summarize the weekly diff and email it. That's the automated version of Stage 5 of the main loop.
5. pa11y
Repo: github.com/pa11y/pa11y What it does: Automated accessibility testing. Runs WCAG2AA checks per URL. Where it fits: Stage 1 (audit). Accessibility and SEO overlap heavily — heading order, alt text, color contrast, form labels. Fixing pa11y issues usually fixes SEO issues at the same time.
npm install -g pa11y
pa11y https://yourstore.com/products/bestseller \
--reporter json > pa11y-pdp.json
Hand the JSON to Claude alongside the Lighthouse report — overlap shows up clearly.
6. sitespeed.io
Repo: github.com/sitespeedio/sitespeed.io What it does: Multi-URL performance testing with budgets. Heavier than Lighthouse-per-URL — runs many URLs, multiple runs, regression detection. Where it fits: Stage 1 (audit) when you have >20 URLs to test (e.g. all your collection pages), or Stage 5 (monitor) as a heavier alternative to Lighthouse CI.
Docker is the easiest path:
docker run --rm -v "$(pwd)":/sitespeed.io \
sitespeedio/sitespeed.io \
https://yourstore.com/ \
https://yourstore.com/collections/bestsellers \
https://yourstore.com/products/bestseller \
-n 3 --budget.configPath budget.json
The HTML report includes filmstrips per URL, which makes it obvious which element is the LCP bottleneck — easier to send to Claude than raw JSON.
7. Model Context Protocol Servers
Repo: github.com/modelcontextprotocol/servers
What it does: Reference MCP servers — filesystem, fetch, git, postgres, and more. MCP is the plumbing that lets Claude read local files (audit JSONs), fetch URLs (your live store), and run git commands without you copy-pasting.
Where it fits: Across the loop. The filesystem server lets Claude read your lh-pdp.json / pa11y-pdp.json outputs directly. The fetch server lets it pull a live URL to verify a fix shipped.
# example: register the filesystem MCP server with Claude Desktop
npm install -g @modelcontextprotocol/server-filesystem
# then add the server to Claude Desktop config (see repo README)
The repo's README has the current install + config matrix for Claude Desktop, Claude Code, and other clients. Worth bookmarking — it's how you stop being a CSV courier.
8. Anthropic SDKs
Repos: github.com/anthropics/anthropic-sdk-python · github.com/anthropics/anthropic-sdk-typescript What they do: Official SDKs to call Claude programmatically. Where they fit: Stage 5 (monitor). The weekly Lighthouse-CI diff + AWT-audit-diff email is a scheduled script: pull the JSONs, send to Claude via SDK, format the response as a markdown email, send via SendGrid/Resend.
Minimal Python pattern:
from anthropic import Anthropic
import json
client = Anthropic()
with open('lh-this-week.json') as f: this_week = f.read()
with open('lh-last-week.json') as f: last_week = f.read()
msg = client.messages.create(
model='claude-opus-4-5',
max_tokens=1500,
messages=[{
'role': 'user',
'content': f'''Diff these two Lighthouse JSONs. Tell me regressions
on LCP, CLS, INP for the top-revenue URLs. Brief.
THIS WEEK:
{this_week}
LAST WEEK:
{last_week}'''
}]
)
print(msg.content[0].text)
Wire that to a GitHub Actions weekly cron + Resend, and you have a hands-off weekly SEO regression report.
How They Compose with Claude
The whole stack, end to end:
- Weekly cron (GitHub Actions) runs Lighthouse CI + theme-check + pa11y on your store.
- Results land in a folder Claude can read via the filesystem MCP server.
- A scheduled Anthropic SDK script prompts Claude with the diffs and your store context.
- Claude returns a ranked regression list + the one fix worth shipping this week.
- You review in your inbox Monday morning.
- Ship the fix via Shopify CLI (theme) or the Shopify connector (data).
- Next week Lighthouse CI catches whether the fix actually worked.
That's the difference between "I bought a Lighthouse subscription once" and "I run SEO on a system."
Most stores don't need all eight repos — start with Shopify CLI + Lighthouse + the connector, get the loop working, add Lighthouse CI when manual re-runs get annoying, add MCP + SDK when you want it automated.
Talk to Branva
We run this exact stack on client stores. We do the setup, you get the weekly email. Book a free call and we'll scope what fits your store.
Frequently Asked Questions
Do I need to be a developer to use these?
Shopify CLI and Lighthouse — basic command line is enough. Theme-check, pa11y, sitespeed.io — same. Lighthouse CI on GitHub Actions and the Anthropic SDK script — you need to write a bit of YAML and either Python or TypeScript. That last bit is where Claude itself helps: paste the cron requirements + an example, get the workflow file back.
Why both Lighthouse and sitespeed.io?
Different jobs. Lighthouse is one URL, deep diagnostics. sitespeed.io is many URLs at once with budgets. For a single PDP audit → Lighthouse. For "test all 40 collection pages weekly" → sitespeed.io.
Is the Shopify MCP server on this list?
Shopify ships an official connector inside Claude (the Shopify connector) — that's the supported path for product/order/discount operations. For pulling theme files and running CLI commands, the official Shopify CLI is the right tool, not a third-party MCP server.
Can I run these without paid Claude?
Pasting outputs into chat — free tier works for short audits. Running the Shopify connector for ship operations and using long-context for big audits — paid plan (see the breakdown). The Anthropic SDK pattern uses the API tier (metered, separate from Claude.ai plans).
What about Screaming Frog?
Not on GitHub (closed-source desktop app), but it's a strong AWT-style site crawler with a free tier (500 URLs). If you prefer a GUI crawler over CLI tools, Screaming Frog + the Step 5 prompt from the audit post works fine.
Related reading
- How Do I Use Claude to Run SEO for Shopify? — the loop these tools plug into.
- How Do I Run a Free Shopify SEO Audit with Ahrefs + Claude? — the audit half.
- How Do I Use the Shopify Connector in Claude? — the ship-data half.
- How Do I Connect Claude to the Meta Ads CLI? — the same pattern for paid.
- The AI Workflows pillar — every workflow we run.