ShipworkSite inspection
Schema coverage

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.

Do your key page types carry the right structured data?

Structured data is how search engines and AI assistants read a page without guessing. The failure is rarely total: it is a product page that lost its markup after a theme update, or a homepage with no organization data at all.

Parses the JSON-LD on a set of key pages by type. Saved to your account if you are signed in to a paid plan.

How this check works

Shipwork fetches a set of your key pages, sees what kind of page each is, parses every JSON-LD block, and checks that the expected type is present and valid: WebSite or Organization on the home page, Product on product pages, Article on posts, LocalBusiness for local pages. It also flags JSON-LD that is present but syntactically broken, which is ignored entirely.

What the schema coverage check looks at

The check reads the raw HTML of each page in the crawl sample and lists the structured-data types it finds. It then compares those types with what that page type usually needs: a home page with WebSite or Organization, a product page with Product or ProductGroup, an article with Article, BlogPosting or NewsArticle, and a local page with LocalBusiness.

It also reads every JSON-LD block for validity. A block that is not valid JSON is ignored by search engines, so the check reports it as an error. The free run reads a sample of up to 20 pages. It reads raw HTML, so markup that is injected by JavaScript after load may not appear even when a rendered page shows it.

How to read a coverage result

A finding appears when a page carries none of the expected types for its page type. A product page with no Product or ProductGroup markup is reported as an error because product markup is what shopping surfaces read. A home page with neither WebSite nor Organization, or an article page with no article type, is reported as a warning.

A clean result means the sampled pages carried at least one of the expected types, or a type the checker does not classify. It does not prove that every page is covered, that required fields are present, or that the markup describes the page accurately. Coverage is the first question; completeness is a separate one.

Why page-type coverage matters

Structured data is how a search engine and an AI assistant read a page without guessing from the layout. A product page with no Product node has no machine-readable name, price or availability, so it cannot compete for a product result. A home page with no WebSite or Organization data gives an assistant less to resolve when it cites the brand.

Two failures look the same to a visitor and are different here. A page can have no markup at all, or it can have a syntactically broken block that is silently ignored. The check reports both, because adding markup that fails to parse changes nothing. It reads the raw response, which is the first thing a crawler sees.

Fix missing or broken markup

For each reported page, add a JSON-LD block in the page head. A minimal product looks like {"@context":"https://schema.org","@type":"Product","name":"Blue wool jacket"}. A home page typically carries WebSite and Organization, and an article carries a headline, an image and a date. Then add the fields a rich result needs, not just the type.

If the check reports invalid JSON, validate the block and correct the syntax, because one broken block does not affect the others. On Shopify and WooCommerce most themes output product markup from the product record, so fix the theme or the app rather than one page. Re-run the check and confirm the type now appears.

When to use related checks

Use structured data check to inspect one product page in depth, including the fields a rich result requires. Use rich results check to see whether each typed page carries the required properties, and schema vs page when the concern is whether the markup matches the visible page.

If you need to write the block itself, schema generator builds starter JSON-LD. The guides product schema on Shopify and product variants and ProductGroup explain the common shapes, and no product markup covers the failing case.

Questions

What is structured data?
JSON-LD markup that names what a page is about (a product, an article, a business) so search engines and assistants can read it reliably.
Which page types need it most?
Home (WebSite/Organization), products (Product), articles (Article/BlogPosting) and local pages (LocalBusiness).
Why does validation sometimes say it is missing when it is not?
Two causes: the markup is injected by JavaScript after load so raw HTML has none, or the JSON is syntactically broken and ignored. This check reads raw HTML.
How do I check if my pages have structured data?
Run this check on your site. It reads the HTML of each sampled page and lists the structured-data types it finds, then reports pages that carry none of the types expected for their page type. It also flags a JSON-LD block that is not valid JSON, because a block that cannot be parsed is ignored.
Why does a validator say my markup is missing when I know it is there?
Two causes are common. The markup may be injected by JavaScript after load, so the raw HTML has none of it, or the JSON may be syntactically broken and ignored. This check reads raw HTML. If a rendered browser shows the block but the check does not, suspect a script; if the block is present but invalid, validate its syntax.
Which page types need structured data most?
Home pages, product pages, article pages and local business pages. A home page normally carries WebSite and Organization, a product carries Product or ProductGroup, an article carries an article type, and a local page carries LocalBusiness. The check looks for these types by page type.
Does schema coverage use Search Console data?
No. It reads the pages in its own crawl sample and checks the JSON-LD in the raw HTML. It does not read Search Console reports or Google's rich-result status. Use it to find missing or broken markup, then confirm what a platform has accepted in its own tools.

Keep reading

What this reads

  • Reads public pages from outside your network, the way a crawler does.
  • No signup, and nothing is stored on the free checks.
  • One of 83 checks across discovery, content, markup, trust and catalogue data.
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__