TryUnfurl

Check How Your Links Unfurl for FREE!

See exactly how your webpage will appear when shared on social media, Slack, Discord, and messaging apps.

Try It Now →

Discord Preview Not Updating — Complete URL Unfurl Fix Guide

You updated your page's title, image, or description — but when you paste the link in Discord, it still shows the old embed. Or the embed shows the wrong image, no image at all, or nothing.

This is one of the most common URL unfurl frustrations. This guide covers exactly why Discord previews get stuck, how to check URL metadata before you even try to fix the cache, every method for forcing Discord to refresh, how Discord URL unfurl differs from iMessage URL unfurl, and the advanced edge cases that trip up even experienced server owners.

→ Verify your metadata with TryUnfurl first


Understanding URL Unfurl: How Link Previews Work

Every time you paste a link into Discord, Slack, iMessage, or any modern chat app, the platform runs the same pipeline:

  1. Crawler fetches the URL with a platform-specific user-agent (Discord's is Discordbot/2.0).
  2. The HTML head is parsed — Open Graph tags first, Twitter Card tags as fallback, HTML <title> and <meta description> as a last resort.
  3. The image URL is downloaded to generate a thumbnail.
  4. An embed card is rendered in the channel.
  5. The result is cached against the URL so re-shares don't re-hit your server.

That last step is where most "Discord preview not updating" problems live. The crawler did its job correctly at the moment of the first share. It just hasn't been asked to do it again. Understanding that the URL unfurl is cached — not broken — is the key to the fix.


Why Discord Embeds Get Stuck

When you paste a URL into Discord, Discord's crawler fetches the page metadata and generates an embed card. That result is then cached per URL. The next time the same URL is shared, Discord serves the cached version — it doesn't re-fetch the page.

Discord doesn't provide a public cache-clearing tool, so the embed won't update automatically just because you changed your page.

Before assuming it's a caching issue, first confirm your metadata is actually correct. If the tags on your page are wrong, forcing Discord to refresh will just give you a fresh embed showing wrong data.


How to Check URL Metadata Before Sharing

Fixing a Discord URL unfurl starts with knowing what Discord is actually reading. You have three ways to check URL metadata:

  1. Use TryUnfurl — paste the URL and you'll see the detected og:title, og:description, og:image, and a rendered Discord-style embed card. Live fetch, no internal cache, no login.
  2. View page sourceCtrl+U / Cmd+Option+U in your browser, then search for og:. Every Open Graph tag appears exactly as the server rendered it.
  3. cURL from the terminal — a quick command-line how-to-check-URL-metadata recipe:
curl -sL -A "Discordbot/2.0" https://example.com/your-page \
  | grep -iE '<meta (property|name)="(og|twitter)'

If the tags look right in all three places but Discord still shows old data, you're in a caching problem and the fix below is what you need. If the tags are wrong or missing, fix those first.


How to Fix Discord Preview Not Updating

Method 1 — Add a cache-busting query parameter (fastest)

Append a small query string to the URL when sharing:

https://example.com/page?v=2

Discord treats this as a new, unseen URL and fetches fresh metadata. This is the most reliable immediate fix. Increment the number each time you need to force another refresh. If your server respects query strings when generating OG tags, you're done.

Method 2 — Wait for the cache to expire

Discord's embed cache typically expires within a few hours to around 24 hours. If the link isn't time-sensitive, simply wait and re-share.

Method 3 — Share in a fresh message

Delete the original message containing the link and paste it again in a new message. This doesn't bypass the cache for the same URL on its own, but combined with Method 1 it guarantees a fresh fetch.

Method 4 — Clear any intermediate CDN cache

If TryUnfurl shows your new tags but Discord still shows old ones after the query-string bust, there's a CDN serving stale HTML. Clear your CDN cache (Cloudflare, Fastly, CloudFront, Vercel, Netlify) before trying again.


Discord Embed Troubleshooting Table

Symptom Likely cause Fix
Old embed still showing after page update Cached embed Add ?v=2 to URL or wait for cache to expire
No embed appears at all Missing og:title or og:description Add Open Graph tags to the page
Embed shows but no image og:image missing, wrong URL, or too small Use absolute HTTPS image URL, min 300 × 157 px
Image appears cropped or tiny Wrong image dimensions Use 1200 × 630 px image
Embed worked before, now broken og:image URL changed or returning 404 Fix the image URL and cache-bust with ?v=2
Embed works in browser but not Discord JavaScript-rendered meta tags Use server-side rendering — Discord's crawler doesn't execute JS
Title shows but image doesn't Image blocked or too large Open image URL directly in private browser to test
Embed suppressed intentionally User wrapped URL in < > Remove the angle brackets when sharing

What Discord Reads

Discord generates embeds from these metadata sources, in priority order:

  1. og:title for the embed title
  2. og:description for the embed description
  3. og:image for the embed image
  4. twitter:card and twitter:image as fallback
  5. og:site_name for the site label
  6. og:url for the canonical link

Discord does not execute JavaScript when fetching pages. Meta tags must be present in the initial HTML response — not injected by React, Vue, or other client-side frameworks.


Discord Image Requirements

Requirement Value
Minimum size 300 × 157 px
Recommended size 1200 × 630 px
URL type Absolute HTTPS only
Must be public Yes — not behind login or blocked by robots.txt

Preview URL Unfurl Issues on Discord and iMessage

Discord and iMessage look similar to end users — a compact preview card with a title, description, and thumbnail. But the URL unfurl mechanics under the hood are different, and so are the fixes.

How preview URL unfurl on Discord and iMessage compares

Aspect Discord iMessage
Crawler user-agent Discordbot/2.0 facebookexternalhit/1.1 (yes, really — Apple reuses it)
Cache-clear mechanism ?v=2 query string, or wait Delete and re-send the message
JavaScript execution No No
Minimum image 300 × 157 px 300 × 300 px
Blank/text-only fallback Yes Yes
Responds to <URL> suppression Yes (shows no embed) Partial

Both platforms rely on Open Graph tags, both cache aggressively, and both have no public cache-clearing tool. The practical playbook for either:

  1. Check URL metadata first with TryUnfurl — confirms the tags are correct.
  2. If tags are right and preview is stale — query-string cache-bust on Discord, delete-and-re-send on iMessage.
  3. If tags are wrong — fix Open Graph in the page, deploy, clear your CDN, then retry.

Full iMessage-specific guidance lives in our iMessage link preview fix guide.


Advanced Discord URL Unfurl Issues


Check Your Metadata First

Before trying cache-busting tricks, confirm the issue is caching and not a broken metadata implementation. Paste your URL into TryUnfurl to see exactly what Discord's crawler will read from your page — and if it's a multi-URL audit, use the bulk URL unfurl checker to run up to 100 URLs in one pass.

→ Check your Discord embed metadata now


Frequently Asked Questions

Why isn't my Discord embed updating after I fixed my Open Graph tags?

Discord caches URL unfurl results per URL. Fixing your tags doesn't retroactively update cached embeds. Add ?v=2 (or any query string) to the URL when you re-share, and Discord will treat it as a new URL and fetch fresh metadata.

How long does Discord's embed cache last?

Typically a few hours to about 24 hours, though it can vary. For time-sensitive shares, use a query-string cache-buster rather than waiting.

Does Discord read Twitter Card tags?

Yes, as a fallback. Discord reads Open Graph first, then Twitter Cards. For reliable URL unfurl previews, set Open Graph tags explicitly.

Can I test my Discord URL unfurl without pasting it in a server?

Yes — TryUnfurl renders a Discord-style embed card using the same Open Graph tags Discordbot would read. No server posting required.

How do I preview URL unfurl on Discord and iMessage at the same time?

TryUnfurl renders both platforms (plus Facebook, LinkedIn, Twitter/X, Slack) side by side from a single URL input.


Related Guides