Generate the full head block for a page (title and description, Open Graph properties, and X Card tags) in the shapes each platform actually reads.
Generate SEO-optimized meta tags, Open Graph tags, and X Card tags for any web page. Paste the output into your HTML <head>.
<!-- Primary Meta Tags --> <title>My Awesome Website</title> <meta name="title" content="My Awesome Website" /> <meta name="description" content="A brief description of what this page is about. Keep it under 160 characters for best results." /> <meta name="robots" content="index, follow" /> <link rel="canonical" href="https://example.com" /> <!-- Open Graph / Facebook --> <meta property="og:type" content="website" /> <meta property="og:url" content="https://example.com" /> <meta property="og:title" content="My Awesome Website" /> <meta property="og:description" content="A brief description of what this page is about. Keep it under 160 characters for best results." /> <meta property="og:image" content="https://example.com/og-image.jpg" /> <meta property="og:site_name" content="Example" /> <meta property="og:locale" content="en_US" /> <!-- Twitter --> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:url" content="https://example.com" /> <meta name="twitter:title" content="My Awesome Website" /> <meta name="twitter:description" content="A brief description of what this page is about. Keep it under 160 characters for best results." /> <meta name="twitter:image" content="https://example.com/og-image.jpg" /> <meta name="twitter:site" content="@example" />
Two length limits matter. Titles get truncated by Google at roughly 580 pixels, which is around 60 characters, and descriptions at around 155 to 160. Neither is a ranking factor directly, but a truncated title reads as careless and costs click-through, and click-through is a ranking signal.
For Open Graph, the image is the whole game: 1200 by 630 pixels, an absolute URL, and served over HTTPS. Relative image paths are the most common reason a link preview renders blank, and it fails silently because the crawler simply cannot resolve the path.