Meta tag generator with Google and social previews
Write title, description, canonical, robots, Open Graph and Twitter tags with live search and social previews plus pixel-accurate length warnings.
- Runs in your browser
- Nothing you enter is sent
- Free, no account
0 characters · 0 pxThe title is empty — search engines will invent one from the page content.
0 characters · 0 pxThe description is empty — search engines will invent one from the page content.
The single address you want indexed. Always absolute, always including https://.
Current directive: index, follow. This page can appear in search results.
Turn this off when the shared card should read differently from the search result — social copy can be punchier and does not need the keyword up front.
Absolute URL to a 1200 × 630 image. Relative paths are ignored by most crawlers.
The two tags every page needs. Leave them out if your framework already emits them.
Your page title appears here
Your meta description appears here. Without one, Google will assemble a snippet from whatever text on the page best matches the query.
Rendered at Google’s desktop proportions. Titles are cut near 600 px and snippets near 920 px, which is why two titles of the same length can truncate differently — a “W” is three times the width of an “i”.
<meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="robots" content="index, follow"> <!-- Open Graph — Facebook, LinkedIn, Slack, Discord, WhatsApp --> <meta property="og:type" content="website"> <meta property="og:locale" content="en_US"> <!-- Twitter / X --> <meta name="twitter:card" content="summary_large_image">
How to use this
- Write the title and description first, watching the pixel width rather than the character count — that is what Google actually truncates on.
- Add the canonical URL. It must be absolute, including the scheme, and it must point at the version of the page you want indexed.
- Leave the robots switches alone unless you have a reason. The default,
index, follow, is what you want on almost every page. - Fill in the share image and check the social preview. A missing or broken image is the most common reason a shared link looks unloved.
- Copy the block into the
<head>of the page.
Title and description length, properly
Every guide quotes a character count, but Google measures pixels. A desktop title is rendered at roughly 20 px Arial and clipped near 600 px; the snippet is about 14 px over two lines, near 920 px in total. Since a “W” is more than three times the width of an “i”, two titles of identical length can behave completely differently — which is why this tool measures the real rendered width of your text as you type.
| Element | Pixel budget | Roughly | Advice |
|---|---|---|---|
| Title, desktop | ~600 px | 50–60 characters | Front-load the keyword; put the brand at the end after a pipe or dash |
| Title, mobile | ~500 px | 45–50 characters | The most important words must survive the first 45 |
| Description | ~920 px over two lines | 120–158 characters | Write it as ad copy — it does not affect ranking, only the click |
Google rewrites the description roughly a third of the time when the query matches text elsewhere on the page better than your summary does. That is not a failure, and it is not worth chasing. A good description still controls the snippet for brand searches and exact-match queries, which are the ones that convert.
The tags that matter, and the ones that do not
| Tag | Effect | Worth it? |
|---|---|---|
<title> | Primary ranking factor and the clickable line in results | Essential |
meta description | Controls the snippet; no direct ranking effect | Essential for click-through |
link rel="canonical" | Consolidates duplicates onto one URL | Essential on any site with parameters or pagination |
meta robots | Directive controlling indexing and link following | Only when you need something other than the default |
og:* | Card layout on Facebook, LinkedIn, Slack, Discord, WhatsApp | Essential if links get shared |
twitter:* | X card type and attribution | Useful; X falls back to Open Graph without it |
meta keywords | None. Ignored by Google since 2009, a spam signal to Bing | No — deliberately omitted here |
meta author, meta revisit-after | No search effect | Harmless; not useful |
Robots directives, and how to lose all your traffic
noindex is a directive, not a hint. Ship it to a live template and every page using
that template drops out of the index within days, and takes weeks to come back. Two rules worth
internalising:
- Never combine
noindexwith aDisallowin robots.txt. If the crawler cannot fetch the page, it can never see the tag, so the URL stays in the index as a bare, description-less result. Allow the crawl, serve the noindex. nofollowon the page level is almost never right. It stops link equity flowing to your own pages. If you need to mark individual links, userel="nofollow",rel="ugc"orrel="sponsored"on the anchor.
The other useful values, all of which combine with commas: noarchive suppresses
the cached copy, nosnippet suppresses the description entirely,
max-snippet:150 caps its length, noimageindex keeps your images out of
image search, and unavailable_after:2026-12-31T23:59:59Z schedules removal.
Canonical URLs
A canonical tag tells search engines which URL is the real one when several show the same
content. Get it wrong and you can deindex a page as effectively as with noindex.
- Always absolute:
https://example.com/page, never/page. - Self-referential on every page. A page whose canonical points at itself is unambiguous.
- Match the served version exactly — trailing slash, protocol, subdomain and letter case all count.
- Do not canonicalise paginated pages to page one. Each page of a listing has different content and should stand alone.
- Never point a canonical at a page that redirects, or at a page that is itself canonicalised elsewhere.
Share images
1200 × 630 pixels, under 5 MB, PNG or JPEG, served over HTTPS from an absolute URL. Relative
paths are ignored by most crawlers, and so are images behind authentication. Add
og:image:alt — several platforms surface it, and it is the only accessible
description a shared card ever gets.
When a card looks wrong after you fix the tags, the platform is showing you a cached scrape. Facebook’s Sharing Debugger, LinkedIn’s Post Inspector and X’s card validator all have a “scrape again” action that refreshes it.
Nothing here touches a server
The previews are rendered from what you type, the pixel measurements come from a canvas in this tab, and the only network request the page makes is the browser loading the share image you pointed it at, so you can see whether the URL works. Your unpublished titles, descriptions and staging URLs stay on your machine.
Questions
How long should a title and description be?
Google truncates by pixel width, not characters: roughly 600 px for a desktop title and 920 px across two snippet lines. That works out near 60 characters and 155 characters for average text, but a title full of capitals or wide letters clips sooner — which is why this tool measures the real rendered width.
Does Google use my meta description as the snippet?
Only about two-thirds of the time. When the query matches text elsewhere on the page better, Google rewrites the snippet from that text. A good description still matters because it controls the snippet for brand and exact-match queries, which are the highest-converting ones.
Do I need both Open Graph and Twitter tags?
Open Graph is read by Facebook, LinkedIn, Slack, Discord, WhatsApp and, as a fallback, by X. You only need the twitter: tags when the card should differ from the Open Graph version, or when you want the large-image layout and the site or creator attribution.
What size should the share image be?
1200 × 630 pixels, under 5 MB, served over HTTPS from an absolute URL. Relative paths are ignored by most crawlers. Add og:image:alt as well — several platforms surface it, and it is the only accessible description a shared card ever gets.
Are meta keywords worth adding?
No. Google has ignored the keywords tag since 2009 and Bing treats it as a spam signal. This generator deliberately leaves it out.