{
 "run_date": "2026-11-03",
 "tool": "redirect_chain_check.py",
 "lab_results": [
  {
   "url": "http://127.0.0.1:8765/old-page/",
   "redirects": "1",
   "path": "301 http://127.0.0.1:8765/old-page/ -> 200 http://127.0.0.1:8765/new-page/",
   "final_url": "http://127.0.0.1:8765/new-page/",
   "final_status": "200",
   "expected_final": "http://127.0.0.1:8765/new-page/",
   "verdict": "OK",
   "issues": ""
  },
  {
   "url": "http://127.0.0.1:8765/chain-a",
   "redirects": "3",
   "path": "301 http://127.0.0.1:8765/chain-a -> 302 http://127.0.0.1:8765/chain-b -> 301 http://127.0.0.1:8765/chain-c/ -> 200 http://127.0.0.1:8765/new-page/",
   "final_url": "http://127.0.0.1:8765/new-page/",
   "final_status": "200",
   "expected_final": "http://127.0.0.1:8765/new-page/",
   "verdict": "FIX",
   "issues": "chain of 3 redirects; temporary redirect in path (302)"
  },
  {
   "url": "http://127.0.0.1:8765/no-slash",
   "redirects": "2",
   "path": "301 http://127.0.0.1:8765/no-slash -> 301 http://127.0.0.1:8765/no-slash/ -> 200 http://127.0.0.1:8765/new-page/",
   "final_url": "http://127.0.0.1:8765/new-page/",
   "final_status": "200",
   "expected_final": "http://127.0.0.1:8765/new-page/",
   "verdict": "FIX",
   "issues": "chain of 2 redirects"
  },
  {
   "url": "http://127.0.0.1:8765/loop-a/",
   "redirects": "2",
   "path": "301 http://127.0.0.1:8765/loop-a/ -> 301 http://127.0.0.1:8765/loop-b/ -> LOOP http://127.0.0.1:8765/loop-a/",
   "final_url": "http://127.0.0.1:8765/loop-a/",
   "final_status": "LOOP",
   "expected_final": "http://127.0.0.1:8765/new-page/",
   "verdict": "FIX",
   "issues": "redirect loop"
  },
  {
   "url": "http://127.0.0.1:8765/retired-product/",
   "redirects": "1",
   "path": "301 http://127.0.0.1:8765/retired-product/ -> 200 http://127.0.0.1:8765/",
   "final_url": "http://127.0.0.1:8765/",
   "final_status": "200",
   "expected_final": "http://127.0.0.1:8765/services/seo-audit/",
   "verdict": "FIX",
   "issues": "deep URL redirects to the homepage; ends at a different URL than expected"
  },
  {
   "url": "http://127.0.0.1:8765/moved-to-missing/",
   "redirects": "1",
   "path": "301 http://127.0.0.1:8765/moved-to-missing/ -> 404 http://127.0.0.1:8765/gone/",
   "final_url": "http://127.0.0.1:8765/gone/",
   "final_status": "404",
   "expected_final": "http://127.0.0.1:8765/new-page/",
   "verdict": "FIX",
   "issues": "final status 404; ends at a different URL than expected"
  },
  {
   "url": "http://127.0.0.1:8765/wrong-target/",
   "redirects": "1",
   "path": "301 http://127.0.0.1:8765/wrong-target/ -> 200 http://127.0.0.1:8765/new-page/",
   "final_url": "http://127.0.0.1:8765/new-page/",
   "final_status": "200",
   "expected_final": "http://127.0.0.1:8765/other-page/",
   "verdict": "FIX",
   "issues": "ends at a different URL than expected"
  },
  {
   "url": "http://127.0.0.1:8765/sale/",
   "redirects": "1",
   "path": "302 http://127.0.0.1:8765/sale/ -> 200 http://127.0.0.1:8765/services/seo-audit/",
   "final_url": "http://127.0.0.1:8765/services/seo-audit/",
   "final_status": "200",
   "expected_final": "http://127.0.0.1:8765/services/seo-audit/",
   "verdict": "CHECK",
   "issues": "temporary redirect in path (302)"
  },
  {
   "url": "http://127.0.0.1:8765/new-page/",
   "redirects": "0",
   "path": "200 http://127.0.0.1:8765/new-page/",
   "final_url": "http://127.0.0.1:8765/new-page/",
   "final_status": "200",
   "expected_final": "http://127.0.0.1:8765/new-page/",
   "verdict": "OK",
   "issues": ""
  }
 ],
 "own_site_before_fix": {
  "note": "Live bikeshtamang.com.np, before the Worker change",
  "results": [
   {
    "url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "redirects": "0",
    "path": "200 https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide",
    "redirects": "1",
    "path": "301 https://bikeshtamang.com.np/blog/local-seo-nepal-guide -> 200 https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "redirects": "1",
    "path": "301 http://bikeshtamang.com.np/blog/local-seo-nepal-guide/ -> 200 https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "https://www.bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "redirects": "1",
    "path": "301 https://www.bikeshtamang.com.np/blog/local-seo-nepal-guide/ -> 200 https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://www.bikeshtamang.com.np/blog/local-seo-nepal-guide",
    "redirects": "3",
    "path": "301 http://www.bikeshtamang.com.np/blog/local-seo-nepal-guide -> 301 https://www.bikeshtamang.com.np/blog/local-seo-nepal-guide -> 301 https://bikeshtamang.com.np/blog/local-seo-nepal-guide -> 200 https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "verdict": "FIX",
    "issues": "chain of 3 redirects"
   },
   {
    "url": "https://bikeshtamang.com.np/local-seo-nepal-guide/",
    "redirects": "1",
    "path": "301 https://bikeshtamang.com.np/local-seo-nepal-guide/ -> 200 https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://www.bikeshtamang.com.np/local-seo-nepal-guide",
    "redirects": "2",
    "path": "301 http://www.bikeshtamang.com.np/local-seo-nepal-guide -> 301 https://www.bikeshtamang.com.np/local-seo-nepal-guide -> 404 https://bikeshtamang.com.np/local-seo-nepal-guide",
    "final_url": "https://bikeshtamang.com.np/local-seo-nepal-guide",
    "final_status": "404",
    "expected_final": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "verdict": "FIX",
    "issues": "chain of 2 redirects; final status 404; ends at a different URL than expected"
   },
   {
    "url": "https://bikeshtamang.com.np/category/seo-tips/",
    "redirects": "1",
    "path": "301 https://bikeshtamang.com.np/category/seo-tips/ -> 200 https://bikeshtamang.com.np/blog/",
    "final_url": "https://bikeshtamang.com.np/blog/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "https://bikeshtamang.com.np/blog/best-seo-experts-nepal/",
    "redirects": "1",
    "path": "301 https://bikeshtamang.com.np/blog/best-seo-experts-nepal/ -> 200 https://bikeshtamang.com.np/blog/choose-seo-expert-nepal/",
    "final_url": "https://bikeshtamang.com.np/blog/choose-seo-expert-nepal/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/choose-seo-expert-nepal/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "https://bikeshtamang.com.np/blog/best-seo-experts-nepal",
    "redirects": "0",
    "path": "404 https://bikeshtamang.com.np/blog/best-seo-experts-nepal",
    "final_url": "https://bikeshtamang.com.np/blog/best-seo-experts-nepal",
    "final_status": "404",
    "expected_final": "https://bikeshtamang.com.np/blog/choose-seo-expert-nepal/",
    "verdict": "FIX",
    "issues": "final status 404; ends at a different URL than expected"
   },
   {
    "url": "https://bikeshtamang.com.np/my-portfolio/some-old-project/",
    "redirects": "1",
    "path": "301 https://bikeshtamang.com.np/my-portfolio/some-old-project/ -> 200 https://bikeshtamang.com.np/portfolio/",
    "final_url": "https://bikeshtamang.com.np/portfolio/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/portfolio/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "https://bikeshtamang.com.np/services/keyword-research.html",
    "redirects": "1",
    "path": "301 https://bikeshtamang.com.np/services/keyword-research.html -> 200 https://bikeshtamang.com.np/blog/how-to-do-keyword-research-nepal/",
    "final_url": "https://bikeshtamang.com.np/blog/how-to-do-keyword-research-nepal/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/how-to-do-keyword-research-nepal/",
    "verdict": "OK",
    "issues": ""
   }
  ]
 },
 "own_site_after_fix_local": {
  "note": "Same rules on a local copy of the Worker (wrangler dev) after the change; www and http hosts cannot be reproduced locally",
  "results": [
   {
    "url": "http://localhost:8787/blog/local-seo-nepal-guide/",
    "redirects": "0",
    "path": "200 http://localhost:8787/blog/local-seo-nepal-guide/",
    "final_url": "http://localhost:8787/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "http://localhost:8787/blog/local-seo-nepal-guide/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://localhost:8787/blog/local-seo-nepal-guide",
    "redirects": "1",
    "path": "301 http://localhost:8787/blog/local-seo-nepal-guide -> 200 http://localhost:8787/blog/local-seo-nepal-guide/",
    "final_url": "http://localhost:8787/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "http://localhost:8787/blog/local-seo-nepal-guide/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://localhost:8787/local-seo-nepal-guide/",
    "redirects": "1",
    "path": "301 http://localhost:8787/local-seo-nepal-guide/ -> 200 http://localhost:8787/blog/local-seo-nepal-guide/",
    "final_url": "http://localhost:8787/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "http://localhost:8787/blog/local-seo-nepal-guide/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://localhost:8787/local-seo-nepal-guide",
    "redirects": "1",
    "path": "301 http://localhost:8787/local-seo-nepal-guide -> 200 http://localhost:8787/blog/local-seo-nepal-guide/",
    "final_url": "http://localhost:8787/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "http://localhost:8787/blog/local-seo-nepal-guide/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://localhost:8787/blog/best-seo-experts-nepal",
    "redirects": "1",
    "path": "301 http://localhost:8787/blog/best-seo-experts-nepal -> 200 http://localhost:8787/blog/choose-seo-expert-nepal/",
    "final_url": "http://localhost:8787/blog/choose-seo-expert-nepal/",
    "final_status": "200",
    "expected_final": "http://localhost:8787/blog/choose-seo-expert-nepal/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://localhost:8787/category/seo-tips",
    "redirects": "1",
    "path": "301 http://localhost:8787/category/seo-tips -> 200 http://localhost:8787/blog/",
    "final_url": "http://localhost:8787/blog/",
    "final_status": "200",
    "expected_final": "http://localhost:8787/blog/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://localhost:8787/my-portfolio",
    "redirects": "1",
    "path": "301 http://localhost:8787/my-portfolio -> 200 http://localhost:8787/portfolio/",
    "final_url": "http://localhost:8787/portfolio/",
    "final_status": "200",
    "expected_final": "http://localhost:8787/portfolio/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://localhost:8787/index.html",
    "redirects": "1",
    "path": "301 http://localhost:8787/index.html -> 200 http://localhost:8787/",
    "final_url": "http://localhost:8787/",
    "final_status": "200",
    "expected_final": "http://localhost:8787/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://localhost:8787/blog/index.html",
    "redirects": "1",
    "path": "301 http://localhost:8787/blog/index.html -> 200 http://localhost:8787/blog/",
    "final_url": "http://localhost:8787/blog/",
    "final_status": "200",
    "expected_final": "http://localhost:8787/blog/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://localhost:8787/does-not-exist",
    "redirects": "0",
    "path": "404 http://localhost:8787/does-not-exist",
    "final_url": "http://localhost:8787/does-not-exist",
    "final_status": "404",
    "expected_final": "",
    "verdict": "FIX",
    "issues": "final status 404"
   },
   {
    "url": "http://localhost:8787/does-not-exist/",
    "redirects": "0",
    "path": "404 http://localhost:8787/does-not-exist/",
    "final_url": "http://localhost:8787/does-not-exist/",
    "final_status": "404",
    "expected_final": "",
    "verdict": "FIX",
    "issues": "final status 404"
   },
   {
    "url": "http://localhost:8787/assets/img/favicon.png",
    "redirects": "0",
    "path": "200 http://localhost:8787/assets/img/favicon.png",
    "final_url": "http://localhost:8787/assets/img/favicon.png",
    "final_status": "200",
    "expected_final": "",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://localhost:8787/favicon.ico",
    "redirects": "1",
    "path": "301 http://localhost:8787/favicon.ico -> 200 http://localhost:8787/assets/img/favicon.png",
    "final_url": "http://localhost:8787/assets/img/favicon.png",
    "final_status": "200",
    "expected_final": "http://localhost:8787/assets/img/favicon.png",
    "verdict": "OK",
    "issues": ""
   }
  ]
 },
 "own_site_after_deploy": {
  "note": "Live bikeshtamang.com.np on 4 Nov 2026 after deploying the Worker change. www is redirected by a Cloudflare rule outside the Worker, so www chains remain.",
  "results": [
   {
    "url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "redirects": "0",
    "path": "200 https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide",
    "redirects": "1",
    "path": "301 https://bikeshtamang.com.np/blog/local-seo-nepal-guide -> 200 https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "redirects": "1",
    "path": "301 http://bikeshtamang.com.np/blog/local-seo-nepal-guide/ -> 200 https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "https://www.bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "redirects": "1",
    "path": "301 https://www.bikeshtamang.com.np/blog/local-seo-nepal-guide/ -> 200 https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://www.bikeshtamang.com.np/blog/local-seo-nepal-guide",
    "redirects": "3",
    "path": "301 http://www.bikeshtamang.com.np/blog/local-seo-nepal-guide -> 301 https://www.bikeshtamang.com.np/blog/local-seo-nepal-guide -> 301 https://bikeshtamang.com.np/blog/local-seo-nepal-guide -> 200 https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "verdict": "FIX",
    "issues": "chain of 3 redirects"
   },
   {
    "url": "https://bikeshtamang.com.np/local-seo-nepal-guide/",
    "redirects": "1",
    "path": "301 https://bikeshtamang.com.np/local-seo-nepal-guide/ -> 200 https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "http://www.bikeshtamang.com.np/local-seo-nepal-guide",
    "redirects": "3",
    "path": "301 http://www.bikeshtamang.com.np/local-seo-nepal-guide -> 301 https://www.bikeshtamang.com.np/local-seo-nepal-guide -> 301 https://bikeshtamang.com.np/local-seo-nepal-guide -> 200 https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_url": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/local-seo-nepal-guide/",
    "verdict": "FIX",
    "issues": "chain of 3 redirects"
   },
   {
    "url": "https://bikeshtamang.com.np/category/seo-tips/",
    "redirects": "1",
    "path": "301 https://bikeshtamang.com.np/category/seo-tips/ -> 200 https://bikeshtamang.com.np/blog/",
    "final_url": "https://bikeshtamang.com.np/blog/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "https://bikeshtamang.com.np/blog/best-seo-experts-nepal/",
    "redirects": "1",
    "path": "301 https://bikeshtamang.com.np/blog/best-seo-experts-nepal/ -> 200 https://bikeshtamang.com.np/blog/choose-seo-expert-nepal/",
    "final_url": "https://bikeshtamang.com.np/blog/choose-seo-expert-nepal/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/choose-seo-expert-nepal/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "https://bikeshtamang.com.np/blog/best-seo-experts-nepal",
    "redirects": "1",
    "path": "301 https://bikeshtamang.com.np/blog/best-seo-experts-nepal -> 200 https://bikeshtamang.com.np/blog/choose-seo-expert-nepal/",
    "final_url": "https://bikeshtamang.com.np/blog/choose-seo-expert-nepal/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/choose-seo-expert-nepal/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "https://bikeshtamang.com.np/my-portfolio/some-old-project/",
    "redirects": "1",
    "path": "301 https://bikeshtamang.com.np/my-portfolio/some-old-project/ -> 200 https://bikeshtamang.com.np/portfolio/",
    "final_url": "https://bikeshtamang.com.np/portfolio/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/portfolio/",
    "verdict": "OK",
    "issues": ""
   },
   {
    "url": "https://bikeshtamang.com.np/services/keyword-research.html",
    "redirects": "1",
    "path": "301 https://bikeshtamang.com.np/services/keyword-research.html -> 200 https://bikeshtamang.com.np/blog/how-to-do-keyword-research-nepal/",
    "final_url": "https://bikeshtamang.com.np/blog/how-to-do-keyword-research-nepal/",
    "final_status": "200",
    "expected_final": "https://bikeshtamang.com.np/blog/how-to-do-keyword-research-nepal/",
    "verdict": "OK",
    "issues": ""
   }
  ]
 }
}