fix(seo): drop transcript from VideoObject - #19017
Conversation
✅ Deploy Preview for ethereumorg ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
🔎 First-pass review — ✅ Looks mergeableDrops the The one thing worth a conscious ✅ from a reviewer: this is a deliberate structured-data change. AnalysisLane: code (2 Checked: Routing:
|
|
Confirmed — removing |
🔎 First-pass review — ✅ Looks mergeableShort re-review. The author ( Nothing blocking — it just needs a dev to accept the change and merge. Applied AnalysisLane: code (
|

Description
Closes #18996.
This PR removes the
transcriptproperty from theVideoObjectJSON-LD emitted by video detail pages.Google does not list
transcriptas a supported property for video rich results. In addition, the existing escaping converted every slash in transcript content into literal\u002ftext after JSON serialization, corrupting URLs, dates, and fractions. On localized pages, attaching a translated transcript to aVideoObjectwhoseinLanguagedescribes the original audio also made the node internally ambiguous.The transcript remains in the server-rendered page body, where it is visible to users and available for indexing.
Changes
transcriptfrom the video detail page'sVideoObjectJSON-LD node.transcriptprop fromVideoPageJsonLD.stripMarkdownimport and transcript escaping logic.The regression test parses the emitted JSON-LD and verifies that:
VideoObjecthas notranscriptproperty;name,thumbnailUrl, anduploadDateremain populated; andNo transcript content, translations, accordion behavior, or other
VideoObjectfields were changed.JSON-LD size measurements
Measured from the
application/ld+jsonscript containing theVideoObjectwhile running the site locally:/videos/ethereum-privacy-stack-andy-guzman//es/videos/ethereum-privacy-stack-andy-guzman/Testing
corepack pnpm exec playwright test tests/e2e/videos-jsonld.spec.ts --project=e2e --workers=1— failed in both locale cases specifically becauseVideoObject.transcriptwas still present.corepack pnpm lint— passed with no ESLint errors.corepack pnpm type-check— passed Next.js route type generation, application TypeScript checks, and Netlify edge-function TypeScript checks.corepack pnpm test:unit— 990 passed, 1 skipped, 0 failed.corepack pnpm exec playwright test tests/e2e/videos-jsonld.spec.ts --project=e2e --workers=1— 2 passed, 0 failed.