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:imageis 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.