Skip to content

fix: improve SEO with JSON-LD, realistic sitemap lastmod, and cleanup - #123

Merged
majinghe merged 1 commit into
rustfs:mainfrom
majinghe:fix/seo-improvements
Sep 22, 2026
Merged

majinghe merged 1 commit into
rustfs:mainfrom
majinghe:fix/seo-improvements

Conversation

@majinghe

Copy link
Copy Markdown
Contributor

Summary

Implements several SEO improvements identified in the analysis report:

1. JSON-LD Structured Data (P1)

  • Homepage: Added Organization schema with name, url, logo, sameAs (GitHub, Twitter, Discord), contactPoint
  • Blog posts: Added BlogPosting schema with headline, description, author, dates, publisher, mainEntityOfPage

Structured data helps search engines understand content and enables rich snippets in search results. Also improves visibility for AI-powered search engines (AI Overview, LLM citations).

2. Sitemap lastmod with Real Git Dates (P1)

  • Modified scripts/generate-sitemap.js to query git log for each page's source file
  • Blog posts now use their actual commit dates instead of build time
  • Falls back to build time for untracked/generated pages
  • Google explicitly states it ignores untrustworthy lastmod values; real git dates make the sitemap credible

3. Remove Meta Keywords (P2)

  • Removed keywords field from homepage metadata
  • Google has officially ignored meta keywords since 2009
  • Keeping it only exposes keyword strategy to competitors

4. Fix Empty alt Text (P1)

  • Featured blog post image on homepage: changed from alt="" to alt={post.title}
  • Improves accessibility and enables image search indexing

Verification

  • npx tsc --noEmit passes
  • Clean build passes
  • Sitemap lastmod now shows diverse dates (git commit times) instead of uniform build timestamp
  • Homepage and blog posts contain JSON-LD blocks
  • No lint errors introduced

Impact

These changes address the remaining P1/P2 SEO issues from the analysis report. Combined with PR #121 (docs 301 redirect) and PR #122 (canonical URLs), the site now has:

  • ✅ Proper canonical URLs on all pages
  • ✅ Server-side 301 for /docs (not JS redirect)
  • ✅ JSON-LD structured data for rich snippets
  • ✅ Credible sitemap lastmod values
  • ✅ No obsolete meta keywords
  • ✅ Image alt text for accessibility

Still TODO in future PRs:

  • Add og:image/twitter:image (requires design assets)
  • Increase internal link density (requires content planning)
  • Performance optimization (Core Web Vitals baseline)

1. Add JSON-LD structured data:
   - Homepage: Organization schema (name, url, logo, sameAs)
   - Blog posts: BlogPosting schema (headline, author, dates, publisher)

2. Sitemap lastmod now uses real git commit dates:
   - Query git log for each page's source file
   - Falls back to build time for untracked files
   - Removes changefreq/priority (Google ignores them)

3. Remove meta keywords from homepage:
   - Google has ignored meta keywords since 2009
   - Only exposes keyword strategy to competitors

4. Fix empty alt text on featured blog post image:
   - Changed from alt="" to alt={post.title}
@vercel

vercel Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

@majinghe is attempting to deploy a commit to the overtrue's projects Team on Vercel.

A member of the Team first needs to authorize it.

@majinghe
majinghe merged commit 0c96e32 into rustfs:main Sep 22, 2026
1 check failed
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