Your og:image Updated — Slack Still Shows Last Quarter's Card

(Updated: July 16, 2026 ) Open Graph OGP Slack Discord SEO webdev

Launch day: marketing swaps the hero OG image at 09:00. By 09:05 the HTML on production has the new og:image. By 09:06 someone drops the URL in Slack — and the unfurl is still the winter campaign. The site is fine. The crawler cache is not.

Who fetches what

ConsumerFetcherCache behavior (practical)
Facebook / IGMeta crawlerSticky; use Sharing Debugger + “Scrape Again”
SlackSlackbot unfurlAggressive; often needs a new URL or long wait
DiscordDiscordbotUsually quicker; still sticky on popular links
LinkedInLinkedInBotDebugger / Post Inspector style refresh
iMessage / MessagesApple botsOpaque; image URL changes help most

Your Chrome DevTools Network tab never speaks for these bots. They use their own user agents, often ignore your logged-in cookies, and may hit a regional edge that still holds an old HTML snapshot.

Verify the live HTML first

Before blaming Slack, curl the public URL the way a bot would:

curl -sL -A "facebookexternalhit/1.1" https://example.com/launch | findstr og:

Confirm:

  • Absolute https:// image URLs (relative paths fail for many bots)
  • og:title, og:description, og:image, and preferably og:image:width / height
  • No noindex or auth wall for anonymous GETs
  • Image returns 200 with a sane Content-Type (image/png or image/jpeg), not an HTML error page

If HTML is wrong, fix deploy. If HTML is right and Slack is wrong, you are in cache territory.

Cache-busting that actually moves the needle

Changing only the meta tag while keeping https://cdn.example.com/og.png stable is the classic fail. Many CDNs and bots key on that URL. Prefer:

  • New path: /og/launch-2026-07.png
  • Or immutable query: /og/launch.png?v=20260716

Purge the CDN object when you overwrite in place. Marketing “replaced the file in the same S3 key” without invalidation is a frequent root cause.

For Facebook, open the Sharing Debugger, paste the URL, scrape again, and check for warnings (image too small, wrong type, redirect loops). For LinkedIn, use its inspector. For Slack: post a URL with a harmless query (?utm_unfurl=2) only if your app treats query strings as the same page for OG purposes — or wait and educate the team that first-paste wins for a while.

Discord and Slack are not the same product

Discord often re-fetches sooner when you edit a message or paste again after hours. Slack workspaces can keep an old unfurl associated with a domain for a long time. Enterprise proxies and link expanders add another layer. Treat “works in Discord” as weak evidence that Slack will update.

Preview before the all-hands paste

Use an OGP preview tool against the production URL (or a publicly reachable staging host) to confirm title, description, and image dimensions before anyone pastes into a 500-person channel. Catch 1200×630 mistakes and missing absolute URLs while you can still fix them without a cache war.

Redirects and soft 404s

Bots that follow a chain of 301s sometimes cache the intermediate URL’s tags, or give up and show a generic card. Keep launch URLs stable. If you must redirect vanity paths, ensure the final 200 response carries the og tags you expect, and scrape the canonical URL in debuggers — not only the short link.

Internationalized sites add another wrinkle: og:locale and alternate locales should match the page the bot received. A bot hitting /en/launch while your CDN geo-redirects to /ja/launch can produce a Japanese card in an English Slack thread. Pin locale with explicit links during launch week.

Runbook snippet for on-call

When someone reports “OGP broken” after a deploy:

  1. Fetch HTML with a bot user-agent; confirm tags.
  2. Fetch og:image directly; confirm bytes and content-type.
  3. Check CDN cache status headers on both HTML and image.
  4. Scrape Meta debugger; note warnings.
  5. If Slack-only, assume workspace cache; version the image URL and re-announce with the new absolute path.

OGP bugs feel like “deploy didn’t work.” Usually deploy worked — the social graph remembered yesterday. Version images, scrape with official debuggers, and assume every messenger keeps its own souvenir of your old card.