{
  "city": "porto-tours",
  "days": 30,
  "since": "2026-09-15T20:02:44.217Z",
  "count": 55,
  "sites": 18,
  "byKind": {
    "fixed": 17,
    "broke": 4,
    "grade_up": 16,
    "grade_down": 0,
    "blocked": 1,
    "unblocked": 0,
    "channel": 17,
    "vendor": 0,
    "assistant": 0
  },
  "changes": [
    {
      "id": 25758,
      "at": "2026-10-15T04:01:27.959Z",
      "domain": "casa-design.pt",
      "name": "Casa do Design",
      "page": "https://directindex.org/r/casa-design.pt",
      "kind": "blocked",
      "what": "now turns an AI crawler away at the edge",
      "detail": {
        "scan": 144533,
        "prev": 40266
      }
    },
    {
      "id": 25757,
      "at": "2026-10-15T04:01:27.959Z",
      "domain": "casa-design.pt",
      "name": "Casa do Design",
      "page": "https://directindex.org/r/casa-design.pt",
      "kind": "broke",
      "what": "new finding: the server turned AI crawlers away at the door",
      "detail": {
        "scan": 144533,
        "prev": 40266,
        "fix": "edge_blocks"
      }
    },
    {
      "id": 25756,
      "at": "2026-10-15T04:00:54.096Z",
      "domain": "teatromunicipaldoporto.pt",
      "name": "Teatro Municipal Rivoli",
      "page": "https://directindex.org/r/teatromunicipaldoporto.pt",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144529,
        "prev": 39911,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25755,
      "at": "2026-10-15T04:00:54.096Z",
      "domain": "teatromunicipaldoporto.pt",
      "name": "Teatro Municipal Rivoli",
      "page": "https://directindex.org/r/teatromunicipaldoporto.pt",
      "kind": "grade_up",
      "what": "grade F to C (58%)",
      "detail": {
        "scan": 144529,
        "prev": 39911,
        "from": "F",
        "to": "C",
        "pct": 58
      }
    },
    {
      "id": 25754,
      "at": "2026-10-15T04:00:54.096Z",
      "domain": "teatromunicipaldoporto.pt",
      "name": "Teatro Municipal Rivoli",
      "page": "https://directindex.org/r/teatromunicipaldoporto.pt",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144529,
        "prev": 39911,
        "fix": "no_channel"
      }
    },
    {
      "id": 25750,
      "at": "2026-10-15T04:00:47.544Z",
      "domain": "mercadobolhao.pt",
      "name": "Mercado do Bolhão",
      "page": "https://directindex.org/r/mercadobolhao.pt",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144526,
        "prev": 40455,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25749,
      "at": "2026-10-15T04:00:47.544Z",
      "domain": "mercadobolhao.pt",
      "name": "Mercado do Bolhão",
      "page": "https://directindex.org/r/mercadobolhao.pt",
      "kind": "grade_up",
      "what": "grade F to C (63%)",
      "detail": {
        "scan": 144526,
        "prev": 40455,
        "from": "F",
        "to": "C",
        "pct": 63.1
      }
    },
    {
      "id": 25748,
      "at": "2026-10-15T04:00:47.544Z",
      "domain": "mercadobolhao.pt",
      "name": "Mercado do Bolhão",
      "page": "https://directindex.org/r/mercadobolhao.pt",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144526,
        "prev": 40455,
        "fix": "no_channel"
      }
    },
    {
      "id": 25747,
      "at": "2026-10-15T04:00:45.656Z",
      "domain": "conservaspinhais.com",
      "name": "Museu Vivo das Conservas Pinhais",
      "page": "https://directindex.org/r/conservaspinhais.com",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144525,
        "prev": 40438,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25746,
      "at": "2026-10-15T04:00:45.656Z",
      "domain": "conservaspinhais.com",
      "name": "Museu Vivo das Conservas Pinhais",
      "page": "https://directindex.org/r/conservaspinhais.com",
      "kind": "grade_up",
      "what": "grade D to C (63%)",
      "detail": {
        "scan": 144525,
        "prev": 40438,
        "from": "D",
        "to": "C",
        "pct": 63.1
      }
    },
    {
      "id": 25745,
      "at": "2026-10-15T04:00:45.656Z",
      "domain": "conservaspinhais.com",
      "name": "Museu Vivo das Conservas Pinhais",
      "page": "https://directindex.org/r/conservaspinhais.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144525,
        "prev": 40438,
        "fix": "no_channel"
      }
    },
    {
      "id": 25744,
      "at": "2026-10-15T04:00:37.553Z",
      "domain": "cm-porto.pt",
      "name": "Museu Municipal Casa do Infante",
      "page": "https://directindex.org/r/cm-porto.pt",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144523,
        "prev": 41221,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25743,
      "at": "2026-10-15T04:00:37.553Z",
      "domain": "cm-porto.pt",
      "name": "Museu Municipal Casa do Infante",
      "page": "https://directindex.org/r/cm-porto.pt",
      "kind": "grade_up",
      "what": "grade D to B (74%)",
      "detail": {
        "scan": 144523,
        "prev": 41221,
        "from": "D",
        "to": "B",
        "pct": 73.8
      }
    },
    {
      "id": 25742,
      "at": "2026-10-15T04:00:37.553Z",
      "domain": "cm-porto.pt",
      "name": "Museu Municipal Casa do Infante",
      "page": "https://directindex.org/r/cm-porto.pt",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144523,
        "prev": 41221,
        "fix": "no_channel"
      }
    },
    {
      "id": 25741,
      "at": "2026-10-15T04:00:35.355Z",
      "domain": "santaclaraporto.pt",
      "name": "Museu da Igreja de Santa Clara",
      "page": "https://directindex.org/r/santaclaraporto.pt",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144522,
        "prev": 40945,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25740,
      "at": "2026-10-15T04:00:35.355Z",
      "domain": "santaclaraporto.pt",
      "name": "Museu da Igreja de Santa Clara",
      "page": "https://directindex.org/r/santaclaraporto.pt",
      "kind": "grade_up",
      "what": "grade D to C (69%)",
      "detail": {
        "scan": 144522,
        "prev": 40945,
        "from": "D",
        "to": "C",
        "pct": 68.8
      }
    },
    {
      "id": 25739,
      "at": "2026-10-15T04:00:35.355Z",
      "domain": "santaclaraporto.pt",
      "name": "Museu da Igreja de Santa Clara",
      "page": "https://directindex.org/r/santaclaraporto.pt",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144522,
        "prev": 40945,
        "fix": "no_channel"
      }
    },
    {
      "id": 25738,
      "at": "2026-10-15T04:00:33.687Z",
      "domain": "serralves.pt",
      "name": "Museu de Arte Contemporânea de Serralves",
      "page": "https://directindex.org/r/serralves.pt",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144520,
        "prev": 40623,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25737,
      "at": "2026-10-15T04:00:33.687Z",
      "domain": "serralves.pt",
      "name": "Museu de Arte Contemporânea de Serralves",
      "page": "https://directindex.org/r/serralves.pt",
      "kind": "grade_up",
      "what": "grade D to B (72%)",
      "detail": {
        "scan": 144520,
        "prev": 40623,
        "from": "D",
        "to": "B",
        "pct": 72.3
      }
    },
    {
      "id": 25736,
      "at": "2026-10-15T04:00:33.687Z",
      "domain": "serralves.pt",
      "name": "Museu de Arte Contemporânea de Serralves",
      "page": "https://directindex.org/r/serralves.pt",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144520,
        "prev": 40623,
        "fix": "no_channel"
      }
    },
    {
      "id": 25735,
      "at": "2026-10-15T04:00:32.720Z",
      "domain": "tnsj.pt",
      "name": "Teatro Nacional São João",
      "page": "https://directindex.org/r/tnsj.pt",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144519,
        "prev": 39910,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25734,
      "at": "2026-10-15T04:00:32.720Z",
      "domain": "tnsj.pt",
      "name": "Teatro Nacional São João",
      "page": "https://directindex.org/r/tnsj.pt",
      "kind": "grade_up",
      "what": "grade F to D (51%)",
      "detail": {
        "scan": 144519,
        "prev": 39910,
        "from": "F",
        "to": "D",
        "pct": 51.2
      }
    },
    {
      "id": 25733,
      "at": "2026-10-15T04:00:32.720Z",
      "domain": "tnsj.pt",
      "name": "Teatro Nacional São João",
      "page": "https://directindex.org/r/tnsj.pt",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144519,
        "prev": 39910,
        "fix": "no_channel"
      }
    },
    {
      "id": 25732,
      "at": "2026-10-15T04:00:32.618Z",
      "domain": "museusoaresdosreis.gov.pt",
      "name": "Museu Nacional Soares dos Reis",
      "page": "https://directindex.org/r/museusoaresdosreis.gov.pt",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144518,
        "prev": 39899,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25731,
      "at": "2026-10-15T04:00:32.618Z",
      "domain": "museusoaresdosreis.gov.pt",
      "name": "Museu Nacional Soares dos Reis",
      "page": "https://directindex.org/r/museusoaresdosreis.gov.pt",
      "kind": "grade_up",
      "what": "grade D to B (74%)",
      "detail": {
        "scan": 144518,
        "prev": 39899,
        "from": "D",
        "to": "B",
        "pct": 73.8
      }
    },
    {
      "id": 25730,
      "at": "2026-10-15T04:00:32.618Z",
      "domain": "museusoaresdosreis.gov.pt",
      "name": "Museu Nacional Soares dos Reis",
      "page": "https://directindex.org/r/museusoaresdosreis.gov.pt",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144518,
        "prev": 39899,
        "fix": "no_channel"
      }
    },
    {
      "id": 25729,
      "at": "2026-10-15T04:00:31.989Z",
      "domain": "museudocarroelectrico.pt",
      "name": "Museu do Carro Eléctrico",
      "page": "https://directindex.org/r/museudocarroelectrico.pt",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144515,
        "prev": 40111,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25728,
      "at": "2026-10-15T04:00:31.989Z",
      "domain": "museudocarroelectrico.pt",
      "name": "Museu do Carro Eléctrico",
      "page": "https://directindex.org/r/museudocarroelectrico.pt",
      "kind": "grade_up",
      "what": "grade D to C (63%)",
      "detail": {
        "scan": 144515,
        "prev": 40111,
        "from": "D",
        "to": "C",
        "pct": 63.1
      }
    },
    {
      "id": 25727,
      "at": "2026-10-15T04:00:31.989Z",
      "domain": "museudocarroelectrico.pt",
      "name": "Museu do Carro Eléctrico",
      "page": "https://directindex.org/r/museudocarroelectrico.pt",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144515,
        "prev": 40111,
        "fix": "no_channel"
      }
    },
    {
      "id": 25726,
      "at": "2026-10-15T04:00:31.399Z",
      "domain": "casadamusica.com",
      "name": "Casa da Música",
      "page": "https://directindex.org/r/casadamusica.com",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144513,
        "prev": 40122,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25725,
      "at": "2026-10-15T04:00:31.399Z",
      "domain": "casadamusica.com",
      "name": "Casa da Música",
      "page": "https://directindex.org/r/casadamusica.com",
      "kind": "grade_up",
      "what": "grade D to C (64%)",
      "detail": {
        "scan": 144513,
        "prev": 40122,
        "from": "D",
        "to": "C",
        "pct": 63.5
      }
    },
    {
      "id": 25724,
      "at": "2026-10-15T04:00:31.399Z",
      "domain": "casadamusica.com",
      "name": "Casa da Música",
      "page": "https://directindex.org/r/casadamusica.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144513,
        "prev": 40122,
        "fix": "no_channel"
      }
    },
    {
      "id": 25723,
      "at": "2026-10-15T04:00:31.042Z",
      "domain": "marionetasdoporto.pt",
      "name": "Museu das Marionetas do Porto",
      "page": "https://directindex.org/r/marionetasdoporto.pt",
      "kind": "channel",
      "what": "direct channel: none to third party",
      "detail": {
        "scan": 144509,
        "prev": 39985,
        "from": null,
        "to": "other"
      }
    },
    {
      "id": 25722,
      "at": "2026-10-15T04:00:31.042Z",
      "domain": "marionetasdoporto.pt",
      "name": "Museu das Marionetas do Porto",
      "page": "https://directindex.org/r/marionetasdoporto.pt",
      "kind": "grade_up",
      "what": "grade F to D (48%)",
      "detail": {
        "scan": 144509,
        "prev": 39985,
        "from": "F",
        "to": "D",
        "pct": 47.7
      }
    },
    {
      "id": 25721,
      "at": "2026-10-15T04:00:31.042Z",
      "domain": "marionetasdoporto.pt",
      "name": "Museu das Marionetas do Porto",
      "page": "https://directindex.org/r/marionetasdoporto.pt",
      "kind": "broke",
      "what": "new finding: booking through an unrecognised third party",
      "detail": {
        "scan": 144509,
        "prev": 39985,
        "fix": "booking_other"
      }
    },
    {
      "id": 25720,
      "at": "2026-10-15T04:00:31.042Z",
      "domain": "marionetasdoporto.pt",
      "name": "Museu das Marionetas do Porto",
      "page": "https://directindex.org/r/marionetasdoporto.pt",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144509,
        "prev": 39985,
        "fix": "no_channel"
      }
    },
    {
      "id": 25719,
      "at": "2026-10-15T04:00:30.870Z",
      "domain": "neonia.com",
      "name": "Neonia",
      "page": "https://directindex.org/r/neonia.com",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144508,
        "prev": 39723,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25718,
      "at": "2026-10-15T04:00:30.870Z",
      "domain": "neonia.com",
      "name": "Neonia",
      "page": "https://directindex.org/r/neonia.com",
      "kind": "grade_up",
      "what": "grade D to B (74%)",
      "detail": {
        "scan": 144508,
        "prev": 39723,
        "from": "D",
        "to": "B",
        "pct": 73.8
      }
    },
    {
      "id": 25717,
      "at": "2026-10-15T04:00:30.870Z",
      "domain": "neonia.com",
      "name": "Neonia",
      "page": "https://directindex.org/r/neonia.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144508,
        "prev": 39723,
        "fix": "no_channel"
      }
    },
    {
      "id": 25716,
      "at": "2026-10-15T04:00:30.783Z",
      "domain": "wondersensemuseum.com",
      "name": "Wondersense Museum",
      "page": "https://directindex.org/r/wondersensemuseum.com",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144506,
        "prev": 39892,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25715,
      "at": "2026-10-15T04:00:30.783Z",
      "domain": "wondersensemuseum.com",
      "name": "Wondersense Museum",
      "page": "https://directindex.org/r/wondersensemuseum.com",
      "kind": "grade_up",
      "what": "grade D to B (70%)",
      "detail": {
        "scan": 144506,
        "prev": 39892,
        "from": "D",
        "to": "B",
        "pct": 70.3
      }
    },
    {
      "id": 25714,
      "at": "2026-10-15T04:00:30.783Z",
      "domain": "wondersensemuseum.com",
      "name": "Wondersense Museum",
      "page": "https://directindex.org/r/wondersensemuseum.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144506,
        "prev": 39892,
        "fix": "no_channel"
      }
    },
    {
      "id": 25708,
      "at": "2026-10-15T04:00:29.867Z",
      "domain": "museudafarmacia.pt",
      "name": "Museu da Farmácia",
      "page": "https://directindex.org/r/museudafarmacia.pt",
      "kind": "channel",
      "what": "direct channel: none to third party",
      "detail": {
        "scan": 144501,
        "prev": 39921,
        "from": null,
        "to": "other"
      }
    },
    {
      "id": 25707,
      "at": "2026-10-15T04:00:29.867Z",
      "domain": "museudafarmacia.pt",
      "name": "Museu da Farmácia",
      "page": "https://directindex.org/r/museudafarmacia.pt",
      "kind": "grade_up",
      "what": "grade F to D (48%)",
      "detail": {
        "scan": 144501,
        "prev": 39921,
        "from": "F",
        "to": "D",
        "pct": 47.7
      }
    },
    {
      "id": 25706,
      "at": "2026-10-15T04:00:29.867Z",
      "domain": "museudafarmacia.pt",
      "name": "Museu da Farmácia",
      "page": "https://directindex.org/r/museudafarmacia.pt",
      "kind": "broke",
      "what": "new finding: booking through an unrecognised third party",
      "detail": {
        "scan": 144501,
        "prev": 39921,
        "fix": "booking_other"
      }
    },
    {
      "id": 25705,
      "at": "2026-10-15T04:00:29.867Z",
      "domain": "museudafarmacia.pt",
      "name": "Museu da Farmácia",
      "page": "https://directindex.org/r/museudafarmacia.pt",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144501,
        "prev": 39921,
        "fix": "no_channel"
      }
    },
    {
      "id": 25697,
      "at": "2026-10-15T04:00:28.087Z",
      "domain": "igrejacongregados.com",
      "name": "Igreja de Santo António dos Congregados",
      "page": "https://directindex.org/r/igrejacongregados.com",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144491,
        "prev": 39893,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25696,
      "at": "2026-10-15T04:00:28.087Z",
      "domain": "igrejacongregados.com",
      "name": "Igreja de Santo António dos Congregados",
      "page": "https://directindex.org/r/igrejacongregados.com",
      "kind": "grade_up",
      "what": "grade F to D (49%)",
      "detail": {
        "scan": 144491,
        "prev": 39893,
        "from": "F",
        "to": "D",
        "pct": 48.8
      }
    },
    {
      "id": 25695,
      "at": "2026-10-15T04:00:28.087Z",
      "domain": "igrejacongregados.com",
      "name": "Igreja de Santo António dos Congregados",
      "page": "https://directindex.org/r/igrejacongregados.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144491,
        "prev": 39893,
        "fix": "no_channel"
      }
    },
    {
      "id": 25694,
      "at": "2026-10-15T04:00:27.083Z",
      "domain": "experience-trindade.com",
      "name": "Experience Trindade",
      "page": "https://directindex.org/r/experience-trindade.com",
      "kind": "channel",
      "what": "direct channel: none to third party",
      "detail": {
        "scan": 144484,
        "prev": 39781,
        "from": null,
        "to": "other"
      }
    },
    {
      "id": 25693,
      "at": "2026-10-15T04:00:27.083Z",
      "domain": "experience-trindade.com",
      "name": "Experience Trindade",
      "page": "https://directindex.org/r/experience-trindade.com",
      "kind": "broke",
      "what": "new finding: booking through an unrecognised third party",
      "detail": {
        "scan": 144484,
        "prev": 39781,
        "fix": "booking_other"
      }
    },
    {
      "id": 25692,
      "at": "2026-10-15T04:00:27.083Z",
      "domain": "experience-trindade.com",
      "name": "Experience Trindade",
      "page": "https://directindex.org/r/experience-trindade.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144484,
        "prev": 39781,
        "fix": "no_channel"
      }
    },
    {
      "id": 25691,
      "at": "2026-10-15T04:00:27.066Z",
      "domain": "fcporto.pt",
      "name": "Museu Futebol Clube do Porto",
      "page": "https://directindex.org/r/fcporto.pt",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144483,
        "prev": 39758,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25690,
      "at": "2026-10-15T04:00:27.066Z",
      "domain": "fcporto.pt",
      "name": "Museu Futebol Clube do Porto",
      "page": "https://directindex.org/r/fcporto.pt",
      "kind": "grade_up",
      "what": "grade F to C (59%)",
      "detail": {
        "scan": 144483,
        "prev": 39758,
        "from": "F",
        "to": "C",
        "pct": 58.5
      }
    },
    {
      "id": 25689,
      "at": "2026-10-15T04:00:27.066Z",
      "domain": "fcporto.pt",
      "name": "Museu Futebol Clube do Porto",
      "page": "https://directindex.org/r/fcporto.pt",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144483,
        "prev": 39758,
        "fix": "no_channel"
      }
    }
  ]
}