Skip to content

feat(seo): modularize metadata pipeline and resolve Bing SEO scan issues#839

Merged
alienx5499 merged 3 commits intomainfrom
feat/seo-sitemap-parity-lighthouse
Apr 25, 2026
Merged

feat(seo): modularize metadata pipeline and resolve Bing SEO scan issues#839
alienx5499 merged 3 commits intomainfrom
feat/seo-sitemap-parity-lighthouse

Conversation

@alienx5499
Copy link
Copy Markdown
Owner

This Pull Request improves SEO infrastructure and resolves Bing Webmaster recommendations around duplicate/short metadata.

It changes the following:

  • Refactor large SEO code into modular components under src/components/seoContent (helmet scripts, hidden content blocks, shared FAQ data, constants).
  • Introduce centralized SEO/version constants in src/constants/version.js and wire them across the SEO stack.
  • Expand dynamic sitemap generation in src/app/[lang]/sitemap.xml/route.js to include canonical + legacy route families and multilingual variants.
  • Fix robots.txt routing conflict by relying on static public/robots.txt and removing conflicting app route.
  • Add and register structured data modules (WebSite, Breadcrumb, Person, Organization, Algorithm-specific FAQ, etc.) while preserving existing schemas.
  • Fix SEO metadata consistency issues:
    • remove noarchive from robots/bot directives (Bing/Copilot grounding compatibility),
    • make title tags unique across algorithm tabs and contribution sections,
    • make meta descriptions unique and normalize them to a Bing-friendly length range.
  • Keep Lighthouse SEO score at 100 in production-mode local validation after the above changes.

Testing

  • pnpm run build

@alienx5499 alienx5499 requested a review from Copilot April 25, 2026 11:45
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 25, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sortvision Ready Ready Preview, Comment Apr 25, 2026 0:18am

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 25, 2026

QA suite report

Metric Value
Total tests 659
Passed 659
Failed 0
Warnings 0
Pass rate 100.0%
Grade S+
Duration 4.89s

Result: passed.

View workflow run

QA vs main (last successful CI on base branch)

Baseline: last green Continuous integration on main @ 9da1a06 (same test:ci suite).

Base This PR Δ passed
Passed 659 659 0
Failed 0 0
Total 659 659

Fixed (failed on base, passing on this PR)

None

New failures (failed on this PR; were not failing on base)

None

Still failing (failed on base and still failing on this PR)

None

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 25, 2026

Lighthouse (CI)

View workflow run

Lighthouse vs main (last green CI on base)

Lighthouse (mobile)

Δ = change vs last successful Continuous integration on main (same URLs).

URL Perf Δ A11y Δ Best Δ SEO Δ
http://localhost:3000/ 60 +5 96 93 100
http://localhost:3000/algorithms/config/bubble 73 96 93 100
http://localhost:3000/es 73 96 93 100
http://localhost:3000/contributions/overview 50 96 96 100

Lighthouse (desktop)

Δ = change vs last successful Continuous integration on main (same URLs).

URL Perf Δ A11y Δ Best Δ SEO Δ
http://localhost:3000/ 99 +1 96 96 100
http://localhost:3000/algorithms/config/bubble 98 96 96 100
http://localhost:3000/es 99 +1 96 96 100
http://localhost:3000/contributions/overview 97 96 96 100

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR restructures the SEO/metadata stack by extracting the previously monolithic SEOContent implementation into modular Helmet + hidden-content components, while also updating structured data, robots directives, and sitemap generation to address Bing duplicate/short metadata recommendations.

Changes:

  • Modularized Helmet meta tags + JSON-LD schema scripts and hidden SEO content under src/components/seoContent/.
  • Centralized SEO/version/author constants in src/constants/version.js and wired them into schema/meta generation.
  • Replaced static sitemap serving with dynamic sitemap generation and removed the app-route robots.txt handler in favor of public/robots.txt.

Reviewed changes

Copilot reviewed 31 out of 32 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
SortVision/src/constants/version.js Adds centralized app/version/author/site constants for reuse across SEO components.
SortVision/src/components/seoContent/shared/seoFaqData.js Centralizes FAQ content for both HTML hidden blocks and JSON-LD.
SortVision/src/components/seoContent/hidden/SeoGlobalUseCasesContent.jsx Adds hidden global SEO “use cases” content blocks.
SortVision/src/components/seoContent/hidden/SeoGlobalIntroContent.jsx Adds hidden global intro + GEO prompt/summary blocks.
SortVision/src/components/seoContent/hidden/SeoGlobalHiddenContent.jsx Composes the global hidden SEO sections.
SortVision/src/components/seoContent/hidden/SeoGlobalFaqContent.jsx Renders hidden FAQ HTML for crawlers/answer engines.
SortVision/src/components/seoContent/hidden/SeoAlgorithmHiddenContent.jsx Adds algorithm-specific hidden content with details + filtered FAQ.
SortVision/src/components/seoContent/hidden/SeoAlgorithmDetailsMap.js Provides the per-algorithm SEO detail map used by hidden content.
SortVision/src/components/seoContent/helmet/SeoWebSiteSchemaScript.jsx Adds WebSite JSON-LD schema.
SortVision/src/components/seoContent/helmet/SeoWebPageTransparencySchemaScript.jsx Adds WebPage transparency/attribution JSON-LD schema.
SortVision/src/components/seoContent/helmet/SeoVideoObjectSchemaScript.jsx Adds placeholder for future VideoObject JSON-LD schema.
SortVision/src/components/seoContent/helmet/SeoStructuredDataScripts.jsx Orchestrates all JSON-LD scripts.
SortVision/src/components/seoContent/helmet/SeoSoftwareApplicationSchemaScript.jsx Adds SoftwareApplication JSON-LD schema using centralized constants.
SortVision/src/components/seoContent/helmet/SeoPersonSchemaScript.jsx Adds Person JSON-LD schema.
SortVision/src/components/seoContent/helmet/SeoOrganizationSchemaScript.jsx Adds Organization JSON-LD schema.
SortVision/src/components/seoContent/helmet/SeoMetaTags.jsx Adds Helmet meta tag rendering (canonical/social/bots/hreflang/etc.).
SortVision/src/components/seoContent/helmet/SeoFaqSchemaScript.jsx Adds FAQPage JSON-LD generation from centralized FAQ data.
SortVision/src/components/seoContent/helmet/SeoEducationalResourceSchemaScript.jsx Adds Course JSON-LD schema.
SortVision/src/components/seoContent/helmet/SeoBreadcrumbSchemaScript.jsx Adds BreadcrumbList JSON-LD for algorithm pages.
SortVision/src/components/seoContent/helmet/SeoAlgorithmSpecificFaqSchemaScript.jsx Adds algorithm-specific FAQPage JSON-LD filtering.
SortVision/src/components/seoContent/helmet/SeoAlgorithmHowToSchemaScript.jsx Adds optional algorithm HowTo JSON-LD injection.
SortVision/src/components/seoContent/helmet/SeoAlgorithmCatalogSchemaScript.jsx Adds algorithm catalog JSON-LD injection.
SortVision/src/components/seoContent/SeoHiddenContent.jsx New composition layer for hidden SEO content blocks.
SortVision/src/components/seoContent/SeoHelmetContent.jsx New composition layer for Helmet meta + structured data.
SortVision/src/components/SEOContent.jsx Refactors old monolith into SeoHelmetContent + SeoHiddenContent.
SortVision/src/app/robots.txt/route.js Removes app-route robots handler (expects public/robots.txt).
SortVision/src/app/layout.jsx Updates robots/googlebot/bingbot directives to remove noarchive.
SortVision/src/app/[lang]/sitemap.xml/route.js Replaces static sitemap file serving with dynamic sitemap generation.
SortVision/src/app/[[...slug]]/page.jsx Adds description normalization/uniqueness logic for dynamic metadata.
SortVision/public/sw.js Adds APP_VERSION constant + logs (but cache naming unchanged).
SortVision/package.json Adds critters dependency.
SortVision/pnpm-lock.yaml Locks critters (and its transitive deps).
Files not reviewed (1)
  • SortVision/pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread SortVision/src/app/[lang]/sitemap.xml/route.js
Comment thread SortVision/src/app/[[...slug]]/page.jsx Outdated
Comment thread SortVision/public/sw.js Outdated
Comment thread SortVision/package.json Outdated
Comment thread SortVision/src/components/SEOContent.jsx
Comment thread SortVision/src/components/seoContent/helmet/SeoMetaTags.jsx
Comment thread SortVision/src/app/[lang]/sitemap.xml/route.js
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR refactors SortVision’s SEO implementation into modular components, expands sitemap/metadata generation for multilingual + legacy routes, and adjusts robots/meta directives to address Bing duplicate/short metadata recommendations.

Changes:

  • Split monolithic SEO rendering into src/components/seoContent/* (Helmet meta + JSON-LD + hidden semantic blocks) and wire it into src/components/SEOContent.jsx.
  • Centralize site/version/author constants and apply them across schema/meta generation (plus service worker cache versioning).
  • Expand dynamic sitemap generation and enhance Next.js generateMetadata to produce more unique titles/descriptions and richer alternates.

Reviewed changes

Copilot reviewed 31 out of 31 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
_typos.toml Adds spelling dictionary entries for typo checking.
SortVision/src/constants/version.js Introduces centralized app/site/author/version constants used by SEO modules.
SortVision/src/components/seoContent/shared/seoFaqData.js Centralizes FAQ content used in hidden HTML and JSON-LD.
SortVision/src/components/seoContent/hidden/* Adds hidden SEO content blocks (global + algorithm-specific).
SortVision/src/components/seoContent/helmet/* Adds modular meta tags + structured data JSON-LD scripts.
SortVision/src/components/seoContent/SeoHiddenContent.jsx Composes global + algorithm hidden content sections.
SortVision/src/components/seoContent/SeoHelmetContent.jsx Composes Helmet meta tags + JSON-LD scripts.
SortVision/src/components/SEOContent.jsx Replaces inline SEO implementation with modular Helmet/hidden components.
SortVision/src/app/robots.txt/route.js Removes dynamic robots route to avoid routing conflicts (static public file expected).
SortVision/src/app/layout.jsx Updates robots/bot directives to remove noarchive.
SortVision/src/app/[lang]/sitemap.xml/route.js Generates a richer multilingual sitemap including legacy + canonical route families.
SortVision/src/app/[[...slug]]/page.jsx Enhances metadata generation (unique tab/section titles, padded descriptions, locale/alternate improvements).
SortVision/public/sw.js Updates SW cache naming/version reporting using an app version constant.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread SortVision/public/sw.js Outdated
Comment thread SortVision/src/components/seoContent/helmet/SeoAlgorithmHowToSchemaScript.jsx Outdated
Comment thread SortVision/src/app/[[...slug]]/page.jsx
Comment thread SortVision/src/components/seoContent/helmet/SeoMetaTags.jsx Outdated
Comment thread SortVision/src/components/seoContent/helmet/SeoStructuredDataScripts.jsx Outdated
@alienx5499 alienx5499 merged commit 4cf8dd9 into main Apr 25, 2026
19 checks passed
@alienx5499 alienx5499 deleted the feat/seo-sitemap-parity-lighthouse branch April 25, 2026 12:22
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