TechCompare LogoTechCompare

How Slack unfurls links: OG tags, the Unfurl API, and why your preview is missing

Standard OG tags work for Slack unfurling. If your site is behind auth, unfurling won't work without a custom Slack app. Test in a private Slack workspace. The image should be at least 60x60; 1200x630 is ideal.

When you paste a URL into Slack, it unfurls a preview using the page's og:title, og:description, and og:image tags, similar to Discord. But Slack adds a layer of complexity: workspace admins can disable unfurling, certain domains are blocked, and the unfurl request comes from Slack's servers (not the user's browser), so pages behind auth won't unfurl.

By TechCompare · Updated

Platform or focus
Platforms
Social media and messaging apps
Topic detail
Slack unfurling
slack-unfurl

How this is calculated

Slack's unfurl bot respects og: tags but also supports app-level unfurling via the Events API, which lets your Slack app customize exactly what appears. This is how tools like Jira, GitHub, and Figma show rich, interactive previews instead of just a static image. For most websites, the standard OG tags are sufficient. Common reasons an unfurl doesn't appear: the page is behind authentication, Slack's servers can't reach the URL (private network), the image is smaller than 60x60 px, or the workspace has link unfurling turned off in settings. Slack caches unfurls but typically refreshes within an hour.

Verdict

Slack's unfurl bot reads og:title, og:description, and og:image, but a few edge cases break it silently. Pages behind auth fail because Slack's servers do the fetch, not the user's browser. Images smaller than 60x60 px don't render, and workspace admins can switch unfurling off entirely. For rich interactive previews, the Events API lets apps like Jira and GitHub replace the static card.

More OG scenarios

Frequently asked questions

Why is my link not unfurling in Slack?
The common causes, in order: the page sits behind authentication (Slack's servers do the fetch, not the user's browser), the URL is on a private network Slack can't reach, the og:image is under 60x60 pixels, or the workspace admin disabled link unfurling. Check with a public test URL first, then verify image size.
How do Jira and GitHub show rich Slack previews instead of static cards?
Through Slack's Events API and app-level unfurling. A Slack app can listen for link_shared events and respond with fully custom attachments: buttons, fields, status colors. That's how Jira shows ticket status and GitHub shows PR state. A plain website just gets the static og: card. The rich variant takes building a Slack app.
How long does Slack cache link unfurls?
Typically under an hour, much shorter than Discord's cache. Most changes to your OG tags show up in new unfurls within minutes to an hour without any action on your part. If a workspace still shows the stale preview after that window, the cache-busting query parameter trick works here too.