File: route-matching.md | Updated: 11/15/2025
Search...
+ K
Auto
Docs Examples GitHub Contributors
Docs Examples GitHub Contributors
Docs Examples GitHub Contributors
Docs Examples Github Contributors
Docs Examples Github Contributors
Docs Examples Github Contributors
Docs Examples Github Contributors
Docs Examples Github Contributors
Maintainers Partners Support Learn StatsBETA Discord Merch Blog GitHub Ethos Brand Guide
Documentation
Framework
Solid
Version
Latest
Search...
+ K
Menu
Getting Started
Installation Guides
Routing
Guides
API
ESLint
Router Examples
Framework
Solid
Version
Latest
Menu
Getting Started
Installation Guides
Routing
Guides
API
ESLint
Router Examples
Copy Markdown
Route matching follows a consistent and predictable pattern. This guide will explain how route trees are matched.
When TanStack Router processes your route tree, all of your routes are automatically sorted to match the most specific routes first. This means that regardless of the order your route tree is defined, routes will always be sorted in this order:
Consider the following pseudo route tree:
Root
- blog
- $postId
- /
- new
- /
- *
- about
- about/us
Root
- blog
- $postId
- /
- new
- /
- *
- about
- about/us
After sorting, this route tree will become:
Root
- /
- about/us
- about
- blog
- /
- new
- $postId
- *
Root
- /
- about/us
- about
- blog
- /
- new
- $postId
- *
This final order represents the order in which routes will be matched based on specificity.
Using that route tree, let's follow the matching process for a few different URLs:
/blog
Root
❌ /
❌ about/us
❌ about
⏩ blog
✅ /
- new
- $postId
- *
Root
❌ /
❌ about/us
❌ about
⏩ blog
✅ /
- new
- $postId
- *
/blog/my-post
Root
❌ /
❌ about/us
❌ about
⏩ blog
❌ /
❌ new
✅ $postId
- *
Root
❌ /
❌ about/us
❌ about
⏩ blog
❌ /
❌ new
✅ $postId
- *
/
Root
✅ /
- about/us
- about
- blog
- /
- new
- $postId
- *
Root
✅ /
- about/us
- about
- blog
- /
- new
- $postId
- *
/not-a-route
Root
❌ /
❌ about/us
❌ about
❌ blog
- /
- new
- $postId
✅ *
Root
❌ /
❌ about/us
❌ about
❌ blog
- /
- new
- $postId
✅ *
