How to set Open Graph tags in Ghost
Ghost is one of the few platforms that takes social previews seriously out of the box: every post gets og: and twitter: tags, complete with per-post override fields in the editor. When previews break on a Ghost site, it is almost always the theme or the image — not Ghost itself.
The free checker shows your previews for nine platforms — from X and WhatsApp to iMessage, Discord and Bluesky.
Use the per-post social cards
In the post editor, open Post Settings → "Facebook card" and "Twitter card". You can set a custom image, title and description per network — Ghost renders them as og: and twitter: tags. Unset fields fall back to the feature image and excerpt.
Set publication-wide defaults
Settings → "Meta data" / social accounts: the publication cover and description are the fallback card for pages without their own values (homepage, tag pages, author pages). Upload a 1200×630 cover.
Feature image = default og:image
For most posts the feature image becomes the og:image. Pick feature images that survive the 1.91:1 crop and stay under ~600 KB — heavy images silently kill the WhatsApp preview.
Custom theme? Keep ghost_head
All of this only works when your theme calls {{ghost_head}} in the <head>. If previews are empty on a custom theme, that helper is missing or something strips its output. Verify with the MetaPeek checker.
Code example
{{!-- default.hbs of your theme — this line renders ALL meta/og/twitter tags --}}
<head>
{{ghost_head}}
</head>Common mistakes
- Theme without {{ghost_head}}No helper, no tags — the #1 cause of empty previews on custom Ghost themes.
- Duplicating tags in the themeHand-adding og: tags next to ghost_head produces duplicates and unpredictable cards. Let Ghost render them; use the editor fields to control values.
- Multi-megabyte feature imagesGhost serves responsive sizes on the page, but the og:image points at the original. Compress feature images before upload.
Frequently asked questions
Do I need an SEO plugin for Ghost?
No — unlike WordPress, Ghost ships this natively. The editor social cards + publication meta data cover everything a plugin would do.
Why is my new feature image not showing when I share?
Verify the tag changed (MetaPeek), then blame the platform cache: re-scrape via the Facebook Sharing Debugger or LinkedIn Post Inspector.
Can I set different images for X and Facebook?
Yes — that is exactly what the separate Twitter card and Facebook card fields in Post Settings are for.
Paste your URL and see within two seconds whether everything is right — on every platform.