Large image vs. thumbnail
Discord embed images appear in two formats:
- Large image: below the embed text, up to ~400px wide on desktop, ~300px max height
- Small thumbnail: ~80x80px square to the right of the text
Discord picks the format based on:
twitter:card:summary_large_imageforces the large formatog:image:widthandog:image:height: wide, landscape dimensions trigger large format- Actual image dimensions: if no dimension tags exist, Discord fetches the image and checks the aspect ratio
If you’re getting a thumbnail when you want a large image:
<meta name="twitter:card" content="summary_large_image">
Recommended dimensions
Use 1200 x 630px (1.91:1 aspect ratio) for large embeds. Same ratio Facebook and most other platforms use, so one image works everywhere.
Discord scales to fit rather than center-cropping, so you don’t need safe zones like you do with Twitter.
Size limits
- Maximum file size: ~8 MB
- Formats: JPEG, PNG, GIF (first frame only in embeds), WebP
- SVG is not supported
Animated GIFs only play when posted as direct attachments. In link embeds, you get the first frame.
URL requirements
The og:image URL must be:
- Absolute (not relative)
- Accessible to Discordbot without auth
- Served over HTTPS
- Not behind cookie/JS-dependent redirects
CDN proxy
Discord downloads your image and re-serves it through its own CDN (images-ext-1.discordapp.net or media.discordapp.net). Your server gets one fetch per embed, not one per viewer. Image updates on your server won’t show in existing embeds until the cache expires, and the image cache is separate from the metadata cache, so they can go stale independently.