Link Preview on Shopify: How to Control What Shares Show

Updated Oct 19, 2026

A link preview is the card (image, title and short description) that Facebook, WhatsApp, X, LinkedIn and messaging apps build when someone shares a URL. On Shopify, the card comes from your theme's Open Graph tags, mainly og:image. A 1200×630 image is the safe default, and keeping the file well under 1 MB is good practice. Platforms cache cards, so changes need a forced refresh.

The card comes from a few meta tags in the <head> of your page. Open Graph tags are the og: tags Facebook introduced, and most apps now read them. Twitter Card tags (twitter:) are read by X, which falls back to Open Graph when they're missing. When someone pastes your product URL into a chat or post, the platform's crawler fetches the page, reads those tags and draws the card.

TagWhat it controls
og:imageThe picture in the card
og:titleThe bold headline
og:descriptionThe short line under the title
og:urlThe URL the card points to (normally the canonical URL)
og:site_nameThe small store-name label some apps show
twitter:cardCard style on X; summary_large_image gives the big image
og:image:width / og:image:heightLet platforms lay out the image before downloading it

If og:image is missing, platforms have to guess. Facebook may pull some other image from the page (a payment icon, a tiny logo), and WhatsApp often shows a text-only card. Most complaints about a link showing the wrong picture start with that guessing.

Where the card's image comes from on each Shopify page

Your theme builds the tags, and the image source depends on the page type. Products use the featured image, collections use the collection image, articles use the article image, and the homepage and standard pages use the image set in Online Store > Preferences > Social sharing image. In Dawn and most Online Store 2.0 themes, this logic lives in snippets/meta-tags.liquid. The full breakdown, and when the theme default stops being good enough, is in what Shopify does with og:image without an app.

Two details matter for shared cards specifically:

  • Reordering media changes every share. The featured image is whatever sits first in the product's media list. If you move a lifestyle shot to the front for the product page, every new share of that product shows the lifestyle shot.
  • Variant links usually still show the featured image. Most themes ignore ?variant= when building og:image. A customer who shares the Forest Green version of a jacket may send a card showing the black one. If one colour dominates sharing, put that photo first or use an image that shows several colours.

Image size and format for shared cards

A 1200×630 pixel image (1.91:1) is the safe default because Facebook, LinkedIn and X all show it full width. Shopify's Preferences screen suggests 1200×628 for the social sharing image, which is effectively the same thing. Use JPG for photos and PNG for flat graphics; SVG isn't supported for og:image.

Keep the product and any text in the centre, because apps crop to slightly different shapes. A square 1200×1200 image also works, but expect the top and bottom to be trimmed in landscape cards. For per-platform sizes in more detail, including tall Pinterest images, see sizes and formats per platform.

How each platform shows a shared Shopify URL

Each platform reads the same tags but shows them differently, so a card can look fine on Facebook and broken in WhatsApp.

PlatformWhat it showsCache behaviourHow to refresh
Facebook / MessengerLarge image, domain, title, descriptionKeeps the scraped card until it re-scrapes, which can take weeksSharing Debugger, Scrape Again
WhatsAppImage (large or small), title, short descriptionCached in the appNo public tool; share a changed URL
XImage with the domain overlaid; no headline in most cardsAbout a weekNo public cache-clear
LinkedInLarge image, title, domainAbout seven daysPost Inspector
iMessageImage and titleCached on the deviceShare a changed URL
Slack / DiscordTitle, description, imageCached for a whileUsually refreshes on its own later

Facebook

Facebook fetches the image in the background the first time a URL is shared. If your theme doesn't output og:image:width and og:image:height, the very first share of a new product can appear without an image. Running the URL through the Sharing Debugger before posting avoids that. Facebook's guidance has long been that images smaller than 600×315 may appear as a small thumbnail beside the text instead of the large card, so don't go below that.

WhatsApp

WhatsApp builds the card on the sender's phone while they type. If the page responds slowly or the image is heavy, the sender often just gets a plain link. A customer sharing a product with a friend won't retry, so a fast, light image matters more here than anywhere else.

X

X dropped headlines from most link cards in October 2023. The image now carries almost all the information, with only the domain shown over it. A plain product photo on white says very little in that format, while an image that includes the product name or price does more of the work.

Pinterest

When someone saves a pin from your site, Pinterest lets them pick from images on the page, not just og:image, and tall 2:3 images (such as 1000×1500) take up more space in the feed. Your Open Graph title and description still feed the pin text.

Writing the title and description that show in the card

The card's title is your page's SEO title, so editing a product's Search engine listing changes both Google results and social shares. Keep titles under about 60 characters and lead with what the product is.

For the same store, compare:

  • "Home – Willow & Wick" (a homepage title many stores never change)
  • "Willow & Wick | Hand-poured soy candles, free UK shipping over £40"

The second tells someone in a group chat what they're about to tap. For products, "Linen Shirt in Sage | Willow Apparel" beats "Linen Shirt – Willow Apparel – Summer Collection – Sale".

Descriptions get cut sooner than titles, often after one line on mobile. Put the useful fact first: material, main benefit or shipping offer. If you leave the meta description empty, Shopify uses the start of the product description, which is often "Introducing our new…" or a fragment of a size chart. Writing 120 to 155 character meta descriptions for your most-shared products is a quick improvement, and your Shopify analytics show which products get the most traffic.

Pasted emoji can render as empty boxes in some apps. Test a few before rolling them out across the catalogue.

Choosing which image to show for products, collections and the homepage

The right image is the one the person receiving the link recognises at thumbnail size. Picture a customer sending a product to their partner with "should I get this?" or a merchant posting a sale collection in a WhatsApp broadcast. In both cases the card has a second or two to make sense.

Products. A clean, well-lit hero shot usually works. Trouble starts when the featured image is a lifestyle photo where the product is small, a size chart, a packaging shot or a detail close-up. A jewellery store whose first image shows a ring on a hand from a distance gets a card that looks like a hand.

Products with variants or sets often share better as two to four photos side by side, such as a T-shirt in four colours. How to plan that, and when one photo is better, is covered in planning a product share image collage.

Collections. These get shared during sales ("this whole collection is 30% off"). Many stores never upload a collection image because the theme doesn't display it, so every collection share falls back to the generic store image or nothing. Upload one anyway. In most themes it still feeds the card even if the page hides it.

Homepage and pages. The social sharing image in Preferences covers the homepage and every standard page, so keep it brand-level: logo, a bestseller or a simple lifestyle image. A Black Friday banner still sitting in that slot in March is a common find.

Blog articles. Always set a featured image. Articles are often shared on Pinterest and LinkedIn, and one without an image falls back to the generic picture or none.

Adding price or branding to the image

Price, a "20% OFF" badge or a logo in the image helps when the card shows little text (X, small WhatsApp cards) and during sales. The risk is staleness: if a price is baked into a static image and you change the price, the card shows the old number until the image is rebuilt and platforms fetch it again. Only put prices in images if you have a reliable way to update them.

Test every important URL before it goes into an ad, email or influencer brief, because the first scrape is what most people see. It takes about five minutes:

  1. Check the tags exist. Open the page in a desktop browser, view the source (Ctrl+U, or Cmd+Option+U in Chrome on Mac) and search for og:image. You want one tag pointing to the image you expect. Open that image URL in a new tab to confirm it loads.
  2. Run Facebook's Sharing Debugger at developers.facebook.com/tools/debug. Paste the URL and click Debug. A warning about an inferred property means a tag is missing and Facebook guessed. Click Scrape Again after any change.
  3. Run LinkedIn's Post Inspector at linkedin.com/post-inspector. It shows the card and refreshes LinkedIn's copy at the same time.
  4. Send the link to yourself on WhatsApp from your phone and wait for the card before sending. If you've shared that exact URL before, you may be seeing a cached card.
  5. Check X by starting a post with the URL, looking at the card in the composer, then discarding the draft.

Also check from a private browser window. If the card only works for you, you're probably seeing a cached version or something visible only while logged into the admin.

Why an old image keeps showing and how to force a refresh

Platforms cache a card the first time they see a URL, so updating the product image doesn't change cards that already exist. Facebook can keep its copy for weeks, LinkedIn and X for about a week, and WhatsApp and iMessage cache on each device.

How to get a fresh card:

  • Facebook and Messenger: Sharing Debugger, then Scrape Again. Posts already published may keep the old image, but new shares get the new one.
  • LinkedIn: run the URL through Post Inspector.
  • WhatsApp, iMessage, X and others: there's no public cache-clear. Share a slightly different URL, such as yourstore.com/products/linen-shirt?utm_source=whatsapp. The page is the same, but the platform treats the URL as new and fetches the tags again. UTM parameters also show up in your Shopify reports.

Nothing can update a card already sitting in someone's chat history. It stays as it was when it was shared.

Common Shopify setups that break the card

Most broken cards come from a short list of causes. Check them in this order.

Password protection before launch

If the storefront password is on (Online Store > Preferences > Password protection), crawlers see the password page, so shares show its title and image. Pre-launch stores often get their first shares cached this way. After launch, re-scrape your key URLs.

Duplicate og:image tags

If your theme outputs og:image and an app or pasted snippet adds another, the page has two. Facebook tends to prefer the first, but other platforms aren't consistent, so you can't rely on the right one being picked. Search the page source for og:image. If it appears twice with different URLs, remove one source. Uninstalled apps sometimes leave code behind in theme.liquid.

Bulk imports and supplier feeds often put a packaging shot, size chart or placeholder first. Drag the best photo to the first position in the product's media.

Markets and translated URLs

With Shopify Markets, /en-gb/products/linen-shirt and /fr/products/linen-shirt are separate URLs, each scraped and cached separately. A missing translation can produce an English title on a French URL. Test the URLs you actually promote in each market.

Slow pages or oversized images

Crawlers don't wait long. Heavy pages or an og:image pointing at a full-resolution original can produce blank cards, especially on WhatsApp. Check that the image URL in the tag requests a reasonable width (Shopify's CDN supports parameters like width=1200).

Discount links (/discount/CODE), shorteners and redirect chains are followed by most crawlers, but each hop is another chance to fail, and the card shows wherever the chain lands. If you share a discount link, test that exact link, not only the product URL.

Checking campaign URLs before a sale or launch

Before a campaign, test the exact URLs going out, not just the pages behind them. A sale link with UTM parameters or a discount code is a new URL to every platform, so it gets scraped fresh, which is a useful chance to get it right first time.

A routine that works for most stores:

  1. List every URL in the campaign: ad destinations, email buttons, the link in your Instagram bio or Story link sticker, influencer links and WhatsApp broadcast links.
  2. Check the image matches the campaign. If the sale collection still shows last season's image, upload a new collection image now, not after the email goes out.
  3. Run each final URL through the Sharing Debugger and send it to yourself on WhatsApp. For paid ads, Meta also shows the card in the ad preview.
  4. Re-scrape pages that were shared earlier. Your homepage and bestseller URLs were probably cached months ago. Scrape Again in Facebook and run Post Inspector so new shares pick up today's image.
  5. After the campaign, swap dated images back out, especially the social sharing image in Preferences, then re-scrape the homepage.

A homeware store doing this before a spring sale typically finds the same three problems: an old banner in Preferences, sale collections with no image, and a few products whose first photo is a lifestyle shot where the item is hard to spot. All three are free fixes in the Shopify admin.

How Yuhu — Social Media Share Image helps

Social Media Share Image replaces the theme's default og:image with a branded 1200×1200 share image for products, collections, articles and (optionally) pages, so keep key content centred where landscape cards crop. It also hides the theme's duplicate og:image tags so they don't compete with its own. You can undo that change at any time, and how it handles theme tags explains how.

Don't have Yuhu yet? Install it from the Shopify App Store →

Frequently asked questions

What size should a Shopify social sharing image be?

Use 1200×630 pixels; Shopify's Preferences screen suggests 1200×628, which is effectively the same. Save it as JPG or PNG and keep the file light, a few hundred KB if you can. Put the main subject in the centre so cropping on different apps doesn't cut it off.

Why does my shared link show no image at all?

Usually the page has no og:image tag, the image URL in the tag doesn't load, or the crawler gave up before the page or image finished loading. Check the page source for og:image and open that URL directly. Also make sure the store isn't password-protected, since crawlers would only see the password page.

Why does X show only the image and no title for my store links?

Since October 2023, X shows most link cards as just the image with the domain overlaid, without the headline or description. Your og:title still exists, but X doesn't display it in the card. If X matters to your store, use a share image that names the product or shows the offer.

How do I change the image shown when my homepage is shared?

Go to Online Store > Preferences in the Shopify admin, upload a new Social sharing image and save. In most themes the same image also covers standard pages like About and Contact. Then run the homepage through Facebook's Sharing Debugger and click Scrape Again so Facebook drops its old copy.

Do Shopify themes add Open Graph tags automatically?

Most current Shopify themes, including Dawn, output og:title, og:description, og:image and Twitter Card tags, usually from a snippet such as meta-tags.liquid. Older or heavily customised themes can be missing some, so check the page source. Themes use your existing photos as they are and don't design a separate share image.