Node 18+ · TypeScript · ESM · MIT

93 checks, one score, every page.

Point it at a URL. Safi Studio Scanner crawls the site, audits every page it finds, and hands back one report you can render, gate a build on, or store.

Overall score78
security96
core-seo91
structured-data74
images58
links42

Example output. Shape of a real report, not a real site.

93Checks
15Categories
3Output formats
1Runtime dependency

Install, then audit

The audit engine is a library, not a command. Import it, call it, and read the report object, or ask for the report already rendered.

npm install safi-studio-scanner
import { audit, render } from "safi-studio-scanner";

// The full object: score, per-category scores, every finding.
const report = await audit("https://example.com", { maxPages: 20 });
console.log(report.score);      // 0-100
console.log(report.categories); // per-category scores and counts

// JSON for pipelines, CI, dashboards, and diffing one run against the next.
const json = render(report, "json");

// The same report as one self-contained HTML file.
const html = render(report, "html");

Crawl, check, score

01

Crawl

Same-origin pages from the start URL, capped by page count, concurrency, and depth. robots.txt and the sitemap are fetched once and shared.

02

Check

Every selected rule runs against every page, reading one context object: headers, parsed DOM, links, images, and rendered metrics if you asked for them.

03

Score

Findings are weighted by severity into a score per page and per category, then into one deliberately harsh overall number.

What it checks

Thirteen categories need nothing but the HTML and the response headers. Two make extra requests. Accessibility and Core Web Vitals need a rendered page, from either a local Chromium or the PageSpeed Insights API.

Core SEO10Static
Performance12Static + rendered
Security12Static
Structured data11Static
URL structure8Static
Content6Static
Crawlability6Static
Images6Static
Links5Network
Social media4Static
Legal4Static
E-E-A-T4Static
Analytics2Static
Internationalization2Static
Accessibility1Rendered, axe-core

Eleven phases, one shipped.

Phase 0 is what you can install today. The roadmap lists what is being built next and everything planned after it.

Read the roadmap
MIT licensed. Built by Abdulkader Safi.abdulkadersafi.comsafi-studio.comGitHubnpm