Open Graph / Twitter Card

See exactly how your link looks on every platform

Paste a URL. SiteTrace reads the og:* and twitter:* meta tags and shows you the live preview for Twitter, Slack, LinkedIn, Discord, and Facebook — side by side. No signup.

Try:

Open Graph, Twitter Cards, and link unfurls: a complete guide

Every time you paste a URL into Slack, Discord, Twitter, LinkedIn, Facebook, or any messaging app with link previews enabled, the app reads a set of meta tags from the page and renders a card. The protocol is Open Graph (og:*), originally designed by Facebook in 2010. Twitter has its own namespace. Slack, LinkedIn, Discord, and others all implement Open Graph with their own preferences. If your meta tags are missing, broken, or incomplete, your link looks like raw text — no title, no image, no description, nothing to make anyone want to open it.

The minimum viable set

Every modern page should have, at minimum:

<meta property="og:title" content="...">
<meta property="og:description" content="...">
<meta property="og:image" content="https://...">
<meta property="og:url" content="https://...">
<meta property="og:type" content="article">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="...">
<meta name="twitter:description" content="...">
<meta name="twitter:image" content="https://...">

Most platforms fall back to og:* if twitter:* is missing, so the og:* set is the most important. Twitter-specific tags only override the equivalent og:* tag on Twitter.

Image requirements per platform

Different platforms want different image sizes. Get this wrong and your image gets cropped, letterboxed, or rejected.

The safest single-image strategy: produce a 1200x630 image for Facebook/LinkedIn/Twitter, and accept that Slack/Discord will downscale to their preferred aspect ratio.

Title and description limits

Each platform truncates at different lengths. Aim for the shortest to ensure nothing is cut off:

Why the image doesn't show up

Four common reasons an og:image renders as a blank box:

  1. Relative URL. og:image content="/og.png" will not resolve on most platforms. Use a full absolute URL: https://example.com/og.png.
  2. Wrong size. 200x200 will be too small for Facebook's high-quality card and may be ignored.
  3. Hotlink-protected. If your CDN refuses requests without a Referer header, the platforms' servers (which send their own Referer or none) will get a 403.
  4. Unsupported format. Some platforms don't render WebP, AVIF, or SVG. JPG and PNG are the safe choices.

Caching and how to force a re-scrape

Facebook caches og:image URLs for days. Twitter caches for a week. Slack caches for hours. When you change the image but the URL is the same, the platform shows the cached old image.

Two fixes:

  1. Change the URL. Even a query string change is enough: og.png?v=2. The platform sees a new URL and re-fetches.
  2. Use the platform's debugger. Facebook has a Sharing Debugger (developers.facebook.com/tools/debug/), Twitter has a Card Validator (cards-dev.twitter.com/validator). Paste your URL and click "Scrape Again" or "Preview Card". This forces an immediate re-fetch.

Single-page apps and dynamic meta tags

SiteTrace parses static HTML only. If your app injects og:* tags with JavaScript (every React, Vue, Svelte, or Angular SPA does this), the initial server response has empty og:* tags and the platform sees a blank card.

Three fixes:

Related SiteTrace tools: Security Headers Checker, SEO Checker, /check.

Use the API directly

The preview endpoint is also a JSON API. Free, no signup.

curl "https://api.sitetrace.it.com/api/preview?url=https://example.com" \
  -H "X-API-Key: $SITETRACE_KEY"

Returns { title, description, image, og, twitter }. The same endpoint powers this page — the form just renders the result for 5 platforms.