Common problem

Your link shares as a blank box

You paste your website into a message or a post and get a grey rectangle with no picture. It is not a mystery. Previews are built from a handful of tags in your page head, and platforms cache them hard.

Link previews come from Open Graph tags in your page head, and if the image is missing, one of five things is wrong. There is no og:image tag at all; the image URL is relative rather than absolute; the image is not publicly reachable; it is the wrong shape or too heavy; or the platform cached your page before you added the tags and is still showing you the old blank version.

That last one catches nearly everyone. You fix the tags, re-share the link, still see a grey box, and conclude the fix did not work. It did. The platform is showing you what it stored days ago, and it will keep doing that until you run the URL through its debugger and force a re-scrape.

We treat the share card as a launch requirement rather than a nice to have, because it is the first thing anyone sees of your site when someone recommends you.

What actually builds a preview

Four tags do nearly all the work, and they live in the <head> of each page.

  • og:image is the picture. It must be an absolute URL starting with https://. A relative path such as /assets/preview.jpg works for a browser and fails for a platform fetching your page from somewhere else entirely. This is the single most common mistake.
  • og:title is the headline on the card. Without it, platforms fall back to your page title, which is written for search results and often reads oddly in a message.
  • og:description is the line underneath. Same fallback logic, same awkwardness when it is missing.
  • og:url is the canonical address for the thing being shared, which keeps the preview consistent when a link picks up tracking parameters.

Add twitter:card set to summary_large_image for the large format on X. Adding og:image:width and og:image:height helps platforms lay the card out before they have finished downloading the picture.

The likely causes, ranked

Roughly in order of how often each one turns out to be the real answer.

1. The platform cached the old version

The most common reason a correct fix appears not to work. Platforms fetch once and hold on to what they found, sometimes for a long time. The tags are fine; you are looking at a memory. Use the platform's own debugger to force a fresh fetch.

2. There are no Open Graph tags at all

Very common on older sites and hand built pages. Nothing to read means nothing to show, and the platform falls back to a bare grey box.

3. The image URL is relative, not absolute

The tag says /assets/og.jpg. Your browser resolves that against your domain automatically. A platform fetching from its own servers has nothing to resolve it against. It must be the full https://yourdomain.com/assets/og.jpg.

4. The image is not publicly reachable

Behind a login, on a staging server, blocked by hotlink protection, or sitting behind a firewall rule that treats unknown fetchers as bots. The test is simple and decisive: open the image URL in a private browser window with no session. If you cannot see it there, neither can the platform.

5. The image is the wrong shape, too big, or too slow

Wildly wrong ratios get cropped strangely or rejected. A very heavy file may time out on one platform while succeeding on another, which is why a link previews on WhatsApp and not on LinkedIn. 1200 by 630 and a sensible file size avoids all of it.

6. The page is only assembled by JavaScript

Platform fetchers read the HTML your server returns. They generally do not run your scripts. If the tags are injected client side, they may as well not exist. The check is to view page source, which shows what the server actually sent, rather than the inspector, which shows what the browser built afterwards.

7. A plugin or theme is fighting you

Two plugins each writing og:image produce duplicate tags and unpredictable results. If you find two, that is your answer.

Check these yourself, in this order

  1. View the page source and search for og:image

    Right click, View Page Source, and use find. Not the inspector: the source, which shows what your server actually sent. No tag means you found the problem in ten seconds.

  2. Check the image URL is absolute

    It must start with https:// and include your domain. If it starts with a slash, that is the bug.

  3. Open the image URL in a private window

    No session, no cookies. If it does not load there, it is not publicly reachable, and no amount of tag fixing helps until it is.

  4. Check the dimensions

    1200 by 630 is the safe default. Check the important content is not near the edges, since platforms crop differently.

  5. Run the URL through each platform debugger

    Facebook has a sharing debugger, LinkedIn a post inspector, X a card validator. They show you exactly what was fetched and, critically, let you force a re-scrape. This step is not optional after any change.

  6. Test in the places people actually share

    Paste the link into a message to yourself on WhatsApp, iMessage, Slack and LinkedIn. Each one is its own verdict, and they do not all agree.

  7. Check for duplicate tags

    Search the source for og:image again and count the results. More than one and something is writing them twice.

What a working share card needs

  • An og:image at an absolute https URL. Full domain included. This one mistake accounts for a large share of blank previews.
  • An image around 1200 by 630 pixels. The widely supported large card ratio, with the important content kept away from the edges.
  • A publicly reachable image. Not behind a login, not on staging, not blocked by hotlink protection or an aggressive bot rule.
  • og:title and og:description written for a human. This is a message in someone's chat, not a search result. Write it that way.
  • twitter:card set to summary_large_image. The rest falls back to your Open Graph tags, so there is nothing else to duplicate.
  • Tags in the server rendered HTML. Not injected by a script after load. Platform fetchers read what the server sent.
  • One set of tags, not two. Duplicates from competing plugins produce results nobody can predict.
  • A re-scrape after every change, then a real test. Until you force the fetch, you are looking at a cached memory of your old page.

When to bring in help

Honestly, this is one of the more approachable items in this section. If your site has a content management system with an SEO plugin, setting a share image may be a field in a panel. Bring someone in when:

  • The tags look correct in the source and the platforms still show nothing after a forced re-scrape.
  • You cannot edit the page head, because the site is locked down or nobody has the login. That is a bigger issue than the preview: see outdated business website.
  • The image is blocked by a security rule or a proxy and you do not want to loosen anything you should not. That configuration sits with Cloudflare management.
  • You want a card designed rather than just present. A grey box and a badly cropped photo are both technically working, and neither earns the click. That is web design work.
  • You are launching and want it right before the link starts circulating. Fixing it after everyone has shared it means fighting every platform cache at once, which is why we do it before launch. See the launch checklist.

Who this is for

  • Businesses whose link shares as a blank grey box
  • Owners who added the tags and saw no change, because nothing forced a re-scrape
  • Anyone about to launch who wants the share card right before the link circulates
  • Sites where the preview works on one platform and not another

When this is not the right fit

  • Anyone expecting a specific look on every platform. Each one crops and lays out its own way, so the goal is a card that survives all of them rather than one that is pixel identical everywhere.
  • Sites where the preview already renders correctly everywhere it is shared. Nothing to do.
  • Businesses hoping this affects rankings. It does not. It affects clicks, which is a different and still worthwhile thing.

What SolvenceHQ can help with

We treat the share card as part of launching a site rather than something to notice later. It is the first impression every time someone recommends you in a message, and it is cheap to get right up front.

  • Open Graph and Twitter card tags set correctly across the whole site, not just the homepage
  • A share image at the right size, publicly reachable, and designed rather than cropped at random
  • Absolute image URLs, correct canonical og:url, and no duplicate tags
  • Forced re-scrapes through each platform debugger, then a real test in real apps
  • Security and proxy rules checked so platform fetchers are not blocked
  • Share cards verified as part of every launch, before the link starts circulating

Common questions

I added the tags and the preview is still blank. Why?

Almost always caching. Facebook, LinkedIn, X and the messaging apps fetch your page once, store what they find, and keep showing that stored version for a long time. If they cached your link before the tags existed, they are still showing you the blank version they saved.

Every major platform has a debugger or post inspector that re-fetches the page on demand. Run your URL through it, force a re-scrape, and the preview updates. Nothing else you change will show until you do.

What size should the image be?

1200 by 630 pixels is the widely used standard for the large preview card, and it is the safe default because it fits the roughly 1.91 to 1 ratio the big platforms expect. Keep the important content away from the edges, since different platforms crop differently. Keep the file reasonably light so it loads before anyone scrolls past, and use JPEG or PNG rather than anything exotic.

Do I need Twitter tags as well as Open Graph?

Add twitter:card set to summary_large_image and you get the large format rather than the small thumbnail. Beyond that, X falls back to your Open Graph tags for the title, description and image, so you do not need to duplicate everything. Open Graph is the one that carries the load across Facebook, LinkedIn, Slack, WhatsApp, iMessage and most other places your link gets pasted.

Why does it work on WhatsApp but not on LinkedIn?

Each platform fetches independently, caches independently and has its own rules about file size, ratio and how patient it is. A slow image can be fetched fine by one and abandoned by another. Different results on different platforms usually mean your image is borderline rather than wrong: too heavy, too slow, or an odd ratio. Run the platform that fails through its own debugger and it will usually tell you exactly what it did not like.

Does the preview image affect my SEO?

Not directly. Open Graph tags are not ranking factors. What they affect is whether anyone clicks the link when it is shared, which is a real business outcome even if it never shows up in a ranking report. A blank grey box tells people nothing and looks abandoned. We treat it as a launch requirement for that reason, not an SEO one. For actual ranking work, see technical SEO.

Get a Quote

Want your share card fixed and tested?

Send us the URL. We will set the tags correctly, force the platforms to re-fetch, and show you the preview working on each one.