The Slack Unfurl Mystery
We have all been there: you paste a URL in a Slack channel, expecting a beautiful unfurled card to show off your page layout, but instead, it renders as a bare text link.
Slack calls its link preview system "unfurling." When a link is shared, the Slackbot crawler attempts to scrape the page's HTML, extract the Open Graph (OG) tags, and format them into a structured card.
Slack is notorious for failing silently. If any part of its strict crawling workflow is interrupted, it drops the image and shows a generic fallback.
The 3 Most Common Reasons Slack Previews Fail
1. Your Meta Tags are Too Deep in the HTML (The 32KB Limit)
This is Slack's most famous and frustrating quirk: Slackbot only reads the first 32 KB of your HTML file.
If you use a modern framework that embeds heavy serialized state, large inline CSS styles, or inline SVG symbols at the top of your tag, your Open Graph meta tags might get pushed past the 32KB boundary. When Slackbot stops reading, it concludes that your page has no social metadata.
The Fix: Keep your header lean. Move heavy JS scripts, analytics trackers, and inline CSS blocks below your OG and Twitter meta tags. Always place your meta tags at the absolute top of the block.
2. The Page Redirects Too Many Times
Slackbot is highly sensitive to redirect latency. If your page redirects from HTTP to HTTPS, then to a locale path (like /en), and then your CDN redirects the image URL to an external bucket, Slackbot will timeout and discard the preview.
Keep redirect chains to a maximum of 1 hop for both the page URL and the image URL.
3. Robots.txt is Blocking Slackbot
If your server has a restrictive robots.txt file, it might block the Slackbot crawler from index access:
# โ Blocks Slack previews
User-agent: *
Disallow: /The Fix: Explicitly allow the Slackbot user-agent in your robots.txt file:
# โ
Allow Slackbot crawler
User-agent: Slackbot
Allow: /
`Marketing with Pixel-Perfect Precision
Slack formats link previews with a very specific, recognizable layout:
- The Site Name (
og:site_name) is styled as a bold, uppercase header. - The Title (
og:title) is rendered as a clickable link. - The Description and Image are aligned with precise borders.
Raw metadata outputs cannot show you if your site name matches your logo or if the line-wrapping on your description pushes your image out of frame. LinkPeek's layout simulator matches Slack's exact typography and spacing rules, giving you a 100% accurate visual rendering of how your brand looks inside a Slack message.
FAQ: Slack Link Previews
Q: Why does my preview show up on Twitter but not on Slack?
A: Slackbot has unique constraints like the 32KB HTML size limit and a faster timeout window. Twitterbot is more patient and reads the entire HTML document.
Q: How do I clear Slack's link preview cache?
A: Slack caches link previews for 24 hours. To force an immediate update for testing, append a query parameter to your link: https://yoursite.com/page?v=2.
Q: Does Slack support animated GIF preview images?
A: Yes, Slack supports static and animated GIFs, but it will only play them if the file is under 2 MB. Larger files are dropped or rendered as static images.