ShipworkSite inspection
Checks

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.

Are you sending the headers a secure site should?

Security headers are set once at the server or CDN and forgotten. When they are missing, nothing visible breaks, but browsers are left without instructions that protect visitors from downgrade, sniffing and framing attacks.

Runs the security-headers check against the host you enter, from outside your network. Nothing is stored.

What this check inspects

Shipwork fetches the response headers and checks for Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, Referrer-Policy, X-Frame-Options or a frame-ancestors directive, and Permissions-Policy. It flags an http page as an error, and notes when Server or X-Powered-By reveal the software version.

What a failure means

Missing HSTS and X-Content-Type-Options are warnings because they remove a protection browsers would otherwise apply. An http page is an error. A version-revealing Server or X-Powered-By header is informational, useful mainly because it narrows what an attacker knows.

How to fix it

  1. Set Strict-Transport-Security with a long max-age, and add includeSubDomains once you are sure every subdomain supports https.
  2. Add X-Content-Type-Options: nosniff so browsers do not guess content types.
  3. Introduce a Content-Security-Policy, starting in report-only mode so you can see what would break.
  4. Suppress version information in the Server and X-Powered-By headers.

A typical failure, worked through

The setupA site sits behind a CDN that adds HSTS at the edge, but a direct request to the origin bypasses the CDN and returns no HSTS header.

What the check reportsThe check, which requests the public host, sees the CDN header and passes. The related transport check reports whether preload and includeSubDomains are present, which is where the real gap usually is.

The pointCheck the header on the host crawlers and browsers actually use. A protection that exists only on one path is a partial protection.

Questions

Do security headers affect SEO?
Not directly, but sites without them are more exposed, and an http page or a broken certificate does affect how crawlers and visitors reach the site.
Is HSTS risky to enable?
It can be if a subdomain only supports http, which is why includeSubDomains and preload are separate decisions. Start without preload and add it once every subdomain is ready.
What is X-Content-Type-Options for?
It stops browsers sniffing a file content type and treating, for example, an uploaded text file as a script. It is a small header that closes a real class of attack.

Related checks and guides