{
  "slug": "status-code-hits",
  "name": "Status-code hits",
  "aliases": [
    "Crawl errors",
    "Error responses to crawlers"
  ],
  "definition": "How many times each URL returned a given HTTP status to a crawler in the period.",
  "category": "Crawl and logs",
  "type": "raw measure",
  "unit": "log requests per URL and status",
  "direction": "neutral",
  "verification": "review",
  "aggregation": "Sums across rows within a URL and status.",
  "grain": "One count per URL and status code.",
  "dimensions": [
    "url",
    "status_code",
    "bot_type"
  ],
  "requiredFilters": [
    "date_range"
  ],
  "sources": [
    "server-logs"
  ],
  "reports": [
    "ai-bot-activity-report",
    "crawl-log-report",
    "technical-seo-audit-report"
  ],
  "skills": [
    "crawl-efficiency-review",
    "technical-health-audit",
    "anomaly-investigator"
  ],
  "verbs": [
    "status_error_analysis"
  ],
  "rungs": [
    "R1"
  ],
  "levers": [
    "L1"
  ],
  "questions": [
    "What pages are erroring for Googlebot?",
    "Are we serving server errors to AI bots?"
  ],
  "caveats": [
    "The error-class filter does not match the data it is applied to. Treat an empty result from this read as a filter defect, not as evidence that nothing errored.",
    "This read is available on the internal tool surface only; it is not exposed to external callers today.",
    "The status field is a labelled band, not a numeric code: statuses are collapsed into named buckets, and unusual codes inside a class fall into an other-response bucket rather than being reported individually.",
    "The bot is a filter on this read, not a returned column, so a result cannot be split by which crawler received the status without re-running it per bot.",
    "The list is capped, so it is the top erroring URLs by volume rather than every erroring URL.",
    "Same origin-only caveat as all log reads: a status served from a CDN edge may never reach the log."
  ],
  "freshness": "hours to nightly, depends on how logs are shipped; the card carries the ingestion time.",
  "failureModes": [
    "Reading an empty result as a clean bill of health.",
    "Reading the capped list as the complete set of errors.",
    "Treating a high count on one URL as severity without checking which bot received it."
  ],
  "notSameAs": [
    {
      "slug": "indexability-flags",
      "why": "Status-code hits are what the server actually returned to a crawler; indexability flags are what the crawl graph concluded about a page. One is observed, the other is assessed."
    }
  ],
  "related": [
    "bot-hits",
    "indexability-flags",
    "crawler-response-time"
  ],
  "workflows": [],
  "lastVerified": "2026-08-04"
}