How Slack unfurls links: OG tags, the Unfurl API, and why your preview is missing
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.
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
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.
