Meta Tag Generator & Open Graph Preview

Generate meta tags and preview social share cards

Generate meta tags and preview social share cards

Preview
example.com
—

Actual rendering varies by platform. After deploying, verify it in the Open Graph Preview Tester tab above.

Verify with the Open Graph Preview Tester →

About Meta Tag Generator & Open Graph Preview

This page has two modes. Generate takes a title, description, image and URL and produces a ready-to-paste block for your <head>: basic meta tags, Open Graph tags and X (Twitter) card tags. Preview check takes the address of a page that is already live, fetches its HTML, reads the tags, and shows roughly how the link card will look on Facebook, X, KakaoTalk, LinkedIn, Discord and Slack, along with what is missing.

The natural order is generate, deploy, check. Keep in mind that the cards in check mode are simulations of each platform’s rules, not screenshots of what their servers produced. If a shared link keeps showing an old image after you fixed the tags, the problem is usually the platform’s cache rather than your markup, and each platform has its own tool for that, listed below.

There is no official meta description limit

You will see “keep descriptions under 155 or 160 characters” repeated everywhere. Google Search Central says otherwise: there is no limit on how long a meta description can be, but the snippet is truncated in search results as needed, typically to fit the device width. The same page explains that snippets are primarily created from the page content itself, and that Google sometimes uses the meta description when it gives a more accurate description than on-page text. So even a well-written description may be replaced for a particular query.

This tool shows a soft warning past 60 characters for titles and 200 for descriptions, and a stronger warning past 90 and 300. Those thresholds are rules of thumb for where social cards and result snippets tend to start cutting off. They are not Google rules. A more reliable habit than counting characters is to put the essential point in the first sentence and let the rest be expendable.

The generator will output a keywords meta tag if you fill it in, but Google states that the meta keywords tag is not used by Google Search and has no effect on indexing and ranking. Unless something else in your stack reads it, leave it empty.

The four properties Open Graph requires

The Open Graph protocol (ogp.me) lists four required properties: og:title, og:type, og:image and og:url. It adds that if a page specifies og:image it should also specify og:image:alt, a description of what is in the image rather than a caption. og:locale uses the language_TERRITORY format, such as en_GB, and defaults to en_US.

In generate mode, a URL typed without a scheme, like example.com/salary, is normalized to https://example.com/salary and used for both og:url and the canonical link. The image field is copied as-is, so it must be an absolute https:// address. Relative paths such as /img/og.png are not resolved by many crawlers, and check mode flags them as errors. Declaring og:image:width and og:image:height lets a crawler lay out the card before it has downloaded the image, which reduces the “first share has no picture” problem.

X card types and the Open Graph fallback

X’s Cards markup documentation explains that when twitter:title, twitter:description or twitter:image are absent, X falls back to the equivalent Open Graph properties. If your og tags are complete, the only X-specific tag you actually need is twitter:card, which picks the layout. This tool offers the two general-purpose layouts: summary, with a small square thumbnail, and summary_large_image, with a wide image above the title. X also defines app and player cards, but they need additional tags, so they are not generated here.

When a shared preview will not update

Messaging apps and social networks scrape a URL the first time it is shared and keep that result for a while. That is why a corrected tag does not change an existing card. Each platform clears its cache differently.

  • Facebook: Meta’s Sharing Debugger (developers.facebook.com/tools/debug) and its “Scrape Again” button.
  • LinkedIn: Post Inspector (linkedin.com/post-inspector) re-fetches the page when you inspect it.
  • KakaoTalk, used widely in Korea: the Sharing Debugger in Kakao Developers (developers.kakao.com/tool/debugger/sharing, login required) has a cache reset. It treats http and https as different URLs, so enter exactly the address people share.
  • LINE, common in Japan, Taiwan and Thailand: LINE used to offer PagePoker (poker.line.naver.jp) for clearing its preview cache, but the address did not resolve when this page was written in September 2026. A common workaround is to share a new URL by appending a query string such as ?v=2.

How check mode fetches a page

Browsers cannot read another site’s HTML freely because of CORS, so check mode first tries a direct request and, when that is blocked, tries public proxies in turn: cors.sh, allorigins and codetabs. The URL you check is therefore sent to those proxy operators. Pages behind a login, intranet addresses and unpublished drafts cannot be fetched this way and should not be entered. For those, copy the <head> section of the page source and paste it in instead.

Platform crawlers also identify themselves with their own user agents. If your site blocks bots, serves different HTML by region, or renders tags with client-side JavaScript that crawlers do not run, the real card can differ from what check mode shows.

Worked examples

Generate mode: a salary calculator page

Input
Title: Take-Home Pay Calculator / Description: Estimate net monthly pay after tax and National Insurance. / URL: example.com/salary / Image: https://example.com/og.png (1200×630) / Site name: Example / Locale: en_GB
Output
<link rel="canonical" href="https://example.com/salary"> <meta property="og:type" content="website"> <meta property="og:title" content="Take-Home Pay Calculator"> <meta property="og:url" content="https://example.com/salary"> <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:locale" content="en_GB"> <meta name="twitter:card" content="summary_large_image"> ...

The scheme-less URL gained https:// and appears identically in canonical and og:url, and all four required properties are present. The twitter:title, description and image lines repeat the og values; you could delete them and X would still read the og tags.

Check mode: a page with thin markup

Input
<title>T</title><meta name="description" content="d"><meta property="og:image" content="/img/og.png"> (URL: https://example.com/p)
Output
Warnings: no og:title (falls back to <title>), no og:description (falls back to description) / Error: og:image is a relative path / Info: no image dimensions; no og:url, og:type, twitter:card, og:site_name or favicon

Check mode resolves /img/og.png to https://example.com/img/og.png so the preview can draw it, but still classifies it as an error because real crawlers may not.

How to use it

  1. In generate mode, enter the title, description, URL and image address, and optionally pick og:type, locale and X card type.
  2. Copy the block into your page’s <head> and deploy.
  3. Switch to preview check, enter the live URL, and review missing tags and the platform previews.
  4. If the link was already shared, clear the platform’s cache with its own debugger.

Frequently asked questions

How long should a meta description be?

Google says there is no length limit and truncates snippets to fit the device. The 200-character warning here is a guide to avoid truncation, not a rule. Put the key point first.

Do I need separate twitter: tags?

Not usually. X falls back to Open Graph for title, description and image, so twitter:card is the one tag you need. Add the others only if you want different text on X.

I fixed my tags but Facebook still shows the old image.

Facebook cached the earlier scrape. Run the URL through Meta’s Sharing Debugger and choose Scrape Again.

Check mode cannot open my staging site.

It fetches through public proxies, which cannot reach private or authenticated pages. Paste the page’s <head> HTML instead.

What size should og:image be?

Check mode shows a note below 1200×630, because most platforms draw large landscape cards near that ratio. Exact recommendations vary by platform.

Sources

Last reviewed:

Privacy and how data is handled