{
  "slug": "crawl-depth",
  "name": "Crawl depth",
  "aliases": [
    "Click depth",
    "Distance from homepage"
  ],
  "definition": "How many link steps from the homepage the crawler needed to reach a URL.",
  "category": "Crawl and logs",
  "type": "raw measure",
  "unit": "link steps",
  "direction": "lower-better",
  "verification": "inferred",
  "aggregation": "A per-URL attribute, not an aggregate. The crawl-budget tool filters to URLs at or beyond a depth threshold, five by default, and sorts deepest first.",
  "grain": "One value per crawled URL.",
  "dimensions": [
    "url"
  ],
  "requiredFilters": [],
  "sources": [
    "site-crawl"
  ],
  "reports": [
    "ai-bot-activity-report",
    "crawl-log-report",
    "internal-linking-report",
    "technical-seo-audit-report"
  ],
  "skills": [
    "crawl-efficiency-review",
    "technical-health-audit",
    "linking-opportunity-review"
  ],
  "verbs": [
    "crawl_budget_waste",
    "internal_link_flow"
  ],
  "rungs": [
    "R1"
  ],
  "levers": [
    "L1",
    "L4"
  ],
  "questions": [
    "Which pages are buried deep in the site?",
    "Where is crawl budget going?"
  ],
  "interpretation": "An architecture signal: pages that earn should not sit five clicks from the homepage. It is a property of the link graph as the crawl found it, so it responds to internal linking work rather than to content work.",
  "caveats": [
    "The value is a passthrough of a column the crawler produces; the derivation lives in the crawler and is not readable in the semantic layer, so the exact traversal rules are not documented here.",
    "The depth threshold is a caller-chosen parameter defaulting to five, so a waste list is not comparable across calls that used different thresholds.",
    "A crawl is a snapshot on its own schedule and can disagree with a page changed since.",
    "It reports what is REACHABLE, never what was actually fetched, that is the server logs' job.",
    "The tool checks the crawl feed is populated first and returns a plain note when it is not."
  ],
  "freshness": "per crawl schedule, cadence is set per site; the card names the crawl it read.",
  "failureModes": [
    "Reading depth as importance.",
    "Comparing waste lists produced with different depth thresholds.",
    "Concluding a deep page is not crawled, depth is reachability, not fetch evidence."
  ],
  "notSameAs": [
    {
      "slug": "bot-hits",
      "why": "Depth is what the crawl graph says is reachable; hits are what a bot actually fetched. Conflating the two is how a team concludes a page is fine because it could in principle be crawled."
    }
  ],
  "related": [
    "incoming-internal-links",
    "outgoing-internal-links",
    "indexability-flags"
  ],
  "workflows": [],
  "lastVerified": "2026-08-04"
}