LinkedIn Link Preview Not Working? How to Fix It
When you paste a link into a LinkedIn post, LinkedIn fetches the page, reads its Open Graph tags and builds a card with a title, an image and the site name.
When the card shows the wrong title, a blank grey box or no card at all, the cause is almost always one of five things: missing or wrong og tags, an image LinkedIn will not use, LinkedIn's crawler being blocked, a redirect it cannot follow, or an old preview held in LinkedIn's cache. This guide covers each one, how to confirm which you have, and how to fix it.
How LinkedIn builds a link preview
When a link is pasted into a post, message or comment, LinkedIn's crawler, which identifies itself
as LinkedInBot, requests the page from your server. It reads the HTML head, picks out the
Open Graph tags, fetches the image and stores the result. That stored copy is what every later share
of the same URL uses, until LinkedIn fetches the page again.
Three things follow from that:
- LinkedIn reads the HTML your server sends, not what a browser builds after running JavaScript. Tags added by a script after the page loads are invisible to it.
- The image is fetched separately. The page can be fine and the card still blank if the image address fails, redirects to a login, or is blocked.
- LinkedIn keeps its copy for about a week. Fixing the page does not change a card LinkedIn has already stored until you ask it to fetch the page again.
LinkedIn uses Open Graph tags first. If they are missing it falls back to the <title>
and the meta description, and it may pick any image on the page, which is how cards end up showing a
logo, an icon or a tracking pixel. LinkedIn does not read Twitter card tags.
The tags LinkedIn reads
| Tag | What LinkedIn uses it for | Notes |
|---|---|---|
og:title | The bold title on the card. | Keep it under about 70 characters; LinkedIn cuts longer titles on mobile. |
og:image | The card image. | A full https address. Relative paths are ignored. |
og:description | Shown in some layouts and in Post Inspector. | Often hidden in the feed, but keep it accurate. |
og:url | The address LinkedIn files the preview under. | Must match the canonical URL of the page. |
og:type | The kind of content. | article for posts and
guides, website for home pages. |
og:site_name | The source line under the title. | LinkedIn often shows the domain instead. |
article:published_time, article:author | Publish date and author in Post Inspector. | Optional. Use a full date and time. |
A correct set you can copy
<head>
<meta charset="UTF-8">
<title>Spring garden open day | Northwood Nurseries</title>
<link rel="canonical" href="https://example.com/events/spring-open-day">
<meta property="og:type" content="article">
<meta property="og:site_name" content="Northwood Nurseries">
<meta property="og:url" content="https://example.com/events/spring-open-day">
<meta property="og:title" content="Spring garden open day: free tours and plant sale">
<meta property="og:description" content="Guided tours of the display gardens, talks from our growers and 20% off perennials on Saturday 16 May.">
<meta property="og:image" content="https://example.com/images/open-day-1200x627.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="627">
<meta property="og:image:alt" content="Visitors walking through the spring borders at Northwood Nurseries">
</head>
Note that Open Graph tags use property=, not name=. Most crawlers accept
both, but property is the standard and removes one possible cause of trouble.
Images LinkedIn will show
A blank grey card, or a card with a tiny square thumbnail instead of a wide image, is an image problem. LinkedIn is stricter about images than about text.
| Requirement | What works | What fails |
|---|---|---|
| Size | 1200 x 627 pixels (a 1.91:1 ratio) | Images under about 200 pixels wide are dropped; small images show as a thumbnail, not a wide card. |
| File size | Under 5 MB; under 1 MB loads fastest | Very large files time out while LinkedIn fetches them. |
| Format | JPG or PNG | SVG is not supported; WebP and AVIF may not show everywhere. |
| Address | Full https URL returning 200 | Relative paths, http on an https page, addresses that redirect to a login. |
| Access | Public, no cookies needed | Images behind hotlink protection, a CDN token that expires, or robots.txt rules on the image folder. |
Keep text and faces away from the edges: LinkedIn crops slightly differently on desktop and mobile. If the same image is used for Facebook, X and WhatsApp, 1200 x 630 works everywhere and the 3-pixel difference from LinkedIn's 627 is not noticeable.
open-day.jpg?v=2.When LinkedIn cannot fetch the page
If Post Inspector shows no data at all, or an error such as "we could not access the URL", LinkedIn's crawler is not getting the page. Check these in order:
- robots.txt. A rule such as
User-agent: * Disallow: /, or a rule forLinkedInBot, stops the preview. Allow LinkedInBot, including the folder that holds your images. - Firewalls and bot protection. Cloudflare Bot Fight Mode, Wordfence, ModSecurity rules and hosting "anti-bot" settings often challenge or block LinkedInBot. Look for its user agent in the firewall log and add an allow rule.
- Login walls and cookie gates. A page that redirects visitors without a cookie to a login or consent page gives LinkedIn that page instead. The Open Graph tags must be in the HTML served to a visitor with no cookies.
- Country blocking. Blocking traffic from outside the UK also blocks LinkedIn's crawlers, which do not run from the UK.
- Slow responses. LinkedIn gives up on pages that take several seconds to start responding. Heavy pages built on every request are the usual cause.
Your server's access log settles the question. Search it for LinkedInBot after running
Post Inspector: no line means the request was blocked before it reached the site; a 403, 429 or 503 means
the site refused it; a 200 means the problem is in the tags or the image.
sudo grep -i "linkedinbot" /var/log/nginx/access.log | tail -5
Old previews and the LinkedIn cache
LinkedIn stores the preview it built for each URL and reuses it for about seven days. That is why a fixed page can still share with the old title or image.
- Open LinkedIn Post Inspector and paste the exact URL, including https and any trailing slash.
- Press Inspect. This makes LinkedIn fetch the page again and replace its stored copy.
- Check the result: title, image, description and the "Last scraped" time.
- Create a new post with the link. Existing posts keep the card they were created with.
If the old preview still appears, the old version is being served to LinkedIn by something between it and your page: a CDN cache, a page cache plugin, or a redirect to an old address. Purge the cache for that URL and inspect again.
Redirects, canonical URLs and single-page apps
- Redirect chains. LinkedIn follows redirects, but each one adds delay and a chance of failure. Share the final address, and keep http-to-https and www redirects to a single hop.
- og:url and canonical. If
og:urlpoints to a different page from the one shared, LinkedIn may fetch and show that page instead. Keep og:url identical to the canonical URL. - JavaScript redirects and meta refresh. LinkedIn does not run scripts, so a page that sends visitors on with JavaScript shows LinkedIn the empty first page.
- Single-page apps. Sites built with React, Vue or Angular that set tags in the browser send LinkedIn a near-empty head. Render the Open Graph tags on the server, or pre-render the pages you share.
The fix, step by step
Step 1
Inspect the URL in LinkedIn Post Inspector
Paste the exact URL into LinkedIn Post Inspector, including https and any trailing slash. Note what it shows: the title, the image, the description, any missing properties, any error and the Last scraped time. The Social Preview checker shows the same tags alongside how X, Facebook, Slack and WhatsApp will read them, so you can fix every platform in one pass. Keep a note of the result.
Step 2
Add the Open Graph tags LinkedIn reads
View the page source, not the browser element inspector, and check that og:title,
og:description, og:image and og:url are in the head, once each,
using property= and full https addresses. If a plugin and the theme both output Open Graph
tags, switch one off, because duplicate tags make LinkedIn pick unpredictably. Keep og:title under about
70 characters so it is not cut short on mobile, and make og:description a plain summary of the page.
Step 3
Use an image LinkedIn will show
Open the og:image address in a private browser window. It should load straight away as a JPG or PNG of about 1200 by 627 pixels and under 5 MB. If it redirects, asks for a login, is blocked by hotlink protection or is tiny, replace it. When you change the image, give it a new file name so LinkedIn and your CDN cannot keep serving the old one.
Step 4
Let LinkedInBot fetch the page
Check
robots.txt, the firewall and any bot protection such as Cloudflare Bot Fight Mode or Wordfence, then
search the server access log for LinkedInBot after running Post Inspector. No log line means
the request was blocked before the site; a 403, 429 or 503 means the site refused it. Allow LinkedInBot
wherever it is blocked or challenged, including on the image folder.
Step 5
Remove redirect and canonical problems
Share
the final URL rather than one that redirects, and keep any http-to-https or www redirect to a single
hop. Make og:url identical to the canonical URL, and make sure the Open Graph tags are in
the HTML the server sends, not added by JavaScript after the page loads, because LinkedIn does not run
scripts when it reads a page. Single-page apps need server rendering.
Step 6
Refresh the preview and check again
Purge any CDN or page cache for the URL so LinkedIn is served the fixed page, then inspect it again in Post Inspector and check the new title, image and Last scraped time. Create a new post to see the new card, because existing posts keep the preview they were created with. Run important links through Post Inspector before every campaign. Keep a record of each check.
Stopping it from coming back
- Tags in the template. Generate Open Graph tags on the server for every page from the page's own title, description and featured image, so no page goes out without them.
- A default image. Set a site-wide 1200 x 630 fallback image for pages with no featured image, so LinkedIn never picks a logo or an icon.
- An allow rule for crawlers. Keep LinkedInBot, facebookexternalhit, Twitterbot, Slackbot and WhatsApp on the firewall's allow list.
- New image, new name. Change the file name when you change a share image.
- Inspect before posting. Run important links through Post Inspector before they go out.
1. Why is my LinkedIn link preview not showing?
Usually because LinkedIn could not fetch the page or the image. Check the exact URL in LinkedIn Post Inspector. If it shows an error, LinkedInBot is being blocked by robots.txt, a firewall, bot protection, a login wall or a slow response. If it shows the page but no image, the og:image is missing, too small, not a full https address or not publicly reachable. Fix the cause, then inspect the URL again.
2. How do I refresh a LinkedIn link preview?
Paste the exact URL into LinkedIn Post Inspector and press Inspect. LinkedIn fetches the page again and replaces its stored preview, and the Last scraped time updates. Posts that are already published keep the card they were created with, so create a new post to use the new preview. If the old preview still appears, purge any CDN or page cache for that URL and inspect it again. It only takes a few seconds.
3. What size should a LinkedIn preview image be?
About 1200 by 627 pixels, a 1.91 to 1 ratio, saved as a JPG or PNG under 5 MB, and ideally under 1 MB so it loads quickly. Smaller images may show as a small square thumbnail instead of a wide card, and very small ones are ignored. If one image has to serve LinkedIn, Facebook, X and WhatsApp, 1200 by 630 works well everywhere. Keep text and faces away from the edges, which are cropped slightly.
4. Does LinkedIn use Twitter card tags?
No. LinkedIn reads Open Graph tags such as og:title, og:description, og:image and og:url. If they are missing it falls back to the page title, the meta description and whatever image it finds on the page. Twitter card tags are only read by X, so a page with Twitter tags but no Open Graph tags will show a poor preview on LinkedIn. Keep both sets on every page so each platform gets the tags it expects.
5. Why does LinkedIn show my logo instead of the article image?
Because the page has no og:image, or LinkedIn could not fetch the one it names, so it picked another image from the page, often the logo in the header. Add an og:image tag with a full https address to a large JPG or PNG of about 1200 by 627 pixels, check that the address loads in a private browser window, and then inspect the URL again in Post Inspector to refresh the preview.
6. How long does LinkedIn keep an old preview?
LinkedIn stores the preview it builds for each URL for about seven days before fetching the page again on its own. During that time every new share of the same URL uses the stored copy, even if the page has changed. Post Inspector forces a new fetch straight away. Different versions of an address, such as with or without a trailing slash or tracking parameters, are stored separately, so inspect the exact address being shared.
7. Can I edit the preview on a post that is already published?
No. The link card is fixed when the post is created, and editing the post text does not rebuild it. To show a corrected preview, fix the page, refresh the URL in LinkedIn Post Inspector so it fetches the new tags and image, and share the link in a new post. If the broken post matters, delete it and publish the new one, so readers only see the corrected card.
The Social Preview checker fetches your page the way LinkedIn, X, Facebook, Slack and WhatsApp do, lists every Open Graph and Twitter tag, checks the image size and address, and shows each card side by side.
Open Social Preview Fixes โ