Missing social preview image (og:image) in Vue
When your page is shared on Slack, X, LinkedIn, or iMessage, the platform reads <meta property="og:image"> to draw the preview card. With none, the link renders as a bare, blank box — a preview that says “this looks broken”. AI-built pages almost never generate an OG image because it is an asset plus a head tag, not component code.
Symptoms
How VibeCheck catches it
In your widget · Problems
Missing social preview image (og:image)
To your coding agent · MCP
agent › get_detected_issues
→ { detector: "seo", issue: "Missing social preview image (og:image)", threshold: "no <meta property="og:image">" }
The same string in your widget and in your agent’s context — no screenshot, no copy-paste.
Root causes
The fix for Vue
Add the og:image entries to useHead’s meta array with property keys.
useHead({
meta: [{ property: 'og:image', content: 'https://acme.com/og/pricing.png' }],
})Steps
- Create a 1200×630 preview image (or generate one per route)
- Host it at an absolute URL
- Add
og:imageplus width/height meta tags in<head>
FAQ
- What size should the
og:imagebe? - 1200×630 pixels (1.91:1) is the standard that renders well everywhere. Keep it under ~1MB and use PNG or JPG.
- Can I use a relative image URL?
- No. Crawlers fetch
og:imagefrom an absolute URL. A relative path resolves against the crawler, not your site, and fails. - Why is my new image not showing when I share?
- Platforms cache unfurls aggressively. Use the platform’s debugger (e.g. the Facebook Sharing Debugger or X Card Validator) to force a re-scrape.