What each tag does
| Tag | Used by | Notes |
|---|---|---|
<title>, description | Google, browser tabs | Title under about 60 characters, description under about 155. |
og:title, og:description | Facebook, LinkedIn, Slack, Discord, iMessage, X | Can differ from the SEO title: write it for someone scrolling a feed. |
og:image + width/height | Every link preview | Absolute https URL, 1200 × 630, JPG or PNG under 1 MB. See the OG image size guide. |
og:url, canonical | Google, Facebook, LinkedIn | The one address shares and rankings should count toward. |
twitter:card | X | summary_large_image asks for the big image. X reads the og: tags for the rest. |
twitter:site | X | Optional: your product's X handle. |
theme-color | Android, Discord | Tints the address bar and the side stripe of Discord embeds. |
The tags have to be in the HTML your server sends: crawlers don't run JavaScript. After you publish, test them with the link preview checker. If a preview still doesn't show, see OG image not showing.
Need the image too?
Launchpack makes the 1200 × 630 OG image, favicons and the same tags, filled in, from your name and a screenshot. The OG image is free.
Questions
What meta tags do I need for social sharing?
og:title, og:description, og:image (with og:image:width and og:image:height), og:url and twitter:card set to summary_large_image. X falls back to the Open Graph tags, so twitter:title and twitter:image are optional.
Do I still need a meta description?
Google often writes its own snippet, but a good description is still used much of the time and is what Slack and other apps show under your title. Keep it under about 155 characters.
Where do I put the tags?
Inside the <head> of each page, in the HTML the server sends. Each page should have its own title, description, URL and, ideally, its own image.
Is the meta tag generator free?
Yes. Everything runs in your browser and nothing you type is sent anywhere.