Skip to content

[Bug] site/* — og:image missing on all pages; social shares render with no preview #323

@atlas-apex

Description

@atlas-apex

Given / When / Then

Given ApexYard's marketing site (site/index.html, site/architecture.html, site/skills.html)
When anyone shares any of those URLs in Twitter / X / LinkedIn / Slack / Discord / iMessage / WhatsApp
Then the share preview renders with no image because all three pages lack an og:image meta tag (verified by SEO audit at origin/dev 9170ed2 — finding S8).

This is the single highest-impact SEO/social finding because the preview image is the primary visual hook in every share UI — sharing without one looks unfinished and trips the recipient's spam-radar.

Repro

  • Visit https://www.opengraph.xyz/url/https%3A%2F%2F%2F (or any OG preview tool)
  • Confirm no image renders in the preview
  • Repeat for /architecture.html and /skills.html — same result
  • Grep the HTML: grep -c '<meta property="og:image"' site/*.html → returns 0 for all three

Expected behaviour

Every page in site/ has an og:image meta tag pointing at a 1200×630 PNG that visually communicates what the page is about:

  • site/index.html — the apexyard logo + "where projects get forged" tagline
  • site/architecture.html — the 5-layer architecture diagram or a stylised version of it
  • site/skills.html — a small montage / wordcloud of skill names, or the apexyard logo + "51 skills"

Plus the matching twitter:image for clean Twitter cards (the audit's finding S9 — bundles with this ticket since og:image and twitter:image are usually the same asset).

Suggested implementation

  1. Design / commission three 1200×630 PNGs at site/og/{index,architecture,skills}.png — keep file size under 200KB each (LinkedIn and Slack truncate large images)
  2. Add to each HTML's <head>:
    <meta property="og:image" content="https://<marketing-site>/og/<page>.png">
    <meta property="og:image:width" content="1200">
    <meta property="og:image:height" content="630">
    <meta name="twitter:image" content="https://<marketing-site>/og/<page>.png">
    <meta name="twitter:card" content="summary_large_image">
  3. Upgrade twitter:card from summary (small thumbnail) to summary_large_image (full-width card) — better social engagement
  4. Smoke-test all three previews via opengraph.xyz / linkedin post-inspector / twitter card validator before closing

Acceptance Criteria

  • All three site/*.html have og:image, og:image:width, og:image:height, twitter:image meta tags
  • All three PNGs exist at site/og/, are 1200×630, and under 200KB each
  • twitter:card upgraded to summary_large_image on all three pages
  • Smoke-tested in opengraph.xyz preview tool (all three return a valid preview with image)
  • No regression: existing OG tags (og:title, og:description, og:url, og:type) preserved

Refs SEO-audit 2026-05-20T07-00-36Z findings S8 + S9 (persisted at projects/apexyard/audits/seo-audit/)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High — material gap or user-impactingbugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions