Skip to content

[SEO] Implement Comprehensive SEO with Open Graph, Structured Data, Sitemap, and Metadata - #31

Merged
KarenZita01 merged 2 commits into
EquipChain:mainfrom
Jokay1997:feat/comprehensive-seo
Jul 25, 2026
Merged

[SEO] Implement Comprehensive SEO with Open Graph, Structured Data, Sitemap, and Metadata#31
KarenZita01 merged 2 commits into
EquipChain:mainfrom
Jokay1997:feat/comprehensive-seo

Conversation

@Jokay1997

Copy link
Copy Markdown

Summary

Implements comprehensive SEO for the EquipChain frontend dashboard, including Open Graph tags, Twitter Cards, structured data (JSON-LD), sitemap generation, robots.txt, per-page metadata, and an Open Graph image placeholder.

Closes #23

Changes

Metadata Infrastructure

  • src/lib/seo/metadata.ts — \generateMetadata({ title, description, path, image })\ helper with title template (%s | EquipChain), canonical URL, and base URL from \NEXT_PUBLIC_BASE_URL\ env var
  • app/layout.tsx — Updated global metadata with:
    • Open Graph tags (og:title, og:description, og:image, og:url, og:type, og:site_name, og:locale)
    • Twitter Card tags (twitter:card, twitter:site, twitter:creator, twitter:title, twitter:description, twitter:image)
    • Robots meta tag (index, follow)
    • Dynamic metadataBase from env

Structured Data (JSON-LD)

  • src/lib/seo/json-ld.ts — Schema.org structured data generators:
    • \webApplicationSchema()\ — WebApplication schema with app details
    • \organizationSchema()\ — Organization schema with contact info and social links
    • \�readcrumbListSchema(items)\ — BreadcrumbList schema generator

Per-Page Metadata

  • app/page.tsx — Home page with WebApplication + Organization + BreadcrumbList schemas
  • app/dashboard/page.tsx — Dashboard page with BreadcrumbList
  • app/meters/page.tsx — Meters page with BreadcrumbList
  • app/billing/page.tsx — Billing page with BreadcrumbList
  • app/streams/page.tsx — Streams page with BreadcrumbList

Sitemap & Robots

  • app/sitemap.ts — Dynamic sitemap.xml with routes: /, /dashboard, /meters, /billing, /streams (priorities 1.0–0.6)
  • app/robots.ts — Allows all crawlers in production, disallows /admin/* and /api/*, references sitemap; disallows all in non-production

Assets

  • public/og-image.png — Default Open Graph image placeholder (1200×630)

Verification


  • pm run build\ passes successfully
  • All routes compile as static pages
  • No test suite configured (no test script in package.json)

…ta, sitemap, and metadata

- Add generateMetadata helper with title template and base URL
- Update layout with Open Graph and Twitter Card tags
- Create sitemap with static routes and priorities
- Create robots.txt with production rules
- Add JSON-LD structured data (WebApplication, Organization, BreadcrumbList)
- Add per-page metadata for all routes
- Create og-image.png placeholder
…itemap, and metadata

- Create src/lib/seo/metadata.ts with generateMetadata helper
- Add Open Graph and Twitter Card tags to layout metadata
- Create app/sitemap.ts with static routes
- Create app/robots.ts with crawler rules
- Create src/lib/seo/json-ld.ts with structured data schemas
- Add per-page metadata to all routes
- Fix package.json and package-lock.json for Linux CI compatibility

Closes EquipChain#23
@KarenZita01
KarenZita01 merged commit badb3a8 into EquipChain:main Jul 25, 2026
1 check passed
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.

[SEO] Implement Comprehensive SEO with Open Graph, Structured Data, Sitemap, and Metadata

2 participants