{
  "city": "porto-cafes-bars",
  "days": 30,
  "since": "2026-09-16T02:16:20.042Z",
  "count": 25,
  "sites": 9,
  "byKind": {
    "fixed": 8,
    "broke": 4,
    "grade_up": 6,
    "grade_down": 1,
    "blocked": 1,
    "unblocked": 1,
    "channel": 4,
    "vendor": 0,
    "assistant": 0
  },
  "changes": [
    {
      "id": 25753,
      "at": "2026-10-15T04:00:50.583Z",
      "domain": "teatromunicipaldoporto.pt",
      "name": "TMP Café",
      "page": "https://directindex.org/r/teatromunicipaldoporto.pt",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144527,
        "prev": 23965,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25752,
      "at": "2026-10-15T04:00:50.583Z",
      "domain": "teatromunicipaldoporto.pt",
      "name": "TMP Café",
      "page": "https://directindex.org/r/teatromunicipaldoporto.pt",
      "kind": "grade_up",
      "what": "grade D to C (64%)",
      "detail": {
        "scan": 144527,
        "prev": 23965,
        "from": "D",
        "to": "C",
        "pct": 64.2
      }
    },
    {
      "id": 25751,
      "at": "2026-10-15T04:00:50.583Z",
      "domain": "teatromunicipaldoporto.pt",
      "name": "TMP Café",
      "page": "https://directindex.org/r/teatromunicipaldoporto.pt",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144527,
        "prev": 23965,
        "fix": "no_channel"
      }
    },
    {
      "id": 25713,
      "at": "2026-10-15T04:00:30.658Z",
      "domain": "up.pt",
      "name": "e-Learning Café da Asprela",
      "page": "https://directindex.org/r/up.pt",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144504,
        "prev": 24124,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25712,
      "at": "2026-10-15T04:00:30.658Z",
      "domain": "up.pt",
      "name": "e-Learning Café da Asprela",
      "page": "https://directindex.org/r/up.pt",
      "kind": "grade_up",
      "what": "grade D to B (79%)",
      "detail": {
        "scan": 144504,
        "prev": 24124,
        "from": "D",
        "to": "B",
        "pct": 78.9
      }
    },
    {
      "id": 25711,
      "at": "2026-10-15T04:00:30.658Z",
      "domain": "up.pt",
      "name": "e-Learning Café da Asprela",
      "page": "https://directindex.org/r/up.pt",
      "kind": "broke",
      "what": "new finding: structured data was incomplete",
      "detail": {
        "scan": 144504,
        "prev": 24124,
        "fix": "structured_incomplete"
      }
    },
    {
      "id": 25710,
      "at": "2026-10-15T04:00:30.658Z",
      "domain": "up.pt",
      "name": "e-Learning Café da Asprela",
      "page": "https://directindex.org/r/up.pt",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144504,
        "prev": 24124,
        "fix": "no_channel"
      }
    },
    {
      "id": 25709,
      "at": "2026-10-15T04:00:30.658Z",
      "domain": "up.pt",
      "name": "e-Learning Café da Asprela",
      "page": "https://directindex.org/r/up.pt",
      "kind": "fixed",
      "what": "fixed: no structured data for the business",
      "detail": {
        "scan": 144504,
        "prev": 24124,
        "fix": "no_structured"
      }
    },
    {
      "id": 25704,
      "at": "2026-10-15T04:00:29.297Z",
      "domain": "cafelusitano.com",
      "name": "Café Lusitano",
      "page": "https://directindex.org/r/cafelusitano.com",
      "kind": "broke",
      "what": "new finding: robots.txt blocked AI crawlers",
      "detail": {
        "scan": 144499,
        "prev": 25890,
        "fix": "robots_blocks"
      }
    },
    {
      "id": 25703,
      "at": "2026-10-15T04:00:28.468Z",
      "domain": "fabricacoffeeroasters.com",
      "name": "Fábrica Coffee Roasters - Porto",
      "page": "https://directindex.org/r/fabricacoffeeroasters.com",
      "kind": "blocked",
      "what": "now turns an AI crawler away at the edge",
      "detail": {
        "scan": 144497,
        "prev": 24148
      }
    },
    {
      "id": 25702,
      "at": "2026-10-15T04:00:28.468Z",
      "domain": "fabricacoffeeroasters.com",
      "name": "Fábrica Coffee Roasters - Porto",
      "page": "https://directindex.org/r/fabricacoffeeroasters.com",
      "kind": "grade_down",
      "what": "grade C to F (23%)",
      "detail": {
        "scan": 144497,
        "prev": 24148,
        "from": "C",
        "to": "F",
        "pct": 23.1
      }
    },
    {
      "id": 25701,
      "at": "2026-10-15T04:00:28.468Z",
      "domain": "fabricacoffeeroasters.com",
      "name": "Fábrica Coffee Roasters - Porto",
      "page": "https://directindex.org/r/fabricacoffeeroasters.com",
      "kind": "broke",
      "what": "new finding: the site turned every visitor without a browser away",
      "detail": {
        "scan": 144497,
        "prev": 24148,
        "fix": "blocked_for_bots"
      }
    },
    {
      "id": 25700,
      "at": "2026-10-15T04:00:28.586Z",
      "domain": "cafemajestic.com",
      "name": "Café Majestic",
      "page": "https://directindex.org/r/cafemajestic.com",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144496,
        "prev": 24229,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25699,
      "at": "2026-10-15T04:00:28.586Z",
      "domain": "cafemajestic.com",
      "name": "Café Majestic",
      "page": "https://directindex.org/r/cafemajestic.com",
      "kind": "grade_up",
      "what": "grade D to B (72%)",
      "detail": {
        "scan": 144496,
        "prev": 24229,
        "from": "D",
        "to": "B",
        "pct": 72.3
      }
    },
    {
      "id": 25698,
      "at": "2026-10-15T04:00:28.586Z",
      "domain": "cafemajestic.com",
      "name": "Café Majestic",
      "page": "https://directindex.org/r/cafemajestic.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144496,
        "prev": 24229,
        "fix": "no_channel"
      }
    },
    {
      "id": 25688,
      "at": "2026-10-15T04:00:25.779Z",
      "domain": "tavi.pt",
      "name": "Tavi - Confeitaria da Foz",
      "page": "https://directindex.org/r/tavi.pt",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 144477,
        "prev": 23679,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 25687,
      "at": "2026-10-15T04:00:25.779Z",
      "domain": "tavi.pt",
      "name": "Tavi - Confeitaria da Foz",
      "page": "https://directindex.org/r/tavi.pt",
      "kind": "grade_up",
      "what": "grade D to B (74%)",
      "detail": {
        "scan": 144477,
        "prev": 23679,
        "from": "D",
        "to": "B",
        "pct": 73.8
      }
    },
    {
      "id": 25686,
      "at": "2026-10-15T04:00:25.779Z",
      "domain": "tavi.pt",
      "name": "Tavi - Confeitaria da Foz",
      "page": "https://directindex.org/r/tavi.pt",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 144477,
        "prev": 23679,
        "fix": "no_channel"
      }
    },
    {
      "id": 25685,
      "at": "2026-10-15T04:00:25.670Z",
      "domain": "nata7.com",
      "name": "Nata7",
      "page": "https://directindex.org/r/nata7.com",
      "kind": "unblocked",
      "what": "lets AI crawlers in again",
      "detail": {
        "scan": 144476,
        "prev": 24420
      }
    },
    {
      "id": 25684,
      "at": "2026-10-15T04:00:25.670Z",
      "domain": "nata7.com",
      "name": "Nata7",
      "page": "https://directindex.org/r/nata7.com",
      "kind": "fixed",
      "what": "fixed: no llms.txt",
      "detail": {
        "scan": 144476,
        "prev": 24420,
        "fix": "no_llms_txt"
      }
    },
    {
      "id": 25683,
      "at": "2026-10-15T04:00:25.670Z",
      "domain": "nata7.com",
      "name": "Nata7",
      "page": "https://directindex.org/r/nata7.com",
      "kind": "fixed",
      "what": "fixed: the server turned AI crawlers away at the door",
      "detail": {
        "scan": 144476,
        "prev": 24420,
        "fix": "edge_blocks"
      }
    },
    {
      "id": 25682,
      "at": "2026-10-15T04:00:23.487Z",
      "domain": "editoryhotels.com",
      "name": "HUB Gastrobar",
      "page": "https://directindex.org/r/editoryhotels.com",
      "kind": "grade_up",
      "what": "grade D to C (65%)",
      "detail": {
        "scan": 144469,
        "prev": 23896,
        "from": "D",
        "to": "C",
        "pct": 64.6
      }
    },
    {
      "id": 25681,
      "at": "2026-10-15T04:00:23.487Z",
      "domain": "editoryhotels.com",
      "name": "HUB Gastrobar",
      "page": "https://directindex.org/r/editoryhotels.com",
      "kind": "broke",
      "what": "new finding: structured data was incomplete",
      "detail": {
        "scan": 144469,
        "prev": 23896,
        "fix": "structured_incomplete"
      }
    },
    {
      "id": 25680,
      "at": "2026-10-15T04:00:23.487Z",
      "domain": "editoryhotels.com",
      "name": "HUB Gastrobar",
      "page": "https://directindex.org/r/editoryhotels.com",
      "kind": "fixed",
      "what": "fixed: no structured data for the business",
      "detail": {
        "scan": 144469,
        "prev": 23896,
        "fix": "no_structured"
      }
    },
    {
      "id": 25679,
      "at": "2026-10-15T04:00:22.557Z",
      "domain": "confeitariamoura.pt",
      "name": "Confeitaria e Pastelaria Moura",
      "page": "https://directindex.org/r/confeitariamoura.pt",
      "kind": "grade_up",
      "what": "grade F to D (43%)",
      "detail": {
        "scan": 144466,
        "prev": 24415,
        "from": "F",
        "to": "D",
        "pct": 43.1
      }
    }
  ]
}