diff --git a/src/app/answers/[slug]/page.tsx b/src/app/answers/[slug]/page.tsx index ecf424c5..28626486 100644 --- a/src/app/answers/[slug]/page.tsx +++ b/src/app/answers/[slug]/page.tsx @@ -75,14 +75,25 @@ export async function generateMetadata({ type: "article", url, siteName: SITE.name, - images: [{ url: `${SITE.url}/opengraph-image`, width: 1200, height: 630 }], + // Use the referenced bench's OG card instead of the site-wide + // default. Perplexity / ChatGPT / Claude Deep Research scrape the + // og:image alongside the answer text; showing the bench-specific + // leader card gives the AI a real datapoint next to the answer + // rather than the generic homepage tile. + images: [ + { + url: `${SITE.url}/api/og/${ans.bench.slug}`, + width: 1200, + height: 630, + }, + ], }, twitter: { card: "summary_large_image", site: SITE.twitter, title, description, - images: [`${SITE.url}/twitter-image`], + images: [`${SITE.url}/api/og/${ans.bench.slug}`], }, }; } diff --git a/src/app/benchmarks/[slug]/page.tsx b/src/app/benchmarks/[slug]/page.tsx index 6aa8ba96..2bf70675 100644 --- a/src/app/benchmarks/[slug]/page.tsx +++ b/src/app/benchmarks/[slug]/page.tsx @@ -507,9 +507,24 @@ export default async function BenchmarkPage({

{benchmark.title}

-

- {benchmark.subtitle} -

+ {/* Grounding-line first-under-H1: Perplexity / ChatGPT search / + Claude Deep Research scrape the first prose sentence after the + H1 as the "citable claim." Previously the methodology-flavoured + subtitle sat here; the current-leader sentence carries a + concrete provider + number + unit that AI answer engines quote + verbatim ("Codex leads head lag at 0.8 s (p50, 24h)..."). Fall + back to the subtitle when no defensible leader exists (draft, + insufficient, cold start). */} + {sentence ? ( +

+ {sentence}{" "} + {benchmark.subtitle} +

+ ) : ( +

+ {benchmark.subtitle} +

+ )} {/* Compact "At a glance" card. Rendered as a native
element so it collapses to a one line summary on click while diff --git a/src/app/compare/[slug]/page.tsx b/src/app/compare/[slug]/page.tsx index 12659efd..a3d28e45 100644 --- a/src/app/compare/[slug]/page.tsx +++ b/src/app/compare/[slug]/page.tsx @@ -912,6 +912,32 @@ export default async function ComparePage({ + {/* Visible FAQ parity with the FAQPage JSON-LD above. Google + requires visible Q&A text matching the schema entries or it + silently drops the rich result — the compare pages had FAQ + jsonld without any visible questions, so the FAQPage never + rendered in the SERP snippet. */} +
+

+ Frequently asked questions +

+
+ {faqEntries.map((e) => ( +
+ + {e.q} + +

+ {e.a} +

+
+ ))} +
+
+

How this pair was selected