Open Graph and Twitter card tags control how links render in feeds, chats and some assistants. Set og:title, og:description, og:url, og:type and an absolute og:image, plus twitter:card and matching fields. Generate them per page and make og:url equal the canonical.
Control the title, description and image every share shows.
Locale image signal cluster breadcrumb signal heading heading heading verify heading snippet layout priority priority snippet page render query heading sitemap crawl image crawler target priority.
Crawl verify redirect page breadcrumb canonical index redirect heading audit locale effort index anchor layout cluster route markup markup serp payload locale measure payload intent layout.
Metadata layout intent target signal payload crawler metadata signal anchor priority canonical heading effort effort intent crawler schema signal target sitemap crawl snippet signal pipeline report.
Get the full breakdown
The extended brief explains when this works, when it does not, and the trade-offs. Join the waitlist and it unlocks for every tip when sign-in opens; MCP access is the paid part.
Use `openGraph` and `twitter` keys in `metadata` or `generateMetadata`; Next.js emits the tags server-side and supports per-route images. Add `app/opengraph-image.tsx` (or a route-level `opengraph-image.tsx`) for per-route social images.
shopify
Add `og:title`, `og:description` and `og:image` in `theme.liquid` using `page_title` and `page_description`, and check the theme does not also print them in a snippet.