Peekly

How to add Open Graph tags

og:title, og:description, og:image, and og:url are the title, the summary, the image, and the URL a share card is stored under. Put them in the HTML the server sends, then paste the public URL into the checker above. Checking one URL is free, and it does not ask you to sign up.

Free. No signup. Public pages only.

Add the tags

  • Four tags, written as properties. The Open Graph protocol puts these in the head as meta tags with a property attribute, not name. The four it requires on every page are og:title, og:type, og:image, and og:url. og:description is optional in the protocol and required in practice: it is the summary line under the title. og:title is the headline on the card, not your template's Loading state and not the site name repeated. og:description is one or two sentences. og:url is the canonical URL of this page, with https and no tracking parameters. On Facebook, likes and shares add up on og:url, so a tag that points every page at the homepage attaches every share to one card. og:type is website for a normal page and article for a post. Facebook's guide says website is the default when you leave the tag out. If you repeat a property, the protocol gives the first tag, top to bottom, preference.
    <meta property="og:title" content="Page title">
    <meta property="og:description" content="One or two sentences.">
    <meta property="og:url" content="https://example.com/page">
    <meta property="og:type" content="website">
    <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:alt" content="What the image shows">
  • The image URL. og:image is a URL, and it has to be absolute. A path such as /og.png has no host, and the image slot stays empty. Use https. An http:// image is skipped by platforms that refuse it. The protocol's structured properties belong directly under the image they describe: og:image:width, og:image:height, og:image:type, and og:image:alt. Another og:image starts a new image, and the first one is the one a consumer prefers. Design the file at 1200×630. That is Facebook's high-resolution size, about 1.91:1, and the file must not exceed 8 MB. Facebook's image guide lists JPEG, GIF, and PNG. X's card docs add WEBP and exclude SVG. The Open Graph Image Size page has the rest of the published numbers. This checker downloads the URL and reports the dimensions, the type, and whether the file loaded.
  • The large card on X. X reads og:title, og:description, and og:image as fallbacks. The layout still depends on twitter:card. Without summary_large_image, X shows a small thumbnail. Set twitter:title, twitter:description, and twitter:image only when they should differ from the Open Graph values. Use name for the twitter: tags. The Next.js Open Graph page shows the same fields as a metadata export, including an opengraph-image file. The WordPress Open Graph page is the theme or SEO plugin that prints them. The Shopify Open Graph page is the Liquid on a product or collection. A tag that appears only after JavaScript runs is missing from the HTML a crawler fetched. View source, or curl the URL, and read the head of that response.
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:title" content="Page title">
    <meta name="twitter:description" content="One or two sentences.">
    <meta name="twitter:image" content="https://example.com/og.png">
  • Check the page you will share. Paste the public URL, not a localhost address. The checker only fetches public pages. It grades og:title, og:description, og:image, and the Twitter card from the HTML your server sends. A title that is your site name, or a description copied from a different page, is a tag that is present and wrong. If the image URL in the result is the old file, the HTML being fetched is the old HTML. The Open Graph Image Not Updating page is the case where the HTML is already right and the share still shows the previous picture.

Tags covered: og:title · og:description · og:image · og:url · og:type · og:image:width · og:image:height · og:image:alt · twitter:card

More checkers

Twitter Card ValidatorOpen Graph CheckerLinkedIn Link Preview CheckerDiscord Embed PreviewWhatsApp Link Preview CheckerSlack Link Preview CheckeriMessage Link Preview CheckerFacebook Link Preview CheckerOpen Graph Image SizeTelegram Link Preview CheckerReddit Link Preview CheckerNext.js Open GraphRefresh a Link Preview CacheBluesky Link Preview CheckerMastodon Link Preview CheckerMicrosoft Teams Link Preview CheckerFix a Broken Open Graph PreviewInstagram Link Preview CheckerPinterest Link Preview CheckerTikTok Link Preview CheckerYouTube Link Preview CheckerThreads Link Preview CheckerSnapchat Link Preview CheckerOpen Graph Image Not UpdatingDiscord Link PreviewX (Twitter) Link PreviewWordPress Open GraphShopify Open GraphAll platforms

What each platform reads

  • X / Twittertwitter:card, twitter:* → og:* fallback1200×630 (min 300×157), < 5 MB
  • Facebookog:title, og:description, og:image1200×630, 1.91:1
  • LinkedInog:title, og:image (og: only)1200×627, 1.91:1
  • Discordog:site_name, og:*, theme-color, twitter:cardLarge image needs summary_large_image
  • Slackog:site_name, og:title, og:description, og:image1200×630
  • WhatsAppog:title, og:description, og:imageKeep < 300 KB

Guidance based on each platform's public documentation and observed behavior. Platforms change their rules without notice.

FAQ

+Is Peekly free?

Yes. Checking a single URL is free forever — no signup and no limit on one-off checks. Batch watching and monitoring may arrive later as a paid Pro plan; the free single-URL tool stays.

+Why does my link show no image when I share it?

Usually one of four things: there's no og:image tag, the image URL is relative instead of absolute, the image is behind a login, firewall or bot block, or the file is too big or in an unsupported format like SVG. Peekly checks all four and tells you which one it is.

+What size should my og:image be?

1200×630 pixels (a 1.91:1 ratio) as a PNG or JPG under about 300 KB. That size works for large cards on X, Facebook, LinkedIn, Discord, Slack and WhatsApp.

+Do I need twitter: tags if I already have Open Graph tags?

X reads og:title, og:description and og:image as fallbacks, but you still need twitter:card set to summary_large_image if you want the big image card. Without it, X shows a small thumbnail.

+I fixed my tags but the old preview still shows. Why?

Platforms cache link previews, sometimes for days. Facebook and LinkedIn let you force a refresh with their own debugging tools. On X, Slack and Discord the cache usually expires on its own, or you can add a query string such as ?v=2 to the URL.

+Do you store the pages I check?

No. We fetch the page once to read its <head>, show you the result, and don't save the page or the result. We only fetch public http(s) URLs, and private or internal addresses are blocked.

+Are the previews pixel-perfect?

They're close approximations of each platform's current card layout, built from the same tags the platforms read. Platforms change their designs from time to time, so treat them as a very good guide rather than a screenshot.

$9

One time

A written fix for the batch.

Up to 25 URLs. We check og:image, Twitter cards, size, redirects, and cache, then send copy-paste meta tags within 48 hours. The free single-URL check stays free.

Get the fix report — $9