I built a CLI that fails your build on broken SEO
Source: Dev.to
The Problem with Silent SEO Breakages
Last week I spent two hours copy‑pasting data from Screaming Frog into my CLI so Claude could analyze the issues and suggest fixes—one page at a time, like it was 2014. I realized there had to be an API for this, but after a cumbersome sign‑up process I decided to build my own tool instead.
Most developers experience this pattern:
- A meta description disappears.
- An
og:imagestarts returning 404. - Structured data breaks because a field was renamed.
- A page accidentally gets
noindex.
There’s no console error, no failing test, and no red CI badge. Weeks later traffic drops, Google Search Console shows lost rich snippets, and the broken og:image turns out to be the most shared page. SEO regressions happen silently, and that’s the core issue.
A Simple, ESLint‑Like CLI for SEO
I wanted something dead simple: run a command, get a report, and have CI fail when critical SEO issues are detected.
npx indxel check
Sample output
Found 12 pages
/ 95/100 A
/pricing 88/100 B
/blog 91/100 A
/blog/my-post 62/100 D
✗ Missing og:image
! Title too short (42 chars)
/about 90/100 A
Score: 85/100 (B)
Pages: 11/12 pass
1 critical issue.
- 30+ rules, zero configuration, ~30 seconds.
- Checks title & meta description (presence + length), Open Graph tags, canonical URLs, JSON‑LD structured data, robots directives, Twitter cards, viewport meta, favicon, and
hreflangfor multilingual sites. - Each rule contributes points to a total score out of 100, presented as a letter grade.
CI Integration
Running the same audit in CI mode exits with code 1 on critical errors:
npx indxel check --ci
GitHub Actions
name: SEO Check
on: [pull_request]
jobs:
seo:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npx indxel check --ci
Vercel (or any npm script)
{
"scripts": {
"build": "npx indxel check --ci && next build"
}
}
Broken SEO never reaches production.
Diff Mode – See What Changed
During development I’d fix a few issues only to introduce new ones. --diff shows improvements and regressions since the last run:
npx indxel check --diff
Sample diff
Score: 78 → 83 (+5)
IMPROVEMENTS (2):
+ /pricing 82 → 88
+ /about 85 → 90
REGRESSIONS (1):
- /blog/my-post 70 → 62
It’s essentially a Git diff for SEO health.
AI‑Powered Audits via MCP Server
Indxel can run as an MCP server, allowing AI assistants like Claude or Cursor to audit SEO directly from the editor.
{
"mcpServers": {
"indxel": {
"command": "npx",
"args": ["indxel-mcp"]
}
}
}
Now you can ask your AI, “Check the SEO on /pricing,” and it will report issues (e.g., a broken og:image) without leaving the code editor.
Getting Started
The CLI is free, MIT‑licensed, and requires no signup.
npx indxel init
Links
- GitHub: https://github.com/indxel/indxel
- npm: https://www.npmjs.com/package/indxel
- Website: https://indxel.com
Contributing
What SEO checks would you add? What did I miss? Feel free to comment, open an issue, or submit a pull request on GitHub.