Skip to content

Fix/google search console#74

Merged
Metrohan merged 9 commits into
mainfrom
fix/google-search-console
Jul 17, 2026
Merged

Fix/google search console#74
Metrohan merged 9 commits into
mainfrom
fix/google-search-console

Conversation

@Metrohan

@Metrohan Metrohan commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

Fixes issues reported in Google Search Console for eventradar.dev, in two batches:

Structured data (Event rich results)

  • Always emit location (falls back to VirtualLocation for online events) — was the reported error, missing entirely when event.location was empty
  • Add organizer.url (derived from the event's own source URL) and offers (site is free, so price: 0)

Performance / Core Web Vitals (PageSpeed Insights via GSC)

  • CLS 0.5 (desktop) / 0.645 (mobile) → the loading-state swap in EventListing and an unsized header logo were the two measured causes; both fixed
  • Mobile LCP 11.8s → Bootstrap/FontAwesome/Google Fonts CSS was render-blocking (~2.5s of the critical path); switched to preload+swap
  • Accessibility 94 → dark-theme --text-muted contrast was ~4:1 against WCAG AA's 4.5:1; bumped. Also fixed a skipped heading level (h3 → h5)

Indexing / canonicalization

  • /events was an orphaned pre-restructure URL returning a soft-404 through the SPA fallback; now 301s to / at the nginx level
  • Documented (in scripts/nginx_optimization.conf) the www→apex and http→https 301 redirects needed at the server's reverse-proxy layer to resolve GSC's "duplicate without user-selected canonical" report — that layer isn't tracked in this repo, see PR comment / follow-up for what to apply on the server

Filed .scratch/perf-third-party-images/ as a follow-up for the ~7-10MB of unoptimized third-party event thumbnails PSI flagged — needs a proxy/resize design, out of scope here.

Test plan

  • npm run build succeeds
  • Verified in a real browser (Playwright) against the built output: no FOUC/layout regression from the async CSS loading change, hero/header render correctly
  • npx eslint clean on changed JS/JSX files
  • Re-run PageSpeed Insights / GSC validation after deploy to confirm score improvement
  • Apply the nginx reverse-proxy redirect changes on the server (not part of this diff, see PR description above)

🤖 Generated with Claude Code

Metrohan and others added 9 commits July 14, 2026 13:38
index.html has referenced https://eventradar.dev/banner.png as
og:image/twitter:image since before this repo's earliest commit, but
the file was never actually in frontend/public/ — it 404s. Any social
share of the bare homepage URL (including the LinkedIn post just
published) rendered with no preview image. Added a real 1200x630
banner (homepage hero, captured from the live site) plus explicit
og:image:width/height and og:type so crawlers don't have to guess.

Also updated the meta description's "7 kaynaktan" to "10 kaynaktan" —
stale since more sources were added after that copy was written.
…Console

- Reserve realistic space for the async event list (60vh loading spinner)
  instead of a 300px block, the main driver of the 0.5-0.65 CLS score
- Correct the header logo's width/height attributes to its real aspect
  ratio and ship a properly downscaled asset (19KB -> 3.2KB)
- Load Bootstrap/FontAwesome/Google Fonts CSS via preload+swap instead of
  blocking <link rel=stylesheet>, which PSI showed as ~2.5s of mobile LCP
- Raise --text-muted contrast against the dark theme background to meet
  WCAG AA, and fix a heading level skip (h3 -> h5) in EventListing
- Redirect the orphaned /events URL (301 -> /) at both the container nginx
  and the documented server nginx template, instead of soft-404ing through
  the SPA fallback
- Document www/http -> apex/https 301 redirects needed at the server's
  reverse-proxy layer to resolve GSC's "duplicate without user-selected
  canonical" report for www.eventradar.dev

File a follow-up issue for oversized third-party event thumbnail images
(.scratch/perf-third-party-images) since it needs a proxy/resize design,
not a markup fix.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@Metrohan
Metrohan merged commit 379160b into main Jul 17, 2026
3 checks passed
@Metrohan
Metrohan deleted the fix/google-search-console branch July 17, 2026 10:16
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.

1 participant