Project file 03 / SEO audit tool
OpenSEO
An open-source SEO audit tool you host yourself: paste a URL and get a graded report with the fixes ranked.
View on GitHub (opens in a new tab)Next.js
React
TypeScript
Cheerio
Docker
Vitest
Overview
OpenSEO is a self-hosted SEO audit tool. Paste a URL and, about 15 seconds later, you get a report graded A+ to F across on-page SEO, performance, usability, security, links, social and AI search readiness, with every problem ranked by how much it matters and an explanation of how to fix it. It needs no paid APIs, no account and no database.
What you can do
A graded audit with fixes first
Around 70 checks across seven weighted categories roll up into one score. Problems are sorted by priority, and each one shows the evidence it found, such as the tags, the slow files or the broken links.
Site crawls and history
The crawler follows links page by page to find broken pages, missing or duplicate titles, thin content, slow pages and noindex. Every audit is kept with a shareable link, and each site's score is tracked over time.
AI search and share previews
It checks whether ChatGPT, Claude and Perplexity can crawl and quote a page, including llms.txt and server-rendered content. It also shows how a link looks when shared on Google, X, LinkedIn, Slack, WhatsApp and more, and measures the share image and every icon.
Reports, leads and an API
Reports export as PDF and JSON and can carry your own name, logo and colors. One script tag embeds the audit on your website to collect leads, and there is an API and a command-line tool for scripts and CI.
How it works
- Run OpenSEO with pnpm or Docker. A free PageSpeed key adds Core Web Vitals and screenshots.
- Paste a URL and watch the audit progress as each check runs.
- Work through the ranked fixes, then share the report, export it, or crawl the whole site.
Behind the build
No browser needed
Audits run on the server with plain HTTP requests, DNS and TLS lookups, and Cheerio to parse the HTML, so there is no headless browser to install. Progress streams to the page as newline-delimited JSON, and the same stream powers the API.
Safe to run in public
Every redirect hop is checked against private and internal addresses, so a public install can't be used to reach your own network. Audits are rate-limited per visitor, the number running at once is capped, and an admin password protects history, crawls, leads and settings.
Plain files, ready for Docker
Reports, crawls, leads and settings are stored as JSON in one data folder, so a backup is a copy. A small Docker image keeps that folder in a volume, and Vitest covers the checks, scoring and grading. It is MIT licensed.