Discord embed not showing or not updating

Discord fetches the page once, reads the tags in the server HTML and caches the embed for about 30 minutes. It never runs your JavaScript.

Last updated

Quick fix

  1. Check the page with the meta tag checker.

  2. Serve the tags in the HTML, with a 2xx response that finishes within 10 seconds.

  3. Add twitter:card summary_large_image for a large image.

  4. Test in Discord’s Embed Debugger or post with ?v=2.

Why the Discord embed is missing or old

  • The tags come from JavaScript. Discord executes no code, so tags added after load are never seen.

  • The response isn’t a 2xx. Redirects are fine up to 5, but the final answer must be 2xx with text/html.

  • The fetch is too slow. The whole fetch, including measuring images and video, must finish within 10 seconds.

  • Bot protection blocks Discordbot. Pages are fetched with Discordbot/2.0 in the user agent.

  • Discord cached the old embed. Previews are cached for about 30 minutes.

How to fix it

  1. Read the tags with the meta tag checker.

  2. Render og:title, og:description and og:image on the server.

  3. Add og:image:width and og:image:height so Discord doesn’t have to fetch the image to measure it.

  4. Set twitter:card to summary_large_image if you want the large image below the text.

  5. Allow Discordbot through your CDN, then test in the Embed Debugger or post the URL with ?v=2.

Tags Discord reads

  • og:title or twitter:title, trimmed at 70 bytes

  • og:description or twitter:description, trimmed at 350 bytes

  • og:site_name shown above the title

  • og:image or twitter:image; two or more og:image tags make a gallery of up to 4

  • theme-color for the accent bar, as #RRGGBB or #RRGGBBAA

  • twitter:card and og:type for the layout

Image size rules

  • Formats: PNG, GIF, JPG, WebP and AVIF

  • Declare og:image:width and og:image:height

  • Up to 4 images per link

  • Whole fetch within 10 seconds and 50 MB

Not verified: Discord doesn’t publish a minimum or recommended pixel size. 1200 x 630 px is a safe choice.

How to force a refresh

Discord caches previews for about 30 minutes. To see changes now, share the URL with a new query string such as ?v=2, or check it in the Embed Debugger. The refresh tool shows the step for every app.

Sources

FAQ sur le générateur de balises meta

Why does Discord show a small image instead of a large one?

Without layout tags Discord shows text with a small image. Set twitter:card to summary_large_image for the large layout.

How long does Discord cache embeds?

About 30 minutes, according to Discord’s developer docs. Use a new query string to test changes.

Does Discord run JavaScript when it builds an embed?

No. Discord executes no code, so the tags must be in the HTML your server sends.

Check your page, then refresh the preview

Paste your URL into the free checker to see the exact tags each app reads. Once the tags are right, use the refresh tool to clear the old preview.