fix(seo): summary_large_image social card + home og:image, drop title em-dash#20
Merged
Merged
Conversation
Social share cards rendered as the tiny bild-less "summary" thumbnail because twitter:card was never set and no og:image existed on the home page. Add a generated 1200x630 card (next/og) as the default og:image in the root layout and set twitter:card=summary_large_image. twitter.images is omitted so X falls back to og:image, letting destination pages keep their own /api/og/destination card without touching twitter. Also drop the em-dash from the SEO-visible title override in the marketing landing page and from meta.title/meta.ogTitle in all four locales (en/de/es/fr), per the no-em-dash copy rule. Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
(Website-Audit state.md 2026-07-02 + 2026-07-03)
og:imageand notwitter:card, so X/Twitter fell back to the tiny bild-lesssummarythumbnail and other platforms rendered shared links without a preview image. A CTR leak on exactly the off-page channels (Reddit/X/Slack/WhatsApp/AlternativeTo/listicles) where we want reach.meta.title/meta.ogTitlein all four locales readPackedPlaces.com — See How Crowded..., an em-dash on the SEO-visible<title>andog:title, against the no-em-dash copy rule.What was built
GET /api/og: a generated 1200x630 default card (next/ogImageResponse), mirroring the existing/api/og/destination/[slug]route (same paper background, grid, Fraunces, shared crowd palette). Shows the brand, the tagline, and a quiet-to-packed crowd ramp built fromcrowd-palette.openGraph.imagesnow points at/api/og(resolved against the existingmetadataBase), andtwitter.card = summary_large_imagewith title/description.twitter.imagesis intentionally omitted so X falls back toog:image; destination pages that already set their ownog:imagetherefore get the correct large card automatically, without needing to touch twitter..com —changed to.com:in(marketing)/page.tsxand inmeta.title+meta.ogTitleacrossen/de/es/fr.What was verified
npx tsc --noEmit: clean.npx eslinton the touched files: clean.next build: compiles successfully (7.1s), then OOM-killed in the TypeScript phase in this memory-limited environment (exit 137), so full build output is not available here; tsc + eslint stand in as verification. The new/api/ogroute uses the samenext/ogAPI as the already-shipped destination OG route.Co-Authored-By: Claude noreply@anthropic.com