ShipworkSite inspection
Traffic at risk

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.

Which problem is costing you the most traffic?

A list of problems is not a plan. This reads your own search data to find the pages that actually earn clicks, checks each one, and orders the faults by the traffic sitting on them. The page earning forty clicks a month with a broken canonical comes first, however interesting the others look.

Reads your connected search data and fetches your highest-traffic pages. Nothing is stored.

Search Console

Not connected. Sign in and Connect Search Console to read Google's own verdict for this page. The check below still runs from public signals without it.

How this check works

Shipwork reads which pages earned clicks in the last 28 days from your own connected search property, fetches the highest-traffic ones, and checks each for the things that quietly remove a page from search: an error status, a noindex, a canonical pointing elsewhere, a missing title. The findings are then ordered by the clicks each page earns.

What the traffic at risk checker reads

The check reads your connected search data for the last 28 days and ranks pages by the clicks each one earns. It takes the top pages with at least one click, up to twelve, then fetches each one and checks the signals that quietly remove a page from search: a status other than 200, a noindex directive, a missing canonical, a canonical that points elsewhere, a missing title, a long title and a missing description.

It then weights each problem by the clicks on that page, so the total at risk is the traffic sitting on pages with an error or warning. It needs a connected search property, because without the click data there is no way to order the list. It fetches a bounded set, so it describes the pages that earn the most, not every page.

How to read the result

A clean result means the highest-traffic pages returned 200, are indexable and each has a title and a coherent canonical. That is the strongest available signal that the traffic you already have is not about to be lost to a page-level fault. It does not measure future opportunity, which the priorities list covers.

An error finding, a non-200 status or a noindex, sits on traffic at immediate risk. Canonical and title problems are warnings. A long title or a missing description is informational, because it affects the snippet rather than access. A page the check could not fetch is reported as a gap with no severity, so it never outranks a real problem.

Common causes and why they matter

Faults on high-traffic pages usually arrive from a template or deployment change: a noindex left on after staging, a canonical pointing at an old host, a migration that changed a URL, or a plugin that rewrote titles. Because these pages already earn clicks, the cost of leaving them is measurable rather than speculative.

A noindex or an error status removes the page from search entirely, so its clicks fall to zero. A canonical pointing elsewhere transfers preference to another URL. A missing title or description changes what searchers see and can reduce clicks even when the page still ranks. The order reflects clicks, so a small fault on a busy page outranks a large fault on a quiet one.

How to fix the top finding

Start with the single page the check names first. Remove an unintended noindex, restore a 200 response, point the canonical at the page's own URL, and give the page a distinct title and description. Fix it at the template or plugin level so the same fault does not affect the next deployment.

On Shopify, check theme settings, the noindex on pages and the canonical output; on WooCommerce, check the SEO plugin and any staging flag. After fixing, confirm the page is indexable and rerun the check with the same connected property. Then move to the next page on the list.

When to use related search data checks

Use the fix priorities list for opportunity, the traffic you might win, which rarely matches this exposure list. Use search data to connect the property this check reads.

When a page is not indexed at all, see why pages are not indexed and the indexability check.

Questions

How is this different from the fix priorities list?
That one ranks opportunity, the traffic a page might win. This ranks exposure, the traffic a page already has and might lose. Both are useful and they rarely agree, which is the point of having both.
Why only the highest-traffic pages?
Because a fault on a page nobody visits costs nothing. The check fetches the pages that earn the most clicks, where a problem is worth fixing today.
Do I need Search Console connected?
Yes. Without it there is no way to know which pages earn traffic, and the whole ordering depends on that number.
How many pages does the check inspect?
It takes the top pages by clicks with at least one click, up to twelve, over the last 28 days. It fetches those pages and checks each one. It is a bounded set, so a fault on a low-traffic page below the cut is not listed here.
Why is one of my pages missing from the list?
Only pages that earned at least one click in the 28-day window are candidates, and only the top twelve by clicks are fetched. A page with no clicks, or one below the cut, does not appear. The check is ordered by what the faults cost, not by what exists.
What does a non-200 status mean in this list?
It is an error finding and immediate risk. The page did not return a successful response, so a visitor and a crawler get an error while that URL still earns clicks in search data. Fix the status or restore the page before anything lower on the list.

Keep reading

What this reads

  • Ranks your pages by the clicks a fault is costing, from your own Search Console data.
  • Reads the property you connected; no data leaves your account.
  • Every figure is your own impressions and clicks, not an estimate.
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__