Skip to content

fix: resolve structured data validation errors across app, tutorial, and event pages#17863

Merged
pettinarip merged 3 commits into
devfrom
fix/structured-data
Mar 27, 2026
Merged

fix: resolve structured data validation errors across app, tutorial, and event pages#17863
pettinarip merged 3 commits into
devfrom
fix/structured-data

Conversation

@pettinarip
Copy link
Copy Markdown
Member

@pettinarip pettinarip commented Mar 26, 2026

Summary

  • App pages (~3,696 URLs): Change @type from SoftwareApplication to WebApplication, add offers (free), map applicationCategory to schema.org enums
  • Tutorial pages (25 URLs): Convert relative url fields to absolute URLs, truncate Course description to ≤60 chars for rich result eligibility
  • Event pages (24-25 URLs): Change containedInPlace from LocalBusiness to Place (eliminates 5 warnings), add top-level startDate, add city-level address for Berlin hub

Context

Fixes structured data validation errors surfaced in the March 2026 Screaming Frog SEO audit. See docs/seo-audit-action-items.md for the full audit breakdown.

Issue URLs affected Fix
SoftwareApplication missing offers + review 3,696 Switch to WebApplication + add offers
Course url is relative, not absolute 25 Prepend SITE_URL
Course description exceeds 60 chars 25 Truncate to 60 chars
Event/EventSeries missing startDate 24-25 Add top-level startDate
Place missing address (Berlin hub) 25 Add city-level address
LocalBusiness wrong type for venue ref 25 Change to Place
Non-standard applicationCategory 3,696 Map to schema.org enums

Test plan

  • Verify app page JSON-LD with Google Rich Results Test (e.g. /apps/uniswap/)
  • Verify tutorial page JSON-LD shows absolute URLs (e.g. /developers/tutorials/)
  • Verify events page JSON-LD includes startDate and Berlin address (e.g. /community/events/)
  • TypeScript passes (npx tsc --noEmit)

@netlify
Copy link
Copy Markdown

netlify Bot commented Mar 26, 2026

Deploy Preview for ethereumorg ready!

Name Link
🔨 Latest commit e53af90
🔍 Latest deploy log https://app.netlify.com/projects/ethereumorg/deploys/69c51bb60879a0000946360f
😎 Deploy Preview https://deploy-preview-17863.ethereum.it
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
7 paths audited
Performance: 53 (🟢 up 1 from production)
Accessibility: 94 (no change from production)
Best Practices: 100 (no change from production)
SEO: 98 (🔴 down 1 from production)
PWA: 59 (no change from production)
View the detailed breakdown and full score reports

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

Copy link
Copy Markdown
Collaborator

@myelinated-wackerow myelinated-wackerow left a comment

Choose a reason for hiding this comment

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

All changes are schema.org-accurate and correctly scoped. Type coverage is exhaustive (Record<AppCategory, string> enforces all 8 enum values). No UI, routing, or indexing regressions — JSON-LD only.

Key wins:

  • ~3,696 app pages gain rich result eligibility via offers + WebApplication
  • 25 tutorial URLs fixed (relative -> absolute) + Course descriptions trimmed
  • Event pages lose 5+ validation warnings (Place, startDate, Berlin address)

Two things to consider @pettinarip (non-blocking):

  1. startDate fallback uses build-time new Date() — works but changes every deploy and isn't semantically meaningful. Adding explicit start dates to hub schemas would be more durable.

  2. 60-char Course description limit — worth confirming this is a hard Google requirement vs. a Screaming Frog heuristic. Harmless either way, but good to know.


Reviewed by Claude Opus 4.6

@pettinarip pettinarip merged commit 2129aa8 into dev Mar 27, 2026
10 checks passed
@pettinarip pettinarip deleted the fix/structured-data branch March 27, 2026 07:59
@pettinarip pettinarip mentioned this pull request Mar 27, 2026
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.

3 participants