What GitHub Repos Help Me Run Shopify SEO with Claude?

Open-source GitHub repos for 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

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:

  1. Audit — Lighthouse + theme-check + pa11y + sitespeed.io
  2. Hand off to Claude — paste outputs, or pipe via MCP file server
  3. Decide — Claude (no repo, just the prompt)
  4. Ship — Shopify CLI for theme/redirect changes, Shopify connector for product/collection data
  5. 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:

  1. Weekly cron (GitHub Actions) runs Lighthouse CI + theme-check + pa11y on your store.
  2. Results land in a folder Claude can read via the filesystem MCP server.
  3. A scheduled Anthropic SDK script prompts Claude with the diffs and your store context.
  4. Claude returns a ranked regression list + the one fix worth shipping this week.
  5. You review in your inbox Monday morning.
  6. Ship the fix via Shopify CLI (theme) or the Shopify connector (data).
  7. 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