OPEN SOURCE PKG_ID: TOOL_01 v0.3.0

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
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).

page
Title, meta, canonical, lang, noindex
schema
JSON-LD Organization + WebSite
images
Alt presence, lazy-loading, decorative
links
Broken internal, empty anchors
a11y
Heading hierarchy, ARIA basics
hreflang
Reciprocity, self-reference
social
Open Graph + Twitter Card
robots
robots.txt fetch + parsing
sitemap
XML sitemap fetch + validation
ai-readiness
llms.txt presence (community draft)
redirects
Hop chain, HTTP→HTTPS
security
HSTS, CSP, X-Frame, Referrer-Policy
performance
PageSpeed v5 (LCP, CLS, INP)
mobile
Viewport meta, mobile-first
content-quality
Thin content, boilerplate hero
analytics
Placeholder measurement IDs

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.

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.

console default
Minimal output: score + finding count. For quick CI checks.
json --format json
Pretty-printed AuditResult. Pipe into jq.
html --format html
Standalone report with embedded styling. Client-ready.
markdown --format markdown
Summary table + per-finding sections. Notion, Linear, Obsidian-ready.
text --format text
Plain text wrapped at 78 columns. For email or terminal logs.
xml --format xml
Standard XML 1.0. For enterprise tooling integration.
llm --format llm
XML tag-based with a leading instruction block, optimized for Claude/ChatGPT. Pipe straight into an AI assistant for automatic fixes.

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

AI tooling

Claude Code

Official audit-website skill pre-installed.

/audit-website https://example.com
Editor

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.

# surgical audit, markdown output
smartspec audit https://your-site.app --only schema -f markdown