ShipworkSite inspection
Redirect plan

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?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 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

Turn dead links into redirects

This crawls a sample of your pages, requests every internal link it finds, and writes the redirect rules for the ones that 404. Four formats, ready to paste.

Fetches a sample of your pages and the links on them. Nothing is stored.

How this works

Shipwork runs the broken-links check: it reads a handful of your pages, collects the internal links, and makes a real request to each. Every link that answers 404, 410 or a server error is a dead end. For each one, the plan suggests a target. If the dead URL has a locale prefix and the same path answers without it, that live URL is the suggestion. Otherwise it points at your home page and marks it "review", so you change it to the closest real page rather than trusting a guess. The result is the same 301s written for nginx, Apache, Netlify and Shopify.

Questions

Where do I put the rules?
nginx: in your server block. Apache: in .htaccess or the vhost. Netlify (and Cloudflare Pages): a _redirects file at the site root. Shopify: it does not read a redirects file at all, so import the CSV under Online Store, Navigation, URL Redirects.
Why is the suggested target sometimes just my home page?
When a dead URL has no obvious live equivalent, the plan points it at the root as a safe default and marks it "review" rather than inventing a page. Change those by hand to the closest real page.
Should I redirect the dead link or fix it?
Both, in order: redirect the dead URL so nothing is stranded, then edit the page that contains the link to point at the live URL directly. The redirect is the safety net, not the fix.
Does this check every link on the site?
It crawls a sample of your pages and requests up to 25 of the internal links it finds. That catches the common cases in one pass. The paid deep crawl walks the whole site.