Slack link unfurl not showing

Last updated October 30, 2026 · Reviewed by Sumera Yaqoob

Slack expands many pasted URLs into unfurls—a title, snippet, and optional image. When the image is missing or stale, treat it like other Open Graph clients with Slack-specific caching. Dimensions belong on the Slack link unfurl image size page; this article is the fix playbook.

How Slack unfurls work (practical view)

Slack’s crawler requests your public URL, reads meta tags, and may fetch og:image. If anything in that chain fails, you get text-only unfurls or nothing useful. Your browser session is irrelevant—anonymous fetch must succeed.

Step 1: Confirm Open Graph in raw HTML

View Source and look for:

<meta property="og:title" content="…" />
<meta property="og:description" content="…" />
<meta property="og:image" content="https://example.com/og/card.png" />

One absolute image tag is enough. Duplicates from CMS plugins confuse parsers. Validate with the Link Preview Checker and optionally rebuild a clean set in the Meta Tag Generator.

If tags are absent entirely, fix delivery first (og:image not showing, React SPA if applicable).

Step 2: Image quality for unfurls

Prefer Avoid
~1200×630 PNG/JPG Tiny favicons
Absolute https Protocol-relative edge cases without testing
Public CDN object VPN-only staging assets

Create cards with the OG Image Generator, compress via Image Resizer, verify with Social Image Checker. Also see OG image size and file formats.

Step 3: Refresh a stuck Slack unfurl

After the site is correct:

  1. Append a harmless query (?v=2) or change the image filename in og:image.
  2. Paste into a test channel as a new message.
  3. Avoid judging success from an old thread that still displays the previous unfurl attachment.

Some workspaces disable unfurls or expand links differently; test in a channel where unfurls are allowed.

Step 4: Bots, robots, and speed

Security plugins that challenge unknown bots can allow humans and block Slack’s fetcher. Check logs around paste time. Slow image endpoints may time out—prefer static files.

Common mistakes

  • Fixing only Facebook while Slack still caches an empty unfurl
  • Sharing shortener URLs that point at incomplete landing HTML
  • Password-protected staging sites
  • Multiple og:image tags pointing at different crops

Checklist

  • Absolute og:image in View Source
  • Image opens logged out; ~1200×630
  • Link Preview Checker reviewed
  • New URL or asset path after fixes
  • Test channel allows unfurls

Discord thumbnail issues: Discord embed small image. Design tips: OG image best practices.

Workspace policies and enterprise networks

Enterprise Slack workspaces sometimes restrict unfurls or route traffic through inspection proxies. If public Slack can expand your URL but a customer workspace cannot, the HTML may be fine—their network path differs. Provide IT with the exact paths that must allow anonymous GET: the HTML page and the image object.

Internal documentation sites behind SSO will never unfurl for Slack. For those, use Slack’s native upload or a public mirror page that only exposes safe metadata. Do not weaken SSO to chase unfurls.

When using link shorteners in Slack, remember the unfurl may key off the short URL’s landing behavior. Prefer the canonical article URL in engineering runbooks so caches stay predictable. After rotating secrets or CDN keys, retest unfurls the same day—signed URLs in og:image expire quietly.

Field notes from real share failures

Most broken previews are boring: a relative URL, a duplicate plugin tag, a cache that nobody re-scraped, or a file that is fine in Chrome but too heavy for a messenger. Resist the urge to rewrite the entire brand system until those basics are proven in View Source and a private window.

Write down the exact URL string you tested, including trailing slash and query parameters. Support threads go sideways when one person scrapes example.com/page and another shares example.com/page/. Treat the share string as part of the specification.

When you finally change artwork, change the path. Overwriting og.png in place is the most common reason a “fixed” card never appears. Pair the new file with a short note in your changelog so the next person knows which version is live.

Verification habits worth repeating

After every deploy that touches templates or SEO plugins, spot-check three URLs: the homepage, one article or product, and one utility page. Look for a single absolute og:image and open that file logged out. This ten-minute habit catches more regressions than redesigning share cards.

Document the owner of social tags for your stack—theme, plugin, or layout component—in the repository README. When something breaks, people should know which lever to pull first. Ambiguous ownership is how duplicate tags accumulate.

Finally, separate “works in our browser” from “works for crawlers.” If you only validate inside an authenticated preview session, you will ship failures to Facebook, LinkedIn, Slack, Discord, WhatsApp, and X without noticing until a campaign is live.

If you only remember one rule, remember this: crawlers are blunt. They fetch a URL, read tags, fetch an image, and cache aggressively. Your CMS preview, authenticated browser session, and hydrated React tree are not part of that path. Design the HTML and the image file for the crawler first, and human polish second. That ordering keeps share cards reliable while you iterate on the visible page design. Prefer canonical URLs in runbooks, retest after CDN key rotations, and remember that enterprise proxies can break unfurls even when public Slack looks fine. Keep HTML and image paths allowlisted together. Document which bot tokens and workspace apps are allowed to expand links, and keep a known-good public URL in your incident checklist so you can tell Slack-side failures apart from your own HTML regressions in minutes. Test twice.

Frequently asked questions

Short answers from this guide.

Why is my Slack link unfurl not showing an image?

Slack could not find a usable og:image, could not download the file, or is showing a cached unfurl. Confirm absolute tags in View Source, then retry with a new URL or image path.

What image size works for Slack?

Use the standard ~1200×630 Open Graph default. See the Slack size page on this site for notes. Very small images produce weak unfurls.

How do I refresh Slack’s link preview?

Slack caches unfurls per URL. After fixing HTML, share ?v=2 or a new path. Workspace admins sometimes have additional controls; for most sites, a new URL string is the practical fix.

Do Slack apps need special meta tags?

For ordinary http(s) links, standard Open Graph tags are the main lever. Focus on og:title, og:description, and og:image.

Can a firewall block Slackbot?

Yes. If Slack’s crawler cannot fetch the page or image, unfurls fail. Allow anonymous access in security tools and robots rules.

Related pages