Meta Tag / Open Graph Generator

Fill in your page's title, description, URL and sharing image, and get back a complete, ready-to-paste <head> snippet - the meta description, canonical link, Open Graph tags for Facebook and LinkedIn, and Twitter Card tags for X - instead of assembling each one by hand or hunting down several single-purpose generators.

1. Page basics

0 characters

0 characters

2. Sharing image

3. More options

Content type

Generated snippet

<meta name="robots" content="index, follow" />

<!-- Open Graph -->
<meta property="og:type" content="website" />
<meta property="og:locale" content="en_US" />

<!-- Twitter Card -->
<meta name="twitter:card" content="summary" />

Frequently asked questions

What's actually in the generated snippet?

A '<title>' tag, a meta description, a self-referencing canonical link, a robots tag, the core Open Graph set (og:type, og:title, og:description, og:url, og:site_name, og:image, og:image:alt, og:locale), the Twitter Card set (twitter:card, twitter:title, twitter:description, twitter:image, twitter:site), and a theme-color tag if you provided one. Every field you leave blank is simply left out of the output rather than generating an empty or broken tag.

What's the difference between the meta description and the Open Graph description?

The meta description is what search engines may show as the snippet under your page in search results; the Open Graph description (og:description) is what shows when the page is shared on Facebook, LinkedIn or similar. In practice the same well-written sentence or two usually works for both, which is why this tool reuses your one description field for both tags - but nothing stops you from editing the pasted snippet afterward if you want them to say something slightly different.

Why does my title get flagged with a length warning?

The roughly 60-character guideline reflects about how much text search engines typically display before truncating a title in search results with an ellipsis - it isn't a hard technical limit, and a longer title will still work everywhere else. If the exact wording that appears in search results matters to you, keeping the important part of the title within that rough limit avoids it getting cut off.

What image size should I use for the Open Graph image?

1200×630 pixels (roughly a 1.91:1 ratio) is the size most commonly recommended, since it's what Facebook, LinkedIn and X's large-image card layouts are designed around. Smaller or differently-shaped images generally still display, but the platform may crop them in ways you don't control, so an image close to that ratio tends to show up looking the way you intended.

Does this actually change anything on my live website?

No - this is a text generator only. It builds the snippet in your browser and nothing is published or changed anywhere automatically. You still need to paste the result into your page's actual HTML '<head>' yourself, or into whatever SEO/meta fields your CMS or site builder provides for that page.

Why does the Twitter Card type change automatically?

twitter:card is set to summary_large_image whenever an image URL is provided, and to summary otherwise - matching how Twitter/X's own card types are meant to be used: summary_large_image displays a big, prominent preview image, while plain summary is a smaller thumbnail meant for cards without a strong image to show.

Is my content sent anywhere?

No. Every field you type and the generated snippet itself stay entirely in your browser - nothing is uploaded to a server at any point.

What if I only fill in some of the fields?

The snippet still comes out clean and valid - any field you leave empty (an image, a Twitter handle, a theme color, and so on) is simply omitted from the output rather than producing an empty or malformed tag. Fill in as much or as little as applies to your page.

Can I use this for something other than a plain website, like an article or a product page?

Yes - the content-type selector covers website, article, product and profile, which sets the og:type value platforms use as a categorization hint when they parse the page (Facebook and LinkedIn's crawlers read it; it isn't part of the Twitter Card spec itself, which relies on its own separate twitter:card tag instead). Picking the type that actually matches your page is a small but genuine signal about what kind of content it is.

Do I still need to add structured data / schema markup separately?

Yes, if you want it - this tool covers meta tags, Open Graph and Twitter Card tags, but JSON-LD structured data is a distinct mechanism Google reads for things like rich results and knowledge panels, not something Open Graph tags provide. This site's Schema Markup Generator and AI Schema Generator tools cover that separately; a page commonly carries both this snippet and a JSON-LD script side by side in its '<head>', doing two different jobs.

What is og:locale actually for?

It tells platforms what language and region the page's content is in - a code like en_US or fr_FR - which Facebook in particular uses to decide which localized interface strings (like a "See more" button's language) to show around the shared link. It defaults to en_US in this tool; change it if your page is genuinely in a different language, and leave it matching your actual content language for the most accurate result.

Should I reuse my page's real title and description, or write different text just for social sharing?

For most pages, reusing the same well-written title and description for both is simpler and easier to keep consistent - one source of truth instead of two texts that can drift out of sync over time. Some sites do deliberately write punchier or more casual captions specifically for social sharing, which is a legitimate choice - this tool defaults to the simpler shared-field approach, but nothing stops you from editing the Open Graph-specific lines in the generated output afterward if you want the two to differ.

Can I come back and regenerate the snippet later if my title or image changes?

Yes - nothing from a previous visit is saved, so there's no stale state to manage. Just fill the form in again with the updated values and copy the fresh snippet whenever your page's title, description or image changes.

Related tools