Skip to main content
OnPageIQ Documentation

Site Architecture

Visual crawl tree, click-depth analysis, orphan detection, and architecture export — plus the definitions behind every number on the Statistics panel.

User goal

Understand how the site is wired together — how deep pages sit, which ones nothing links to — and know exactly what each number on the page counts.

Tier
Pro+
Nav label
Architecture
Route
/projects/{project}/architecture
Gates

Prerequisites

  • Architecture crawl completed

QA focus

  • Total Pages agrees across the dashboard tile and the Statistics, Metadata, Schema and Open Graph surfaces — one crawl, one number
  • Content pages + Archive pages = Total Pages whenever archives are shown
  • Max Depth is a real click distance in BOTH archive-toggle positions — unreachable pages carry a sentinel depth that must never surface as the maximum
  • Orphan counts include pages found via the sitemap that no link reaches
  • Page details open in a slide-over (not a modal) from the graph tooltip or Pages table
  • Export download is a signed URL; cross-org architecture 404s

Overview

Site Architecture maps how visitors can move through the site — click depth, the page tree, and pages nothing links to — so the Statistics panel and related SEO surfaces agree on one crawl.

What you get

  • A visual crawl tree, depth analysis, and orphan detection (Orphan badge in the page list)
  • A Statistics panel whose definitions match Metadata, Schema, and Open Graph totals from the same crawl
  • A page details slide-over (depth, inbound/outbound links, issues, equity) from the graph or Pages table
  • Sitemap-seeded pages the link crawl never reached
  • Queued architecture exports downloaded through a signed URL

How it works

  • The crawl starts at the homepage and follows links the way a visitor would
  • A second pass reads the site’s sitemap and visits anything the link crawl missed (orphans have no inbound links)
  • Sitemap seeding is controlled by site-architecture.sitemap_seeding (enabled switch plus max_seeded_pages budget)
  • Toggle Show archive pages to change what is counted and listed without re-crawling
  • Click a page in the tree tooltip (View full details) or the Pages table to open the slide-over; Escape or Close dismisses it

What each number means

Total Pages
Distinct pages the crawl reached that returned a normal response and are actual web pages. Redirects, errors, PDFs, images and other files are excluded, and a page linked from fifty places still counts once.
Not the same as Total URLs on the URLs page. That is the project's scan list, which you and imports add to and which is never pruned. This is what exists on the site right now.
Content pages
Total Pages minus the archive types below — the pages a person would call "the site".
Archive pages
Listing pages a CMS generates automatically: category, tag, author, date and pagination. Real pages, but rarely what you mean by your content.
The Show archive pages toggle only changes what is counted and listed. It never re-crawls, so flipping it is instant and lossless.
Total Links
Every link found on every crawled page, including links pointing out to other websites. It is normally many times larger than Total Pages.
Max Depth
How many clicks the furthest page sits from the homepage, following links only. The homepage is 0. A link in the footer counts exactly the same as one in the main menu — this measures clicks, not navigation levels.
Orphans are excluded: with no path to them they have no click distance at all. Hiding archives can lower Max Depth, because the deepest pages on many sites are archives.
Orphan Pages
Pages that exist and load, but which nothing on the site links to. Visitors cannot click their way to them and search engines struggle to find them, so they are worth fixing with an internal link from a relevant page.
Only orphans the sitemap declares can be found. A page that is neither linked nor listed in the sitemap stays invisible, and a site with no sitemap gets no orphan discovery at all.
Error Pages
Crawled URLs that returned a client error, a server error, or timed out.
Sitemap Files
A count of saved sitemap-generator configurations for this project. It is not derived from the crawl.
Reads 0 for everyone today: nothing in the product creates these configurations yet, so the number is not telling you anything about your site. In particular it is NOT a count of sitemaps found on your website, and it is not the sitemap orphan detection depends on — that one is the sitemap published on your own site. Re-crawling never changes this number.
Depth Score
A letter grade for how quickly the site can be navigated, based on the spread of click depths. Pages beyond the project's configured deep_page_threshold count against it — the same limit that drives the Deep badge and the deep-page issues, so all three agree.
Unreachable pages are left out of the grade entirely. They have no click distance to score, so they are reported separately as their own row rather than counted as the deepest pages on the site.

Common issues & false alarms

  • Total Pages looks smaller than the URLs page → they answer different questions; the URL list accumulates every address ever added and is never pruned
  • Orphan Pages jumped after an upgrade → the orphans were always there and were previously undiscoverable; nothing regressed
  • Max Depth reads 2 or 3 and the site has three menu levels → Max Depth counts clicks from the homepage, not navigation tiers
  • Total Links looks impossibly large → it includes outbound links to other sites
  • Orphan Pages is 0 on a site with no sitemap → orphan discovery needs a sitemap to compare against
  • Large sites slow to render tree

Interactive guide

Step of

All steps (reference)

  1. Step 1. Start an architecture crawl

    The crawl walks the site from the homepage, then reads the sitemap to pick up anything nothing links to. Progress updates live.

    What to do: Open the project's Architecture page and start a crawl if one has not run.

    Where: projects.architecture

    Expected (pass)

    • Job queued and visible in Horizon
    • Progress indicator updates as pages are visited

    Negative cases (must fail safely)

    • No crawl yet → empty state with a call to action, not a fabricated zero
  2. Step 2. Read the Statistics panel

    Every number on the panel is defined above. The one relationship to check by eye: Content pages plus Archive pages equals Total Pages whenever archives are shown.

    What to do: Architecture → read the Statistics panel on the left.

    Where: projects.architecture

    Read the Statistics panel

    Expected (pass)

    • Content pages + Archive pages = Total Pages
    • Total Pages matches the dashboard Pages Found tile and the Metadata, Schema and Open Graph tabs
    • Max Depth is a small click count, never a sentinel value

    Negative cases (must fail safely)

    • A failed or in-progress crawl must not replace the last good numbers
  3. Step 3. Toggle archive pages and confirm the counts move together

    Hiding archives removes them from the counts and the page list without re-crawling. Every surface should drop by exactly the archive count.

    What to do: Architecture → switch Show archive pages off, then re-check the dashboard and the sibling tabs.

    Where: projects.architecture

    Expected (pass)

    • Each surface drops by exactly the Archive pages figure
    • The Statistics row reads "Archive pages (hidden)" so the totals do not look self-contradictory
    • Max Depth may drop, because archives are often the deepest pages
  4. Step 4. Find and fix orphan pages

    Orphans carry a red Orphan badge in the page list, and the filters can show only those. Each one is a page that exists but cannot be clicked to — the fix is an internal link from a relevant page.

    What to do: Architecture → filter to Orphan Pages → open one and confirm it loads.

    Where: projects.architecture

    Expected (pass)

    • Badged pages match the Orphan Pages figure in Statistics
    • An orphan loads normally in a browser but cannot be reached by clicking through the site

    Negative cases (must fail safely)

    • Site publishes no sitemap → orphan discovery has nothing to compare against and the count stays 0
  5. Step 5. Open page details in the slide-over

    From the graph tooltip or the Pages table, open full details for a URL. The panel shows depth, inbound/outbound links, unresolved issues, and equity flow without leaving Architecture.

    What to do: Architecture → click View full details on a node (or View on a Pages row) → review the slide-over → Close or press Escape.

    Where: projects.architecture

    Expected (pass)

    • Slide-over opens (not a centered modal)
    • URL opens in a new tab when http(s); non-http schemes do not become clickable javascript:/data: links
    • Closing clears the selection so the panel stays dismissed

    Negative cases (must fail safely)

    • A node id from another organization must not populate the panel
  6. Step 6. Export the architecture

    Generate an export and download it through a signed link.

    What to do: Export → wait for the job → follow the download link.

    Where: projects.architecture.export.download

    Expected (pass)

    • File contains the expected URLs
    • Path traversal blocked

    Negative cases (must fail safely)

    • Tampered signed URL → 403/404
    • Another organization's architecture → 404

Related guides