Free tool, no signup required

SEO Content Grader

Grade a URL or a pasted draft against 20 measured signals and 2 judged ones: title width in real pixels, structure, readability, keyword fit, trust markers, and a model's view of whether the content answers its query. Every signal shows its weight, what it earned, and the method that produced it.

3 grades remaining today (free)

Short answer

An SEO content grader scores a page against the on-page signals that are observable: how its title and description render in results, how it is structured, how it reads, whether the target phrase appears where searchers look, and what the page shows about who wrote it and when. There is no official content score, so this one shows its own arithmetic instead: 20 weighted, measured signals with the method printed beside each, plus two signals judged by a model and marked as judged, because whether a page answers its query has no HTML representation and pretending to measure it would be inventing a number.

Measured and judged are different claims, so they are kept apart

Most of what matters about content is measurable. A title is some number of pixels wide. A page has one H1 or it does not. A byline is present or absent. Those are measurements: run the tool twice and the same page produces the same number, and if you disagree with one you can check the method printed next to it.

Whether the content actually answers the question it targets is not measurable, and tools that fold it into a single opaque score are laundering an opinion through a number. This grader asks a model those questions, and renders the answers in their own block, marked as judged, weighted openly, and excluded from the score entirely when the model is unavailable.

Signal groupKindExamples
Results appearanceMeasuredTitle present, title pixel width, description length, keyword in title
StructureMeasuredOne H1, no skipped heading levels, subheading rhythm
WritingMeasuredWord count against a named boundary, consensus grade level, sentence length, passive share
Query fitMeasuredKeyword in first 100 words, in the URL, used without stuffing
TrustMeasuredAuthor, dates, article schema, outbound citations, content-to-template ratio
JudgementJudgedAnswers the target query; covers expected subtopics

The score shows its arithmetic, because that is the whole point

Every signal carries a weight, and the total is simply what the signals earned over what was possible, times 100. That sentence is printed on the result itself, along with each row's share, so a score of 71 is not a verdict to accept but a sum to check.

The denominator moves honestly. Give no target keyword and the five keyword signals leave the calculation instead of failing silently. Paste a draft and the signals that need a live page are excluded and named. When the AI layer is over its daily limit, the judged signals drop out and the score becomes purely a measurement. Nothing is ever scored as passed because it could not be checked.

Two limits, on purpose

The daily AI allowance is separate from the tool's ordinary limit because a judged run costs real money to serve. When it is spent, the measured 20 signals still run in full.

What this grader cannot know

The grader reads one page with no context, so it can tell you everything about the page and nothing about whether the page is the right one to work on. That takes data it does not have:

  • Which pages are worth grading. A page earning impressions at position 12 is worth an afternoon; a page nobody searches for is not. That is Search Console data.
  • Whether a finding repeats across the site. A missing byline here is usually a missing byline on every post in the template. That is a crawl.
  • What to write next. Coverage gaps on one page say nothing about the queries your site could rank for and does not address at all.

That ranked view, this page is worth updating, this fix repeats 40 times, this topic is missing entirely, is what CrawlRaven builds by joining your Search Console and GA4 data with a technical crawl. The grader is one step of that plan, run by hand on one page. It says so here because the alternative is implying a free tool can rank your priorities, and it cannot.

Using the grader on a real page

Start from a page with impressions and a position between 8 and 20 in Search Console, give the grader the URL and the query it should win, and read the rows top to bottom. Fix the measured rows first: they are cheap, specific and checkable, and a truncated title tag or a missing description is an edit measured in minutes. The trust rows are what E-E-A-T looks like in markup: an author, dates, and schema a machine can read. Then read the judged block as an editor's note rather than a verdict: if the model says the page never answers the question and lists three missing subtopics, that is your outline for the update. Re-run after editing; identical content is served from cache and does not spend an AI run.

For a draft, paste the text with the keyword set and expect a score built from fewer signals, with the skipped ones listed. Grade the published URL after shipping to pick up the page-level signals the paste could not show. The Readability Checker goes deeper on sentence-level rhythm, and the Heading Analyzer reads the outline properly, including the hidden and templated headings this tool deliberately skims.

What the grader reports

Arithmetic on the page

The total is earned over possible, and every row shows its own share

Title width in pixels

Measured in your browser with canvas, because Google cuts by width, not characters

Judged kept apart

The two model-judged signals render in their own block, marked as judged

An honest denominator

Signals that could not run leave the calculation and say why, never scored as passed

A named content boundary

Word counts against main, role=main, the longest article, or body minus furniture

Five formulas of readability

Consensus grade plus long-sentence and passive shares from the shared readability library

Trust markers read properly

Author, dates and schema through the same JSON-LD reader that handles Yoast's @graph

Works on drafts

Paste unpublished copy; the page-level signals are skipped and named, not faked

What this reads, and what it cannot

The grader reads the HTML your server returns, before any JavaScript runs, so content or schema injected client-side is invisible here, as it may be to Google's first pass. The judged block is a language model's opinion and is labelled as one; it can be wrong the way an editor can be wrong, which is different from the way a measurement can be wrong. And nothing on this page knows whether the graded URL is worth the work, which is a traffic question answered by the technical SEO audit joined to your Search Console data.

Frequently asked questions

What is an SEO content grader?

A tool that reads a page or a draft and scores it against the on-page signals that are actually observable: how the title and description will render in results, how the content is structured, how it reads, whether it uses its target phrase where searchers and crawlers look, and what it shows about who wrote it and when. This one grades 20 such signals and adds two more judged by a model, kept visibly separate.

Where does the score come from?

From arithmetic the page shows you: every signal has a weight, every run shows what each signal earned, and the total is earned over possible. There is no official content score anywhere, Google publishes nothing of the kind, so the only honest options are refusing to score at all or showing exactly how the number was built. This tool does the second.

How is this different from other content graders?

Most return a number out of 100 and keep the recipe to themselves, which makes the number unarguable and therefore useless: you cannot tell whether you lost points for a fixable title or an opinion the tool holds about word counts. Here every row shows its weight, what it earned, and the method that produced it, so you can disagree with a signal and know exactly what disagreeing costs you.

What does the AI part actually judge?

Two things with no HTML representation: whether the content answers the query it targets, and whether it covers what a page on that topic normally covers. It also lists questions a reader might still have, which are shown but never scored. These rows are marked as judged rather than measured and rendered apart from everything else, because a model's judgement and a measurement are different kinds of claim.

What happens if the AI judgement is unavailable?

The measured signals still run and the score is computed from them alone, with the judged signals excluded from the denominator rather than scored as zero. AI runs are also limited separately per day because they cost real money to serve; the measured half of the tool has no such constraint.

Why does it measure my title in pixels rather than characters?

Because Google cuts titles by width, not length. A 60-character title in wide capitals overflows the box while a 68-character title in narrow lowercase fits, and a checker counting characters calls the first one fine and the second one broken. The width is measured in your browser with the same canvas layout engine that renders the real results page.

Can I grade a draft that is not published yet?

Yes, paste it. Grading pasted text skips every signal that needs the live page, the title tag, the headings, the schema, the URL, and the report names each skipped signal and why, instead of quietly scoring the text as though it had passed them. The writing, keyword and AI signals all run in full.

What is a good score?

Above 80 means the observable signals are mostly in place; below 60 usually means several cheap fixes are available. But read the rows, not the total. A page can score 85 and still not answer its query, which is exactly why the judged signals exist and why they are marked as judgement. No number here predicts a ranking.

Does keyword density still matter?

Mostly at the extremes. Zero occurrences of your target phrase in the content is a real problem, and stuffing reads badly for people before it reads badly for machines. Between those, density is not a ranking factor, which the tool says on the density row itself rather than pretending the middle of the range is worth optimising.

Why do results differ from what I see in my browser?

The tool reads the HTML your server returns, before JavaScript runs, which is what a crawler reads first. Content, headings or schema injected client-side are invisible here, and if they are invisible here they may also be invisible to Google's first pass at your page.

Which pages should I run through this?

The ones Search Console says are close: pages with impressions at positions 8 to 20, where an on-page fix can actually move a ranking. Grading pages nobody searches for produces satisfying scores and no traffic. The grader tells you what to fix on a page; your Search Console data tells you which page is worth fixing.

Can I export the results?

Yes, as CSV: every signal with its group, whether it was measured or judged, what it earned, its weight, what was found and the method used. The method column is there so a result can be argued with rather than taken on trust.

Other on-page SEO tools

Canonical Tag Checker

Validate canonical tags for self-referencing, protocol mismatches, trailing slash conflicts, noindex conflicts, and og:url consistency.

Use tool

Hreflang Validator

Validate hreflang tags for international SEO: self-referencing, return tags, x-default, language codes, and duplicate detection.

Use tool

Schema & JSON-LD Validator

Validate structured data markup: required properties, date formats, nested entities, and JSON syntax. Supports all major schema types.

Use tool

Meta Tag Checker

Check title tags, meta descriptions, Open Graph tags, Twitter cards, canonical URLs, robots directives, and viewport settings.

Use tool

Meta Tags Generator

Write the title, description, and social share tags every page needs. Live character counts plus previews of how it will look in Google and on social.

Use tool

Keyword Density Checker

See which words and phrases your copy actually leans on. Single word, two word and three word counts with density and first-mention position.

Use tool

SERP Snippet Preview

See your title and meta description the way Google renders them, measured in pixels. Desktop and mobile, with the exact character your snippet is cut at.

Use tool

URL Slug Generator

Turn a list of page titles into clean, readable URL slugs. Accents transliterated, filler words optional, and duplicates caught across the whole list.

Use tool

Anchor Text Generator

Build branded, partial, long tail and naked URL anchor variations for any page, then audit the anchors you already have against a natural distribution.

Use tool

Readability Checker

Score any text on six readability formulas at once, then see which sentences are dragging the grade up. Passive voice and long sentences broken out separately.

Use tool

Page Word Counter

Count the words on any URL, with the body copy separated from the nav, header and footer. Unique words, reading time, paragraphs and the heading outline.

Use tool

Image Alt Checker

Audit the alt text on every image on a page. Missing attributes kept apart from decorative alt="", plus image links with no name, filenames used as descriptions and duplicates.

Use tool

Open Graph Preview

Paste your meta tags and draw the card each platform renders, cut where it really cuts. Works on staging and on tags you have not deployed yet.

Use tool

Twitter Card Validator

X retired its own validator in 2022. Check twitter:card on a live URL, see which tags X reads through the Open Graph fallback, and prove the image loads.

Use tool

Open Graph Checker

Fetch a live URL and read its og: tags the way a scraper does, then check the card image actually loads rather than only that the tag exists.

Use tool

Heading Analyzer

Read the H1 to H6 outline of any URL and find the skipped levels, empty headings and duplicate labels, with the page's own headings separated from its template.

Use tool

Bulk Title Tag Checker

Check up to 100 title tags at once, measured in pixels rather than characters, and find the duplicates across a set that no single-URL checker can see.

Use tool

Bulk Meta Description Checker

Check up to 100 meta descriptions at once, measured in pixels, and find the duplicates, empty tags and descriptions that just repeat the title.

Use tool

Helpful Content Checker

Check which of Google's helpful content signals a page actually shows: author, dates, sourcing, content ratio and ad load. No invented score.

Use tool

Read up on on-page content

A tool tells you what is wrong. These explain what to do about it.

Terms this tool checks

  • Content Structure

    Content structure refers to how information is organized on a web page using headings (H1-H6), paragraphs, lists, tables, and other formatting elements.

  • E-E-A-T

    E-E-A-T stands for Experience, Expertise, Authoritativeness, and Trustworthiness.

  • Keyword Cannibalization

    Keyword cannibalization occurs when multiple pages on the same website target the same keyword or search intent, forcing them to compete against each other in search results.

  • CTR (Click-Through Rate)

    Click-Through Rate (CTR) is the percentage of people who click on your search result after seeing it.

A grade for one page, a ranked plan for all of them

The grader tells you what to fix on the page in front of you. It cannot tell you which of your 400 pages deserves the afternoon, because that takes the impressions and positions sitting in Search Console. CrawlRaven joins GSC, GA4 and a technical crawl into one plan: what to write, what to update, what to fix first, ranked by the traffic behind it.