ShipworkSite inspection
Content gap

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?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?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?
Every error, explainedGuides →
Pricing Learn Guides
Sign in

Signing in is optional: it keeps your account, watches and connections on any device. Every free check, the audit and the score work with no account at all.

Sign in with GoogleOpens your account, or creates a free one PricingPlans and credit packs for the paid jobs

What do the pages around yours cover that you do not?

A page can be well written and still lose to the pages beside it, because they answer something it never mentions. This check reads your page and the pages that appear for the same query, then reports the subtopics they share and you do not have.

Reads your page and the pages that appear for its query, from outside your network. Nothing is stored.

What this check inspects

Shipwork decides which query the page should be compared on, in order of trust: an explicit query, then the top query for that page from a connected search property, then a short rewrite of the page title, then the title itself. It searches web results for that query, fetches the top external pages that are not your own host, and reads your page plus each competitor. It turns the text and every section heading into vectors and reports the subtopics that at least two competitors share and your page does not cover. It also compares depth, naming a page that is far shorter than the median competitor, and reports structured-data types a majority of competitors carry that your page lacks. It never claims a Google ranking: it says web results, and only says pages ranking above you when your own page was in the results and the pages it reports sat above it.

What a failure means

Fewer than two competitor pages fetched is reported as a reason the comparison could not be made, because a gap cannot be told from a single page. A page with too little readable text degrades the same way. With no query that can be derived sensibly, it says so rather than searching a title like Home. A subtopic two or more competitors share and your page does not is a warning. A page far shorter than the median competitor, and missing structured-data types most competitors carry, are reported on their own lines. A site with no gap found is told it was checked and clean, not left blank.

How to fix it

  1. Add a section for each subtopic the competitors share and your page is missing, answering it in your own words rather than copying theirs.
  2. Where the page is much shorter than the median competitor, expand the sections it already has rather than padding with unrelated text.
  3. Add the structured-data types most competitors carry, such as a product or FAQ block, when they suit the page.
  4. Use the query the check compared on as the target phrase, since that is what the page is being measured against.

A typical failure, worked through

The setupA store page about a hiking boot appears in web results, but the pages around it all cover waterproofing, sole type and returns. The store page mentions only the boot name and price.

What the check reportsThe check reports that several competitors cover waterproofing and sole type and the page does not, that the page is a few hundred words short of the median, and that most competitors carry a structured-data type the page lacks.

The pointThe gap is the difference between the page and the pages around it, stated as sections to add, which is directly actionable rather than a similarity score.

Questions

Which query does it compare on?
An explicit query if given, then the top query for the page from a connected property, then a short rewrite of the page title, then the title with a trailing brand removed.
Is the competitor list from Google?
No. The competitor pages come from a web-results search that is not Google, so the gap is a comparison against those pages, not a claim about Google ranking.
Why two competitors minimum?
One page is an opinion. A subtopic has to be shared by at least two of the pages fetched before it counts as a gap.
Does it need a connection to run?
No. A connection improves the query it compares on, but without one it falls back to the page title and still runs.

Related checks and guides