Link Previews Not Showing (Kakao, Slack, X)? Fixing OG Tags
Why link previews are missing or stale when sharing, and how to fix OG tags and scraper caches.
You paste a link into Slack and nothing unfurls. You share your redesigned site in a Kakao chat and the preview still shows a screenshot from three months ago. On Facebook the wrong photo gets picked; on X the card never appears at all. Nearly every one of these failures comes down to two causes:broken or missing Open Graph tags, or a platform scraper still serving a cached copy of your old page.
This guide walks through how link previews actually get built (and why JavaScript-rendered tags are invisible to most bots), the exact tags and image specs you need, how to purge the cache on each major platform, and how to diagnose the annoying “everything shows except the image” case.
How scrapers build a preview
The preview card is not generated by the recipient’s browser. When a link is shared, the platform’s own bot makes a server-side HTTP request to your URL, downloads the raw HTML, and reads the og:title, og:description, and og:image meta tags out of the <head>. Three consequences follow:
- Most scrapers never execute JavaScript. If the tags only exist after your client-side framework hydrates, the bot sees a page without them — even though they look fine in DevTools.
- Single-page apps therefore need SSR, static prerendering, or dynamic rendering (serving a prerendered snapshot to bot user agents) for previews to work.
- Each bot identifies itself with a distinct User-Agent —
facebookexternalhit,Slackbot-LinkExpanding,Twitterbot,kakaotalk-scrap. A firewall or bot-protection rule that returns 403 to these agents silently kills your previews.
To see your page exactly the way a scraper does, drop the URL into the Open Graph preview tool — it renders the resulting card the way Kakao, Slack, and Facebook would show it.
The tags you need, and the image spec that actually works
A reliable preview needs four Open Graph tags plus one Twitter tag, all inside <head> of the server-rendered HTML:
og:title— the card headline. Keep it under roughly 60 characters to avoid truncation.og:description— one or two sentences; platforms cut it anywhere between 80 and 200 characters.og:image— must be an absolute https URL. Relative paths like/img/thumb.pngare ignored by most scrapers. The safe universal size is 1200×630 px (1.91:1), JPG or PNG, ideally under 1 MB (Facebook allows up to 8 MB, but huge files frequently time out on other platforms).og:url— the canonical URL, so tracking-parameter variants all resolve to one preview.twitter:card— set tosummary_large_imageif you want the big-thumbnail layout on X. X falls back to OG tags for content, but this tag decides the card format.
Rather than hand-typing the block (and risking a missing quote or a relative image path), fill in your title, description and image once in the Open Graph tag generator and paste the generated markup into your template.
Why the preview shows old content — purging scraper caches
If you have already fixed the tags and the preview is still stale, your code is fine: the platform simply hasn’t re-fetched your page. Scrapers cache the result of their first crawl, sometimes for days or weeks. Every major platform has its own way to force a refresh:
| Platform | Debugger / cache purge | Notes |
|---|---|---|
| KakaoTalk | Kakao Developers sharing debugger — developers.kakao.com/tool/debugger/sharing | Enter the URL and click the cache-clear (initialize) button. Requires a Kakao account. |
| Facebook / Messenger | Sharing Debugger — developers.facebook.com/tools/debug | Click “Scrape Again”. Also shows the exact response the bot received — the best diagnostic tool of the bunch. |
| Slack | No public purge tool — cache is short-lived (roughly 30 minutes) | Wait a bit and post the link again; in a hurry, append a query string like ?v=2 so Slack treats it as a new URL. |
| X (Twitter) | Card Validator no longer renders previews — no official purge | Cache lasts about 7 days. Change a query parameter on the URL or wait it out. |
Post Inspector — linkedin.com/post-inspector | Inspecting a URL refreshes its cached preview on the spot. |
Worked example: Kakao keeps showing the old thumbnail
Scenario: you swapped your store’s hero image and updated og:image, but a KakaoTalk share still displays the old product photo. Here is the fix, step by step:
- Confirm the new tag is actually in the HTML your server sends. Run the URL through the SEO meta tag checker — it reads the server response, so a stale CDN copy or an undeployed change shows up immediately.
- Check that
og:imageis an absolutehttps://URL and that opening it directly in a private browser window returns the new image. - Go to
developers.kakao.com/tool/debugger/sharing, sign in with a Kakao account, enter the URL, and hit the cache-clear button. - Re-scrape in the same screen and verify the debugger now shows the new title, description, and image. If chats still show the old card, remember that already-sent messages keep their original preview — send the link in a fresh message.
Preview appears, but the image is missing
When the title and description resolve but the thumbnail stays blank, work down this list:
- Relative URL —
og:imagestarts with/instead of a full https address. Replace with an absolute URL. - Bot blocked —
robots.txtdisallows the image path, or a WAF/CDN rule serves 403 to scraper user agents likefacebookexternalhitorkakaotalk-scrap. - Too large — multi-megabyte originals often time out before the scraper finishes downloading. Resize to 1200×630 and keep it under 1 MB.
- Wrong Content-Type — the image URL returns
text/html(a redirect page, hotlink protection, a login wall) instead of an image MIME type, so the scraper discards it. - Certificate problems — an invalid SSL certificate on the image host makes scrapers refuse the download even over https.
After each fix, re-check the card in the Open Graph preview tool first, and only then purge the platform caches — otherwise you burn a re-scrape on a page that is still broken.
Frequently asked questions
My link shows no preview at all in Slack or Kakao. Where do I start?
I fixed my OG tags but the preview is still the old one. Why?
What size should the og:image be?
My site is a React/Vue SPA. Do I have to move to full SSR to get previews?
Will messages I already sent update after I purge the cache?
Tools to use with this guide
Related guides
- How to Write robots.txt: Syntax, Examples and Common Mistakesrobots.txt rule syntax, ready-made examples by site type, and the common mistakes that break indexing.
- Setting Up hreflang: Stop Multilingual SEO DuplicationConfigure hreflang correctly for multilingual sites and avoid the x-default and return-tag mistakes.