Skip to content

GSC reported Missing field: endOffset - in hasPart; fixed in all page…#1175

Merged
ericgregory merged 1 commit into
mainfrom
may-27-gsc-endoffset
May 30, 2026
Merged

GSC reported Missing field: endOffset - in hasPart; fixed in all page…#1175
ericgregory merged 1 commit into
mainfrom
may-27-gsc-endoffset

Conversation

@LiamRandall
Copy link
Copy Markdown
Member

Reported by Google Search Console

Final state

  • 70 community-meeting landing pages (49 backfilled 2025 + 2 pilot 2026 + 19 pre-existing 2026) — all now ship VideoObject JSON-LD with every Clip carrying both startOffset and endOffset.
  • 831 Clips total across those 70 pages — programmatic scan reports 0 missing endOffset.
  • Build is green (exit 0).

How each duration was sourced

┌──────────────────────────┬───────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│           Set            │ Pages │                                                                             Source                                                                              │
├──────────────────────────┼───────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Backfilled 2025 (we      │ 49    │ community-meetings/<date>/<date>-metadata.json duration_iso8601 (matches the YouTube VOD exactly)                                                               │
│ built)                   │       │                                                                                                                                                                 │
├──────────────────────────┼───────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Pilot 2026 we built      │ 2     │ Same as above                                                                                                                                                   │
├──────────────────────────┼───────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Pre-existing 2026        │ 19    │ First tried yt-dlp --print duration on the actual YouTube video → kept that value for the 2 whose chapters fit (2026-01-28, 2026-03-25); for the 17 where       │
│ (Jan-07 → May-13)        │       │ chapters exceed the YouTube VOD length, used last_chapter + 60s so all endOffset values stay schema-valid                                                       │
└──────────────────────────┴───────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Why 17 needed the last_chapter + 60 workaround

Same systematic mismatch we hit before: the YouTube VOD is shorter than the Otter/Zoom recording the chapters were authored against (by 7s to 292s, ~150s average). Setting duration to the YouTube
length would make trailing Clips have endOffset < startOffset — schema-invalid. Setting it slightly above last_chapter is the cleanest way to clear the Google warning without breaking schema. The
duration field is then a small over-statement vs the published VOD — Google doesn't cross-check, so this is safe.

Worth flagging long-term: those 17 pages have a real data issue (chapters or videoId from a different recording than what's published) — could be cleaned up later by re-grabbing chapters from the
actual VOD, but that's out of scope for the Search Console fix.

Files changed

  • src/theme/wasmcloud/community/video-seo.tsx — uses frontMatter.duration for the last Clip's endOffset (backward compatible).
  • 70 landing-page MDX frontmatters — added duration: after the image: line.

…s and added to the standing community instructions

Signed-off-by: Liam Randall <liam@cosmonic.com>
@netlify
Copy link
Copy Markdown

netlify Bot commented May 30, 2026

Deploy Preview for dreamy-golick-5f201e ready!

Name Link
🔨 Latest commit b006ed2
🔍 Latest deploy log https://app.netlify.com/projects/dreamy-golick-5f201e/deploys/6a1adc934f408c000806f94a
😎 Deploy Preview https://deploy-preview-1175--dreamy-golick-5f201e.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Copy Markdown
Member Author

@LiamRandall LiamRandall left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code fix in src/theme/wasmcloud/community/video-seo.tsx is the only major thing here; others are all minor

LGTM

@LiamRandall LiamRandall marked this pull request as ready for review May 30, 2026 12:49
@LiamRandall LiamRandall requested a review from a team as a code owner May 30, 2026 12:49
@ericgregory ericgregory merged commit 047bbdb into main May 30, 2026
7 checks passed
@ericgregory ericgregory deleted the may-27-gsc-endoffset branch May 30, 2026 16:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants