{
  "study": {
    "id": "LAB-CANONICAL-2026-10-04",
    "registered_at": "2026-10-04T14:05:31.989034+00:00",
    "question": "Which explicit metadata configurations change the emitted canonical host or path, and does one configuration change restore the declared intended URL?",
    "design": "Eight predefined configurations, before and after, including an unchanged control. One production build; two HTTP collection passes; browser DOM inspection of all 16 URLs.",
    "versions": {
      "node": "v25.2.1",
      "next": "15.5.22",
      "react": "19.2.6",
      "reactDom": "19.2.6"
    },
    "router": "App Router",
    "mode": "next build + next start; local production server",
    "build_environment": {
      "LAB_CANONICAL_ORIGIN": "https://preview.example.com",
      "NEXT_TELEMETRY_DISABLED": "1"
    },
    "cases": [
      {
        "id": "C01",
        "name": "Correct base + relative canonical (control)",
        "layout_before": "",
        "layout_after": "",
        "page_before": "alternates: { canonical: \"/products/widget\" }",
        "page_after": "alternates: { canonical: \"/products/widget\" }",
        "intended": "https://www.example.com/products/widget",
        "changed": "None; unchanged control"
      },
      {
        "id": "C02",
        "name": "Wrong metadataBase host",
        "layout_before": "metadataBase: new URL(\"https://preview.example.com\")",
        "layout_after": "metadataBase: new URL(\"https://www.example.com\")",
        "page_before": "alternates: { canonical: \"/products/widget\" }",
        "page_after": "alternates: { canonical: \"/products/widget\" }",
        "intended": "https://www.example.com/products/widget",
        "changed": "Replace the base origin"
      },
      {
        "id": "C03",
        "name": "Stale absolute canonical",
        "layout_before": "",
        "layout_after": "",
        "page_before": "alternates: { canonical: \"https://old.example.com/products/widget\" }",
        "page_after": "alternates: { canonical: \"https://www.example.com/products/widget\" }",
        "intended": "https://www.example.com/products/widget",
        "changed": "Replace the absolute canonical URL"
      },
      {
        "id": "C04",
        "name": "Homepage canonical inherited from layout",
        "layout_before": "alternates: { canonical: \"https://www.example.com/\" }",
        "layout_after": "alternates: { canonical: \"https://www.example.com/\" }",
        "page_before": "",
        "page_after": "alternates: { canonical: \"https://www.example.com/products/widget\" }",
        "intended": "https://www.example.com/products/widget",
        "changed": "Add page-specific alternates.canonical"
      },
      {
        "id": "C05",
        "name": "Nested layout overrides the root base",
        "layout_before": "metadataBase: new URL(\"https://legacy.example.com\")",
        "layout_after": "",
        "page_before": "alternates: { canonical: \"/products/widget\" }",
        "page_after": "alternates: { canonical: \"/products/widget\" }",
        "intended": "https://www.example.com/products/widget",
        "changed": "Remove the nested layout metadataBase override"
      },
      {
        "id": "C06",
        "name": "Base path prepended to a slash-prefixed path",
        "layout_before": "metadataBase: new URL(\"https://www.example.com/catalog\")",
        "layout_after": "metadataBase: new URL(\"https://www.example.com\")",
        "page_before": "alternates: { canonical: \"/products/widget\" }",
        "page_after": "alternates: { canonical: \"/products/widget\" }",
        "intended": "https://www.example.com/products/widget",
        "changed": "Remove the unintended /catalog base path"
      },
      {
        "id": "C07",
        "name": "Localized route omits the language path",
        "layout_before": "",
        "layout_after": "",
        "page_before": "alternates: { canonical: \"/products/widget\" }",
        "page_after": "alternates: { canonical: \"/fr/products/widget\" }",
        "intended": "https://www.example.com/fr/products/widget",
        "changed": "Include the intended /fr path prefix"
      },
      {
        "id": "C08",
        "name": "Build environment supplies a preview origin",
        "layout_before": "metadataBase: new URL(process.env.LAB_CANONICAL_ORIGIN)",
        "layout_after": "metadataBase: new URL(\"https://www.example.com\")",
        "page_before": "alternates: { canonical: \"/products/widget\" }",
        "page_after": "alternates: { canonical: \"/products/widget\" }",
        "intended": "https://www.example.com/products/widget",
        "changed": "Replace this build-time origin source with the intended production origin"
      }
    ],
    "route_note": "/cXX/before and /cXX/after are test namespaces. Canonical targets are declared demonstration URLs on reserved example.com domains, not copies of the local request URL.",
    "fields": [
      "HTTP status",
      "canonical link count",
      "canonical href",
      "canonical in head",
      "intended URL match",
      "rendered DOM canonical",
      "source hash"
    ],
    "retention": "Retain all outcomes, including deviations from predictions; no replacement of failed cases.",
    "limits": [
      "Deliberately constructed examples, not prevalence estimates or live site incidents",
      "No Googlebot crawl, Google-selected canonical, rankings or conversion measurements",
      "One installed Next.js version and static metadata exports; no claim about all versions or streaming metadata",
      "Preview origin is a controlled input; Vercel infrastructure is not exercised"
    ]
  },
  "analysis": {
    "protocol_id": "LAB-CANONICAL-2026-10-04",
    "analyzed_at": "2026-10-04T14:06:50.428924+00:00",
    "http_observations": 32,
    "cases": [
      {
        "case_id": "C01",
        "configuration": "Correct base + relative canonical (control)",
        "intended": "https://www.example.com/products/widget",
        "before": [
          {
            "href": "https://www.example.com/products/widget",
            "in_head": true
          }
        ],
        "after": [
          {
            "href": "https://www.example.com/products/widget",
            "in_head": true
          }
        ],
        "before_matches": true,
        "after_matches": true,
        "repeated_results_agree": true,
        "change": "None; unchanged control"
      },
      {
        "case_id": "C02",
        "configuration": "Wrong metadataBase host",
        "intended": "https://www.example.com/products/widget",
        "before": [
          {
            "href": "https://preview.example.com/products/widget",
            "in_head": true
          }
        ],
        "after": [
          {
            "href": "https://www.example.com/products/widget",
            "in_head": true
          }
        ],
        "before_matches": false,
        "after_matches": true,
        "repeated_results_agree": true,
        "change": "Replace the base origin"
      },
      {
        "case_id": "C03",
        "configuration": "Stale absolute canonical",
        "intended": "https://www.example.com/products/widget",
        "before": [
          {
            "href": "https://old.example.com/products/widget",
            "in_head": true
          }
        ],
        "after": [
          {
            "href": "https://www.example.com/products/widget",
            "in_head": true
          }
        ],
        "before_matches": false,
        "after_matches": true,
        "repeated_results_agree": true,
        "change": "Replace the absolute canonical URL"
      },
      {
        "case_id": "C04",
        "configuration": "Homepage canonical inherited from layout",
        "intended": "https://www.example.com/products/widget",
        "before": [
          {
            "href": "https://www.example.com",
            "in_head": true
          }
        ],
        "after": [
          {
            "href": "https://www.example.com/products/widget",
            "in_head": true
          }
        ],
        "before_matches": false,
        "after_matches": true,
        "repeated_results_agree": true,
        "change": "Add page-specific alternates.canonical"
      },
      {
        "case_id": "C05",
        "configuration": "Nested layout overrides the root base",
        "intended": "https://www.example.com/products/widget",
        "before": [
          {
            "href": "https://legacy.example.com/products/widget",
            "in_head": true
          }
        ],
        "after": [
          {
            "href": "https://www.example.com/products/widget",
            "in_head": true
          }
        ],
        "before_matches": false,
        "after_matches": true,
        "repeated_results_agree": true,
        "change": "Remove the nested layout metadataBase override"
      },
      {
        "case_id": "C06",
        "configuration": "Base path prepended to a slash-prefixed path",
        "intended": "https://www.example.com/products/widget",
        "before": [
          {
            "href": "https://www.example.com/catalog/products/widget",
            "in_head": true
          }
        ],
        "after": [
          {
            "href": "https://www.example.com/products/widget",
            "in_head": true
          }
        ],
        "before_matches": false,
        "after_matches": true,
        "repeated_results_agree": true,
        "change": "Remove the unintended /catalog base path"
      },
      {
        "case_id": "C07",
        "configuration": "Localized route omits the language path",
        "intended": "https://www.example.com/fr/products/widget",
        "before": [
          {
            "href": "https://www.example.com/products/widget",
            "in_head": true
          }
        ],
        "after": [
          {
            "href": "https://www.example.com/fr/products/widget",
            "in_head": true
          }
        ],
        "before_matches": false,
        "after_matches": true,
        "repeated_results_agree": true,
        "change": "Include the intended /fr path prefix"
      },
      {
        "case_id": "C08",
        "configuration": "Build environment supplies a preview origin",
        "intended": "https://www.example.com/products/widget",
        "before": [
          {
            "href": "https://preview.example.com/products/widget",
            "in_head": true
          }
        ],
        "after": [
          {
            "href": "https://www.example.com/products/widget",
            "in_head": true
          }
        ],
        "before_matches": false,
        "after_matches": true,
        "repeated_results_agree": true,
        "change": "Replace this build-time origin source with the intended production origin"
      }
    ],
    "before_intended_matches": 1,
    "after_intended_matches": 8,
    "all_repeats_agree": true,
    "all_http_200": true,
    "all_single_canonical_in_head": true,
    "browser_dom_status": "16_of_16_match_http_observations"
  },
  "dom_observations": [
    {
      "label": "C01 before",
      "observedAt": "2026-10-04T14:06:58.872Z",
      "canonicals": [
        {
          "href": "https://www.example.com/products/widget",
          "inHead": true
        }
      ],
      "heading": "C01 / before — Correct base + relative canonical (control)",
      "title": "C01 before",
      "url": "http://127.0.0.1:8780/c01/before"
    },
    {
      "label": "C01 after",
      "observedAt": "2026-10-04T14:06:58.925Z",
      "canonicals": [
        {
          "href": "https://www.example.com/products/widget",
          "inHead": true
        }
      ],
      "heading": "C01 / after — Correct base + relative canonical (control)",
      "title": "C01 after",
      "url": "http://127.0.0.1:8780/c01/after"
    },
    {
      "label": "C02 before",
      "observedAt": "2026-10-04T14:06:58.964Z",
      "canonicals": [
        {
          "href": "https://preview.example.com/products/widget",
          "inHead": true
        }
      ],
      "heading": "C02 / before — Wrong metadataBase host",
      "title": "C02 before",
      "url": "http://127.0.0.1:8780/c02/before"
    },
    {
      "label": "C02 after",
      "observedAt": "2026-10-04T14:06:59.000Z",
      "canonicals": [
        {
          "href": "https://www.example.com/products/widget",
          "inHead": true
        }
      ],
      "heading": "C02 / after — Wrong metadataBase host",
      "title": "C02 after",
      "url": "http://127.0.0.1:8780/c02/after"
    },
    {
      "label": "C03 before",
      "observedAt": "2026-10-04T14:06:59.034Z",
      "canonicals": [
        {
          "href": "https://old.example.com/products/widget",
          "inHead": true
        }
      ],
      "heading": "C03 / before — Stale absolute canonical",
      "title": "C03 before",
      "url": "http://127.0.0.1:8780/c03/before"
    },
    {
      "label": "C03 after",
      "observedAt": "2026-10-04T14:06:59.068Z",
      "canonicals": [
        {
          "href": "https://www.example.com/products/widget",
          "inHead": true
        }
      ],
      "heading": "C03 / after — Stale absolute canonical",
      "title": "C03 after",
      "url": "http://127.0.0.1:8780/c03/after"
    },
    {
      "label": "C04 before",
      "observedAt": "2026-10-04T14:06:59.143Z",
      "canonicals": [
        {
          "href": "https://www.example.com",
          "inHead": true
        }
      ],
      "heading": "C04 / before — Homepage canonical inherited from layout",
      "title": "C04 before",
      "url": "http://127.0.0.1:8780/c04/before"
    },
    {
      "label": "C04 after",
      "observedAt": "2026-10-04T14:06:59.283Z",
      "canonicals": [
        {
          "href": "https://www.example.com/products/widget",
          "inHead": true
        }
      ],
      "heading": "C04 / after — Homepage canonical inherited from layout",
      "title": "C04 after",
      "url": "http://127.0.0.1:8780/c04/after"
    },
    {
      "label": "C05 before",
      "observedAt": "2026-10-04T14:06:59.334Z",
      "canonicals": [
        {
          "href": "https://legacy.example.com/products/widget",
          "inHead": true
        }
      ],
      "heading": "C05 / before — Nested layout overrides the root base",
      "title": "C05 before",
      "url": "http://127.0.0.1:8780/c05/before"
    },
    {
      "label": "C05 after",
      "observedAt": "2026-10-04T14:06:59.368Z",
      "canonicals": [
        {
          "href": "https://www.example.com/products/widget",
          "inHead": true
        }
      ],
      "heading": "C05 / after — Nested layout overrides the root base",
      "title": "C05 after",
      "url": "http://127.0.0.1:8780/c05/after"
    },
    {
      "label": "C06 before",
      "observedAt": "2026-10-04T14:06:59.400Z",
      "canonicals": [
        {
          "href": "https://www.example.com/catalog/products/widget",
          "inHead": true
        }
      ],
      "heading": "C06 / before — Base path prepended to a slash-prefixed path",
      "title": "C06 before",
      "url": "http://127.0.0.1:8780/c06/before"
    },
    {
      "label": "C06 after",
      "observedAt": "2026-10-04T14:06:59.435Z",
      "canonicals": [
        {
          "href": "https://www.example.com/products/widget",
          "inHead": true
        }
      ],
      "heading": "C06 / after — Base path prepended to a slash-prefixed path",
      "title": "C06 after",
      "url": "http://127.0.0.1:8780/c06/after"
    },
    {
      "label": "C07 before",
      "observedAt": "2026-10-04T14:06:59.474Z",
      "canonicals": [
        {
          "href": "https://www.example.com/products/widget",
          "inHead": true
        }
      ],
      "heading": "C07 / before — Localized route omits the language path",
      "title": "C07 before",
      "url": "http://127.0.0.1:8780/c07/before"
    },
    {
      "label": "C07 after",
      "observedAt": "2026-10-04T14:06:59.515Z",
      "canonicals": [
        {
          "href": "https://www.example.com/fr/products/widget",
          "inHead": true
        }
      ],
      "heading": "C07 / after — Localized route omits the language path",
      "title": "C07 after",
      "url": "http://127.0.0.1:8780/c07/after"
    },
    {
      "label": "C08 before",
      "observedAt": "2026-10-04T14:06:59.561Z",
      "canonicals": [
        {
          "href": "https://preview.example.com/products/widget",
          "inHead": true
        }
      ],
      "heading": "C08 / before — Build environment supplies a preview origin",
      "title": "C08 before",
      "url": "http://127.0.0.1:8780/c08/before"
    },
    {
      "label": "C08 after",
      "observedAt": "2026-10-04T14:06:59.593Z",
      "canonicals": [
        {
          "href": "https://www.example.com/products/widget",
          "inHead": true
        }
      ],
      "heading": "C08 / after — Build environment supplies a preview origin",
      "title": "C08 after",
      "url": "http://127.0.0.1:8780/c08/after"
    }
  ],
  "supplementary_reproduction_2026_10_13": {
    "at_utc": "2026-10-13T09:17:47.185347+00:00",
    "fixture_commit": "c9508dec9a9ea38c015d1718475bb4558898bc4c",
    "commit_before_replay": true,
    "original_source_hashes_matched": 37,
    "http_replay_matches": 32,
    "browser_replay_matches": 16,
    "runtime_versions": {
      "next": "15.5.22",
      "react": "19.2.6",
      "react-dom": "19.2.6"
    },
    "build": "passed",
    "source_diff_after_test": "empty",
    "git_bundle_verifies": true,
    "original_study_unchanged": true,
    "scope": "Supplementary October 13 reproduction. Original October 4 version identity used source hashes, not a Git commit. No authentic Googlebot or indexing test."
  }
}
