SmartSpec
Technical SEO audit for sites built with AI.
Open-source CLI that speaks the language of modern builders (Lovable, Bolt, v0, Replit, Cursor). Finds placeholder titles, localhost canonicals, missing schema, absent llms.txt — plus 13 more checks generic audits don't know about.
Output you can read in 5 minutes, not 50. SmartSpec groups findings by rule: if 36 pages share the same canonical problem, you get one finding with all the URLs inside — not 36 duplicate tickets.
npm install -g smartspec Who is SmartSpec for
Vibe-coders & solo founders
You built your site with Lovable, Bolt or v0 and don't know if Google can see it. SmartSpec catches the patterns AI-builders leave behind: "Vite App" titles, localhost canonicals, empty source HTML, missing schema. 5 commands to remember, not 21. Aggregation keeps the output readable without an SEO sitting next to you.
Developers & SEO consultants
You want a repeatable, scriptable audit you can pipe into your tools: jq, Claude Code, CI/CD. Clean JSON, consistent exit codes, 7 output formats including an LLM-optimized one.
AI agents & Claude workflows
The --format llm output is XML
tag-based, ready to paste into Claude or ChatGPT for analysis + remediation. Official
audit-website skill included.
Agencies & teams
Deterministic output for pipeline integration: branded HTML for clients, normalized JSON for internal dashboards, Markdown for Notion/Linear.
5 commands, 16 modules
Five verbs to remember. The 16 modules live inside --only — they aren't separate commands.
smartspec audit <url> Full-site audit, 250 pages default, output grouped by rule.
smartspec audit <url> --only schema Surgical: only JSON-LD. Combinable: --only schema,performance.
smartspec page <url> Deep audit of a single URL, no crawl.
smartspec doctor Environment sanity check (network, Python, version).
smartspec help / version Inline help (5 commands, 16 modules, 7 formats) and version.
What it checks
16 check modules run on every audit. Consistent severity
(critical /
warning /
info /
pass),
pass-based scoring: pass / (pass + critical*3 + warning) * 100.
Each is callable via --only <module> or combined (--only schema,performance).
Findings aggregated — less triage
The same rule failing on N pages = 1 finding with every URL inside. No more 36 duplicate tickets for the same templated problem.
[critical] /audit/ — canonical mismatch
[critical] /services/ — canonical mismatch
[critical] /blog/ — canonical mismatch
[critical] /smartspec/ — canonical mismatch
…36 rows… {
"id": "page-canonical-mismatch",
"title": "36 pages: canonical URL is a 301 redirect",
"refs": ["/audit/", "/services/", "/blog/", "/smartspec/", "…+32"]
} From 36 tickets to 1 fix. Same problem, a quarter of the work.
7 output formats
One audit, many consumers: console for quick checks, JSON for pipelines, Markdown for
docs, HTML for clients, LLM for AI agents.
smartspec help shows every module and every format on a single screen.
jq.Why another audit tool?
Screaming Frog and Sitebulb are great for pro audits, but they're desktop GUIs. Lighthouse is a single-page measure, not a site audit. PageSpeed Insights has a narrow focus. SaaS audits are usually paid.
SmartSpec is a CLI: you run it from a terminal, from CI, from a script,
from an AI agent. It has specific checks for modern AI-builder patterns ("v0 by Vercel"
titles, canonical pointing at .lovable.app,
empty source HTML, default schema missing). And its scoring follows an explicit,
documented formula — not an opaque grade.
Open source (MIT), one-command install, runs on macOS and Linux, no telemetry, no data sent to external servers.
Integrations
Claude Code
Official audit-website skill pre-installed.
/audit-website https://example.com Cursor, Windsurf
Pipe LLM format straight into your editor.
smartspec audit $URL -f llm Documentation
FAQ
What is finding aggregation?
The same rule failing on N pages = 1 finding with every URL in the refs field.
Cuts noise drastically: you immediately see what to fix (the rule), not where (the N pages).
Can I run only one module?
Yes: smartspec audit <url> --only schema, or combinations like
--only schema,performance. Valid modules:
page, schema,
images, links,
a11y, hreflang,
social, robots,
sitemap, ai-readiness,
redirects, security,
performance, mobile,
content-quality, analytics.
Difference between audit and page?
audit runs the full site (default 250 pages, output grouped by rule).
page runs the deep checks on a single URL, no crawl.
Ready to see if your site is really ready?
Try it on a Bolt, v0 or Lovable site. 30 seconds is enough.