Why isn’t this page ranking?
Paste any URL — a landing page, blog post or docs page — and get the full picture: meta & snippet issues, content quality, AI-agent readiness, site infrastructure and domain authority. Plus a copy-paste diagnosis you can send to anyone.
Scoring a draft that isn't live yet? Use the Blog Post SEO Checker — it scores the text.
Related free tools
Browse all toolsCheck any domain’s authority score (DR by Ahrefs) free, see what it means for your rankings, and learn the fastest free ways to grow it.
Notify Bing, Yandex, Seznam and Naver about new or updated pages instantly. Generate a key, verify it, and submit up to 100 URLs.
Count words, characters, sentences, and paragraphs instantly with reading time estimate.
Generate a spec-correct llms.txt (with sitemap prefill) or validate an existing one — so ChatGPT, Claude and Perplexity can read and cite your site.
Quillly checks titles, metas, structure and snippets on every page, and tells you what to fix.
What is a page analyzer?
A page analyzer fetches one live URL the way a search engine crawler would, reads the HTML it gets back, and reports every check it ran — the ones that passed as well as the ones that failed. Most checkers list only problems, which leaves you guessing about everything they did not mention; this one shows both sides.
It audits a live URL. The page has to be published and publicly reachable — no login wall, no bot-blocking firewall — because the tool requests it over the network, follows redirects, and also fetches the site's robots.txt, llms.txt and sitemap. If you want to score a draft that is not online yet, use the Blog Post SEO Checker instead: it scores the text you paste in, not a URL.
How to use the page analyzer
- Paste the full URL of a page that is already live, including
https:// - Optionally add the keyword you want that page to rank for
- Press Analyze. The page, robots.txt, llms.txt, the sitemap and the domain's Domain Rating are fetched in parallel, so a slow robots.txt never holds up the report
- Read the biggest levers block first — it is the failures re-ordered by ranking impact, not by category
- Expand any red or amber row to see why that check matters and the specific fix
- Copy the shareable diagnosis to hand the findings to a developer or client
What each check group covers
| Group | What it checks | What a failure means |
|---|---|---|
| Meta & search snippet | Title tag, meta description, canonical URL, Open Graph tags, Twitter card — plus whether your target keyword is in the title | The page may still be indexed, but its search and social result is being written for it rather than by you |
| Content quality | Crawlable word count, a single H1, H2 sectioning on long pages, internal links, image alt text, content visuals, the lang attribute | There is not enough substance, structure or context on the page for an engine to match it confidently to a query |
| AI agent readiness | Whether the text is in the initial HTML or only appears after JavaScript runs, whether robots.txt blocks AI crawlers such as GPTBot, ClaudeBot or PerplexityBot, whether an llms.txt exists, and whether JSON-LD structured data is present | Assistants that do not execute JavaScript, or that are disallowed outright, cannot read or cite the page at all |
| Site infrastructure | The robots meta tag, robots.txt, a reachable sitemap, the mobile viewport, favicons, mixed content, and whether the URL redirected | Something at the site level is limiting this page — a noindex or a blanket Disallow: / stops it ranking no matter how good the content is |
| Authority | The domain's Domain Rating, from Ahrefs | Backlink authority, not on-page SEO, is the ceiling on what this page can realistically compete for |
How the score is worked out
Every page starts at 100. Each failed check subtracts points by severity: an error costs 12, a warning costs 4, and an informational note costs nothing. A page that cannot be fetched at all, or that returns an HTTP status of 400 or above, scores 0 and reports nothing else — there is no point grading a meta description on a page crawlers cannot reach.
Severity is about consequence, not effort: a missing lang attribute is an info note, while content that renders only via JavaScript is an error because a large share of crawlers see an empty page. Fix the errors first.
Frequently Asked Questions
Can I analyze a page that is not published yet?
No. This tool requests the URL over the network, so the page has to be live and publicly reachable. To check a draft, paste the text into the Blog Post SEO Checker at /tools/seo-checker — it scores the writing itself and needs no URL.
What is the difference between an error and a warning?
An error can stop the page ranking or being read at all: a noindex tag, a blanket crawler block, almost no crawlable text, content that only exists after JavaScript runs. A warning caps how well the page can do — a missing sitemap, no internal links, low domain authority. Errors cost three times as many points for that reason.
Why does it check robots.txt and llms.txt when I only gave it one page?
Because the most common reasons a single page will not rank are set at the site level. A robots.txt with Disallow: /, a missing sitemap, or AI crawlers blocked across the whole domain will sink a perfectly written page, and none of that is visible in the page's own HTML. Those files are fetched from the same origin as your URL.
Where does the Domain Rating come from?
Domain Rating is Ahrefs' 0–100 measure of a domain's backlink profile strength, and it is retrieved for the hostname of the URL you analyze. It is shown as a check rather than a verdict: below DR 20 the tool flags authority as a warning, because at that level backlinks are usually a bigger constraint than anything on the page.
Is the URL I analyze stored anywhere?
No. The checks run live each time you press Analyze, and nothing about the page is kept afterwards.