⭐ Presets
Apply pre-fills every form field with a curated example. Edit afterwards.
📝 Core properties
🏷️ og:type
Selecting a non-website type reveals the matching sub-properties below.
📰 article:* properties
📚 book:* properties
👤 profile:* properties
🎬 video:* properties
🎵 music:* properties
📱 Social card preview (Facebook / Twitter)
Purely visual. No external request is made — this is what the share crawler will assemble from your tags.
📤 Open Graph meta block
{{ output }}
⚠️ Validator notes
- {{ w }}
ℹ️ About Open Graph Generator
What the Open Graph protocol is
The Open Graph protocol (OGP) is the metadata vocabulary Facebook published in 2010
so that a single web page can be represented unambiguously as an object in a social graph. When
Facebook, LinkedIn, Slack, Discord, X (Twitter, with its compatibility layer), iMessage, Telegram, or
any other crawler fetches your page to build a share card, it looks for <meta property="og:…">
tags in the document head. Getting those tags right is the single most important SEO and
social-distribution change you can make to a page.
This tool generates the complete OGP meta block from a structured form — title, description,
absolute image URL, canonical page URL, optional site name and locale, plus the matching
vertical sub-properties when you select article, book,
profile, video.movie, or music.song as the object type.
The live preview on the right simulates how Facebook (and Twitter, by compatibility) will render
the share card.
The four required properties (OGP spec §2)
og:title— the title of the object as it should appear in the share card. Facebook truncates around 60 characters in the preview.og:type— the object type. Defaults towebsitewhen not provided. Valid values includearticle,book,profile,music.song,video.movie, andproduct.og:image— an absolute URL to an image used in the share card. Relative paths are rejected by every social crawler. Recommended dimensions are 1200×630 (1.91:1).og:url— the canonical, permanent URL of the page. Used as the identity of the object in the graph; should not contain session IDs or tracking parameters.
Recommended extras
og:description— a 1–2 sentence summary shown under the title in the share card. Around 65 characters is the safe display ceiling on Facebook’s preview before the trailing ellipsis appears.og:site_name— a short, human-readable name for the overall website (e.g.Example Engineering Blog). Renders below the title in many UIs.og:locale— an IETF BCP 47 language tag (RFC 5646), commonly written with an underscore separator in OGP (en_US,fr_FR,pt_BR) for legacy Facebook compatibility.
Object types and their sub-namespaces
article— addsarticle:author,article:published_time,article:modified_time,article:section, and repeatingarticle:tagentries.book— addsbook:author,book:isbn,book:release_date, and repeatingbook:tagentries.profile— addsprofile:first_name,profile:last_name,profile:username, andprofile:gender.video.movie/video.tv_show/video.episode— addsvideo:actor,video:director,video:duration(in seconds), andvideo:release_date.music.song/music.album— addsmusic:duration,music:album, andmusic:musician.
Common mistakes the validator catches
- Relative
og:image. Facebook, Slack, and LinkedIn reject/static/og.png; the image URL must include the scheme. - Missing
og:url. The crawler uses it as the canonical identity of the object — leave it out and re-shares may collapse separate URLs into one object. - Unknown
og:type. Anything not in the OGP vocabulary silently falls back towebsite, losing the vertical-specific render in the share card. - Title longer than ~60 characters. Title gets truncated mid-word in the share card; the validator flags lengths likely to be cut off.
- Locale not in BCP 47 form. Values like
englishorusare ignored by Facebook’s scraper.
Source references
- The Open Graph protocol — the original specification by Facebook (now Meta).
- Facebook for Developers — Sharing best practices for webmasters.
- Facebook Sharing Debugger — paste a URL to see exactly what Facebook’s crawler reads.
- IETF BCP 47
— the language-tag standard referenced by
og:locale.
Examples
A minimal article block looks like this:
<meta property="og:title" content="How HTTP/3 Changes the Web">
<meta property="og:type" content="article">
<meta property="og:description" content="A practical overview of HTTP/3 and QUIC.">
<meta property="og:image" content="https://example.com/og/http3.png">
<meta property="og:url" content="https://example.com/blog/http3">
<meta property="article:author" content="Jane Doe">
<meta property="article:published_time" content="2024-09-12T08:30:00Z">
API Usage Example:
POST /api/tools/seo/open-graph-generator
Content-Type: application/json
{
"title": "How HTTP/3 Changes the Web",
"description": "A practical overview.",
"image": "https://example.com/og/cover.png",
"url": "https://example.com/blog/http3",
"type": "article",
"article": {
"author": "Jane Doe",
"publishedTime": "2024-09-12T08:30:00Z"
}
}