ShipworkSite inspection
On-page check

Crawlability

PaginationAre paginated pages set up right?Internal searchIs site search eating crawl budget?URL parametersAre parameters creating duplicates?Log analyserWhat does Googlebot actually crawl?Robots builderNeed a robots.txt file?Soft 404sAre pages “not found” but returning 200?JavaScriptCan crawlers see it without running JS?FreshnessIs my site quietly going stale?Robots.txtDoes robots.txt say what I think?

Indexing

Sitemap lastmodAre my sitemap dates valid?SitemapIs my sitemap actually fetchable?IndexingIs Google allowed to index my pages?CanonicalsIs Google indexing the wrong URL?Index signalsDo sitemap and index signals agree?Sitemap generatorNeed a sitemap.xml for my site?Bulk URL statusWhere does each of these URLs really land?Redirect builderNeed the redirect rules?RedirectsAre my URLs answering directly, over HTTPS?

On-page

Keyword ideasWhat are people searching for?SERP previewHow does my page look in Google?Content qualityAre your pages too thin or too alike?Image weightAre images slowing the page?CannibalizationAre pages competing with each other?On-page checkDoes the page use its target phrase?ImagesAre my images accessible and loading?Meta tag builderWhat should my title and share tags say?DuplicatesDo my pages compete for one query?

Links

Orphan pagesWhich pages can no link reach?Link graphHow deep do your pages sit?Anchor textDo links say what they point at?Outbound linksAre external links still alive?Broken linksAre internal links sending visitors nowhere?

Structured data

Rich resultsIs my markup eligible for a rich result?Structured dataIs my product schema valid?Schema coverageDo my key pages carry structured data?Social previewHow does my page look when shared?Schema vs pageDoes markup match the page price?Schema builderNeed valid JSON-LD?

International

Hreflang sitemapDo page and sitemap hreflang agree?HreflangDo my language versions link back?Hreflang builderNeed the hreflang tags?Page DoctorWhy is this page not doing well?Redirect planMy site has dead links — what redirects do I write?Sitemap diffIs anything missing from my sitemap?Robots simulatorWhat does my robots.txt actually block?Can Googlebot?Can Googlebot fetch this URL?
Every error, explainedGuides
Pricing Learn Error guides Run free audit

+1 free check

Welcome to Shipwork

Sign in free and your next check this month is on us.

Continue with GoogleContinue with email

We email you a 6-digit code. No password.

No card needed. Reports and watches follow you to any device.

Does your page use the phrase it targets?

Paste a page and the keyword it should rank for. This reads the raw HTML the way a crawler does and reports where the phrase is and is not: title, H1, first paragraph, URL, alt text, plus density and readability.

Fetches the page from outside your network and reads its raw HTML. Nothing is stored.

What this checks

The placements a search engine weights: the phrase in the title, the H1, the first 100 words, the meta description, the URL, image alt text and a subheading. Then keyword density (to catch stuffing, not to chase a number) and a Flesch readability score. It does not invent "target terms" from a competitor set we cannot see. That needs a SERP data licence, so we say so instead of guessing.

Run an onpage check for one target phrase

Suppose a page sells a linen shirt and should answer searches for linen shirt care. Enter the page URL and that phrase. If the result finds it in the description but not the title or main heading, first decide whether care advice is actually the page's purpose. A product page may need a short care section and a link to a dedicated guide rather than a title rewritten around a different task.

For a care guide, a descriptive title such as How to wash a linen shirt can communicate the task naturally even when an exact-match check does not count linen shirt care. Read each placement finding alongside the page itself. Use the result to spot omissions, then make the wording useful to readers; do not repeat an awkward phrase just to turn every placement green. Re-run after publication to confirm the fetched HTML includes your change.

What the on-page SEO checker reads

The check fetches the page as a crawler does and reads the raw HTML. You give it the phrase the page should target, and it reports whether that phrase appears in the title, the H1, the meta description, the first 100 words of visible text, the URL, any image alt text, and a subheading. The phrase is matched as plain text, so no keyword database is involved.

It also counts how often the phrase appears against the visible word count, and it calculates a Flesch readability score. Scripts, styles and markup are stripped before the text is measured, so the numbers reflect what a reader would see rather than the code around it, and navigation does not skew the readability figure. A page that hides its text behind a script may read as thin.

How to read the placement results

Each placement is present or missing. Missing from the title, the H1 or the first paragraph is usually worth fixing, because those are the places a search engine and a reader weight most. Missing from alt text or a subheading is a smaller point, and it may not suit every phrase, since supporting placements are not places to force a phrase that does not belong.

A clean result means the exact phrase appears in every checked placement. It does not prove the page will rank. The check matches the phrase as written, so a plural or a different word form will not count, it does not judge whether the page answers the query, and it does not compare your page with the pages already ranking for it.

Density, length and readability

Keyword density is reported to catch stuffing, not to chase a target. A density above roughly 4 percent is flagged as reading like repetition. A very low density on a long page is noted in case the phrase the page should target is barely mentioned in the body at all. A page can rank with a low density, so the figure is a prompt, not a score to raise.

A page under 300 words of visible text is flagged as thin. The Flesch score is a writing signal: 60 or above reads as plain, around 50 is denser, and under 50 is harder for a general audience. Readability is not a ranking factor, but it affects whether visitors stay, and both figures guide writing rather than predict search treatment.

Fix the missing placements

Add the phrase where it is missing, naturally. It belongs in the title, once in the H1, early in the body, and wherever a subheading genuinely needs it. If the phrase is missing from a live URL, remember that changing the URL means a redirect, so weigh that before renaming a page that already ranks and bring something in to earn the position.

For density, remove repetition rather than add more: use the phrase where it helps the reader and let synonyms do the rest. For thin pages, expand the content or merge it with a related page instead of padding. Then fix the template or the source so the same gap does not recur on every page of that type, since a template fix covers them all at once.

When to use related checks

Use SERP preview to see how the title and description render in the width search results use, and keyword ideas to find the phrasing people use. content quality reviews other on-page concerns beyond this single phrase, looking at the page as a whole. The preview confirms the title and description render, and the ideas list supplies phrasing people use. Together they cover the wording and the placement.

If two pages target the same phrase, use keyword cannibalization, which catches two pages competing for the same query before you invest in either. The free audit checklist sets this check in the order a first pass across a site usually follows, and a content fix is wasted if the page cannot be crawled or indexed at all. Check crawlability before editing the copy.

Questions

Does keyword density matter to Google?
No, not beyond spam. Google has said there is no ideal density. What matters is that the phrase appears where it is meaningful (the title, the heading, early in the page) and that the page answers the query. This check reports density to catch stuffing, not to chase a number.
Why not give me target terms like Surfer?
Those come from a competitor set we cannot see without a SERP data licence, so we do not invent them. What we can check honestly (the phrase you target, in the placements that matter, and readability) we do.
What is a good Flesch score?
60+ is plain English most people read easily. 50-60 is a little dense. Under 50 is hard for a general audience. It is a writing signal, not a ranking one.
Does this fetch my page?
Yes, from outside your network, the way a crawler does, so it reads the raw HTML. Nothing is stored.
Does keyword density still matter for SEO?
Not beyond spam. There is no ideal density figure, and modern ranking does not reward repeating a phrase. The check reports density to catch stuffing, not as a target. What matters is that the phrase appears where it is meaningful and that the page answers the query for the person who searched it.
How do I check keyword coverage on a page?
Enter the page URL and the phrase it should target. The tool reports whether the exact phrase appears in the title, H1, meta description, first 100 words, URL, alt text and a subheading, along with a density figure and a readability score. Each placement is listed as present or missing.
What is a good readability score?
Around 60 or above on the Flesch scale reads as plain English for most people. Between 50 and 60 is a little dense, and under 50 is hard for a general audience. It is a writing guide, not a ranking factor, and it does not measure whether the content is accurate or complete.
Why does the check miss my plural or variant phrase?
It looks for the phrase exactly as you entered it, so a different word form or a synonym will not match. Enter the exact phrasing you target, or run the check again with a variant you also care about and compare the placements. The literal match keeps the result predictable.
Does this fetch my page or use search data?
It fetches the page from outside your network and reads the raw HTML, the way a crawler does. It does not read search performance data, it does not read Search Console, and it does not compare your site with other sites, so it cannot tell you where you rank.