Skip to content

Conversation

@tannerlinsley
Copy link
Member

@tannerlinsley tannerlinsley commented Dec 24, 2025

Summary by CodeRabbit

  • Documentation
    • Added comprehensive SEO guides for React and Solid covering meta tags, Open Graph/Twitter cards, canonical URLs, JSON-LD structured data, sitemaps/robots, SSR/prerendering, and testing best practices with examples.
    • Added LLM Optimization (LLMO) guides for React and Solid with patterns for structured data, machine-readable content, llms.txt guidance, and AI-friendly content practices.
    • Updated navigation to include the new SEO and LLMO guides across both frameworks.

✏️ Tip: You can customize this high-level summary in your review settings.

Add a comprehensive SEO guide that clarifies what SEO actually means
for developers and explains TanStack Start's technical SEO capabilities:

- Document head management (meta tags, titles, Open Graph)
- Server-side rendering for crawlability
- Static prerendering for performance
- Structured data (JSON-LD) for rich results
- Sitemap and robots.txt generation via server routes
- Best practices for technical SEO

This addresses the common misconception that SEO is just a checkbox,
explaining that it's about using available tools effectively.
Add a comprehensive LLM Optimization (LLMO) guide for both React and
Solid frameworks, covering:

- What LLMO/AIO/GEO is and how it differs from traditional SEO
- Structured data (JSON-LD) for AI consumption
- Schema.org examples: Article, Product, Organization, FAQ
- Machine-readable API endpoints
- Content best practices for AI extraction
- llms.txt implementation
- Monitoring AI citations

Also adds cross-reference callouts between SEO and LLMO guides to help
users discover related content.
@github-actions github-actions bot added the documentation Everything documentation related label Dec 24, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 24, 2025

📝 Walkthrough

Walkthrough

Adds SEO and LLM Optimization (LLMO) guides for both React and Solid and updates site navigation to include these new guide pages; changes are documentation and navigation-only with no public API or runtime behavior modifications.

Changes

Cohort / File(s) Summary
Navigation Configuration
docs/start/config.json
Inserted new navigation entries for framework/react/guide/seo, framework/react/guide/llmo, framework/solid/guide/seo, and framework/solid/guide/llmo after existing guide items.
React Framework Guides
docs/start/framework/react/guide/seo.md, docs/start/framework/react/guide/llmo.md
Added seo.md (technical SEO: SSR/prerendering, meta tags, Open Graph/Twitter, canonical URLs, JSON‑LD, sitemaps/robots) and llmo.md (LLM Optimization concepts, schema examples, machine‑readable endpoints, llms.txt, best practices).
Solid Framework Guides
docs/start/framework/solid/guide/seo.md, docs/start/framework/solid/guide/llmo.md
Added Solid equivalents of the React guides with framework‑specific TSX/TS examples and the same SEO and LLMO coverage.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • schiller-manuel
  • birkskyum

Poem

🐰✨ I hopped through docs to plant some seeds,
New SEO and LLMO guides for curious creeds.
React and Solid now both shine bright,
Schemas, routes, and metadata in sight.
Hooray — a rabbit's tidy docs delight!

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The PR title 'Clarify SEO meaning for developers' is only partially related to the changeset. While SEO documentation is added, the PR equally introduces LLM Optimization (LLMO) guides and updates navigation configs for both React and Solid frameworks, which the title does not reflect. Consider a more comprehensive title like 'Add SEO and LLMO guides for React and Solid frameworks' to better represent all the significant changes in this changeset.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch claude/clarify-seo-guide-6objg

📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 43e6af1 and 7f1f93b.

📒 Files selected for processing (4)
  • docs/start/framework/react/guide/llmo.md
  • docs/start/framework/react/guide/seo.md
  • docs/start/framework/solid/guide/llmo.md
  • docs/start/framework/solid/guide/seo.md
✅ Files skipped from review due to trivial changes (1)
  • docs/start/framework/solid/guide/seo.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/start/framework/react/guide/seo.md
🧰 Additional context used
📓 Path-based instructions (1)
docs/**/*.{md,mdx}

📄 CodeRabbit inference engine (AGENTS.md)

Use relative links to docs/ folder format (e.g., ./guide/data-loading) for internal documentation references

Files:

  • docs/start/framework/solid/guide/llmo.md
  • docs/start/framework/react/guide/llmo.md
🪛 LanguageTool
docs/start/framework/solid/guide/llmo.md

[style] ~243-~243: To elevate your writing, try using an alternative expression here.
Context: ...nical implementation, content structure matters for LLMO: ### Clear, Factual Statement...

(MATTERS_RELEVANT)

docs/start/framework/react/guide/llmo.md

[style] ~243-~243: To elevate your writing, try using an alternative expression here.
Context: ...nical implementation, content structure matters for LLMO: ### Clear, Factual Statement...

(MATTERS_RELEVANT)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Preview
🔇 Additional comments (2)
docs/start/framework/react/guide/llmo.md (1)

1-354: Documentation is comprehensive and well-structured.

The LLMO guide effectively explains the distinction between SEO and LLMO, provides practical code examples tailored to React with TanStack Router patterns, and covers both technical implementation and content best practices. The relative link to ./seo at line 7 follows the required format.

Code examples are accurate and follow React conventions (destructured parameters, proper hooks patterns). External validation tools are referenced with current URLs.

docs/start/framework/solid/guide/llmo.md (1)

1-364: Solid documentation mirrors React guide with appropriate framework patterns.

The Solid LLMO guide maintains content parity with the React version while correctly using Solid-specific imports (@tanstack/solid-router) and JSX conventions. The use of props object pattern (lines 251–263) with property access (props.product) is idiomatic Solid, appropriately distinct from React's destructured parameters.

All schema examples, API patterns, and relative links (./seo at line 7) are consistent and correctly formatted per guidelines.


Comment @coderabbitai help to get the list of available commands and usage tips.

@nx-cloud
Copy link

nx-cloud bot commented Dec 24, 2025

View your CI Pipeline Execution ↗ for commit 7f1f93b

Command Status Duration Result
nx affected --targets=test:eslint,test:unit,tes... ✅ Succeeded <1s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 3s View ↗

☁️ Nx Cloud last updated this comment at 2025-12-24 05:15:44 UTC

@pkg-pr-new
Copy link

pkg-pr-new bot commented Dec 24, 2025

More templates

@tanstack/arktype-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/arktype-adapter@6207

@tanstack/directive-functions-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/directive-functions-plugin@6207

@tanstack/eslint-plugin-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/eslint-plugin-router@6207

@tanstack/history

npm i https://pkg.pr.new/TanStack/router/@tanstack/history@6207

@tanstack/nitro-v2-vite-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/nitro-v2-vite-plugin@6207

@tanstack/react-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router@6207

@tanstack/react-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-devtools@6207

@tanstack/react-router-ssr-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-ssr-query@6207

@tanstack/react-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start@6207

@tanstack/react-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-client@6207

@tanstack/react-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-server@6207

@tanstack/router-cli

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-cli@6207

@tanstack/router-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-core@6207

@tanstack/router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools@6207

@tanstack/router-devtools-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools-core@6207

@tanstack/router-generator

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-generator@6207

@tanstack/router-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-plugin@6207

@tanstack/router-ssr-query-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-ssr-query-core@6207

@tanstack/router-utils

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-utils@6207

@tanstack/router-vite-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-vite-plugin@6207

@tanstack/server-functions-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/server-functions-plugin@6207

@tanstack/solid-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router@6207

@tanstack/solid-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router-devtools@6207

@tanstack/solid-router-ssr-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router-ssr-query@6207

@tanstack/solid-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start@6207

@tanstack/solid-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-client@6207

@tanstack/solid-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-server@6207

@tanstack/start-client-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-client-core@6207

@tanstack/start-fn-stubs

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-fn-stubs@6207

@tanstack/start-plugin-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-plugin-core@6207

@tanstack/start-server-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-core@6207

@tanstack/start-static-server-functions

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-static-server-functions@6207

@tanstack/start-storage-context

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-storage-context@6207

@tanstack/valibot-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/valibot-adapter@6207

@tanstack/virtual-file-routes

npm i https://pkg.pr.new/TanStack/router/@tanstack/virtual-file-routes@6207

@tanstack/vue-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-router@6207

@tanstack/vue-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-router-devtools@6207

@tanstack/vue-router-ssr-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-router-ssr-query@6207

@tanstack/vue-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-start@6207

@tanstack/vue-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-start-client@6207

@tanstack/vue-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/vue-start-server@6207

@tanstack/zod-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/zod-adapter@6207

commit: 7f1f93b

Update SEO and LLMO guides to use createFileRoute with server.handlers
instead of createServerFileRoute for consistency across React and Solid.
- Add built-in sitemap generation with prerender + crawlLinks
- Show dynamic sitemap as alternative for dynamic content
- Fix escaped period syntax in file names: sitemap[.]xml.ts, robots[.]txt.ts, llms[.]txt.ts
- Add CDN caching recommendation for dynamic sitemaps
@tannerlinsley tannerlinsley merged commit 43e9572 into main Dec 24, 2025
6 checks passed
@tannerlinsley tannerlinsley deleted the claude/clarify-seo-guide-6objg branch December 24, 2025 05:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Everything documentation related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants