OG Image Not Showing on Slack? How to Fix Slack Link Previews

Slack link preview not showing your image or showing the wrong one? Diagnose missing og:image, stale Slack cache, HTTPS issues, and blocked scrapers — with step-by-step fixes.

How Slack renders link previews

When you paste a URL into Slack, Slack's scraper (User-Agent: Slackbot) fetches the page HTML and looks for og:image, og:title, and og:description meta tags. It then downloads the image and caches it for ~24 hours.

If the preview shows the wrong image, no image, or old content, one of the following is usually to blame.

Reason 1: Missing or wrong og:image tag

Check your page source (view-source:https://yoursite.com/page) and confirm the tag exists:

<meta property="og:image" content="https://yoursite.com/images/og-card.png" />

The URL must be:

  • Absolute — starts with https://
  • HTTPS — Slack won't load HTTP images
  • Publicly accessible — no auth, no IP restriction
  • 1200×630px (or at least 200×200px minimum)

Reason 2: Stale Slack cache

Slack caches link previews for ~24 hours. If you updated your OG image recently, Slack might still show the old one. Unlike Twitter or LinkedIn, Slack has no manual cache-purge tool.

The fastest fix is to change the image URL — either by appending a version query string or uploading a new file with a different name:

<!-- Before -->
<meta property="og:image" content="https://yoursite.com/images/og-card.png" />

<!-- After (version bump) -->
<meta property="og:image" content="https://yoursite.com/images/og-card.png?v=2" />

Once the URL changes, Slack fetches fresh on the next paste.

Reason 3: Image too small or wrong format

Slack requires the OG image to be at least 200×200px. Smaller images are ignored. For a proper Slack unfurl with a large image card, use 1200×630px.

Supported formats: PNG, JPEG, GIF (static only). WebP and SVG are not reliably supported.

Reason 4: Slackbot is blocked by your server

If your server has a firewall, rate limiting, or robots.txt that blocks Slackbot, it can't scrape your page. Check:

# In your robots.txt — make sure Slackbot isn't disallowed
User-agent: Slackbot
Allow: /

# If you have IP allowlisting, Slack's scraper IPs are not published.
# Prefer domain-level access controls instead of IP-based.

Test whether Slackbot can reach your page by simulating its User-Agent:

curl -A "Slackbot-LinkExpanding 1.0 (+https://api.slack.com/robots)" \
  -I https://yoursite.com/page

If you get a non-200 response, your server is blocking Slackbot.

Reason 5: Unfurl settings disabled in Slack workspace

Slack workspace admins can disable link unfurling globally or per-domain. If link previews aren't showing for anyone in your workspace (not just you), check Slack admin settings under Settings & Permissions → Messages Tab.

Individual users can also disable unfurls by hovering a link preview and clicking the X icon — this prevents that specific link from unfurling for that user only.

Reason 6: JavaScript-rendered OG tags

Slackbot doesn't execute JavaScript. If your OG meta tags are injected by React, Vue, or Angular client-side, Slackbot sees an empty <head> and skips the preview.

OG tags must be present in the initial server-rendered HTML response. Use SSR (Next.js App Router, Nuxt 3, etc.) to ensure they're in the raw HTML.

Quick Slack OG diagnostic checklist

  • og:image is an absolute HTTPS URL
  • ✅ Image is at least 200×200px (ideally 1200×630px)
  • ✅ Image format is PNG or JPEG
  • ✅ Image URL is publicly accessible (no auth, no geo-block)
  • ✅ Slackbot is not blocked in robots.txt or firewall
  • ✅ OG tags are in server-rendered HTML (not JS-injected)
  • ✅ URL changed if you updated the image (to bust cache)

Verify your Slack OG preview

Paste your URL into OGFixer to see a live preview of exactly what Slack will show — including the image, title, and description — before you paste the link into a channel.