Overview
Site architecture is the URL graph and the link graph on top of it. A shallow, topic-grouped structure keeps priority pages close to home and makes each section’s scope obvious. Decide the shape before the first content page ships, because retrofits cost redirects.
Keep priority pages within three clicks of home
The home page is usually the most-linked node, so pages near it are found quickly and read as important. Three clicks is a practitioner target, not a Google rule, and there is no published per-click decay figure.
- Money pages, top-of-funnel guides, and category MOCs live at depth 1 or 2; reference detail at depth 2 or 3.
- Anything deeper is a candidate for promotion, merging, or removal.
- Measure depth with a crawler that records the shortest path from the home URL (Screaming Frog and Sitebulb both do). See crawl-budget.
Map URL folders to topic clusters one-to-one
A folder in the URL is a public commitment to a topic. /seo/ holds SEO pages only and /howto/ holds step-by-step tutorials only. Mixed folders blur the structure for readers and crawlers.
/seo/technical
/seo/internal-linking
/howto/audit-site-for-core-web-vitals
The folder is the silo and its MOC (index.md) is the silo’s entry point. See content-clusters for the pillar-cluster pattern and index for the on-disk layout that mirrors the URL.
Use short kebab-case noun-phrase slugs
- Kebab-case (
meta-descriptions), as a noun phrase (audit-checklist, nothow-to-audit-your-site). - No stop words unless they change meaning, and no dates, version numbers, or author initials.
- Match the slug to the H1 intent so URL, heading, and title describe the same page.
Treat a published slug as an API: a rename needs a 301 from the old URL, kept for as long as anything links to it (redirects).
Render breadcrumbs and BreadcrumbList JSON-LD on every page below root
Breadcrumbs serve readers who navigate up and crawlers that read the hierarchy. Render both, with identical labels, because structured data must match visible content.
<nav aria-label="Breadcrumb">
<a href="/">Home</a> / <a href="/seo/">SEO</a> / <span>Site architecture</span>
</nav>{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com/" },
{ "@type": "ListItem", "position": 2, "name": "SEO", "item": "https://example.com/seo/" },
{ "@type": "ListItem", "position": 3, "name": "Site architecture" }
]
}See structured-data.
Give every page inbound and outbound links
Every page needs an inbound link from its MOC and outbound links to its parent and siblings. Orphans and dead ends both break the architecture; the audit lives in internal-linking. Link every MOC from the master index, or the MOC is an orphan itself.
Avoid these architecture errors
- Folder depth confused with click depth. URL depth is not the ranking problem; a four-level path usually means four clicks, so flatten navigation or add shortcut links.
- A slug and a breadcrumb label that read as different pages.
- Renaming slugs without 301s, which turns every backlink into a 404.
- Wrapping the breadcrumb in
<h1>; it is a<nav>, not a heading.
Related
- internal-linking
- content-clusters
- technical
- crawl-budget
- index
- structured-data
- title-tags
- redirects
- audit-checklist
- programmatic-seo: keeping template pages in one subfolder