{
  "schemaVersion": "crawler-atlas-1",
  "atlasVersion": "atlas-2026-07-28-v1",
  "canonical": "/atlas/content-negotiation",
  "title": "Content negotiation",
  "category": {
    "slug": "http",
    "title": "HTTP behavior and efficiency"
  },
  "definition": "Content negotiation selects a representation using request headers such as Accept, Accept-Language, and Accept-Encoding.",
  "mechanism": "One URL can return different media types or languages, but caches and crawlers need explicit Vary metadata and stable canonical relationships.",
  "validation": "Replay controlled header matrices and hash every returned representation so variation is observable rather than guessed from the URL.",
  "commonFailure": "Serving materially different facts to crawler user-agents creates cloaking risk and destroys reproducibility.",
  "related": [
    "/atlas/compression",
    "/atlas/hreflang"
  ],
  "modified": "2026-07-28"
}