LinkedIn's link preview uses Open Graph tags — but LinkedIn's crawler has a specific behaviour that surprises developers: it caches previews aggressively and provides its own Post Inspector tool at linkedin.com/post-inspector for forced cache refresh, separate from Facebook's Sharing Debugger and Twitter's Card Validator
The previous articles on this site covered Open Graph basics, designing OG images for clicks, social algorithm suppression of links, why og:image fails on X/Twitter, Open Graph cache problems, and og:image rendering failure modes. This article addresses platform-specific Open Graph implementation differences — specifically how LinkedIn, WhatsApp, Slack, Discord, and Teams each implement their own preview rendering with distinct requirements and limitations.
LinkedIn's Open Graph implementation: what's different
LinkedIn Post Inspector (linkedin.com/post-inspector) is the equivalent of Facebook's Sharing Debugger for LinkedIn. Submit any URL to force LinkedIn to re-fetch the Open Graph metadata and update its cached preview.
LinkedIn-specific requirements:
Image dimensions: LinkedIn recommends 1200×628 pixels (similar to the general recommendation) but is notably strict about aspect ratio. Images significantly outside the 1.91:1 ratio may be rendered differently or cropped in ways that cut off important content.
og:image:secure_url: LinkedIn preferentially uses og:image:secure_url over og:image for images when both are present. This is a legacy tag from the era when HTTPS wasn't universal:
<meta property="og:image" content="https://example.com/og.jpg">
<meta property="og:image:secure_url" content="https://example.com/og.jpg">
Including both is the safest approach for LinkedIn compatibility.
Article schema for LinkedIn articles: when sharing articles, LinkedIn enriches previews when og:type="article" is set alongside article:author and article:published_time tags. These increase preview information density for professional content.
WhatsApp: minimal Open Graph, aggressive caching
WhatsApp uses Open Graph for link previews but with significant differences from other platforms:
Small preview images: WhatsApp shows link previews at a small size — approximately 300×157 pixels as displayed, though images are fetched at full resolution. The practical effect: complex OG images with small text often look illegible on WhatsApp.
Title-heavy presentation: WhatsApp's preview prioritises og:title and site name over image — a strong title matters more than a complex OG image for WhatsApp sharing.
Cache duration: WhatsApp's cache is even more aggressive than most platforms. There is no official "force refresh" tool for WhatsApp previews. Adding a URL parameter (?v=2) creates a technically new URL, bypassing the cache.
iOS vs Android differences: WhatsApp's preview rendering differs between iOS and Android clients — developers should test on both platforms.
Slack: the unfurl API and custom previews
Slack "unfurls" links — replacing the bare URL with a rich preview — using Open Graph tags plus its own API for custom app integrations.
Standard Slack unfurling (no Slack app): Slack fetches og:title, og:description, og:image, and og:site_name. The preview appears as a card-style attachment in messages. Image size limits: Slack processes images up to 2048×2048 pixels and resizes for display.
The Slack Apps unfurl API: for workspaces where a Slack app is installed that handles a specific domain, the app can override Slack's default unfurling with custom-formatted link previews using Slack's Block Kit — richer formatting, interactive elements, and real-time data. This is how Jira, GitHub, Figma, and similar integrations show issue details, code previews, and design thumbnails.
Disabling Slack unfurling for specific links: if a user doesn't want a preview, they can wrap the URL in <> to suppress unfurling. Senders can also add ?slack_unfurl=false to links as a hint (though this isn't officially supported by Slack).
Discord: Open Graph with video support
Discord implements Open Graph with an extension for video embeds that other platforms don't support:
Standard OG image previews: work as expected — og:image shows as a preview when a URL is shared.
Video embeds via og:video: Discord supports og:video tags for embedded video playback directly in chat:
<meta property="og:video" content="https://example.com/video.mp4">
<meta property="og:video:type" content="video/mp4">
<meta property="og:video:width" content="1280">
<meta property="og:video:height" content="720">
When these tags are present, Discord shows an embeddable video player rather than just a static image. This is why some URLs (YouTube, Twitch clips, certain social media videos) play inline in Discord.
Discord embed colour: Discord allows an accent colour for embeds via a custom meta tag:
<meta name="theme-color" content="#5865F2">
The left border of the Discord embed takes this colour — allowing brand-consistent previews.
Microsoft Teams: Open Graph with adaptive cards
Microsoft Teams uses Open Graph for basic link previews but has its own rich preview system for deep integrations:
Standard Teams unfurling: uses og:title, og:description, og:image for basic previews. Renders in a compact format in Teams conversations.
Teams Messaging Extensions and Adaptive Cards: similar to Slack's unfurl API, Teams allows apps to provide rich, interactive Adaptive Card previews for specific domains. Jira, GitHub, Trello, and similar tools use this for rich link previews in Teams.
SharePoint/OneDrive links in Teams: Microsoft links use proprietary preview rendering that bypasses Open Graph entirely — they use SharePoint's metadata for file type icons, author, and preview thumbnails.
The og:locale and og:locale:alternate tags for multilingual content
For sites with multilingual content, Open Graph provides locale tags:
<meta property="og:locale" content="en_GB">
<meta property="og:locale:alternate" content="fr_FR">
<meta property="og:locale:alternate" content="de_DE">
og:locale format: uses underscore (not hyphen) as the separator, unlike hreflang's en-GB format. en_US, fr_FR, de_DE are the correct formats. Facebook uses these to understand which language version is being shared and to select appropriate alternate versions for different users' language settings.
LinkedIn locale: LinkedIn also reads og:locale to understand content language, which affects how the post is categorised in feed algorithms.
How to use the Open Graph Generator on sadiqbd.com
- Generate platform-complete markup: produce og:image alongside og:image:secure_url for LinkedIn compatibility, og:locale for multilingual sites, and og:type with article tags for news and blog content
- Test each platform separately: after implementing, verify previews on LinkedIn Post Inspector, Facebook Sharing Debugger, and Twitter Card Validator separately — each platform renders differently and has its own cache
- WhatsApp cache bypass: if OG tags were wrong when a URL was first shared on WhatsApp, add a URL parameter to create a new cache entry —
?og=v2— and share the new URL
Frequently Asked Questions
Why does the same URL show different previews on different platforms simultaneously? Because each platform's crawler fetched the URL at different times, caching different versions. If you updated the og:image after the URL was already shared on Facebook but not yet on LinkedIn, Facebook shows the old image and LinkedIn shows the new one. Additionally, platforms have different cache durations — Facebook may cache for 24-72 hours; LinkedIn can cache for longer. Each platform's cache expires independently. The only way to update previews is to use each platform's specific cache clearing tool (Facebook Sharing Debugger, LinkedIn Post Inspector) or wait for cache natural expiry.
Is the Open Graph Generator free? Yes — completely free, no sign-up required.
Try the Open Graph Generator free at sadiqbd.com — generate complete Open Graph and Twitter Card meta tags for any page or content type.