Page SEO audit
Title, meta, headings, images and links analysed in seconds. Free, no upload. 1 GB max · Up to 1 GB · Processed locally, never sent to a server.
A page can be well written and still be badly marked up. The title runs past the width that actually gets displayed, the description is missing, two H1 headings compete for the hierarchy, half the images carry no alt attribute. This tool takes an address, fetches the HTML the server returns and applies ten checks to it. It shows a score out of 100, the address it really read, then a line-by-line breakdown with the value measured for each check.
One difference with the file tools on this site needs stating up front: the address you type leaves your browser. The page is requested directly first, with a ten-second timeout. If the server refuses that read, a second attempt goes through a public relay, api.allorigins.win, which fetches the page from its own machines and hands the content back here. The result banner says when that has happened.
What gets analyzed is the HTML delivered by the server, parsed by the browser parser without running a single line of JavaScript, without loading images or style sheets. The audit therefore covers the source, not the page as a visitor sees it once everything has finished rendering.
How to use it
- Enter the address to audit The field takes a full address or a bare domain name: the https:// prefix is added for you, and input that does not parse is rejected before anything is sent.
- Start the run with "Analyze page" The button switches to "Analyzing…": ten seconds of waiting for the direct attempt, fifteen more for the public relay if that one fails.
- Read the score in the circle The figure out of 100 shows green from 80 up, amber from 55 up, red below that. The address printed underneath is the one that was actually read.
- Check how the page was read If the line "Read via public proxy" appears under the address, the site blocked direct access and the page was fetched by a third-party service instead.
- Work through the check details Each check carries a green tick, an amber warning sign or a red cross, followed by the value found: title length, number of H1 headings, images without alt, split between internal and external links.
The address you audit leaves your browser
The file tools on this site send no request at all. This one does the opposite: it needs the contents of a remote page. The first attempt goes out from your machine, with your IP address, and fails on any server that does not allow cross-origin reads — CORS being the mechanism that stops the code of one page from reading a response served by another domain without explicit permission.
The fallback then goes through api.allorigins.win, a public relay that receives the address you typed, downloads the page from its own servers and returns the HTML. Three consequences follow from that.
- A page behind a login returns the sign-in screen, since no session cookie travels to another domain.
- An application firewall of the Cloudflare kind may answer a data-centre IP address with a challenge page, or with a flat refusal.
- An internal site filtered by IP address stays out of reach.
The ten checks, one by one
The title counts as correct between 15 and 65 characters: too short and it says nothing about the subject, too long and it gets cut in the results. The meta description is expected between 60 and 165 characters, past which the snippet on display risks truncation. The H1 has to be unique: without one, the page does not announce its subject; with several, the hierarchy turns ambiguous. Images are then counted, together with the number of them missing an alt attribute, red falling past 40 percent. That text is what screen readers read out and what feeds image search.
The viewport tag is looked for as such: without it a phone renders the page like a shrunken desktop screen, while indexing is done on the mobile version. The lang attribute on the root tag tells search engines, built-in translators and speech synthesis which language the document is in. The canonical URL is reported with its value, since it names the reference version when several addresses serve the same content. The Open Graph properties og:title, og:description and og:image are counted together, because they decide the preview shown when a link is shared.
Two whole-page measurements are left. Content volume counts the words in the body of the page and expects at least 300, red falling below 100. Link mesh collects every link and splits it between internal and external according to the host of the final address. The score adds up those ten lines: ten points each, five for a warning, zero for a failure. It therefore always lands on a multiple of five.
What the audit does not measure
The score covers markup and nothing else. No performance is timed: the Core Web Vitals collected in the field come from a site's real visitors and are consulted in Search Console or in the CrUX data set. The tool ignores your inbound links, rates no domain authority — a figure produced by third-party vendors, not a number published by Google — and says nothing about where you actually rank, which depends on the competition and on search intent. A page at 100 out of 100 is correctly marked up, not well ranked.
The same reservation applies to anything that depends on rendering. Structured data injected by a script, images loaded on scroll, text revealed after a click: none of it exists in the source that was parsed, so none of it is counted.
When this tool is the wrong choice
An application that builds its content in JavaScript will come out looking almost empty: no H1, a word count close to zero, while the visitor sees a full page. URL Inspection in Search Console shows the render as Google obtains it. A whole-site audit calls for a crawler that walks the links one after another; here, one address is examined at a time. And for a speed diagnosis, PageSpeed Insights loads the page and measures it, which this tool never does.
Frequently asked questions
Why does the score always move in steps of five?
Because it is the average of ten checks worth ten points each, with five points for a warning and zero for a failure. No intermediate value is possible: 72 or 88 will never come out.
What does "Read via public proxy" under the score mean?
That the direct read failed and the page was fetched by api.allorigins.win instead. The audited site saw a request from that relay, not from you, and the HTML analyzed is whatever it agreed to serve.
Can I audit a page behind a login?
No. A request to another domain does not carry your session cookies, and the public relay holds no account of its own. You will get the sign-in screen or an error, never the restricted content.
My site reports zero words and no H1 even though it is full of content
The HTML received is analyzed as it arrives, with no scripts executed. If the content is injected afterwards by a framework, it does not exist in the source that was delivered and the audit cannot see it.
Does the word count match the text I wrote?
Not exactly. The count covers all the text in the body of the page, menus, footer and scripts included. Read it as an order of magnitude, not as an article counter.
Is a title outside the stated range a mistake?
No, it is a warning. Those bounds are a guide: the real cut happens on pixel width, and a title set in capitals is truncated sooner than the same title in lower case.
Do I need an account or an email address to run an audit?
No. There is no sign-up form, no email field and no daily quota in the page: you type an address, press the button and the report is drawn underneath. What a run leaves behind on your side is one history line holding the host audited and the score, written to your browser storage and capped at the last four runs. The address itself does leave the tab, though — it is requested from your browser first, then from the public relay api.allorigins.win when the site refuses that direct read.
Can it audit a whole site, or only one page at a time?
One page per run. The tool reads the address you type and stops there: the internal links it finds are counted for the link-mesh check, never followed, so a twenty-page site means twenty separate runs. Auditing a site as a whole needs a crawler that walks the link graph and reports across pages — duplicate titles, orphan pages, broken links — which is a different kind of program.
Can I export the report as a PDF?
No. The report is drawn in the page and replaced the next time you press the button, so nothing accumulates from one run to the next. Printing to PDF from the browser, or copying the check lines into your own document, is the only way to keep a record of a given audit.
Is this the same thing as the SEO report in Google Search Console?
No. Search Console reports on a property you have verified ownership of: indexing status, the queries you actually appear on, Core Web Vitals measured on real visitors. This page reads the HTML a public server returns to anyone, so it works on an address you do not own — a competitor, a client site — but it sees markup only, never traffic and never position. No figure shown here comes from Google.
What counts as a good score out of 100?
Green from 80, amber from 55, red below that. Read those bands as a floor rather than a target: the checks measure presence and length, so a title of the right size passes whether or not it names your subject, and a description of 90 characters passes whatever it promises. The ten lines under the circle are the useful part, since each one prints the value found for the check that failed.
Similar tools
Discover other tools
- VAT calculator — Net ↔ gross instantly, common rates included.
- Translation — Machine translation via a free API (internet required).
- PDF → JPG — Export each PDF page as a high-quality image.
- Compress image — Lighter JPG, PNG and WebP with real gains shown.