Free website SEO audit

Crawl Every Page. Audit Every Keyword. In Your Browser.

Enter any URL and this tool reads your robots.txt and sitemap, crawls up to 500 pages, scores each one, and shows you exactly which keywords every page targets — and which ones you are missing. No signup, nothing uploaded.

free seo audit toolwebsite seo checkerkeyword analysis per pagecrawl localhost
Runs 100% in your browser — no server, nothing uploaded

Crawls like Googlebot

robots.txt, sitemap.xml, then every internal link up to your page and depth limit.

Real on-page analysis

Titles, meta, headings, images, links, structured data and speed — with a fix for each finding.

Keywords per page

Which terms each page uses, how prominently, which it targets, and what the site is missing.

robots.txt · sitemap.xml · title · meta · headings · links · schema · speed · a11yNothing uploaded · No account

What the audit checks

The full crawl, not just the homepage

Most free checkers grade one URL and stop. This one follows your internal links, checks every page it finds, and then looks at the site as a whole.

On-page

Titles, meta and headings, page by page

Length, duplicates, missing tags, multiple H1s, skipped heading levels and keyword targeting — every page gets its own verdict.

Crawler

Reads robots.txt and sitemap.xml first

The crawl behaves like a search bot: robots rules are honoured, sitemaps — including sitemap indexes and .gz files — seed the queue, then internal links are followed.

Keywords

Real keyword analysis per page

Every term and phrase is scored for how often it appears, how prominently (title, H1, URL, headings, alt text versus body), and whether the page targets it.

Opportunities

Tells you what to write next

Phrases your site mentions repeatedly but never claims in a title or H1 are surfaced as content opportunities, ranked by how much you already talk about them.

Structure

Internal link graph and orphans

Broken internal targets, orphan pages nobody links to, redirects, dead ends and thin content — the structural problems that quietly cap a site.

Rich results

Structured data validation

JSON-LD is parsed for real. Broken blocks, missing FAQPage markup on pages that already answer questions, and missing breadcrumbs are all reported.

Accessibility

Images, alt text and page language

Every image missing an alt attribute is listed with its source, alongside missing lang and viewport tags that hurt assistive tech and mobile indexing.

Localhost

Audits your local dev site too

Point it at http://localhost:3000 and it crawls your development server directly — or drop in a ZIP of your build and audit a site the browser cannot fetch.

How it works

From URL to full report in four steps

Roughly a minute for a fifty-page site, and every run is repeatable before you ship.

Paste a URL — or upload a ZIP

Enter any address, including http://localhost:3000. If a site blocks cross-origin reads, zip your build and drop it in instead.

The browser crawls the site

robots.txt and sitemap.xml are read first, then pages are fetched in parallel up to the page and depth limit you choose.

Every page is analysed and scored

Meta, headings, content depth, links, images, structured data and speed are checked against a rule set, and each finding gets a fix.

Export the report

Download a self-contained HTML report, JSON, or CSVs for pages and keywords — or copy a text summary into a ticket.

What a browser-based SEO audit can and cannot do

Most SEO crawlers run on a server: they fetch a page, read the HTML, and repeat. This tool does the same thing, but the fetching happens in your own browser — which means no queue, no signup, no rate limit, and no page is ever stored anywhere. It also means one honest constraint you should know about before you start.

Three ways to cover a site the browser will not read

  1. Audit a site this page can read — same-origin pages and CORS-enabled hosts always work.
  2. Upload an export. Zip your dist folder or pick a folder of HTML files, and the analysis runs entirely offline on your own machine with no CORS rules involved at all.
  3. Temporarily allow the header. Add Access-Control-Allow-Origin: https://drops.sh to your server while you audit, then remove it.

Auditing localhost

Local development is the case this tool is built for. A page served over HTTPS may still request http://localhost because browsers treat localhost as a trustworthy origin, so auditing a local dev server works from the live site as well as from your own machine. Your dev server does need to send an Access-Control-Allow-Origin header: Vite, Next.js and Create React App all do this by default, and a plain Express or nginx setup usually does not. When it does not, zip the build and use the upload tab — that path always works.

How the keyword analysis works

For each page, the visible text is separated from the page chrome — navigation, header, footer and form elements are removed before anything is counted. What is left is tokenised into words, then into two- and three-word phrases. Each term is scored on three things: how often it appears, how prominent it is, and how distinctive it is across the rest of the site.

  • Prominence is weighted by zone. A term in the title counts far more than the same term buried in a paragraph, so the report reflects what a page declares rather than what it merely mentions.
  • Density is the share of the page a term occupies, which is useful for spotting both stuffing and under-optimisation.
  • Coverage is site-wide. A term is targeting a page only when it appears in that page title or H1; everything else is a mention.
  • Gaps fall out of that distinction. A phrase that appears on several pages but in no page title or H1 is demand you already satisfy in prose but never claim in the search results.

What the score means

The headline score is a model of on-page best practice, not a ranking prediction. Each finding damages its category in proportion to how much of the site it affects, and the category score decays exponentially with that damage, so one broken tag on one page barely moves the needle while a sitewide problem moves it a lot. Treat the score as a progress indicator for engineering work, never as a substitute for Search Console impressions and rankings.

Compare

What you get here, and what you do not

The trade-offs are real, so they are listed as plainly as the wins.

Feature
FreeDrops SEO Audit
Typical free checker1 page at a time
Paid cloud crawler$99+/mo
Crawls robots.txt and sitemap.xml
Per-page keyword analysis with prominence
Partial
Paid only
Runs entirely in your browser
No account or email required
Audits http://localhost dev servers
Page limit per run
Up to 500
Varies by plan
Paid tiers
Exportable HTML, JSON and CSV report
PDF on paid plans
Paid only
Server-side crawl (bypasses browser CORS rules)
Search volume data
Partial

Keyword analysis

What your site includes — and what to induce more of

Every page is broken down term by term, then rolled up into a site-wide picture you can act on.

What each page targets

Terms in the title, H1 and URL are what a page declares as its topic. The audit separates those from terms that merely appear in body copy, so you can see the difference between a page that owns a keyword and one that mentions it.

Where you are competing with yourself

When two or more pages put the same term in their title or H1, they split their own authority for that query. Those pairs are listed together so you can pick the winner and differentiate the rest.

What to write next

Phrases that appear across several pages but in no title or H1 become your opportunity list. You already have the substance — you just never claimed the query, so the report names the page to build on.

Limits worth knowing

It measures your site, not your rankings

There is no search volume data and no ranking data here — a browser tab cannot reach either. The audit tells you what your pages contain, what they target and what they are missing. Combine that with Search Console impressions and a keyword planner before you commit engineering time, and treat the score as a progress indicator rather than a promise.

  • Runs locally — no upload, no account, no stored data
  • Follows robots.txt and seeds from sitemap.xml
  • Every finding ships with a concrete fix
  • Cross-origin blocked pages are reported, never guessed

FAQ

SEO audit questions, answered

CORS, localhost, crawl limits, keyword density, data privacy and what the score really means.

Yes — free and no account. The entire crawl and analysis runs inside your browser, so there is no server cost to recover and no reason to gate it. You can audit as many sites and pages as you like, and nothing is ever uploaded or stored.
Because of the browser cross-origin rule. A page served from drops.sh may only read HTML from another domain when that domain sends an Access-Control-Allow-Origin header. When it does not, the browser refuses to hand the content over and the audit reports the URL as blocked — the page itself is fine. Use the upload tab with an exported ZIP to cover those pages, or audit a same-origin site.
Yes. Enter http://localhost:3000 (or any port) and the audit runs against your development server. Your dev server needs to send an Access-Control-Allow-Origin header, which Vite, Next.js and Create React App do by default. If your setup does not, zip the built output and drop it into the upload tab — that works regardless of server configuration.
You choose, up to 500 pages per run with a configurable link depth and up to twelve parallel requests. The crawl reads robots.txt and sitemap.xml first and follows internal links from there, so it behaves like a search bot rather than a random sampler. A 50-page crawl is usually quick enough to run before every release.
Search Console shows you what Google already did — impressions, clicks, coverage and the queries you rank for. This tool shows you what your site actually contains: which page targets which keyword, where descriptions are duplicated, where alt text is missing, and which internal links are broken. Use Search Console for demand and rankings, and this audit for the on-page work that earns them.
It measures density and prominence for every term and phrase on every page, and shows you exactly where each term appears — title, H1, URL, headings, alt text or body copy. That makes both stuffing and under-optimisation visible: a term at high density with no prominence is noise, and a term that is prominent but mentioned once is often a missed opportunity.
It lists phrases your site already uses across several pages but never claims in a page title or H1. That combination usually means real demand your content is already answering without ever competing for the query. Each opportunity lists how often and where the phrase appears and names the strongest existing page to build on.
You can try, and it works whenever the competitor allows cross-origin reads. Many sites do not, in which case the audit reports those pages as blocked rather than guessing. For any site you cannot fetch, save the pages and use the upload tab — the analysis is identical.
Anything that requires a server-side view: HTTP response headers, redirect chains beyond the first hop, outbound link rot (external links are listed but never requested), keyword search volume, live Core Web Vitals field data, and pages that only exist behind a login or client-side router. The report lists those limits explicitly alongside every result so you know what the numbers cover.
Nowhere. There is no backend for this tool: the crawl, the parsing, the keyword analysis and the report generation all happen in your browser tab. Closing the tab discards everything, and exported files are created locally with no upload step.

Audit your site, then ship the fixes

Run the free audit above, then publish the improved build on Drops with instant HTTPS, custom domains and analytics.

Start hosting free

Free forever · No credit card · Live in seconds