Test an embed without a test channel
The usual way to test a Discord embed is to post the link in a private channel and repeat after every change. This checker fetches your page instead, shows the embed it expects Discord to build, and lists each problem with its fix. It’s an independent tool and the preview is an approximation, so paste the link into Discord for the final check.
The tags that build a Discord embed
Discord fetches your page and reads the metadata in its HTML. These tags cover every part of a standard embed:
<meta property="og:site_name" content="Your site">
<meta property="og:title" content="Your page title">
<meta property="og:description" content="One or two sentences about the page.">
<meta property="og:image" content="https://example.com/images/card.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="theme-color" content="#f97316">og:site_nameis the small line at the top of the embed.og:titleandog:descriptionare the main text. Discord allows up to 256 characters of title and shows about 350 of description.og:imageis the picture.twitter:cardset tosummary_large_imageputs a large image below the text. Without it, expect a small thumbnail beside the text.theme-colorcolors the embed’s side bar. It takes a 6- or 8-digit hex value.
If a page repeats the card or color tag, Discord’s documentation (opens in a new tab) says the last one wins, so remove duplicates left by themes and plugins. It also supports JSON oEmbed, which fills gaps after Open Graph.
What this tester doesn’t cover
Our preview doesn’t read theme-color or oEmbed yet. The side bar is always shown in the default gray, even if your color is set correctly, and data supplied only through oEmbed won’t appear. Check both in Discord itself.
Choosing an image
A 1200×630 image works well for the large layout. Discord doesn’t show this image cropped to a fixed shape the way some platforms do, but use the same size you use elsewhere so one image can serve every platform. JPEG and PNG are the safe formats. The cheat sheet compares the rules across platforms.
Why your Discord embed isn’t showing
- The image is tiny:
twitter:cardis missing or isn’tsummary_large_image. - There’s no embed in one channel: you may need the Embed Links permission there, or the link was wrapped in angle brackets, which suppresses it. A user can also have link previews turned off in their settings.
- There’s no embed anywhere: a firewall or bot filter may be blocking
Discordbot. Our checker uses its own user agent, so a pass here doesn’t prove Discord gets through. - The image doesn’t load: the URL is relative or needs a login, or the format is unsupported, such as SVG.
- The tags are added by JavaScript: link preview crawlers don’t run it, so the tags must be in the HTML your server sends.
Refreshing an embed Discord has cached
Discord has no public refresh tool, and it can keep showing an old embed for a while after you change your tags. To test straight away, post the URL with a harmless query string such as ?v=2. If you changed the image, also give it a new URL. Then check your page again to confirm the tags are right.