The Short Answer
Run the platform debugger first. If that does not update the preview, change the og:image URL.
I usually do both when the post matters. Debuggers are good for telling the crawler to fetch again. A versioned image URL removes the ambiguity because the platform sees a new asset.
Why the Old Preview Sticks Around
Social apps do not fetch your page from your browser. Their crawlers fetch the URL, extract tags like og:title, og:description, and og:image, fetch the image separately, then cache the preview.
That cache is separate from your CDN cache and your browser cache. You can hard refresh all day and still see the old preview in a composer.
What I Do First
- Open the URL in MyOG's preview tool and confirm the tags are correct.
- Open the platform debugger and re-scrape the same URL.
- Paste the URL into the social composer again as a new draft.
- If it still shows the old image, change the image URL.
Do not judge the result from an old post. Existing posts often keep the preview they had when they were created.
The Debuggers Worth Opening
- Facebook Sharing Debugger - paste the URL, debug it, then use the scrape-again action.
- LinkedIn Post Inspector - LinkedIn says it refreshes the URL preview for new posts, messages, and articles.
- X Card Validator - useful when you rely on
twitter:cardtags. - Slack, Discord, WhatsApp, Telegram, and iMessage have less predictable refresh tools. For those, a changed
og:imageURL is the practical fix.
Change the Image URL
If the page URL stays the same and the image URL stays the same, you are asking another company's cache to notice your update. Sometimes it does. Sometimes it does not.
Add a version query string when you replace the image:
<!-- Before -->
<meta property="og:image" content="https://example.com/og.png">
<!-- After -->
<meta property="og:image" content="https://example.com/og.png?v=2026-06-09">The image content changed, so the URL should change too. This is boring, but it is the cleanest fix.
Make the Image Easy to Fetch
Cache refresh will not help if the crawler cannot fetch the image. Give it a plain public URL and enough metadata to avoid guessing.
<meta property="og:image" content="https://example.com/og.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:type" content="image/png">
<meta property="og:image:alt" content="A short description of the preview image">- Use an absolute HTTPS URL.
- Return the right image content type.
- Avoid auth, bot blocks, hotlink protection, and slow dynamic rendering.
- Use 1200 by 630 unless you have a reason not to.
Platform Notes
LinkedIn's help page says an old image can appear because the same URL was already cached, and that Post Inspector affects new posts using that URL. X's Cards docs say card content can be cached for seven days after a URL with card markup is posted. Slack's developer docs say classic unfurling crawls the URL and looks for Open Graph and X Card metadata.
The lesson is the same across all of them: fix the tags, re-scrape when a debugger exists, and version the image URL when the stale preview matters.
Related Resources
- Social Preview Debugger Tools - which debugger to use for each platform
- Why OG Images Fail on Social Platforms - the broader debugging checklist
- OG Image Size Guide - dimensions, file size, and safe-area rules
Check the preview before you share it
Paste a URL into MyOG.social and see the tags, image, and platform previews before the crawler cache gets involved.
Already have an account?