Why Discord Link Previews Aren't Showing: Causes and Fixes
Discord not showing a link preview?
The most common causes are disabled embeds, missing or inaccessible Open Graph metadata, or Discord being unable to fetch the page or image. Check the URL with an OG preview / Discord link checker first, then work through the Discord-side settings below.
Start here
- Decide which case you are in: viewing someone else’s link vs owning the website.
- If no links preview for you, anywhere, it is almost always a client or permission setting — not the website.
- If the same URL previews in one server and not another, check Embed Links on that channel or role.
- If the URL never previews for anyone, fetch what
Discordbotwould see: tags in the raw HTML, HTTPS, no bot challenge.
If you are just trying to see someone else’s link
You cannot fix another site’s meta tags. You can only change what Discord is allowed to show you, or what that channel allows to be auto-embedded.
1. Your client is hiding website previews
Discord has a user setting that turns automatic website embeds off. On desktop it has lived under User Settings → Chat or Text & Images, with a label similar to “Show embeds and preview website links.” If that is off, you will see plain URLs even when everyone else sees a card.
2. The message suppressed the embed on purpose
Wrapping a URL in angle brackets tells Discord not to auto-embed it:
<https://example.com/page>
If the message looks like that, the preview is suppressed for everyone, not broken.
3. The channel or role denies Embed Links
Discord’s permission EMBED_LINKS is documented as: links sent by users with this permission will be auto-embedded. Check the channel’s permission overwrites for @everyone, the poster’s role, and the specific member. A deny on that channel beats a server-wide allow.
If you can post a well-known public URL (for example a Wikipedia article) and it embeds, the channel is fine and the original site is the problem.
4. Only one person is affected
Ask someone else in the same channel. If they see the card and you do not, it is your client setting, an outdated app, or a local cache — not Open Graph.
If you are the website owner
Discord fetches the URL with its crawler (Discordbot, often Discordbot/2.0). It reads HTML meta tags. It does not run your client-side JavaScript. If tags are injected only after React hydrates, Discord sees an empty shell.
1. Confirm the tags exist in the raw HTML
You want at least:
<meta property="og:title" content="Your Title" />
<meta property="og:description" content="A short description" />
<meta property="og:image" content="https://yoursite.com/image.jpg" />
<meta property="og:url" content="https://yoursite.com/page" />
Use absolute https:// URLs for the image. Relative paths like /og.png often fail. Check with Proovd or the Discord link preview checker — those tools show the tags a crawler can parse, not what Discord’s own cache currently stores.
Discord does not publish a full official OG spec. In practice it uses Open Graph tags for the embed. Do not rely on twitter:image alone.
2. Make sure Discordbot can fetch the page and the image
- The HTML URL and the image URL should return success (typically 200), not a login wall, 403, or Cloudflare “Just a moment…” challenge.
- Bot Fight Mode and similar WAF rules treat crawlers as bots. That blocks Discord the same way it blocks Slack and Meta. See Cloudflare blocking link previews.
- Allowing Discordbot in
robots.txtis still worth doing; a challenge page in front of the origin will still hide the tags.
3. Image size — what we actually know
Discord does not publish a hard “minimum 300×300 or no embed” rule in its developer permissions docs. What we do know from running previews in Proovd: use a large, reachable JPEG or PNG over HTTPS. 1200×630 is a safe size because it also works on other platforms. Keep the file well under typical upload limits (Proovd’s Discord image check flags files over 8 MB).
If the title and description show but the image does not, the image URL is usually blocked, redirected oddly, or not in the initial HTML.
4. Stale Discord cache
Discord caches embeds per URL. There is no public “Sharing Debugger” for Discord. After you change tags:
- Post a slightly different URL, such as
?v=2, so Discord treats it as new. - Or delete the old message and re-post after the site is actually serving the new HTML (confirm with view-source or curl, not only your browser).
5. Bots and webhooks are a different problem
A bot posting a URL still needs EMBED_LINKS in that channel if you expect Discord to auto-embed the URL. Rich embeds built in the API are JSON payloads, not Open Graph. If a human-pasted URL works and the bot’s URL does not, inspect the bot message flags (including suppress-embeds) rather than your og: tags.
Discord link checker vs Discord server checker
Search queries like “Discord link checker,” “Discord embed checker,” and “Discord server link checker” are not the same job:
- Link / embed checker — inspect Open Graph on a public URL. That is what Proovd’s Discord preview page is for.
- Server / invite checker — invite splash images and server widgets are a different Discord feature. This article does not claim Proovd inspects those.
Quick checklist
- Do other people in the same channel see the card?
- Is website preview enabled in your Discord user settings?
- Does the channel grant Embed Links to the poster?
- Is the URL wrapped in
< >? - Are
og:title/og:imagein the first HTML response (not only after JavaScript)? - Can a non-browser client fetch the URL without a 403 challenge?
- Did you re-post with a new query string after changing tags?
Frequently asked questions
Why is my link not showing a preview on Discord?
Split the problem. If it fails only for you, fix client or channel embed permission. If it fails for everyone, Discordbot is not getting usable Open Graph data — missing tags, JS-only tags, HTTP image, or a blocked fetch.
How do I make a link preview on Discord?
Put Open Graph tags in server-rendered HTML, use HTTPS image URLs Discord can fetch, keep Embed Links allowed for the poster, and paste the bare URL (not wrapped in < >).
How do I check a Discord embed without posting in a server?
Use a Discord link preview checker such as Proovd. It will not clear Discord’s cache; it shows whether the tags are present for a crawler.
Related Articles
Check the website side first
Paste the URL into Proovd and compare the Discord card with Slack, LinkedIn, X, WhatsApp, and Reddit. If tags look right there and Discord still shows nothing, the remaining work is Discord settings or Discordbot being blocked.