---
title: Routing
related:
  - https://docs.kentico.com/documentation/developers-and-admins/development/routing/content-tree-based-routing.md
  - https://docs.kentico.com/documentation/developers-and-admins/development/routing/configure-forbidden-url-characters.md
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

Xperience sites respond to incoming requests using conventional ASP.NET routing. ASP.NET routing is a pattern matching system that is responsible for mapping incoming browser requests to specified controller actions. When the application launches, it registers one or more patterns within the framework's route table to tell the routing engine what to do with any requests that match those patterns.

Xperience uses a routing approach that leverages the site's [content tree](https://docs.kentico.com/documentation/business-users/website-content.md). With content tree-based routing, the system automatically generates and matches page URLs based on their position in the site's content tree. You don't need to manually map any MVC route templates. All routing logic is handled for you by the system.

In addition to the default system URLs generated from the content tree, marketers can also specify custom [vanity URLs](https://docs.kentico.com/documentation/business-users/website-content/manage-page-urls.md#edit-vanity-urls-of-pages) to create short and memorable URLs for pages for branding and easy sharing.

For more advanced routing scenarios, you can implement custom controllers and actions that take over the handling for specific requests, allowing you to customize the routing process. See [Content tree-based routing](https://docs.kentico.com/documentation/developers-and-admins/development/routing/content-tree-based-routing.md) for more information.
