Skip to content

fix(seo): SEO/GEO/AEO audit fixes for -new draft pages, part 3#508

Merged
mohanadft merged 1 commit into
mainfrom
fix/seo-new-pages-audit-part-3
Jul 14, 2026
Merged

fix(seo): SEO/GEO/AEO audit fixes for -new draft pages, part 3#508
mohanadft merged 1 commit into
mainfrom
fix/seo-new-pages-audit-part-3

Conversation

@mohanadft

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #505, #506, #507 — a full re-audit of all 24 -new draft pages (all pages ending in -new, excluding index-new) surfaced two systemic issues plus a tail of schema/accessibility/content gaps that survived the earlier rounds.

Critical

  • index.astro: the client-side 50/50 A/B redirect to /home-new now skips known bot user agents, so search/AI crawlers never get randomly routed to a noindex page — this was making Google's indexing signal for / (the live homepage) non-deterministic across crawls.
  • Consolidated duplicate NonprofitOrganization JSON-LD nodes sharing one @id (contact-new, donate-new, donate-2-new, media-new) into a single merged schema via a new organizationSchemaExtra prop on HomeLayout, instead of each page emitting a second colliding node.

High

  • Added image to Person schema for all 12 team-new members.
  • donate-new now server-renders one donation variant by default (geo-based, non-randomized) so the donate CTA/form is present without JS; the client-side A/B script hides-all-then-shows-winner to avoid double-rendering.
  • Added width/height to prevent CLS on images in about-new, incubator-new, e4p-new founder avatars, and membership-new hero.
  • Fixed heading hierarchy skips (h1→h3, no h2) on ideas-new, projects-new, tools-new.
  • media-new: switched misapplied NewsArticle schema to mentions/CreativeWork, since those articles live on third-party domains and lack the required author.

Medium/Low

  • Added @id/url/publisher entity links on legal-new, terms-new, privacy-policy-new, get-involved-new WebPage schemas.
  • Fixed ItemList schema on projects-new/tools-new: added numberOfItems, nested entries under proper item objects.
  • Added aria-hidden="true" to decorative SVGs on contact-new and get-involved-new.
  • Added reciprocal terms-newlegal-new link.
  • Lengthened thin titles/descriptions on donate-new, get-involved-new, mentorship-new, membership-new, media-new, terms-new.
  • Page-specific OG images for team-new and media-new (using existing on-page assets).
  • Fixed ideas-new ItemList descriptions truncating mid-word.

Deliberately not changed (flagged rather than papered over):

  • mentorship-new/volunteer-new OG images — neither page has a real image asset to reference; a mismatched placeholder would be worse than the current generic fallback.
  • dateModified on legal-new/terms-new/privacy-policy-new (2025-08-05) — left as-is; bumping it without an actual legal review would fake a freshness signal.
  • tools-new reused placeholder logo for 5 tools — no real logos available in the repo for those tools.

Test plan

  • pnpm check — 0 errors
  • pnpm build — clean production build
  • pnpm format:check — no new issues (pre-existing unrelated warning on volunteer.astro only)
  • Visual check of /donate-new, /team-new, /media-new in a browser (not yet done by me — these are unlinked -new draft pages, all still noindex)

Full audit of all 24 -new draft pages (excluding index-new) surfaced two
systemic issues plus a long tail of schema/accessibility/content gaps.

Critical:
- Gate the homepage A/B redirect (index.astro) so search/AI crawlers never
  get randomly sent to noindex'd /home-new, which made Google's indexing
  signal for "/" non-deterministic across crawls.
- Consolidate duplicate NonprofitOrganization JSON-LD nodes sharing one
  @id (contact-new, donate-new, donate-2-new, media-new) into a single
  merged schema via a new organizationSchemaExtra prop on HomeLayout,
  instead of emitting a second colliding node per page.

High:
- Add Person schema images for all 12 team-new members.
- Server-render one donate-new donation variant by default (geo-based,
  non-randomized) so the core donate CTA is present without JS; the
  client-side A/B test now hides-all-then-shows-winner.
- Add width/height to prevent CLS on about-new, incubator-new, e4p-new
  founder avatars, and membership-new hero images.
- Fix heading hierarchy skips (h1->h3) on ideas-new, projects-new, and
  tools-new by adding/promoting section h2s.
- media-new: switch misapplied NewsArticle schema to mentions/CreativeWork
  since the articles are hosted on third-party domains.

Medium/Low:
- Add @id/url/publisher entity links on legal-new, terms-new,
  privacy-policy-new, get-involved-new WebPage schemas.
- Fix ItemList schema on projects-new/tools-new: numberOfItems + proper
  nested item objects instead of flat non-standard ListItem properties.
- aria-hidden decorative SVGs on contact-new and get-involved-new.
- Add reciprocal terms-new -> legal-new link.
- Lengthen thin titles/descriptions on donate-new, get-involved-new,
  mentorship-new, membership-new, media-new, terms-new.
- Page-specific OG images for team-new and media-new.
- Fix ideas-new ItemList descriptions truncating mid-word.
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying website with  Cloudflare Pages  Cloudflare Pages

Latest commit: d9d1d3c
Status: ✅  Deploy successful!
Preview URL: https://44cd3271.website-aun.pages.dev
Branch Preview URL: https://fix-seo-new-pages-audit-part.website-aun.pages.dev

View logs

@mohanadft mohanadft merged commit 8586bc4 into main Jul 14, 2026
5 checks passed
@mohanadft mohanadft deleted the fix/seo-new-pages-audit-part-3 branch July 14, 2026 10:53
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