Home/ Guides/ Discord link preview not showing
Guide · Open Graph
Your Discord link preview isn't showing?
Discord reads the same Open Graph tags as everyone else — but it has its own quirks that quietly kill the embed: angle brackets, a blocked crawler, a missing image, a sticky cache. Here's each cause and the one-line fix.
The short answer
Don't wrap the link in < >, let Discordbot/2.0 fetch the page, ship an absolute og:image, then add ?v=2 to bust Discord's cache.
Discord has no debugger and no "scrape again" button. It caches each exact URL, so editing your tags isn't enough — you have to make Discord see a different URL (a query string, or a re-pointable short link) before it re-reads the page.
Want to see the card before you paste it in a channel? The free slsh.me Open Graph checker renders the real Discord embed — plus X, Facebook, LinkedIn, Slack, iMessage and WhatsApp — from your live tags, no login.
How Discord builds an embed.
When you paste a link, Discord's crawler fetches the page and reads a small set of tags. Get these right and the card appears.
It fetches the page as Discordbot/2.0
Discord sends its own crawler (user-agent Discordbot/2.0) to your URL. If your server, robots.txt, or bot-protection blocks it, Discord gets nothing and shows a bare link — no embed.
It reads your Open Graph tags
Discord builds the embed from og:title, og:description, og:image, og:url and og:type. The og:image must be an absolute HTTPS URL that's publicly reachable — a relative path or a login-walled image won't render.
It sizes the image from the dimensions you declare
Declare og:image:width and og:image:height (1200×630 is the safe card size). With those set, Discord shows the full-width image; without them — or with a tiny image — it falls back to a small side thumbnail.
It colours the accent bar from theme-color
The strip down the left of a Discord embed comes from your page's <meta name="theme-color">. It's optional, but it's the cheapest way to make the embed look like your brand instead of Discord grey.
Why it's not showing.
Almost every missing Discord preview is one of these. Find your symptom, apply the fix.
| Cause | What's happening | Fix |
|---|---|---|
Link wrapped in < > | Angle brackets tell Discord to suppress the embed on purpose. | Paste the bare URL, no < or > around it. |
| Discordbot is blocked | Your robots.txt, WAF, or bot-fight mode blocks Discordbot/2.0. | Allow Discordbot; serve a 200 over HTTPS to its crawler. |
Missing / relative og:image | No image tag, or it points at a relative path. | Add an absolute og:image (https://…), 1200×630. |
| Image too large or unreachable | The image is huge, slow, or behind a login, so Discord drops it. | Host a reasonably sized public image; keep it well under a few MB. |
| Stale cache | Discord cached an empty or old scrape for that exact URL. | Append a query string — ?v=2 — so it re-fetches. |
| Embed manually removed | Someone hit the ✕ on the embed, or "Suppress Embeds". | Re-post the link, or stop suppressing embeds on the message. |
| Embeds off for you | The channel/role lacks the Embed Links permission. | Grant Embed Links to the role in that channel. |
There's no Discord debugger — so test before you post.
Discord gives you no Sharing Debugger. Facebook and LinkedIn both have official tools that re-scrape on demand; Discord has neither, and it caches each URL for hours. That makes "just paste it and see" an expensive way to debug — every failed attempt is another cached miss you then have to bust with a query string.
Check the tags off-platform first. Because Open Graph is a public spec, any checker can fetch your page as a crawler would and render the exact embed Discord will build — before you ever paste the link into a channel. Get it right once, post it once.
The free slsh.me Open Graph checker fetches your page, lists every og: and twitter: tag, runs a best-practices audit, and renders the real card on Discord, X, Facebook, LinkedIn, Slack, iMessage and WhatsApp — no login needed.
Want the embed right the first time? Shorten your link on slsh.me and design its Open Graph card in seconds — then re-point it anytime without fighting the cache. Free.
Questions
Why is my Discord link preview not showing? +
<https://example.com> suppresses the embed on purpose), the page blocks Discord's crawler (Discordbot/2.0), the og:image is missing or relative, the image is too large to fetch, or Discord cached an empty scrape from before your tags were live. Fix the tag, allow Discordbot, and append ?v=2 to force a fresh fetch.Does Discord use Open Graph tags? +
og:title, og:description, og:image, og:url and og:type — to build its embed, plus the theme-color meta tag for the embed's left accent bar. The og:image must be an absolute HTTPS URL that's publicly reachable.How do I force Discord to refresh a link preview? +
?v=2 (then ?v=3) so Discord treats it as a new link and re-scrapes the page. A short link you can re-point sidesteps the cache entirely.Why does my image show as a small thumbnail instead of a big card? +
og:image is big enough and declared with og:image:width and og:image:height. A 1200×630 image with those dimensions set renders the full-width card; a small or undimensioned image falls back to a side thumbnail.Ship a link that unfurls everywhere.
Shorten any URL with slsh.me and design its Open Graph card — title, description, image — once. It ships valid tags Discord reads on the first fetch, you can re-point it without fighting the cache, and you get live click analytics for free.
Create a link with slsh.meFree forever · see pricing