Check My OG
Made by Dayward AI

Slack link preview checker: how Slack unfurls your links

When someone pastes a link into Slack, Slack fetches the page, reads its oEmbed, Open Graph and Twitter Card tags, and posts a preview under the message. Slack calls this an unfurl. It shows og:image, not your og:video, so the image is the part to get right.

Paste a URL to see the Open Graph and Twitter Card tags Slack reads, and whether your og:image loads as a real image.

What Slack reads

The fetch comes from a robot that identifies itself with this user agent:

Slackbot-LinkExpanding 1.0 (+https://api.slack.com/robots)

Slack's robots page says it fetches as little of the page as it can, using HTTP Range headers, and looks for oEmbed, Twitter Card and Open Graph tags. If those tags point at an image, video or audio file, it fetches that file too to check that it is valid. Since Slack reads only the start of the page, keep the meta tags near the top of <head>.

Slack's platform blog (2015) gives the order: an oEmbed endpoint first, then Twitter Card or Open Graph tags (whichever comes first in the HTML), then the plain meta description. If none of them is there, Slack shows no unfurl.

TagWhat Slack does with it
og:title, twitter:titleThe preview's title.
og:description, twitter:descriptionThe text under the title. Without them Slack falls back to <meta name="description">.
og:image, twitter:imageThe picture. Slack fetches the file to check it. Use an absolute URL: the blog's own example of a relative path showed no image.
twitter:card = summary_large_imageThe blog says this gets the largest image Slack shows.
twitter:label1 / twitter:data1Extra label and value rows, such as a price or a date, on any card type.
og:videoNot played. See the next section.

A head that covers Slack and the other apps:

<meta property="og:title" content="Your page title">
<meta property="og:description" content="One or two sentences.">
<meta property="og:image" content="https://example.com/card.png">
<meta property="og:image:alt" content="What the image shows">
<meta name="twitter:card" content="summary_large_image">

Image vs video in Slack

A classic Slack unfurl reads Open Graph and Twitter Card tags and shows og:image. Slack plays video only for sites it handles itself, or when a Slack app registered for your domain posts its own unfurl. Slack's help center adds that audio and video links from a service not on its allowlist won't expand at all. So a page with og:video still needs og:image for Slack; the og:video guide covers the apps that do play it, like iMessage and Discord.

How the preview looks

The preview sits just below the message. To remove one, hover over it and click the x on desktop, or long press the link and tap Remove Link Preview on mobile. Each person can also turn previews off under Preferences, Messages & media, and workspace admins can block previews from a whole website.

Slack link preview not showing: causes and fixes

SymptomFix
No preview at all, on any messageThe page has no preview data. Add the tags above, then run the checker.
No preview for a page that needs a loginSlack doesn't preview private pages or files, such as password-protected videos.
No preview, and your server blocks botsLet Slackbot-LinkExpanding through your firewall or bot filter. robots.txt is not the cause: Slack doesn't read it.
Text shows but the image doesn'tMake og:image an absolute URL to a file that loads. Slack fetches the image to check that it is valid; the checker shows whether it answers 200 as an image.
The same link, shared again, doesn't expandSlack skips a link shared in the same conversation within the past hour.
A message with many links shows noneSlack expands nothing in a message with more than five links.
A bare example.com/page doesn't expandInclude https://. Slack unfurls only fully qualified URLs.
Previews work for others but not in your workspaceAn admin may have blocked your site. It is listed under Workspace settings, Attachments, Blocked previews.
Links your bot posts don't unfurlPass "unfurl_links": true (pages) or "unfurl_media": true (media) with chat.postMessage or the webhook. A link whose label is the URL minus the protocol never unfurls.

Clearing a cached Slack preview

Slack documents no button or API to clear a cached preview. Its robots page says responses are cached across the whole service for around 30 minutes, so Slack won't fetch the same URL again sooner than that. After you fix your tags:

Slack's help center also points web admins to its URL debugging tool, which shows the preview data Slack pulls from a link. The other apps cache differently; the checker lists each one under "Stuck on an old preview?".

What Check My OG checks for Slack

The checker fetches your page as Twitterbot and facebookexternalhit, not as Slackbot, and reads the same Open Graph and Twitter Card tags Slack does. It doesn't read oEmbed. It then downloads og:image and checks that it answers 200 as an image, is PNG, JPEG, GIF or WebP, is a large 1.91:1 card at least 600 px wide, matches og:image:width and og:image:height, is 5 MB or less and has alt text. Those are general rules for every app; Slack publishes no image size limit of its own. Slack's card is drawn in the "Facebook, LinkedIn, Slack, WhatsApp" preview. The LinkedIn guide covers the next app that relies on og:image alone.

Questions

Why is my Slack link preview not showing?

Most often the page has no Open Graph or Twitter Card tags, or Slack can't fetch it because it is private or a firewall blocks the Slackbot-LinkExpanding user agent. Slack also skips a link shared in the same conversation within the past hour, every link in a message with more than five, and a link without http:// or https://.

Does Slack play og:video?

No. A classic Slack unfurl shows og:image. Slack plays video only for services it handles itself or through a Slack app's own unfurl, so for your own pages og:image is what Slack users see.

How do I refresh a Slack link preview?

Slack documents no way to clear its cache. It caches each URL for around 30 minutes, so wait that long or share the link with a new query string such as ?v=2. Give a changed og:image a new file URL too.

What user agent does Slack use to fetch link previews?

Slackbot-LinkExpanding 1.0 (+https://api.slack.com/robots). Slack does not read robots.txt, so robots.txt neither blocks nor allows it. A firewall or bot filter that blocks this user agent stops the preview.

Sources