--- name: open-graph description: When the user wants to add or optimize Open Graph metadata for social sharing. Also use when the user mentions "Open Graph," "og:tags," "og:title," "og:image," "og:description," "Facebook preview," "LinkedIn preview," or "social share preview." For X (Twitter) link previews, use twitter-cards. For SERP title/description, use title-tag and meta-description. metadata: version: 1.1.0 --- # SEO On-Page: Open Graph Guides implementation of Open Graph meta tags for social media previews (Facebook, LinkedIn, Slack, Discord, etc.). Pages with proper OG tags get 2–3× more clicks than bare URL links. **When invoking**: On **first use**, if helpful, open with 1–2 sentences on what this skill covers and why it matters, then provide the main output. On **subsequent use** or when the user asks to skip, go directly to the main output. ## Scope (Social Sharing) - **Open Graph**: Facebook-originated protocol; controls preview card when links are shared on social platforms ## The 4 Essential Tags Every shareable page requires these minimum tags: ```html ``` | Tag | Guideline | |-----|-----------| | **og:title** | Keep under 60 chars; compelling; match page content | | **og:description** | 150–200 chars; conversion-focused | | **og:image** | Absolute URL (https://); 1200×630px recommended | | **og:url** | Canonical URL; deduplicates shares | ## Recommended Additional Tags | Tag | Purpose | |-----|---------| | **og:type** | Content type: `website`, `article`, `video`, `product` | | **og:site_name** | Website name; displayed separately from title | | **og:image:width** / **og:image:height** | Image dimensions (1200×630px) | | **og:image:alt** | Alt text for accessibility | | **og:locale** | Language/territory (e.g., `en_US`); for multilingual sites | ## Image Best Practices | Item | Guideline | |------|-----------| | **Size** | 1200×630px (1.91:1 ratio) for Facebook, LinkedIn, WhatsApp | | **Format** | JPG, PNG, WebP; under 5MB | | **URL** | Absolute URL with https://; no relative paths | | **Unique** | One unique image per page when possible | ## Common Mistakes - Using relative image URLs instead of absolute https:// - Images too small or wrong aspect ratio - Empty or placeholder values - Missing og:url (canonical) ## Implementation ### Next.js (App Router) ```tsx export const metadata = { openGraph: { title: '...', description: '...', url: 'https://example.com/page', siteName: 'Example', images: [{ url: 'https://example.com/og.jpg', width: 1200, height: 630, alt: '...' }], locale: 'en_US', type: 'website', }, }; ``` ### HTML (generic) ```html ``` ## Testing - **Facebook**: [Sharing Debugger](https://developers.facebook.com/tools/debug/) - **LinkedIn**: [Post Inspector](https://www.linkedin.com/post-inspector/) ## Related Skills - **social-share-generator**: Share buttons use OG tags for rich previews when users share; OG must be set for share buttons to show proper cards - **article-page-generator**: Use og:type `article` for article/post pages; article-specific tags (published_time, author) - **page-metadata**: Hreflang, other meta tags - **title-tag**: Title tag often mirrors og:title - **meta-description**: Meta description often mirrors og:description - **twitter-cards**: Twitter uses OG as fallback; add Twitter-specific tags for best results - **canonical-tag**: og:url should match canonical URL