Skip to content
Have a project in mind?
The Gloria JournalSEO

How to structure a website for SEO, step by step

Construction worker in a helmet and harness working on timber formwork and reinforcing bars

A website's structure is the way its pages are grouped, ranked and linked to one another. You see it in the menu, in the URLs, in the breadcrumb trail, and above all in the links running from one page to the next.

Most sites do not really have a structure. They have a history. Pages were added as needed — a new service, a campaign, a run of blog posts — and nothing was reorganised. That works until the site reaches a size where nobody, Google included, can tell which page answers what.

What follows is an implementation guide: the tree, click depth, topic clusters, internal links, URLs, breadcrumbs, faceted navigation, and the audit that tells you where you stand.

Design the tree around queries, not your org chart

The commonest mistake is to mirror how the business is organised — departments, subsidiaries, ranges — instead of how customers search. Working the other way round is more reliable:

  1. List the subjects your customers type into Google: services, problems, products, places. Group near-identical phrasings into themes.
  2. Give each theme one page, not each keyword one page. Two phrasings that return the same results in Google belong on the same page.
  3. Rank them: main themes at the first level, variants at the second. A small brochure site fits in two levels; an online shop or a content-heavy site needs three.
  4. Draw the tree before you produce anything, in a spreadsheet: planned URL, parent page, target query, pages to link to it.

Google's SEO starter guide notes that grouping similar content into directories helps it work out which parts of a site change often — a consideration that mainly bites beyond several thousand URLs. On a smaller site the point is different: avoiding orphan pages, duplicate topics and empty sections.

Keep click depth under control

Click depth is the number of links you follow from the homepage to reach a page. It is not URL depth: a page at /blog/2024/03/article/ is one click away if the homepage links to it directly. For crawling, what counts is the path of links.

Google's own recommendation is minimal but explicit: every page you care about should be linked from at least one other page on the site. In practice, aim for:

  • service pages and main categories: one click, from the menu;
  • sub-categories, location pages, important articles: two clicks;
  • product pages and older articles: three clicks, four at most on a very large catalogue.

Those thresholds are working targets, not rules handed down by Google. To bring depth down: paginate with links to the first and last pages rather than next-only, add link blocks at the foot of categories and "related articles" lists, and publish an HTML sitemap past a few hundred pages.

Topic clusters and internal linking

The principle

A cluster is a set of pages on one theme, linked to each other and headed by a pillar page. For a building trade: "Bathroom renovation" as the pillar, linking to "Walk-in showers", "Replacing a bath" and "Bathroom tiling", which link to each other and back to the pillar. Links between clusters still exist, but fewer, and justified by the content rather than the template.

Linking rules you can apply without a tool

  • A link is an <a href> element. Google says it only follows links of that kind. JavaScript buttons with no href, and menus with no real URL behind them, do not count.
  • Descriptive anchors. Google recommends concise anchor text describing the target page. "Click here" says nothing; repeating one exact phrase across dozens of links is keyword stuffing.
  • Links inside the content weigh more than template links. The menu and footer repeat on every page; a link placed in a relevant paragraph is a more precise signal.
  • Every new page gets at least two contextual links from pages that are already indexed, on top of the menu or any automatic listing.
  • The pages that convert get the most links, particularly from blog articles, which is where the imbalance usually sits.

Ahrefs, in a December 2023 study across roughly 14 billion pages in its index, found that 96.55% receive no organic traffic from Google at all, with a lack of inbound links among the three main causes. Internal linking does not replace external links, but it is the only link lever you control entirely.

Write URLs that are readable, stable and consistent

Google's guidance on URL structure is specific:

  • readable words rather than identifiers: /bathroom-renovation/ rather than /index.php?id=42;
  • hyphens (-) between words, not underscores (_);
  • one consistent case: Google treats /Apple and /apple as two different URLs;
  • no session identifiers, and as few parameters as you can manage;
  • the reader's own language in the words of the URL.

Add two things Google does not spell out. Stability: changing a URL means a 301 redirect, so you do not rename for cosmetic gain. And consistency: whether the URL mirrors the tree is a fair choice either way, but you do not mix both logics on one site.

Put a breadcrumb trail in place

A breadcrumb shows where the page sits in the hierarchy — Home > Services > Bathroom renovation — and it adds a link to every parent level on every page, which strengthens category pages. Google says BreadcrumbList markup helps it categorise the page in results, and recommends a trail that follows a typical user journey rather than a copy of the URL. A minimal example:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Services",
      "item": "https://example.com/services/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Bathroom renovation"
    }
  ]
}
</script>

Three implementation points: the trail is visible on the page, every level except the last is a real link, and the markup carries at least two items with position, name and item. Most WordPress SEO plugins generate it for you.

Frame faceted navigation before it multiplies

Filters by colour, size, price or brand generate a very large number of near-identical URLs. Google's documentation on faceted navigation ranks the options by how well they work:

Google's recommended handling of filter URLs
Situation Method Note
Filtered pages are not meant to rank Disallow crawling in robots.txt, or handle filters through a URL fragment (#) Google's preferred methods
Some combinations should be indexed Parameters separated by &, a constant filter order, no duplicated filter Or a genuine sub-category with content of its own
A combination returns nothing Return a 404 Not a redirect to an error page served as 200
Residual duplicates rel="canonical", nofollow Flagged by Google as less effective over time

The decision rule is short. A filter combination deserves an indexable URL when it matches something people actually search for and gets its own title, text and internal links. Otherwise it stays out of crawling. To see which filtered URLs Google is picking up, start with the reports covered on our page about Google indexing.

Sitemaps and robots.txt come after the structure

An XML sitemap does not fix a bad structure. Google says so directly: for a site of roughly 500 pages or fewer that is well linked internally, a sitemap is optional. It earns its place on large sites, new sites with few external links, and sites heavy with images, video or news. It should list indexable URLs only: status 200, canonical, no noindex.

The same goes for crawl budget, which Google frames as a concern for sites of a million or more unique pages, or 10,000 or more whose content changes daily. A small business does not have that problem. It has orphan pages, duplicate topics and unmanaged filters.

Auditing your structure: five checks

A crawler — Screaming Frog, Sitebulb, Oncrawl, or the audit built into most SEO suites — walks the site the way Google does and hands you the data. Run the checks in this order, and decide what you are looking for first; our note on scoping an SEO audit covers that.

Structure audit: checks, data and working thresholds
Check Data to pull Warning sign Fix
Click depth Pages by click level Key pages beyond three clicks Links from the menu, categories, related articles
Orphan pages Sitemap or Search Console URLs missing from the crawl Any useful page with no inbound link Add two contextual links, or delete the page
Internal inbound links Links received per page, excluding menu and footer Service pages linked less than minor articles Rebalance from the blog towards the services
Duplicate topics Pages targeting the same query — near-identical titles, cannibalisation Two URLs alternating on one query Merge, redirect, or separate the intent
Needlessly crawled URLs Parameters, filters, sorts, endless pagination in the crawl A large share of non-indexable URLs robots.txt, canonical, rework the filters

Finish with the Pages report in Search Console. URLs listed as "Discovered — currently not indexed" usually point at thin internal linking or duplication rather than anything mysterious. Repeat the audit after every new section or menu change, and once a year regardless.

One timing note. Before a redesign, settle the target tree and the URL mapping table before anyone picks a design, as our website redesign guide argues. That is when structure costs least to correct, and when it is most often skipped.

Common questions

How many levels deep should a website go?

Google sets no limit. In practice, keep important pages within three clicks of the homepage, four on a very large catalogue. What matters is the path of links, not the folders in the URL.

Should the URL mirror the site tree?

It does not have to. Google's emphasis is on readable URLs, words separated by hyphens, no session identifiers. The important part is choosing one logic, applying it site-wide, and not changing URLs without a reason.

What is an orphan page, and why does it matter?

An orphan page receives no internal link from the rest of the site. Google states that every page that matters should be linked from at least one other. Without a link it is hard to discover, rarely crawled, and inherits no internal authority.

Do breadcrumbs really help SEO?

They add links to parent levels on every page and, with BreadcrumbList markup, help Google place the page within the site and display it in results. Not a ranking factor on their own — one component of a structure that reads clearly.

Is an XML sitemap enough to get every page indexed?

No. A sitemap declares URLs; it does not replace internal links. Google treats it as optional for a well-linked site of roughly 500 pages or fewer. A page in the sitemap but linked from nowhere frequently stays unindexed.

How should an online shop handle filters without harming SEO?

Google recommends blocking filter URLs in robots.txt, or handling filters through a URL fragment, where those pages are not meant to be indexed. For combinations customers genuinely search for, build real sub-categories with content of their own.

This link opens in a new tab.