# Site architecture for a small product: shallow, linked, and honest

Architecture is not your folder names. It is which pages link to which, because that is what a crawler follows and what distributes ranking. Keep it shallow, give every section a hub worth reading, and make sure nothing is reachable only from the sitemap.

Updated 2026-09-15 · Source: https://porteur.ai/guides/site-architecture

## A site is a graph, not a folder tree

A crawler does not see your directories. It sees pages and the links between them, and it walks the links.

- The home page and the pages linked from the navigation are crawled most often.
- Pages three clicks deep are crawled and recrawled less.
- Pages nobody links to are found only through the sitemap, and they rank worst.
- A page in a neat folder with no inbound links is still an orphan.

So the question for every page is not where does it live, it is which pages link to it and how far is it from the home page.

## The three-click rule, and what it really means

The rule is not a law about user patience. It is a description of how crawl frequency falls with depth.

| Depth | What it usually is | What happens |
| --- | --- | --- |
| 0 | The home page | Crawled constantly |
| 1 | Section hubs, pricing, the main product pages | Crawled often, ranks readily |
| 2 | The pages inside a section | The right place for most content |
| 3 | A page reachable only through a related link or pagination | Crawled less, slower to update in the index |
| 4 and beyond | Usually pagination, filters or archives | Often discovered late, sometimes not indexed at all |

> Depth is measured in links, not in slashes. A page at /guides/search-console/impressions can be one click from the home page if a hub links to it.

## Hubs that are real pages

A hub is where a section's crawl and ranking are distributed from. A list of links is a weak hub, because it ranks for nothing and gives Google no reason to prefer it.

- An overview worth reading on its own: what the subject is, the order to read the pages in, and who they are for.
- The links to the pages of the section, with descriptive anchor text, not "read more".
- A reason to exist as a search result: a hub can rank for the broad query while its pages rank for the specific ones.
- A link back up to the home page and across to sibling hubs, through the navigation or the breadcrumb.

Three to seven hubs is right for a small product. More than that and the navigation stops being a map.

## Navigation a crawler can follow

Navigation belongs in HTML anchors with href attributes. A menu built from buttons and script is not a set of links to a crawler, whatever it looks like to a visitor.

```html
<!-- Followed: an anchor with a real destination -->
<a href="/guides/">Guides</a>

<!-- Not a link: a crawler sees a button, and no destination -->
<button onclick="router.push('/guides/')">Guides</button>
```

- Anchors, with href, pointing at the final URL rather than through a redirect.
- Descriptive text inside the anchor, because that text describes the destination.
- The same navigation on mobile, in the HTML, even when it is behind a toggle.
- No link that only exists after a fetch, since content that appears only after JavaScript runs is seen late by Google and not at all by the answering AI crawlers.

## The footer that passes nothing

A footer linking a hundred pages adds nothing to the crawl and passes little to each page. It feels like internal linking and is not.

Keep the footer for what it is good at: the sections, the legal pages, the contact, and the one or two pages every visitor eventually wants. Put the real internal linking in the body of pages, where a link has context and an anchor that means something.

> A contextual link inside a paragraph beats ten footer links to the same page. The anchor text and the surrounding sentence are the signal.

## Breadcrumbs: the second path

A breadcrumb gives every page a link up to its hub and to the home page, marks the hierarchy for Google with BreadcrumbList markup, and replaces the URL line in some results.

- One trail per page, matching the site's structure rather than the URL if the two differ.
- The current page as the last item, not a link.
- Real anchors for the parents, in the HTML, on mobile too.
- Markup that matches what is visible on the page.

## A worked map for a site of two hundred pages

```text
/                         home: what the product is, links to the hubs
/pricing                  one click deep
/guides/                  hub: an overview, then the guides by theme
  /guides/<theme>/        theme hub: an overview, then its guides
  /guides/<page>          the guide itself, linked from its theme hub
/tools/                   hub: the free tools, grouped by job
  /tools/<tool>           one tool, linked from the hub and from the guides that need it
/glossary/                hub: A to Z
  /glossary/<term>        one term, linked from every guide that uses it
/about  /privacy  /terms  footer, one click deep
```

Nothing in that map is more than three clicks from the home page, every page has a hub above it, and the cross links between guides, tools and terms are written in the body where they help a reader. Two hundred pages fit in it without a single archive or paginated list.

## How to check your own architecture

1. **Crawl from the home page** A crawler that starts at the home page and follows links reports the depth of every page it reaches. Anything it cannot reach is an orphan, whatever your sitemap says.
2. **Compare the crawl with the sitemap** URLs in the sitemap that the crawl never reached are the pages nothing links to.
3. **Sort by inbound internal links** The pages with the fewest are the ones to link from a hub or a related section.
4. **Read the Crawl stats report** If most fetches go to parameters, redirects or dead URLs, the architecture is spending crawl on pages you do not care about.
5. **Click through as a visitor on a phone** From the home page, reach your newest guide. If you cannot in three taps, neither can a crawler in three links.

## Questions

### Does URL depth matter, or link depth?

Link depth. A page at /guides/search-console/impressions is one click deep if a hub links to it, and five clicks deep if it is only reachable through pagination. Google follows links, not slashes.

### How many pages should a hub link to?

As many as a reader can scan, grouped. Past thirty or so, split the hub into themed sub-hubs, each with its own overview, so both the reader and the crawler have a map rather than a wall.

### Do footer links help SEO?

Barely. A footer with a hundred links passes little to each and adds nothing to the crawl. Use it for the sections and the legal pages, and put the real linking in the body of your pages.

### Should every page have breadcrumbs?

Every page inside a section should. They give a second path up the hierarchy, they help visitors who arrive from search with no context, and with BreadcrumbList markup they can replace the URL line in results.

### Is a flat structure better than a deep one?

For a small site, yes. Home, hub, page covers a few hundred pages without anything going deeper than three links. Deep hierarchies are for sites with tens of thousands of pages and a real taxonomy.

## Read next

- [Internal linking for a small site: which pages link to which](https://porteur.ai/guides/internal-linking-for-seo): Decide which pages rank. Build hubs, write clear anchors, fix orphans, and crawl your site to map links you control.
- [URL structure: the decisions you make once](https://porteur.ai/guides/url-structure): Folders that mean something, slugs made of words, the variants that create duplicates, and a table of good and bad URLs for a product site.
- [Orphan pages: finding the pages nothing links to](https://porteur.ai/guides/orphan-pages): Find orphan pages on your site, why they happen, how to compare crawl, sitemap and Search Console, and what to do: link, merge, redirect or remove.
- [Crawl waste on a small site: the fetches your real pages never get](https://porteur.ai/guides/crawl-waste): Crawl budget is not a small site's problem. Crawl waste is: parameters, filters, old redirects and dead URLs taking the fetches your pages need.
- [Breadcrumbs: the navigation, the markup, and what Google shows](https://porteur.ai/guides/breadcrumbs): Add breadcrumb navigation that helps visitors, improves internal linking and gives Google a clean trail to show in results, with JSON-LD examples.
- [E-commerce site structure: categories, products, and the links between](https://porteur.ai/guides/ecommerce-site-structure): Design your ecommerce site structure so the right page ranks: pyramid, URLs, breadcrumbs, facets, pagination, and links that move buyers.
- [Click depth](https://porteur.ai/glossary/click-depth): Click depth is the clicks from home to a page. Keep key pages within three clicks. Learn how to measure it and cut depth without spammy links.
- [Navigation: the links that decide what gets crawled](https://porteur.ai/guides/navigation-and-seo): Your menu decides which pages are found first and how deep the rest sit. What belongs in it, what belongs in the footer, and how to check yours.

Paste your URL and the free check reads your site the way a crawler walks it, in about thirty seconds, and shows the pages nothing links to. Free check: https://porteur.ai/
