seojuice

Open Graph Images: Make the Share Legible, Not Pretty

Vadim Kravcenko
Vadim Kravcenko
Nov 22, 2024 · 12 min read

TL;DR: Open graph images do not magically boost click-through rates because they are pretty — they work when they make the shared URL legible, trustworthy, and fast to preview. Most teams still treat them as a Canva export instead of part of the page contract.

Your open graph image is not decoration. It is the pre-click page.

The wrong question is usually, “What size should my open graph images be?” Size matters — but that question is too small. The real problem is that social previews are often the first rendering of your page inside someone else’s feed, inbox, Slack channel, Discord server, iMessage thread, or private group.

Diagram showing how an open graph image becomes the pre-click preview users see before visiting a page
Source: SEOJuice OG image guidance, based on the Open Graph protocol (ogp.me) and platform sharing documentation.

Bad teams ship that surface blind.

Before anyone clicks, they see some mix of title, domain, description, and image. That bundle decides whether the URL feels safe, relevant, current, and worth attention. A missing image says low trust. A generic stock image says generic article. A cropped logo says nobody checked the share card before launch.

The image, title, domain, and description are the page before the page — they decide whether the URL earns attention. That is the only framing that makes open graph images worth engineering time.

“The engagement rate of Tweets that embed a card is 40% higher.”

Vercel Engineering Blog, introducing @vercel/og

That number is useful, but do not turn it into a fake promise. It does not mean every website gets a 40% CTR lift after uploading a nicer thumbnail. It means cards change behavior. The preview is part of distribution, not a cosmetic afterthought.

At mindnow, I saw clients spend weeks polishing landing pages while their shared previews showed cropped logos, old campaign art, or no image at all. I’ve made the same mistake on vadimkravcenko.com. seojuice.com fixed it by treating social cards as part of the page template, not a marketing afterthought (I was wrong about this for years).

What the top 3 results say, and what they miss

The current search results split the topic into three separate answers: protocol docs, design advice, and developer tooling. Each is useful. None gives you the full operating model.

SERP result What it says What it misses
ogp.me, official Open Graph protocol Defines the protocol and the core tags: og:title, og:type, og:image, og:url, and related fields. It tells you what the tag is, not how to make it earn clicks. There is no design hierarchy, QA workflow, CTR framing, or caching guidance.
Buffer, Open Graph Image Best Practices Gives practical design guidance: dimensions, contrast, branding, readable text, platform previews, and composition. Strong on creative direction, weaker on implementation. It does not go far enough on dynamic image generation, templates, or crawler speed.
Vercel, OG image generation docs Shows how to generate dynamic OG images with @vercel/og, templates, route handlers, and 1200x630 output. Great for developers already sold on generation. Less useful for marketers and founders deciding which pages need custom cards and how to measure the result.

The gap is the workflow: message, markup, generation, QA, measurement. Open graph images raise CTR when they reduce uncertainty before the click. That requires more than exporting a rectangle.

What an open graph image actually is (and the tags that control it)

An open graph image is the image a platform uses when it builds a preview card for your URL. The page contains metadata in the <head> (the metadata block crawlers read). A crawler requests the page, reads that metadata, fetches the image URL, and renders a card.

“og:image - An image URL which should represent your object within the graph.”

Open Graph Protocol Specification, ogp.me

That line is short, but it carries the whole point. The image should represent the object. For an article, that object is the article. For a product page, it is the product or outcome. For a marketplace listing, it is the listing. For a documentation page, it is the document context.

A basic implementation looks like this:

<meta property="og:title" content="Open Graph Images Boost Your Click-Through Rates">
<meta property="og:description" content="How to design, generate, and QA social preview images that earn clicks.">
<meta property="og:image" content="https://example.com/og/open-graph-images.png">
<meta property="og:url" content="https://example.com/open-graph-images-boost-your-click-through-rates">
<meta property="og:type" content="article">

The core tags are simple. og:title names the object. og:description explains why it matters. og:image supplies the visual. og:url gives the canonical URL. og:type tells platforms what kind of object they are rendering.

Twitter/X has its own card tags, but Open Graph can still carry much of the work.

“Twitter allows us to substitute Open Graph <meta> tags for its own.”

Adam Coti, CSS-Tricks

Dedicated twitter:image and twitter:card tags are still useful when the platform needs a different crop, card style, or message. Treat them as overrides, not a separate strategy.

The 1200x630 rule exists because feeds crop without mercy

People still place logos, faces, and important text near the edge of the image, then act surprised when LinkedIn cuts it off. Facebook compresses it. Slack shows a smaller version. Discord decides the title is enough. Feeds are not polite layout engines.

The practical default is boring for a reason:

  • Recommended size: 1200x630 pixels.
  • Aspect ratio: close to 1.91:1.
  • Minimum fallback: 600x315, but do not design for the minimum.
  • Keep key text, faces, logos, and UI away from the edges.
  • Keep the file size reasonable.

“Use images that are at least 1200 x 630 pixels for the best display on high resolution devices.”

Meta Sharing Documentation

Meta also gives the crop rule in plain language:

“Try to keep your images as close to 1.91:1 aspect ratio as possible to display the full image in Feed without any cropping.”

Meta Sharing Documentation

CSS-Tricks gives the designer-friendly version:

“It should be at least 600×315 pixels, but 1200×630 or larger is preferred (up to 5MB).”

Adam Coti, CSS-Tricks

The rule behind all of this is simple: design a central safe zone. Put the headline, product UI, face, chart, or logo in an area that survives platform cropping, compression, and small preview sizes. If your card depends on a tiny corner label, it will fail in the places where people actually share links.

Open graph image safe zone diagram for 1200 by 630 images with 1.91 to 1 aspect ratio
Source: Meta sharing documentation and Open Graph protocol guidance — values are the published recommendations, not a Photoshop opinion.

The safe-zone test

Open the image. Cover 10% of each edge with your hands or a browser overlay. If the card still makes sense, it probably survives real feeds. If the logo, title, face, or CTA disappears, rebuild it.

This test feels stupid until it catches the thing that would have shipped broken. Then it becomes part of the workflow.

The card should sell the click, not repeat the title

Most open graph images fail because they copy the H1 onto a colored background. That is not always terrible, but it wastes the only visual surface you get before the click.

Comparison of weak and strong open graph image designs for improving click-through rate
Source: SEOJuice OG image guidance, with the +40% engagement number from the Vercel @vercel/og engineering announcement.

The title already appears in the preview. Repeating it inside the image can help readability on platforms that truncate text, but it should not be the whole job. A good open graph image does one of four things:

  1. Make the promise concrete. Show what the reader will understand, fix, compare, or avoid.
  2. Show proof. Use a chart, number, screenshot, before-and-after, or visible product result.
  3. Add emotional context. Founder essays, opinion pieces, and stories often need a human signal.
  4. Create recognition. Recurring series, reports, and product updates benefit from a consistent visual system.

For a technical SEO article, show the before-and-after preview card or a diagram of crawler behavior. For a product page, show the product outcome, not only the logo. For a data study, show the most surprising number. For a founder essay, show the person or a memorable line.

Do not put fake buttons inside OG images. A button-looking “Read more” is not clickable, and it trains users to distrust the card. The image should create confidence, not confusion.

A good card answers a pre-click question fast: “What is this, and why should I care?” If the answer is visible in one second, the card is doing its job.

Static templates are fine until your site has more than one kind of page

A static default image is fine for a small company site. Use one clean branded card, then create custom cards for the homepage, pricing page, core landing pages, and major campaigns. That is enough for many teams.

Chart showing which open graph image strategy fits different types of websites
Source: SEOJuice OG strategy guidance, drawn from common patterns in static, blog, SaaS, marketplace, and docs deployments.

The problem starts when every page type has a different intent. Blogs, marketplaces, SaaS apps, documentation sites, and programmatic SEO projects need templates. Otherwise your preview cards drift away from the page they represent.

Site type Good OG image approach
Small company site One default image plus custom images for core landing pages.
Blog Template with post title, category, and brand mark.
SaaS feature pages Benefit-led template with product UI or icon system.
Marketplace Dynamic card with item name, photo, location, or price.
Documentation Template with doc title, product area, and version if relevant.

“Recommended OG image size: 1200x630 pixels”

Vercel @vercel/og Documentation

Dynamic generation is not just a developer flex. It prevents stale cards, forgotten campaign art, mismatched article titles, and manual export work that nobody wants to own after the first launch.

The best template systems pull from the same source as the page: title, category, author, hero image, product name, location, price, or version. That keeps the shared preview tied to the actual URL (not just the homepage).

Dynamic OG generation has one non-negotiable requirement: fast first response

Dynamic generation can solve scale, but it can also create a slower, more fragile preview system. Social bots are impatient — caches are sticky — and preview debuggers can make production pain look smaller.

Diagram comparing slow and fast dynamic open graph image generation workflows
Source: SEOJuice generation guidance — TTFB anchor based on Vercel’s @vercel/og engineering writeup (P99 4.96s → 0.99s).

The common bad setup looks like this: a headless browser spins up to render the image, waits on remote fonts and assets, takes several seconds, then the crawler times out or caches a broken response. The team blames LinkedIn or Facebook. Sometimes the platform is weird. Often the card generator was slow.

“Vercel OG is 5x faster in P99 TTFB (4.96s → 0.99s) and 5.3x faster in P90 (4s → 0.75s).”

Vercel Engineering Blog, introducing @vercel/og

This is not a Vercel ad. The broader rule matters more than the vendor: whatever stack generates the card should be deterministic, cached, and fast enough for crawlers.

  • Cache generated images after the first render.
  • Use stable image URLs unless you need deliberate cache busting.
  • Avoid auth-gated assets, signed URLs that expire too quickly, and blocked fonts.
  • Serve absolute HTTPS URLs in og:image.
  • Return the correct image content type.
  • Do not block preview bots in robots.txt, WAF rules, or hotlink protection.
  • Keep templates resilient when a title is long or an image is missing.

If the first crawler request fails, the broken card may be the version everyone sees for hours or days. That is why generation speed belongs in the CTR conversation.

The QA checklist that catches 90% of open graph image failures

This is where most teams improve fastest. You do not need a committee. You need a checklist and someone responsible for running it before important URLs ship.

  1. View source and confirm the tags are server-rendered. Do not rely on what the browser inspector shows after JavaScript has changed the DOM.
  2. Confirm og:image is an absolute HTTPS URL. Relative paths and HTTP image URLs create avoidable failures.
  3. Open the image URL in a private window. If it needs cookies or a logged-in session, crawlers will not see it.
  4. Check the dimensions. Aim for 1200x630 or very close to 1.91:1.
  5. Confirm the file loads quickly without redirect chains. A beautiful card that takes four seconds to respond is not reliable.
  6. Test the page in Facebook Sharing Debugger. Scrape again after fixes so the cache updates.
  7. Test LinkedIn Post Inspector. LinkedIn caching can make old cards feel immortal.
  8. Paste the URL into Slack or Discord. Private sharing surfaces are where many real clicks start.
  9. Confirm the image still works after cache busting. If the template changed, make sure the platform can fetch the new asset.
  10. Re-test after title, template, CMS, or routing changes. Preview cards break quietly.

The first item matters more than people think. If meta tags change only after client-side JavaScript runs, some crawlers may never see the intended card. That is the same failure mode I covered in the SPA SEO article: what humans see after hydration and what crawlers receive on first byte can be different (yes, even if the page looks fine in your browser).

seojuice.com treats metadata and preview readiness as part of page health because humans are bad at remembering to inspect every URL after every template change. Manual QA catches campaign risk. Automated QA catches slow drift.

How to measure whether open graph images improved CTR

Measurement here is messy. Social CTR gets distorted by private shares, dark social, platform reporting gaps, copy changes, timing, audience quality, and whether the platform even passes a useful referrer.

Do not pretend this is a clean lab test unless you control the share surface. Track directional change instead.

  • Compare clicks from social and messaging referrers before and after the template rollout.
  • Use UTM-tagged campaigns where the share copy and destination are controlled.
  • Watch landing page sessions from LinkedIn, Facebook, X, Reddit, Slack, and community platforms where available.
  • Track share-to-click ratio for newsletters or communities when the post copy stays stable.
  • Record qualitative signal: fewer “the link preview is broken” reports from sales, support, partners, or community members.

An OG image is rarely the only variable. The headline, topic, audience, timing, post copy, sender, and platform all matter. Still, broken previews suppress distribution before analytics can even see the lost click. Fixing them is one of those boring jobs that removes friction from every future share.

The boring default that beats most open graph images

If you do nothing else, ship a default card that is hard to break.

  • 1200x630 pixels.
  • One clear visual idea.
  • Six to ten words of readable text.
  • Logo small but present.
  • High contrast.
  • Central safe zone.
  • Template tied to page type.
  • Fast static or cached generated URL.

That recipe beats most open graph images because most cards are either too generic, too crowded, too slow, or never tested. The question is not “is this image pretty?” The question is: does this make the URL feel worth opening?

Open graph images boost CTR when they answer the pre-click question faster than the surrounding feed.

FAQ

Do open graph images directly affect Google rankings?

No. Open graph images are mainly for social and messaging previews, not a direct Google ranking factor. They can still affect distribution. Better previews can earn more clicks and shares, which changes how far a URL travels before search is even involved.

What size should open graph images be?

Use 1200x630 pixels as the default. That matches the common 1.91:1 card shape and gives platforms enough resolution for high-density screens. A 600x315 image can work as a fallback, but designing for the minimum is asking for ugly previews.

Should every page have a unique open graph image?

Not every page needs hand-designed art. Every indexable or shareable page should have a relevant preview. For small sites, that may mean one strong default plus a few custom cards. For blogs, marketplaces, SaaS pages, and docs, use templates tied to page type.

Can I use the same image for Open Graph and Twitter/X cards?

Often, yes. Open Graph tags can act as a fallback for Twitter/X-style cards. Use dedicated Twitter tags when you want a different crop, summary card style, or message. Test both because platform previews do not always render the same way.

Why does my updated open graph image still show the old version?

Platform caches are stubborn. Facebook, LinkedIn, Slack, Discord, and other tools may store the first image they fetched. Use the platform debugger or inspector, confirm the new image URL returns correctly, and consider cache-busting when the visual needs to change immediately.

Want automated checks for broken social previews?

seojuice.com checks page health signals that teams forget to inspect manually, including metadata issues that can break shared previews. If you want your open graph images treated like part of the page contract instead of launch-day decoration, start with automated checks and fix the URLs that would embarrass you in someone else’s feed.

Discussion (2 comments)

Lisa Wang Marketing

Lisa Wang Marketing

7 months, 1 week

Hey — updating OG images now for my family's cafe after the bit about CTR and brand perception; made a simple Canva template at 1200×630 so every post looks consistent. Quick question: how long did you see CTR lifts, and do you recommend purging Facebook/Twitter caches after each update?

distributed_sys

distributed_sys

7 months, 1 week

Article claims OG images boost CTR (not rankings) — fair, but is the lift worth the complexity? In production I'd avoid per-request dynamic renders: serve static 1200×630 assets from a CDN, invalidate social caches on deploy, and A/B test variants with UTM tagging to prove causation. What sample size supports the CTR claims?