Skip to content
Álvaro García

Tool · 2026

Live

SEO Auditor

A live technical and content SEO audit, right in the browser

Role
Product, SEO judgement and AI-directed development
Year
October 2026
Stack
  • Next.js 16
  • TypeScript
  • cheerio
  • undici
  • NDJSON streaming
  • PageSpeed Insights API
  • Vitest
your-domain.comAudit
  • Indexability17
  • On-page16
  • Content10
  • Links7
  • Technical10
  • Structured data4
  • Performance6

70 checks per category

Overview

Crawls up to 25 pages of any public website, runs 70 checks across 7 areas and returns a prioritised list of what to fix first, with evidence and recommendations.

My CV mentioned my own SEO audit tooling; this is the public version, built so anyone can use it.

checks
70
scored areas
7
pages per crawl, max
25
audit data stored
0

AI usage

Built with Claude as a force multiplier. I defined the checks, thresholds, scoring and security model; tests verify every rule. No LLM is used while auditing: results are deterministic and explainable.

Models: Claude

01 · Problem

SEO tools say a lot and prioritise little.

Professional suites return hundreds of warnings with the same visual weight. For a small marketing team the real question is different: what do I fix first, and why?

I wanted a tool that answers exactly that, with concrete evidence per URL and an actionable recommendation for every finding.

02 · How it works

From domain to action plan in under a minute.

  1. 01

    Validation

    Public URL, no private IPs

  2. 02

    robots.txt

    Rules and declared sitemaps

  3. 03

    Crawl

    BFS, same domain, up to 25 pages

  4. 04

    Links

    Internal and external, HEAD with GET fallback

  5. 05

    Probes

    Soft 404 and HTTP → HTTPS redirect

  6. 06

    Performance

    PageSpeed Insights in parallel

  7. 07

    Analysis

    70 checks and scoring

03 · Coverage

What it analyses.

Indexability
HTTP status, noindex in meta and header, canonicals (missing, multiple, cross or broken), hreflang with reciprocity, redirect chains, soft 404, robots.txt and sitemaps.
On-page
Title in characters and approximate pixel width, meta description, H1 and skipped levels, language, viewport, charset, Open Graph, Twitter Card and favicon.
Content
Thin or duplicate content, text/HTML ratio, image alt text, target keyword in title, H1, description and intro, density, n-grams and readability (Fernández-Huerta for Spanish, Flesch for English).
Links
Broken internal and external links, links to redirects, empty or generic anchors, internal nofollow and click depth.
Technical
HTTPS, HSTS, security headers, mixed content, compression, TTFB, HTML weight, render-blocking resources and images without dimensions.
Structured data and performance
JSON-LD validation per schema.org type and lab plus real-user (CrUX) Core Web Vitals via PageSpeed Insights.

04 · Decisions

Judgement over volume.

Priority = severity × reach × effort
An issue that hits every page and takes five minutes to fix rises; a structural improvement on a single URL sinks. The list sorts itself.
Explainable by design
Every finding includes why it matters, how to fix it and the affected URLs with the specific data point (length, HTTP code, selector).
No LLM at runtime
Rules are deterministic: the same site gives the same result, with no per-audit cost and no made-up answers.
Streaming
The server streams progress as NDJSON, so you see which page is being crawled instead of waiting blind.

05 · Security

A public tool that makes requests for you has to be safe.

An auditor that downloads URLs chosen by any visitor is a classic SSRF vector. These are the layers of defence.

  1. validation

    http/https only, no credentials in the URL, limited ports and internal hostnames blocked.

  2. DNS

    Every connection resolves DNS and rejects private, loopback, link-local, cloud-metadata and reserved IPv6 addresses — after every redirect too (anti DNS rebinding).

  3. limits

    Per-request and per-audit timeouts, 3 MB per document, 5 redirects and per-IP rate limiting.

  4. privacy

    Nothing is stored: the report lives in your browser and you can export it as JSON or Markdown.

06 · Learnings

The hard part is deciding what not to flag.

Writing checks is easy; calibrating them is what separates a useful tool from a noisy one. For example, a 403 on an external link is not counted as broken, because many sites block bots without being down.

I reused the SEM Auditor’s logic (explainable rules, severity and priority) and brought it to the web with streaming, unit tests per rule and a security model designed from day one.