---
title: "URL Architecture — Technical SEO — seo-mcp"
description: "Crawling, indexing, rendering, performance and everything the bots must do to find and understand your site."
url: "https://seo-mcp.io/c/technical-seo/url-architecture"
---

# URL Architecture — Technical SEO

Crawling, indexing, rendering, performance and everything the bots must do to find and understand your site.

Underlying category: [Technical SEO](https://seo-mcp.io/c/technical-seo) (50 tips).

- [Add canonical URLs with the Next.js Metadata API](https://seo-mcp.io/t/add-canonical-urls-with-the-next-js-metadata-api) — Next.js App Router resolves metadata per route, so each page can declare its own canonical URL instead of inheriting one global value. Set alternates.canonical in the page metadata export or generateMetadata, keep it absolute and self-referencing, and make sure template redirects and trailing-slash handling agree with the URL you declare.
- [Use descriptive URL slugs](https://seo-mcp.io/t/use-descriptive-url-slugs) — Descriptive slugs help users and give crawlers a topical hint. Keep them short, lowercase, hyphenated and stable. When a slug must change, redirect the old path with a single 301 and update internal links. Avoid dates, session IDs and uppercase characters that create duplicate URLs.
- [Set canonicals and sitemap with Astro integrations](https://seo-mcp.io/t/set-canonicals-and-sitemap-with-astro-integrations) — Astro needs a production site value before canonicals and sitemaps can be correct. Set site in astro.config.mjs, install the @astrojs/sitemap integration, and let it emit sitemap-index.xml with child files. Then render an absolute canonical in the layout from Astro.url and Astro.site so every page references itself.
- [Set meta and canonicals with useSeoMeta](https://seo-mcp.io/t/set-meta-and-canonicals-with-useseometa) — Nuxt 3 resolves head tags per route through useSeoMeta and useHead. Set title, description, og and canonical in the page that owns the route, using an absolute URL built from runtimeConfig.public.siteUrl. Set the same origin in nuxt.config.ts so the sitemap module and prerender steps agree with it.
- [Fix collection canonicals and product schema offers](https://seo-mcp.io/t/fix-collection-canonicals-and-product-schema-offers) — Shopify renders collection pages at multiple filter and pagination URLs. Keep one canonical per collection, canonicalize filtered views to the base when they are not meant to rank, and emit Product markup whose offers match the real price, currency and availability shown in the buy box.
- [Shorten and clean URL slugs for on-page SEO](https://seo-mcp.io/t/shorten-and-clean-url-slugs-for-on-page-seo) — Rewrite each page's URL slug to two or three lowercase, hyphen-separated words built around the primary keyword. Drop underscores, capital letters and dates or numbers that do not describe time-sensitive content. Cleaner slugs are easier to read in search results and restate the target keyword in the URL; apply the rule to new content and templates first.
