ShipworkSite inspection
Content quality

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.

Find pages with duplicate content or very little text

This duplicate content finder compares visible text across a sampled set of your pages and flags pages with short content or near-identical copy for review. Some repeated content is intentional, such as product variants. Check the page purpose and reader intent before deciding what to change.

Compares visible text and word counts on a set of sampled pages. Saved to your account if you are signed in to a paid plan.

How this check works

Shipwork reads a set of your pages, strips the markup, and measures visible word count and text overlap. It flags non-home pages under 250 words as a review threshold and groups pairs with high text similarity after filtering common site-wide terms. The crawl sample may not include every URL. These are diagnostic signals, not a Google ranking verdict, a web-wide plagiarism search, or proof that two pages answer the same query.

Duplicate content finder: a worked example

Suppose /products/linen-shirt-blue and /products/linen-shirt-green repeat the same description, with only the colour changed. The duplicate content finder compares body wording across sampled pages after removing common boilerplate. If the remaining wording meets the near-duplicate threshold, the pair is a prompt to review the pages, not an instruction to delete either product.

If each colour page helps shoppers choose a different item, keep both and add useful details specific to that variant: colour, photographs, availability and care information where they differ. If the URLs are two copies of the same item, decide which URL should remain and consolidate deliberately. Do not redirect a distinct product merely because its description is similar.

After editing, run the same domain again and check whether both URLs were included in the sample. Review the reported pair alongside the rendered pages. A pair disappearing from a bounded sample does not prove the entire site is free of duplicates. Use canonical check to inspect declared preferred URLs and duplicate title and description check for repeated metadata.

What the thin content checker measures

The thin content checker counts the visible words on each page it reads and flags pages under 250 words as thin, excluding the home page and pages that did not return a normal response. The free run reads a sample of up to 20 pages. It then compares the words of those pages to find near-duplicates, stripping out common boilerplate first.

Boilerplate is identified as any word that appears on 70 per cent or more of the sampled pages, which is usually navigation, header and footer text. The checker ignores pages with fewer than 20 remaining words and reports pairs whose remaining wording overlaps by at least 80 per cent. It lists up to three such groups of pages.

How to read a content quality result

A thin warning means those pages carried under 250 words of visible text. That is a shortlist for review, not proof that a page cannot rank: some legitimate pages are short, and some short pages answer a question completely. A near-duplicate error means two or more sampled pages used almost the same wording once boilerplate was removed.

The check reads the HTML response, so text that only appears after scripts run is not counted. It cannot judge relevance, usefulness or search intent, and it does not measure readability. A clean result means the samples were distinct and substantial; it does not prove every page on the site is, because the crawl is bounded.

Common causes and why they matter

Thin pages tend to be templates: tag archives, filtered collections, author pages and product variants that differ only by a single attribute. Near-duplicates appear when the same description is reused across colour or size variants, when a feed copies supplier text to many items, or when location or campaign pages share one body with the place name swapped.

A thin page rarely answers a search well, and a page that duplicates another competes with its own site for the same query. When two near-identical pages exist, a search engine chooses one, and it may not be the one you would pick. The signals that could have made a single strong page are split between them.

How to fix thin and duplicate content

For a thin page, decide whether it has a purpose. If it does, expand it with information only that page can offer. If it does not, merge it into a stronger page with a redirect or remove it. For near-duplicates, consolidate the best content into one URL and redirect the others, or add a canonical that points at the version you want indexed.

Where variants must stay separate, write distinct copy for each rather than repeating one block. On a store, edit the product description in the catalogue so future imports do not overwrite your change, and check whether the variant template is echoing the parent description. Re-run the checker after editing to confirm the counts improve.

When to use related checks

Use duplicate content when the concern is identical titles or meta descriptions rather than body copy. Use soft 404 check when a page returns a normal response but reads as empty or missing.

The duplicate content guide covers consolidation in more detail. Thin content and duplicate content are related but separate signals, so read the report that matches the problem instead of treating every warning as the same issue.

Questions

What does this duplicate content finder compare?
It compares visible text on sampled pages from the submitted site. It flags near-identical page copy after filtering common site-wide terms; it does not search the web for copied content.
Does a page under 250 words fail Google?
No. The checker uses 250 words as an internal review threshold, not a Google rule. Google says content length alone does not determine rankings. Review whether the page fully helps its reader.
Do two similar pages always compete for one query?
No. A similarity result is a clue to review. Product variants, translated pages and pages serving distinct tasks may appropriately share some wording. Compare the actual purpose and query data before merging.
Should I noindex a short page?
Not just because it is short. Review usefulness, uniqueness, audience and search purpose first. Expand it if a reader is missing useful information, consolidate it only when a true duplicate has an appropriate destination, or keep it when it serves a clear non-search purpose.
Does the check cover every page on my site?
No. It compares the sampled pages returned in the audit. Use a deeper crawl for broader coverage and verify important pairs directly.
How thin is too thin for SEO?
There is no official threshold. This check flags pages under 250 words of visible text, a level at which a page is unlikely to satisfy a competitive query on its own. Short pages can still work when they answer a question completely, so review each one rather than expanding for the sake of word count.
What counts as duplicate content?
For this check, two pages whose remaining wording overlaps by at least 80 per cent after common navigation and footer text is removed. They are effectively competing for the same query. The fix is usually to consolidate them or to make each genuinely distinct.
How do I check for thin content on my website?
Run the checker on your domain. It counts visible words on the pages it reads and reports those under 250 words, then compares the wording of the sample to find near-duplicates. It reads a bounded set of pages, so treat the list as a starting point.
Should I noindex thin pages?
Sometimes. A page with no search demand and no substance is often better removed or noindexed than left to compete with the pages you want indexed. A page with a genuine purpose is usually better expanded. Decide per page rather than applying one rule to all.
Does the content quality check read JavaScript-rendered text?
It reads the HTML response it fetched, so text inserted only by scripts after load is not counted, and a page can look thinner than a browser shows. If a page is built client-side, confirm its visible text in a browser before acting on a thin warning.

Keep reading

What this reads

  • Reads public pages from outside your network, the way a crawler does.
  • No signup, and nothing is stored on the free checks.
  • One of 83 checks across discovery, content, markup, trust and catalogue data.
83checks
0signups needed
0stored on free checks
Cool, just ran an audit and got some insights! Let’s see if I can fix them :)
Tenta Dev, @DevTenta
Whoah! this site is crazy, nothing to roast at all
Ainreek, @AinreekAI
cool as heck, tried it on my blog and the insights it gave are helpful and not bluff.
Refaat 🍉 (Mouse), @1Mouse__