Skip to content

feat(www): SEO/AEO improvements β€” sitemap, robots.txt, structured data, optimized titles#88

Open
bholmesdev wants to merge 1 commit intomainfrom
seo-aeo-improvements
Open

feat(www): SEO/AEO improvements β€” sitemap, robots.txt, structured data, optimized titles#88
bholmesdev wants to merge 1 commit intomainfrom
seo-aeo-improvements

Conversation

@bholmesdev
Copy link
Owner

SEO/AEO Audit & Improvements for www/

Addresses several SEO and AI visibility issues found during an audit of simple-stack.dev.

What changed

Critical fixes:

  • Added site: "https://simple-stack.dev" to astro.config.mjs β€” enables Starlight's built-in sitemap generation (/sitemap-index.xml) and canonical URL support
  • Added robots.txt to /public/ with sitemap reference
  • These two changes alone fix: missing sitemap (404), missing robots.txt (404), and missing canonical URLs

Title & meta description improvements:

  • Removed emoji prefixes from page title frontmatter (emoji was leaking into <title> tags and og:title, e.g. "πŸ’Ύ Simple store | Simple Stack 🌱")
  • Emoji moved to sidebar.label where it's decorative only and doesn't affect SEO
  • Updated titles to be keyword-rich and descriptive (e.g. "Simple Store β€” Reactive State Management for React")
  • Improved meta descriptions with specific feature mentions
  • Homepage title changed from generic "Simple stack 🌱" to "Simple Stack β€” Lightweight Tools for Web Development"

Structured data (JSON-LD):

  • Added Organization schema site-wide via Starlight's head config
  • Added WebSite schema to the homepage
  • Added SoftwareSourceCode schema to Store, Scope, and Query pages with repository links and license info

Before β†’ After (title tags)

Page Before After
Home Simple stack 🌱 Simple Stack β€” Lightweight Tools for Web Development
Store πŸ’Ύ Simple store | Simple Stack 🌱 Simple Store β€” Reactive State Management for React | Simple Stack 🌱
Scope πŸ”Ž Simple scope | Simple Stack 🌱 Simple Scope β€” Build-time Scoped IDs for Vite | Simple Stack 🌱
Query πŸ’° Simple Query | Simple Stack 🌱 Simple Query β€” DOM Querying for Astro Components | Simple Stack 🌱

Not changed (out of scope or requires external work)

  • og:image β€” needs a social sharing image to be designed/created
  • Security headers (X-Content-Type-Options, X-Frame-Options) β€” configured at the Vercel level, not in source
  • Deprecated pages (Stream, Form) β€” left as-is since they're deprecated

This PR was generated with Oz.

…ata, and optimized titles

- Add site URL to astro.config.mjs to enable sitemap generation and canonical URLs
- Add Organization JSON-LD structured data site-wide
- Add robots.txt with sitemap reference
- Remove emoji from page titles (move to sidebar labels only) for cleaner SERP display
- Improve meta descriptions with keyword-rich, specific content
- Add WebSite JSON-LD schema to homepage
- Add SoftwareSourceCode JSON-LD schema to Store, Scope, and Query pages

Co-Authored-By: Oz <oz-agent@warp.dev>
@vercel
Copy link

vercel bot commented Mar 4, 2026

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

Project Deployment Actions Updated (UTC)
simple-stack-docs Ready Ready Preview, Comment Mar 4, 2026 9:06am

@changeset-bot
Copy link

changeset-bot bot commented Mar 4, 2026

⚠️ No Changeset found

Latest commit: d4375aa

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

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