{
  "city": "montreal-salons",
  "days": 30,
  "since": "2026-09-15T20:50:36.486Z",
  "count": 55,
  "sites": 16,
  "byKind": {
    "fixed": 16,
    "broke": 7,
    "grade_up": 11,
    "grade_down": 0,
    "blocked": 2,
    "unblocked": 1,
    "channel": 13,
    "vendor": 5,
    "assistant": 0
  },
  "changes": [
    {
      "id": 18922,
      "at": "2026-10-15T02:36:54.203Z",
      "domain": "institutracine.ca",
      "name": "Institut Racine",
      "page": "https://directindex.org/r/institutracine.ca",
      "kind": "blocked",
      "what": "now turns an AI crawler away at the edge",
      "detail": {
        "scan": 140066,
        "prev": 99902
      }
    },
    {
      "id": 18921,
      "at": "2026-10-15T02:36:54.203Z",
      "domain": "institutracine.ca",
      "name": "Institut Racine",
      "page": "https://directindex.org/r/institutracine.ca",
      "kind": "broke",
      "what": "new finding: the site turned every visitor without a browser away",
      "detail": {
        "scan": 140066,
        "prev": 99902,
        "fix": "blocked_for_bots"
      }
    },
    {
      "id": 18920,
      "at": "2026-10-15T02:36:54.203Z",
      "domain": "institutracine.ca",
      "name": "Institut Racine",
      "page": "https://directindex.org/r/institutracine.ca",
      "kind": "fixed",
      "what": "fixed: no llms.txt",
      "detail": {
        "scan": 140066,
        "prev": 99902,
        "fix": "no_llms_txt"
      }
    },
    {
      "id": 18913,
      "at": "2026-10-15T02:36:05.645Z",
      "domain": "aupremier.com",
      "name": "Au Premier",
      "page": "https://directindex.org/r/aupremier.com",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 140055,
        "prev": 100049,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 18912,
      "at": "2026-10-15T02:36:05.645Z",
      "domain": "aupremier.com",
      "name": "Au Premier",
      "page": "https://directindex.org/r/aupremier.com",
      "kind": "grade_up",
      "what": "grade D to B (74%)",
      "detail": {
        "scan": 140055,
        "prev": 100049,
        "from": "D",
        "to": "B",
        "pct": 73.8
      }
    },
    {
      "id": 18911,
      "at": "2026-10-15T02:36:05.645Z",
      "domain": "aupremier.com",
      "name": "Au Premier",
      "page": "https://directindex.org/r/aupremier.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140055,
        "prev": 100049,
        "fix": "no_channel"
      }
    },
    {
      "id": 18910,
      "at": "2026-10-15T02:35:55.305Z",
      "domain": "bodyspa.ca",
      "name": "bODYsPA",
      "page": "https://directindex.org/r/bodyspa.ca",
      "kind": "vendor",
      "what": "vendor: none to Fresha",
      "detail": {
        "scan": 140046,
        "prev": 99786,
        "from": null,
        "to": "fresha"
      }
    },
    {
      "id": 18909,
      "at": "2026-10-15T02:35:55.305Z",
      "domain": "bodyspa.ca",
      "name": "bODYsPA",
      "page": "https://directindex.org/r/bodyspa.ca",
      "kind": "channel",
      "what": "direct channel: none to marketplace",
      "detail": {
        "scan": 140046,
        "prev": 99786,
        "from": null,
        "to": "aggregator"
      }
    },
    {
      "id": 18908,
      "at": "2026-10-15T02:35:55.305Z",
      "domain": "bodyspa.ca",
      "name": "bODYsPA",
      "page": "https://directindex.org/r/bodyspa.ca",
      "kind": "broke",
      "what": "new finding: booking only through a marketplace",
      "detail": {
        "scan": 140046,
        "prev": 99786,
        "fix": "booking_marketplace"
      }
    },
    {
      "id": 18907,
      "at": "2026-10-15T02:35:55.305Z",
      "domain": "bodyspa.ca",
      "name": "bODYsPA",
      "page": "https://directindex.org/r/bodyspa.ca",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140046,
        "prev": 99786,
        "fix": "no_channel"
      }
    },
    {
      "id": 18906,
      "at": "2026-10-15T02:35:52.934Z",
      "domain": "amanihairstudio.com",
      "name": "Amani",
      "page": "https://directindex.org/r/amanihairstudio.com",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 140045,
        "prev": 99987,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 18905,
      "at": "2026-10-15T02:35:52.934Z",
      "domain": "amanihairstudio.com",
      "name": "Amani",
      "page": "https://directindex.org/r/amanihairstudio.com",
      "kind": "grade_up",
      "what": "grade D to C (63%)",
      "detail": {
        "scan": 140045,
        "prev": 99987,
        "from": "D",
        "to": "C",
        "pct": 63.1
      }
    },
    {
      "id": 18904,
      "at": "2026-10-15T02:35:52.934Z",
      "domain": "amanihairstudio.com",
      "name": "Amani",
      "page": "https://directindex.org/r/amanihairstudio.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140045,
        "prev": 99987,
        "fix": "no_channel"
      }
    },
    {
      "id": 18903,
      "at": "2026-10-15T02:35:51.058Z",
      "domain": "epiderma.ca",
      "name": "Epiderma",
      "page": "https://directindex.org/r/epiderma.ca",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 140044,
        "prev": 99655,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 18902,
      "at": "2026-10-15T02:35:51.058Z",
      "domain": "epiderma.ca",
      "name": "Epiderma",
      "page": "https://directindex.org/r/epiderma.ca",
      "kind": "grade_up",
      "what": "grade B to A (91%)",
      "detail": {
        "scan": 140044,
        "prev": 99655,
        "from": "B",
        "to": "A",
        "pct": 90.8
      }
    },
    {
      "id": 18901,
      "at": "2026-10-15T02:35:51.058Z",
      "domain": "epiderma.ca",
      "name": "Epiderma",
      "page": "https://directindex.org/r/epiderma.ca",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140044,
        "prev": 99655,
        "fix": "no_channel"
      }
    },
    {
      "id": 18900,
      "at": "2026-10-15T02:35:49.601Z",
      "domain": "massagelannathai.ca",
      "name": "Lanna Thai Massage",
      "page": "https://directindex.org/r/massagelannathai.ca",
      "kind": "channel",
      "what": "direct channel: none to third party",
      "detail": {
        "scan": 140043,
        "prev": 100102,
        "from": null,
        "to": "other"
      }
    },
    {
      "id": 18899,
      "at": "2026-10-15T02:35:49.601Z",
      "domain": "massagelannathai.ca",
      "name": "Lanna Thai Massage",
      "page": "https://directindex.org/r/massagelannathai.ca",
      "kind": "grade_up",
      "what": "grade C to B (72%)",
      "detail": {
        "scan": 140043,
        "prev": 100102,
        "from": "C",
        "to": "B",
        "pct": 72.3
      }
    },
    {
      "id": 18898,
      "at": "2026-10-15T02:35:49.601Z",
      "domain": "massagelannathai.ca",
      "name": "Lanna Thai Massage",
      "page": "https://directindex.org/r/massagelannathai.ca",
      "kind": "broke",
      "what": "new finding: booking through an unrecognised third party",
      "detail": {
        "scan": 140043,
        "prev": 100102,
        "fix": "booking_other"
      }
    },
    {
      "id": 18897,
      "at": "2026-10-15T02:35:49.601Z",
      "domain": "massagelannathai.ca",
      "name": "Lanna Thai Massage",
      "page": "https://directindex.org/r/massagelannathai.ca",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140043,
        "prev": 100102,
        "fix": "no_channel"
      }
    },
    {
      "id": 18896,
      "at": "2026-10-15T02:35:48.923Z",
      "domain": "ikramassage.com",
      "name": "Ikra Académie de Massothérapie",
      "page": "https://directindex.org/r/ikramassage.com",
      "kind": "vendor",
      "what": "vendor: none to Calendly",
      "detail": {
        "scan": 140041,
        "prev": 99642,
        "from": null,
        "to": "calendly"
      }
    },
    {
      "id": 18895,
      "at": "2026-10-15T02:35:48.923Z",
      "domain": "ikramassage.com",
      "name": "Ikra Académie de Massothérapie",
      "page": "https://directindex.org/r/ikramassage.com",
      "kind": "channel",
      "what": "direct channel: none to vendor on own site",
      "detail": {
        "scan": 140041,
        "prev": 99642,
        "from": null,
        "to": "saas"
      }
    },
    {
      "id": 18894,
      "at": "2026-10-15T02:35:48.923Z",
      "domain": "ikramassage.com",
      "name": "Ikra Académie de Massothérapie",
      "page": "https://directindex.org/r/ikramassage.com",
      "kind": "grade_up",
      "what": "grade D to C (55%)",
      "detail": {
        "scan": 140041,
        "prev": 99642,
        "from": "D",
        "to": "C",
        "pct": 55.4
      }
    },
    {
      "id": 18893,
      "at": "2026-10-15T02:35:48.923Z",
      "domain": "ikramassage.com",
      "name": "Ikra Académie de Massothérapie",
      "page": "https://directindex.org/r/ikramassage.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140041,
        "prev": 99642,
        "fix": "no_channel"
      }
    },
    {
      "id": 18892,
      "at": "2026-10-15T02:35:45.961Z",
      "domain": "zokastudioesthetique.com",
      "name": "Zoka",
      "page": "https://directindex.org/r/zokastudioesthetique.com",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 140036,
        "prev": 100171,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 18891,
      "at": "2026-10-15T02:35:45.961Z",
      "domain": "zokastudioesthetique.com",
      "name": "Zoka",
      "page": "https://directindex.org/r/zokastudioesthetique.com",
      "kind": "grade_up",
      "what": "grade F to D (51%)",
      "detail": {
        "scan": 140036,
        "prev": 100171,
        "from": "F",
        "to": "D",
        "pct": 51.2
      }
    },
    {
      "id": 18890,
      "at": "2026-10-15T02:35:45.961Z",
      "domain": "zokastudioesthetique.com",
      "name": "Zoka",
      "page": "https://directindex.org/r/zokastudioesthetique.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140036,
        "prev": 100171,
        "fix": "no_channel"
      }
    },
    {
      "id": 18889,
      "at": "2026-10-15T02:35:44.699Z",
      "domain": "ospaboutique.com",
      "name": "Ô Spa Boutique",
      "page": "https://directindex.org/r/ospaboutique.com",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 140034,
        "prev": 99784,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 18888,
      "at": "2026-10-15T02:35:44.699Z",
      "domain": "ospaboutique.com",
      "name": "Ô Spa Boutique",
      "page": "https://directindex.org/r/ospaboutique.com",
      "kind": "grade_up",
      "what": "grade C to B (85%)",
      "detail": {
        "scan": 140034,
        "prev": 99784,
        "from": "C",
        "to": "B",
        "pct": 84.6
      }
    },
    {
      "id": 18887,
      "at": "2026-10-15T02:35:44.699Z",
      "domain": "ospaboutique.com",
      "name": "Ô Spa Boutique",
      "page": "https://directindex.org/r/ospaboutique.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140034,
        "prev": 99784,
        "fix": "no_channel"
      }
    },
    {
      "id": 18886,
      "at": "2026-10-15T02:35:44.336Z",
      "domain": "studioclaudios.com",
      "name": "Studio Claudio's",
      "page": "https://directindex.org/r/studioclaudios.com",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 140031,
        "prev": 99535,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 18885,
      "at": "2026-10-15T02:35:44.336Z",
      "domain": "studioclaudios.com",
      "name": "Studio Claudio's",
      "page": "https://directindex.org/r/studioclaudios.com",
      "kind": "grade_up",
      "what": "grade C to B (80%)",
      "detail": {
        "scan": 140031,
        "prev": 99535,
        "from": "C",
        "to": "B",
        "pct": 80
      }
    },
    {
      "id": 18884,
      "at": "2026-10-15T02:35:44.336Z",
      "domain": "studioclaudios.com",
      "name": "Studio Claudio's",
      "page": "https://directindex.org/r/studioclaudios.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140031,
        "prev": 99535,
        "fix": "no_channel"
      }
    },
    {
      "id": 18883,
      "at": "2026-10-15T02:35:43.979Z",
      "domain": "chezpasqualebarbier.com",
      "name": "Chez Pasquale Barbier",
      "page": "https://directindex.org/r/chezpasqualebarbier.com",
      "kind": "vendor",
      "what": "vendor: none to Squire",
      "detail": {
        "scan": 140029,
        "prev": 99799,
        "from": null,
        "to": "squire"
      }
    },
    {
      "id": 18882,
      "at": "2026-10-15T02:35:43.979Z",
      "domain": "chezpasqualebarbier.com",
      "name": "Chez Pasquale Barbier",
      "page": "https://directindex.org/r/chezpasqualebarbier.com",
      "kind": "channel",
      "what": "direct channel: none to vendor on own site",
      "detail": {
        "scan": 140029,
        "prev": 99799,
        "from": null,
        "to": "saas"
      }
    },
    {
      "id": 18881,
      "at": "2026-10-15T02:35:43.979Z",
      "domain": "chezpasqualebarbier.com",
      "name": "Chez Pasquale Barbier",
      "page": "https://directindex.org/r/chezpasqualebarbier.com",
      "kind": "grade_up",
      "what": "grade F to D (54%)",
      "detail": {
        "scan": 140029,
        "prev": 99799,
        "from": "F",
        "to": "D",
        "pct": 53.8
      }
    },
    {
      "id": 18880,
      "at": "2026-10-15T02:35:43.979Z",
      "domain": "chezpasqualebarbier.com",
      "name": "Chez Pasquale Barbier",
      "page": "https://directindex.org/r/chezpasqualebarbier.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140029,
        "prev": 99799,
        "fix": "no_channel"
      }
    },
    {
      "id": 18879,
      "at": "2026-10-15T02:35:42.976Z",
      "domain": "sequoiamassotherapie.com",
      "name": "Sequoia Massothérapie",
      "page": "https://directindex.org/r/sequoiamassotherapie.com",
      "kind": "unblocked",
      "what": "lets AI crawlers in again",
      "detail": {
        "scan": 140022,
        "prev": 99560
      }
    },
    {
      "id": 18878,
      "at": "2026-10-15T02:35:42.976Z",
      "domain": "sequoiamassotherapie.com",
      "name": "Sequoia Massothérapie",
      "page": "https://directindex.org/r/sequoiamassotherapie.com",
      "kind": "grade_up",
      "what": "grade F to D (43%)",
      "detail": {
        "scan": 140022,
        "prev": 99560,
        "from": "F",
        "to": "D",
        "pct": 43.1
      }
    },
    {
      "id": 18877,
      "at": "2026-10-15T02:35:42.976Z",
      "domain": "sequoiamassotherapie.com",
      "name": "Sequoia Massothérapie",
      "page": "https://directindex.org/r/sequoiamassotherapie.com",
      "kind": "fixed",
      "what": "fixed: no llms.txt",
      "detail": {
        "scan": 140022,
        "prev": 99560,
        "fix": "no_llms_txt"
      }
    },
    {
      "id": 18876,
      "at": "2026-10-15T02:35:42.976Z",
      "domain": "sequoiamassotherapie.com",
      "name": "Sequoia Massothérapie",
      "page": "https://directindex.org/r/sequoiamassotherapie.com",
      "kind": "fixed",
      "what": "fixed: the server turned AI crawlers away at the door",
      "detail": {
        "scan": 140022,
        "prev": 99560,
        "fix": "edge_blocks"
      }
    },
    {
      "id": 18875,
      "at": "2026-10-15T02:35:42.940Z",
      "domain": "institutdebeauterenaissance.com",
      "name": "Institut de beauté Renaissance inc",
      "page": "https://directindex.org/r/institutdebeauterenaissance.com",
      "kind": "grade_up",
      "what": "grade F to D (43%)",
      "detail": {
        "scan": 140021,
        "prev": 99613,
        "from": "F",
        "to": "D",
        "pct": 43.1
      }
    },
    {
      "id": 18874,
      "at": "2026-10-15T02:35:42.273Z",
      "domain": "kacoiffure.com",
      "name": "KA Coiffure",
      "page": "https://directindex.org/r/kacoiffure.com",
      "kind": "vendor",
      "what": "vendor: none to Fresha",
      "detail": {
        "scan": 140017,
        "prev": 99870,
        "from": null,
        "to": "fresha"
      }
    },
    {
      "id": 18873,
      "at": "2026-10-15T02:35:42.273Z",
      "domain": "kacoiffure.com",
      "name": "KA Coiffure",
      "page": "https://directindex.org/r/kacoiffure.com",
      "kind": "channel",
      "what": "direct channel: none to marketplace",
      "detail": {
        "scan": 140017,
        "prev": 99870,
        "from": null,
        "to": "aggregator"
      }
    },
    {
      "id": 18872,
      "at": "2026-10-15T02:35:42.273Z",
      "domain": "kacoiffure.com",
      "name": "KA Coiffure",
      "page": "https://directindex.org/r/kacoiffure.com",
      "kind": "broke",
      "what": "new finding: booking only through a marketplace",
      "detail": {
        "scan": 140017,
        "prev": 99870,
        "fix": "booking_marketplace"
      }
    },
    {
      "id": 18871,
      "at": "2026-10-15T02:35:42.273Z",
      "domain": "kacoiffure.com",
      "name": "KA Coiffure",
      "page": "https://directindex.org/r/kacoiffure.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140017,
        "prev": 99870,
        "fix": "no_channel"
      }
    },
    {
      "id": 18870,
      "at": "2026-10-15T02:35:40.601Z",
      "domain": "fresha.com",
      "name": "Aloha Bar à Ongles",
      "page": "https://directindex.org/r/fresha.com",
      "kind": "vendor",
      "what": "vendor: none to Fresha",
      "detail": {
        "scan": 140009,
        "prev": 99801,
        "from": null,
        "to": "fresha"
      }
    },
    {
      "id": 18869,
      "at": "2026-10-15T02:35:40.601Z",
      "domain": "fresha.com",
      "name": "Aloha Bar à Ongles",
      "page": "https://directindex.org/r/fresha.com",
      "kind": "channel",
      "what": "direct channel: none to marketplace",
      "detail": {
        "scan": 140009,
        "prev": 99801,
        "from": null,
        "to": "aggregator"
      }
    },
    {
      "id": 18868,
      "at": "2026-10-15T02:35:40.601Z",
      "domain": "fresha.com",
      "name": "Aloha Bar à Ongles",
      "page": "https://directindex.org/r/fresha.com",
      "kind": "broke",
      "what": "new finding: booking only through a marketplace",
      "detail": {
        "scan": 140009,
        "prev": 99801,
        "fix": "booking_marketplace"
      }
    },
    {
      "id": 18867,
      "at": "2026-10-15T02:35:40.601Z",
      "domain": "fresha.com",
      "name": "Aloha Bar à Ongles",
      "page": "https://directindex.org/r/fresha.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140009,
        "prev": 99801,
        "fix": "no_channel"
      }
    },
    {
      "id": 18866,
      "at": "2026-10-15T02:35:30.776Z",
      "domain": "booksy.com",
      "name": "Bronx Barbershop",
      "page": "https://directindex.org/r/booksy.com",
      "kind": "channel",
      "what": "direct channel: none to third party",
      "detail": {
        "scan": 140006,
        "prev": 99678,
        "from": null,
        "to": "other"
      }
    },
    {
      "id": 18865,
      "at": "2026-10-15T02:35:30.776Z",
      "domain": "booksy.com",
      "name": "Bronx Barbershop",
      "page": "https://directindex.org/r/booksy.com",
      "kind": "blocked",
      "what": "now turns an AI crawler away at the edge",
      "detail": {
        "scan": 140006,
        "prev": 99678
      }
    },
    {
      "id": 18864,
      "at": "2026-10-15T02:35:30.776Z",
      "domain": "booksy.com",
      "name": "Bronx Barbershop",
      "page": "https://directindex.org/r/booksy.com",
      "kind": "broke",
      "what": "new finding: booking through an unrecognised third party",
      "detail": {
        "scan": 140006,
        "prev": 99678,
        "fix": "booking_other"
      }
    },
    {
      "id": 18863,
      "at": "2026-10-15T02:35:30.776Z",
      "domain": "booksy.com",
      "name": "Bronx Barbershop",
      "page": "https://directindex.org/r/booksy.com",
      "kind": "broke",
      "what": "new finding: the site turned every visitor without a browser away",
      "detail": {
        "scan": 140006,
        "prev": 99678,
        "fix": "blocked_for_bots"
      }
    },
    {
      "id": 18862,
      "at": "2026-10-15T02:35:30.776Z",
      "domain": "booksy.com",
      "name": "Bronx Barbershop",
      "page": "https://directindex.org/r/booksy.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140006,
        "prev": 99678,
        "fix": "no_channel"
      }
    }
  ]
}