Developer tools#Site audit

jev-seo: live SEO audits from one URL, judged rule by rule

jev-seo crawls a site from one URL, checks 52 Google Search Central rules plus Core Web Vitals, and turns one audit into PDF, XLSX and Markdown reports.

Project facts

GitHub Ecosystem
Repositorygithub.com/AgriciDaniel/jev-seo
License
MIT
Language
Python
Stars
622
Data checked
2026-10-14

Snapshot figures reflect the check date and may change over time.

SEO audits split into two camps today: subscription tools that charge monthly for reports that feel like templates with a new logo, or the manual audit nobody actually does — checking robots, canonicals and structured data page by page. jev-seo (Python, MIT, 622 stars as of 2026-10-14) collapses the job into one command: hand it a homepage URL and it crawls the site, checks it against 52 rules tied to Google Search Central, measures Core Web Vitals, then asks TypeSafe’s Jev model typed questions about every page. The output is a ranked fix list with sources — delivered as PDF, Excel and Markdown from the same audit.

A jev-seo PDF report: cover, executive summary and priority plan pages

Core features

  • 52 rules tied to official documentation: robots.txt, sitemaps, redirects, broken links, canonicals, structured data and JavaScript-only pages, checked on the live site in about a minute; install Playwright optionally to audit content that only appears after JS renders.
  • The semantic layer goes to Jev: each page gets structured questions to TypeSafe’s System One model — page type, search intent, importance, helpfulness, specificity, trust, citability, title and meta fit, plus which pages compete for the same searches; every answer keeps its probability.
  • Fixes ranked, each with a source: every action carries an ID, priority, impact, effort, evidence, a fix and a link to the official reference; heuristic judgments are labelled as heuristics.
  • Honest numbers: missing data stays missing, scores rank work instead of predicting rankings or traffic, and the written summary is checked against the audit data before it renders.
  • One dataset, three formats: PDF for the client, XLSX as an editable action tracker, Markdown for GitHub and Obsidian — all generated from the same audit.json.
  • Costs in the open: standard mode needs no SEO data subscription and costs about one cent per site in Jev calls; --full adds DataForSEO rankings, keywords and backlinks for roughly $0.30 a run.

Typical use cases

  • A consultant taking on a new client site: run it first and the kickoff discussion starts from “action 17” instead of “I feel”.
  • An indie developer launching a site: run it on launch day and clear broken links, canonicals and structured data in one pass.
  • Anyone working inside Claude Code: install the repo as a skill and /jev-seo https://example.com drops a Markdown report into the repo, ready to review in a PR.
  • A site owner planning a redesign: run it before and after, then diff the two action lists to see whether the rebuild actually fixed anything.

Quick start

git clone https://github.com/AgriciDaniel/jev-seo.git
cd jev-seo
python3 -m venv .venv && . .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env                           # add TYPESAFE_API_KEY
bin/jevseo doctor                              # checks deps and keys, never prints values
bin/jevseo run https://example.com

The PDF comes from WeasyPrint, which needs Pango: brew install pango on macOS, or libpango-1.0-0 and libpangoft2-1.0-0 on Debian/Ubuntu. Reports land in jev-seo-reports/<domain>-<stamp>/; the offline test suite spends nothing — python -m unittest discover -s tests -v.

Summary

For anyone who maintains sites or serves clients and wants audits to rest on a checklist rather than a feeling. If you want rankings and backlink data for free, this isn’t that — that part lives in the --full mode’s DataForSEO pass at roughly $0.30 per run. Python 3.10+, MIT, 622 stars as of 2026-10-14, version 0.1.1, last pushed 2026-09-22.

Two things to know first: the semantic layer runs entirely on TypeSafe’s Jev, a real third-party API dependency — when the model changes versions or the service shifts, the report’s judgment layer shifts with it; and the official sample report was produced with --full on 2026-09-22, so standard mode contains no rankings or keyword sections. We previously covered jev-ultrafast from the same ecosystem: that one uses Jev to decide where a browser agent clicks, jev-seo uses it to judge which SEO fix is worth doing.