How Discord builds a link embed
Discord turns links into embeds: a card with a colored bar on the left. Its crawler identifies as Mozilla/5.0 (compatible; Discordbot/2.0; +https://discordapp.com) and builds the embed from:
- Site name: small text at the top, from
og:site_name. Without it, nothing appears there. - Title, shown as a blue link, from
og:title, thentwitter:title, then<title>. - Description from
og:description, with up to about 350 characters shown. - Image from
og:imageortwitter:image. - Border color from
<meta name="theme-color">.
The image layout is controlled by twitter:card: with summary_large_image, the image fills the width of the embed under the text. Without it, Discord puts a small thumbnail in the top-right corner. That's the most common surprise when people first check their Discord embed.
Customizing your Discord embed
<meta property="og:site_name" content="Your brand">
<meta property="og:title" content="Page title">
<meta property="og:description" content="What the page is about.">
<meta property="og:image" content="https://example.com/og/page.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="theme-color" content="#5865F2">
The theme-color tag is also used by mobile browsers to tint the address bar, so pick your brand color. Use a hex value: named colors and CSS variables aren't reliable.
Why a Discord embed doesn't show
Discordbot is blocked or too slow
Bot protection that challenges unknown visitors often catches Discordbot. Slow responses also lose the embed. The checker shows the status and response time Discordbot got.
JavaScript-only meta tags
Discordbot reads the raw HTML. Client-rendered apps need SSR or prerendering for the pages people share.
Permissions and settings
In a server channel, members need the Embed Links permission for their links to embed. Users can also turn off link previews in their own settings (Text & Images). If the checker shows a valid embed but your channel doesn't, check these first.
The link is in angle brackets
Writing a link as <https://example.com> deliberately suppresses the embed in Discord.
How to refresh a Discord embed
Discord caches embeds and has no public tool to clear them. After fixing the tags, wait for the cache to expire, or post the URL with an extra parameter such as ?v=2 to get a fresh fetch right away. Existing messages keep the embed they were posted with.