{
  "registry_version": "1.0.0",
  "last_updated": "2026-06-04",
  "canonical_url": "https://better-robots.com/check/rules.json",
  "rules_version": "2.4.1",
  "tool_version": "2.16.12",
  "scoring_note": "Rules are deterministic checks from the public /check audit. Metadata such as severity and fixability supports display and routing; scoring is governed by each rule weight and status.",
  "blocks": [
    {
      "block": "block.presence",
      "total_weight": 10,
      "rules": [
        "R1",
        "R2",
        "R3"
      ]
    },
    {
      "block": "block.search",
      "total_weight": 10,
      "rules": [
        "R4",
        "R5",
        "R6",
        "R7"
      ]
    },
    {
      "block": "block.ai_bots",
      "total_weight": 25,
      "rules": [
        "R8",
        "R9",
        "R10",
        "R11",
        "R12",
        "R13",
        "R14",
        "R15"
      ]
    },
    {
      "block": "block.policy",
      "total_weight": 25,
      "rules": [
        "R16",
        "R17",
        "R18",
        "R19",
        "R20",
        "R21",
        "R31"
      ]
    },
    {
      "block": "block.hygiene",
      "total_weight": 15,
      "rules": [
        "R22",
        "R23",
        "R24",
        "R25"
      ]
    },
    {
      "block": "block.resources",
      "total_weight": 15,
      "rules": [
        "R26",
        "R27",
        "R28",
        "R29",
        "R30"
      ]
    }
  ],
  "rules": [
    {
      "id": "R1",
      "block": "block.presence",
      "weight": 3,
      "severity": "critical",
      "fixability": "fixable",
      "config_governed": false,
      "name_key": "rule.r1.name",
      "recommendation_key": "rule.r1.reco",
      "learn_more_url": "https://better-robots.com/governance/rules/r1"
    },
    {
      "id": "R2",
      "block": "block.presence",
      "weight": 3,
      "severity": "critical",
      "fixability": "fixable",
      "config_governed": false,
      "name_key": "rule.r2.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r2"
    },
    {
      "id": "R3",
      "block": "block.presence",
      "weight": 4,
      "severity": "warning",
      "fixability": "fixable",
      "config_governed": true,
      "name_key": "rule.r3.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r3"
    },
    {
      "id": "R4",
      "block": "block.search",
      "weight": 4,
      "severity": "critical",
      "fixability": "fixable",
      "config_governed": false,
      "name_key": "rule.r4.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r4"
    },
    {
      "id": "R5",
      "block": "block.search",
      "weight": 2,
      "severity": "warning",
      "fixability": "fixable",
      "config_governed": true,
      "name_key": "rule.r5.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r5"
    },
    {
      "id": "R6",
      "block": "block.search",
      "weight": 2,
      "severity": "warning",
      "fixability": "fixable",
      "config_governed": false,
      "name_key": "rule.r6.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r6"
    },
    {
      "id": "R7",
      "block": "block.search",
      "weight": 2,
      "severity": "important",
      "fixability": "fixable",
      "config_governed": true,
      "name_key": "rule.r7.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r7"
    },
    {
      "id": "R8",
      "block": "block.ai_bots",
      "weight": 4,
      "severity": "important",
      "fixability": "fixable",
      "config_governed": true,
      "name_key": "rule.r8.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r8"
    },
    {
      "id": "R9",
      "block": "block.ai_bots",
      "weight": 4,
      "severity": "important",
      "fixability": "fixable",
      "config_governed": true,
      "name_key": "rule.r9.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r9"
    },
    {
      "id": "R10",
      "block": "block.ai_bots",
      "weight": 3,
      "severity": "important",
      "fixability": "fixable",
      "config_governed": true,
      "name_key": "rule.r10.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r10"
    },
    {
      "id": "R11",
      "block": "block.ai_bots",
      "weight": 3,
      "severity": "important",
      "fixability": "fixable",
      "config_governed": true,
      "name_key": "rule.r11.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r11"
    },
    {
      "id": "R12",
      "block": "block.ai_bots",
      "weight": 3,
      "severity": "important",
      "fixability": "fixable",
      "config_governed": true,
      "name_key": "rule.r12.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r12"
    },
    {
      "id": "R13",
      "block": "block.ai_bots",
      "weight": 3,
      "severity": "important",
      "fixability": "fixable",
      "config_governed": true,
      "name_key": "rule.r13.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r13"
    },
    {
      "id": "R14",
      "block": "block.ai_bots",
      "weight": 3,
      "severity": "warning",
      "fixability": "fixable",
      "config_governed": false,
      "name_key": "rule.r14.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r14"
    },
    {
      "id": "R15",
      "block": "block.ai_bots",
      "weight": 2,
      "severity": "warning",
      "fixability": "fixable",
      "config_governed": false,
      "name_key": "rule.r15.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r15"
    },
    {
      "id": "R16",
      "block": "block.policy",
      "weight": 8,
      "severity": "important",
      "fixability": "fixable",
      "config_governed": true,
      "name_key": "rule.r16.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r16"
    },
    {
      "id": "R17",
      "block": "block.policy",
      "weight": 3,
      "severity": "warning",
      "fixability": "partial",
      "config_governed": false,
      "name_key": "rule.r17.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r17"
    },
    {
      "id": "R18",
      "block": "block.policy",
      "weight": 5,
      "severity": "important",
      "fixability": "fixable",
      "config_governed": true,
      "name_key": "rule.r18.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r18"
    },
    {
      "id": "R19",
      "block": "block.policy",
      "weight": 4,
      "severity": "warning",
      "fixability": "partial",
      "config_governed": false,
      "name_key": "rule.r19.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r19"
    },
    {
      "id": "R20",
      "block": "block.policy",
      "weight": 1,
      "severity": "info",
      "fixability": "info",
      "config_governed": false,
      "name_key": "rule.r20.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r20"
    },
    {
      "id": "R21",
      "block": "block.policy",
      "weight": 2,
      "severity": "warning",
      "fixability": "fixable",
      "config_governed": true,
      "name_key": "rule.r21.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r21"
    },
    {
      "id": "R31",
      "block": "block.policy",
      "weight": 2,
      "severity": "warning",
      "fixability": "manual",
      "config_governed": false,
      "name_key": "rule.r31.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r31"
    },
    {
      "id": "R22",
      "block": "block.hygiene",
      "weight": 5,
      "severity": "critical",
      "fixability": "fixable",
      "config_governed": false,
      "name_key": "rule.r22.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r22"
    },
    {
      "id": "R23",
      "block": "block.hygiene",
      "weight": 4,
      "severity": "warning",
      "fixability": "fixable",
      "config_governed": false,
      "name_key": "rule.r23.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r23"
    },
    {
      "id": "R24",
      "block": "block.hygiene",
      "weight": 3,
      "severity": "warning",
      "fixability": "fixable",
      "config_governed": false,
      "name_key": "rule.r24.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r24"
    },
    {
      "id": "R25",
      "block": "block.hygiene",
      "weight": 3,
      "severity": "warning",
      "fixability": "fixable",
      "config_governed": false,
      "name_key": "rule.r25.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r25"
    },
    {
      "id": "R26",
      "block": "block.resources",
      "weight": 5,
      "severity": "critical",
      "fixability": "partial",
      "config_governed": false,
      "name_key": "rule.r26.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r26"
    },
    {
      "id": "R27",
      "block": "block.resources",
      "weight": 3,
      "severity": "warning",
      "fixability": "partial",
      "config_governed": false,
      "name_key": "rule.r27.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r27"
    },
    {
      "id": "R28",
      "block": "block.resources",
      "weight": 3,
      "severity": "info",
      "fixability": "partial",
      "config_governed": false,
      "name_key": "rule.r28.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r28"
    },
    {
      "id": "R29",
      "block": "block.resources",
      "weight": 2,
      "severity": "info",
      "fixability": "manual",
      "config_governed": false,
      "name_key": "rule.r29.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r29"
    },
    {
      "id": "R30",
      "block": "block.resources",
      "weight": 2,
      "severity": "info",
      "fixability": "manual",
      "config_governed": false,
      "name_key": "rule.r30.name",
      "recommendation_key": null,
      "learn_more_url": "https://better-robots.com/governance/rules/r30"
    }
  ],
  "profiles": [
    {
      "id": "ai-search-open-training-restricted",
      "display_name_en": "AI search open, training restricted",
      "display_name_fr": "Recherche IA ouverte, entraînement restreint",
      "description_en": "Allow AI search bots (ChatGPT, Claude, Perplexity), block training crawlers.",
      "description_fr": "Autorise les robots de recherche IA, bloque les robots d'entraînement.",
      "version": "1.0",
      "expected_signals": {
        "llms_txt": "enable",
        "ai_policy": "enable"
      },
      "subscores_weights": {
        "search_visibility": 0.3,
        "training_control": 0.3,
        "governance_consistency": 0.25,
        "hygiene": 0.15
      }
    },
    {
      "id": "maximum-visibility",
      "display_name_en": "Maximum AI visibility",
      "display_name_fr": "Visibilité IA maximale",
      "description_en": "Allow all legitimate AI bots for maximum citation; aggressive scrapers handled elsewhere.",
      "description_fr": "Autorise tous les robots IA légitimes; les scrapers agressifs sont gérés ailleurs.",
      "version": "1.0",
      "expected_signals": {
        "llms_txt": "enable",
        "ai_policy": "enable"
      },
      "subscores_weights": {
        "search_visibility": 0.4,
        "training_control": 0.1,
        "governance_consistency": 0.25,
        "hygiene": 0.25
      }
    },
    {
      "id": "publisher-protective",
      "display_name_en": "Publisher protection",
      "display_name_fr": "Protection éditeur",
      "description_en": "Strict training control with selective AI search visibility; for media and editorial sites.",
      "description_fr": "Contrôle strict de l'entraînement, recherche IA sélective; pour les médias et sites éditoriaux.",
      "version": "1.0",
      "expected_signals": {
        "llms_txt": "enable",
        "ai_policy": "enable"
      },
      "subscores_weights": {
        "search_visibility": 0.2,
        "training_control": 0.4,
        "governance_consistency": 0.3,
        "hygiene": 0.1
      }
    },
    {
      "id": "wordpress-safe-default",
      "display_name_en": "WordPress safe default",
      "display_name_fr": "Défaut sécuritaire WordPress",
      "description_en": "Recommended baseline for typical WordPress sites: AI search OK, training restricted.",
      "description_fr": "Base recommandée pour les sites WordPress typiques : recherche IA OK, entraînement restreint.",
      "version": "1.0",
      "expected_signals": {
        "llms_txt": "enable",
        "ai_policy": "enable"
      },
      "subscores_weights": {
        "search_visibility": 0.3,
        "training_control": 0.25,
        "governance_consistency": 0.25,
        "hygiene": 0.2
      }
    },
    {
      "id": "strict-privacy",
      "display_name_en": "Strict crawler restriction",
      "display_name_fr": "Restriction stricte des crawlers",
      "description_en": "Block all AI bots; keep only minimal traditional search visibility.",
      "description_fr": "Bloque tous les robots IA; ne conserve que la visibilité minimale en recherche traditionnelle.",
      "version": "1.0",
      "expected_signals": {
        "llms_txt": "enable",
        "ai_policy": "enable"
      },
      "subscores_weights": {
        "search_visibility": 0.15,
        "training_control": 0.45,
        "governance_consistency": 0.3,
        "hygiene": 0.1
      }
    }
  ],
  "bot_roles": {
    "Googlebot": "search",
    "Bingbot": "search",
    "OAI-SearchBot": "search",
    "Claude-SearchBot": "search",
    "PerplexityBot": "search",
    "GPTBot": "training",
    "ClaudeBot": "training",
    "Google-Extended": "training",
    "Applebot-Extended": "training",
    "anthropic-ai": "training",
    "CCBot": "training",
    "ChatGPT-User": "user",
    "Claude-User": "user",
    "Perplexity-User": "user"
  }
}