ShipworkSite inspection
Checks
Every error, explainedGuides →
Pricing Learn Guides

How does your page look when someone shares it?

A broken preview is only visible in someone else timeline, which is why it goes unnoticed for months. This check reads the Open Graph and Twitter tags, then does the thing a tag alone cannot prove: it fetches the image and measures it.

Runs the Social preview check against a bounded sample of your site, from outside your network. Nothing is stored.

What this check inspects

Shipwork reads the Open Graph tags on the page: og:title, og:description, og:image, og:url, og:type and og:site_name, plus twitter:card. It checks that og:image is an absolute URL and that the declared og:image:width and og:image:height meet the 1200 by 630 recommendation for a large preview. When the image is absolute and has declared dimensions, it sends a header-only probe and stops if the file is larger than about two megabytes, then reads only the few header bytes needed to measure a PNG, GIF, WebP or JPEG, and compares the real size against the declared one. The image is never rendered, only measured.

What a failure means

Each missing Open Graph tag is a warning, and a missing og:image gets the strongest wording because it removes the preview image entirely. A relative og:image, missing og:image dimensions, dimensions below 1200 by 630, or a declared size that does not match the real file are warnings. An image larger than the probe limit is reported as informational because its size was not verified. A missing twitter:card is informational, since most platforms fall back to Open Graph.

How to fix it

  1. Set og:title, og:description, og:image, og:url and og:type on every shareable page rather than relying on the title tag.
  2. Use an absolute https URL for og:image, and make sure it returns 200 without a login or a bot challenge.
  3. Declare og:image:width and og:image:height and make them match the real file, at 1200 by 630 or larger.
  4. Add twitter:card with summary_large_image for a wide preview on X, and keep the image file under the probe limit.

A typical failure, worked through

The setupA theme sets og:image to a relative path and declares 1200 by 630, but the file behind it was re-exported at 600 by 315 during a redesign.

What the check reportsThe check reports that og:image is not absolute, that the dimensions are below the recommendation, and, once the URL is fixed, that the declared size disagrees with the real file.

The pointThe tags in the HTML can all be present and still describe an image that does not match. Only measuring the file catches the mismatch that makes platforms crop or reject the preview.

Questions

Which tags actually control a shared link?
og:title, og:description and og:image for most platforms, with twitter:card for X. The title tag is only a fallback, which is why a dedicated og:title gives you more control.
Why check the image dimensions?
A declared size that does not match the file, or a file below the recommended size, makes platforms crop the image or drop it from a large preview. Measuring the file is the only way to know.
Does the image get downloaded in full?
No. The check sends a header-only probe first and skips anything larger than about two megabytes, then reads only the bytes needed to measure the image when the file is small enough.

Related checks and guides