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

Which forgotten subdomains are still answering?

Certificate history names every host a certificate was ever issued for, and some of those hosts are still live. A staging environment left public, an old storefront, a section a redesign moved off the main domain: none of it is visible from the domain itself until you ask each name whether anything answers.

Runs the full free audit, not an isolated subdomain-liveness pass. Nothing is stored.

What this check inspects

Shipwork takes the subdomains from your certificate history, removes the obvious infrastructure names such as mail, DNS, CDN and verification records, and asks each remaining name over HTTP whether it answers with a success status right now. The list is capped so it stays short, and only names that actually answered are reported as live. A name that does not resolve or times out is silently not live, never guessed at.

What a failure means

A subdomain that is live right now is a warning, because it is a part of the site that is easy to lose track of. The check never claims the subdomain is unknown to you or unindexed; only that it is reachable and is not the address you gave. When nothing is live, it reports the number checked and says none answered. When there are no non-infrastructure names, or certificate history cannot be read, it says so rather than reporting a pass.

How to fix it

  1. Look through the live names for staging, dev, test, admin and old project names.
  2. Put authentication or a network rule in front of any environment that is not meant to be public.
  3. Add robots noindex to non-production hosts as a second layer, not as the only layer.
  4. Take down hosts that no longer serve a purpose, and let the certificate lapse.

A typical failure, worked through

The setupA store spun up staging.example.com for a theme migration and never took it down. It still has a certificate and still serves the old catalogue.

What the check reportsThe check reads the certificate history, removes infrastructure names, probes the remainder, and reports that staging.example.com answered live right now.

The pointCertificate logs do not care that the host was temporary. The check closes the gap between a name existing in history and that name still answering today.

Questions

How is this different from the certificate transparency check?
The certificate transparency check lists the names in the logs. This one takes that list further and asks which of the non-infrastructure names still answer right now.
Does a name in the logs mean it is live?
No. It means a certificate was issued for it once. This check reports only names that actually answered just now.
Does it check every subdomain?
No. It removes obvious infrastructure names and caps the rest so the list stays short and readable. Anything not on the infrastructure list is still checked rather than assumed irrelevant.
Can I remove a name from the logs?
No. Certificates cannot be unlogged. You can expire the certificate and take the host down, but the name stays in historical logs.

Related checks and guides