The card that appears when someone drops your link into Slack or a messenger has a large effect on whether it gets clicked. It is driven entirely by Open Graph tags in your page's <head>, and checking your work is awkward because every platform caches what it fetched.
Enter og:title, og:description and og:image and see how the link renders on Google search, X, Facebook, KakaoTalk, Slack and LinkedIn side by side. Paste an existing page's <head> to extract its tags automatically, check the lengths against recommendations, and copy a complete meta tag block when you are done.
How to use
- Enter tags or paste HTML — Fill in the fields directly, or switch to the Paste HTML `<head>` tab and click Parse tags. If og tags are absent,
<title>and<meta name="description">are used as fallbacks. - Check the lengths — The counters warn past 60 characters for the title and 160 for the description. Different platforms truncate at different points, so use the previews to see where the ellipsis actually lands.
- Verify the image — The og:image URL is loaded into every card. The recommended size is 1200×630 (1.91:1); without an image, cards fall back to a small, much less prominent layout.
- Copy the meta tags — Paste the generated block into your page's
<head>. It includes Open Graph tags, Twitter card tags and a canonical link.
Frequently asked questions
I updated my tags but the old image still shows.
Every platform caches its crawl result.
Facebook's Sharing Debugger has 'Scrape Again', X has the Card Validator, LinkedIn has Post Inspector, and Kakao provides a cache reset tool in its developer console. Slack and Discord usually refresh on their own within a few hours.
If a refresh still shows the old asset, change the image URL itself — add a version to the filename (og-v2.png) or a query string, and it is treated as a new resource.
What size should og:image be?
1200×630 pixels at a 1.91:1 ratio is the de facto standard that platforms use for the large card.
Keep the file under 1MB; some crawlers skip larger ones. Use PNG or JPG — SVG is not supported by most social platforms and produces an empty card, and WebP support is uneven.
The most commonly missed requirement is that the URL must be absolute. A relative path like /og.png will not be resolved by a crawler.
Can I just enter a URL and have the tags fetched?
The browser's same-origin policy makes that impossible.
Fetching another domain's HTML from JavaScript requires that server to send CORS headers, which ordinary websites do not. Working around it needs a proxy server, and that would mean sending your URL to a backend — contrary to how this site is built.
Instead, open the target page, press Ctrl+U to view source, and paste the <head> section here for the same result.
Concepts worth knowing
The Open Graph protocol
Open Graph, introduced by Facebook in 2010, lets a page declare how it should be represented elsewhere. The essential tags are og:title, og:description, og:image, og:url and og:type, and virtually every messenger and social service reads them.
X defines its own twitter:card family but falls back to Open Graph when those are absent. Getting the og tags right and adding only twitter:card therefore covers nearly every platform.
How long titles and descriptions really get
Search result titles are truncated by pixel width, not character count, so limits are approximate: roughly 60 characters for Latin text and around 30 for wide scripts such as Korean. Descriptions run to about 160 and 80 respectively.
Front-load the important keywords and message so that truncation never removes the point. The habit of prefixing every title with a brand name is worth reconsidering, since it consumes the most valuable space.
Generating OG images automatically
Hand-designing an image per article does not scale, so rendering the title into an image at build or request time has become standard practice.
Next.js's ImageResponse, Vercel's OG Image Generation and Cloudflare Workers all do this — the pages on this site generate a per-tool OG image at build time. One caveat: rendering non-Latin text requires explicitly supplying a font containing those glyphs, otherwise the characters come out as empty boxes.