{
  "studyId": "ai-crawler-access-study-2026",
  "sampleFile": "data/ai-crawler-study-2026/sample.json",
  "sampleNote": "Fixed list of publicly marketed AI products and AI-featured SaaS homepages, chosen before the crawl. Well-known brands and popular AI apps with a public marketing or product homepage. Not a random sample of the web or of all SaaS. notable=true marks widely known brands that prose findings may name; every site is still listed in the results file.",
  "sampleSelected": "2026-10-14",
  "runStarted": "2026-10-14T01:25:00.168Z",
  "runFinished": "2026-10-14T01:27:58.918Z",
  "userAgent": "AIVisibilityReport-Study/1.0 (+https://ai-biz-site.pages.dev/guides/ai-crawler-access-study-2026; one-time public homepage study; contact: tkdumplingsage@outlook.com)",
  "timeoutMs": 8000,
  "pauseMs": 500,
  "betweenSitesMs": 1000,
  "requestBudget": "Per site, in order: homepage, /robots.txt, /llms.txt, /sitemap.xml. No retries. No second sitemap URL. If the homepage fetch failed, the other three were not requested.",
  "checker": "functions/api/check.js runCheck({ sequential: true, skipExtraSitemap: true, includeFacts: true }). The public /api/check path still uses the browser User-Agent and parallel fetches.",
  "sites": [
    {
      "id": "openai",
      "name": "OpenAI",
      "url": "https://openai.com",
      "category": "Assistant",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:00.168Z",
      "result": {
        "ok": true,
        "inputUrl": "https://openai.com/",
        "finalUrl": "https://openai.com/",
        "checkedPath": "/",
        "pageStatus": 403,
        "truncated": false,
        "elapsedMs": 1828,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://openai.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://openai.com/ · HTTP 403 · 10117 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "page-http",
                "name": "Page response",
                "hint": "HTTP status",
                "status": "warn",
                "detail": "The URL returned HTTP 403.",
                "fix": "Open the exact URL visitors and crawlers should read. This score is for the response this address returned."
              },
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "fail",
                "detail": "The URL returned HTTP 403 and only 6 visible words. This is not the page content.",
                "fix": "Check the exact public URL. A 4xx or 5xx response is what a crawler may keep."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 403.",
                "fix": "Serve /llms.txt as a public plain-text file with HTTP 200."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://openai.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 10117,
          "words": 6,
          "h1": "",
          "title": "",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://openai.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://openai.com/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 98,
            "sitemapUrls": [
              "https://openai.com/sitemap.xml"
            ],
            "textLength": 98,
            "text": "User-agent: *\nAllow: /\nDisallow: /microsoft-for-startups/\n\nSitemap: https://openai.com/sitemap.xml"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 403,
            "error": "",
            "finalUrl": "https://openai.com/llms.txt",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 10162,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://openai.com/sitemap.xml",
            "contentType": "application/xml; charset=utf-8",
            "bytes": 3851,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "anthropic",
      "name": "Anthropic",
      "url": "https://www.anthropic.com",
      "category": "Assistant",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:02.999Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.anthropic.com/",
        "finalUrl": "https://www.anthropic.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 1980,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.anthropic.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.anthropic.com/ · HTTP 200 · 201364 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "696 words in the raw HTML, ignoring script and style. H1: “AI research and products that put safety at the frontier”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.anthropic.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 201364,
          "words": 696,
          "h1": "AI research and products that put safety at the frontier",
          "title": "Home \\ Anthropic",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.anthropic.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.anthropic.com/robots.txt",
            "contentType": "text/plain",
            "bytes": 71,
            "sitemapUrls": [
              "https://www.anthropic.com/sitemap.xml"
            ],
            "textLength": 71,
            "text": "User-Agent: *\nAllow: /\n\nSitemap: https://www.anthropic.com/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://www.anthropic.com/llms.txt",
            "contentType": "text/html; charset=utf-8",
            "bytes": 20610,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.anthropic.com/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 71512,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "gemini",
      "name": "Google Gemini",
      "url": "https://gemini.google.com",
      "category": "Assistant",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:05.980Z",
      "result": {
        "ok": false,
        "error": "The host did not respond.",
        "inputUrl": "https://gemini.google.com"
      }
    },
    {
      "id": "perplexity",
      "name": "Perplexity",
      "url": "https://www.perplexity.ai",
      "category": "Search",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:07.120Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.perplexity.ai/",
        "finalUrl": "https://www.perplexity.ai/",
        "checkedPath": "/",
        "pageStatus": 403,
        "truncated": false,
        "elapsedMs": 1832,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.perplexity.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.perplexity.ai/ · HTTP 403 · 5866 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "page-http",
                "name": "Page response",
                "hint": "HTTP status",
                "status": "warn",
                "detail": "The URL returned HTTP 403.",
                "fix": "Open the exact URL visitors and crawlers should read. This score is for the response this address returned."
              },
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "fail",
                "detail": "The URL returned HTTP 403 and only 9 visible words. This is not the page content.",
                "fix": "Check the exact public URL. A 4xx or 5xx response is what a crawler may keep."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 403.",
                "fix": "Serve /llms.txt as a public plain-text file with HTTP 200."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.perplexity.ai/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 5866,
          "words": 9,
          "h1": "",
          "title": "Just a moment...",
          "challenge": true,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.perplexity.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.perplexity.ai/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 448,
            "sitemapUrls": [
              "https://www.perplexity.ai/sitemap.xml",
              "https://www.perplexity.ai/help-center/sitemap.xml"
            ],
            "textLength": 448,
            "text": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow: /*?*q=\nDisallow: /search/new\nDisallow: /search?*/\nDisallow: /marketing/prerelease/\nDisallow: /onboarding/\nDisallow: /join/\nUser-agent: Googlebot\nDisallow: /*?*q=\nDisallow: /search*\nDisallow: /search?*/\nDisallow: /marketing/prerelease/\nDisallow: /onboarding/\nDisallow: /join/\nSitemap: https://www.perplexity.ai/sitemap.xml\nSitemap: https://www.perplexity.ai/help-center/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 403,
            "error": "",
            "finalUrl": "https://www.perplexity.ai/llms.txt",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 5890,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.perplexity.ai/sitemap.xml",
            "contentType": "application/xml; charset=utf-8",
            "bytes": 661,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "xai",
      "name": "xAI",
      "url": "https://x.ai",
      "category": "Assistant",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:09.953Z",
      "result": {
        "ok": true,
        "inputUrl": "https://x.ai/",
        "finalUrl": "https://x.ai/",
        "checkedPath": "/",
        "pageStatus": 403,
        "truncated": false,
        "elapsedMs": 1726,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://x.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://x.ai/ · HTTP 403 · 5839 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "page-http",
                "name": "Page response",
                "hint": "HTTP status",
                "status": "warn",
                "detail": "The URL returned HTTP 403.",
                "fix": "Open the exact URL visitors and crawlers should read. This score is for the response this address returned."
              },
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "fail",
                "detail": "The URL returned HTTP 403 and only 127 visible words. This is not the page content.",
                "fix": "Check the exact public URL. A 4xx or 5xx response is what a crawler may keep."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "warn",
                "detail": "/sitemap.xml returned HTTP 403, and no usable sitemap was listed in robots.txt.",
                "fix": "Publish an XML sitemap at /sitemap.xml, or point a Sitemap line in robots.txt at one, listing your key pages."
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 5839,
          "words": 127,
          "h1": "Sorry, you have been blocked",
          "title": "Attention Required! | Cloudflare",
          "challenge": true,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://x.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://x.ai/robots.txt",
            "contentType": "text/plain; charset=UTF-8",
            "bytes": 225,
            "sitemapUrls": [
              "https://x.ai/sitemap.xml"
            ],
            "textLength": 223,
            "text": "User-agent: *\nAllow: /\nDisallow: /tools/\n\nSitemap: https://x.ai/sitemap.xml\n\n# Content Signals — declare AI/search usage preferences\n# See: https://contentsignals.org/\nContent-Signal: ai-train=yes, search=yes, ai-input=yes\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://x.ai/llms.txt",
            "contentType": "text/html; charset=utf-8",
            "bytes": 79738,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 403,
            "error": "",
            "finalUrl": "https://x.ai/sitemap.xml",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 5839,
            "checkStatus": "warn",
            "pass": false,
            "looksLikeSitemap": false,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "copilot",
      "name": "Microsoft Copilot",
      "url": "https://copilot.microsoft.com",
      "category": "Assistant",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:12.683Z",
      "result": {
        "ok": true,
        "inputUrl": "https://copilot.microsoft.com/",
        "finalUrl": "https://copilot.com/?fromcode=cmmlf487uwy&sessionId=05159787-c0a1-4068-b9a1-0002860c3ed7&",
        "checkedPath": "/?fromcode=cmmlf487uwy&sessionId=05159787-c0a1-4068-b9a1-0002860c3ed7&",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 2246,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "/robots.txt returned HTML, not a robots file.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "/robots.txt returned HTML, not a robots file. GPTBot is allowed by default.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "/robots.txt returned HTML, not a robots file. OAI-SearchBot is allowed by default.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "/robots.txt returned HTML, not a robots file. ChatGPT-User is allowed by default.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "/robots.txt returned HTML, not a robots file. ClaudeBot is allowed by default.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "/robots.txt returned HTML, not a robots file. PerplexityBot is allowed by default.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "/robots.txt returned HTML, not a robots file. Google-Extended is allowed by default.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "/robots.txt returned HTML, not a robots file. Applebot-Extended is allowed by default.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "/robots.txt returned HTML, not a robots file. CCBot is allowed by default.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "/robots.txt returned HTML, not a robots file. Bytespider is allowed by default.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. /robots.txt returned HTML, not a robots file.",
                "fix": "There is no official token to allow. Keep your positioning and pricing in the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://copilot.com/?fromcode=cmmlf487uwy&sessionId=05159787-c0a1-4068-b9a1-0002860c3ed7& · HTTP 200 · 304503 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1051 words in the raw HTML, ignoring script and style. H1: “Sign into Copilot”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: WebPage, Organization, ImageObject.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned an HTML page, not a text file.",
                "fix": "Serve a real plain-text file at /llms.txt. An HTML fallback does not count."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "warn",
                "detail": "/sitemap.xml returned HTML, not an XML urlset or sitemap index.",
                "fix": "Serve XML at /sitemap.xml (a urlset or sitemap index), not an HTML page."
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 304503,
          "words": 1051,
          "h1": "Sign into Copilot",
          "title": "Microsoft Copilot | Sign in",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "WebPage",
            "Organization",
            "ImageObject"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "default",
            "note": "/robots.txt returned HTML, not a robots file.",
            "status": 200,
            "finalUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=4765445b-32c6-49b0-83e6-1d93765276ca&redirect_uri=https%3A%2F%2Fcopilot.com%2Flandingv2&response_type=code%20id_token&scope=openid%20profile%20offline_access%20https%3A%2F%2Fwww.office.com%2Fv2%2FOfficeHome.All&response_mode=form_post&nonce=639275379136124393.MzdjNWJhYmEtNDQwNS00ODQzLTliOWQtZjg4OTQ5M2E2NmNiNGY1MWIyZjMtOTdiMy00ZDU4LWIwZDYtNTUyN2FmZDRiYWYx&client-request-id=31e89ec2-add7-4d77-8dad-03fbe93bfc25&state=yx4LvJDXrB6aidfJ-5BW606qxWzAx4R1OwgA2c-VFXHE2uQWT1FEhnni4r3docF1Dk_X6JereJs4vA5p7Y0YGRLpPImQK_jFk0nGAVXdJyMAkVdaP6QFpOvB_3eSPKA-UQICodzbkkB7rTkqe6pt85tv2rUUs1yy48gt_vugAO83ZpQ3XXiC_Gv2Fn5HI6eawyHtIMKHL--jXvJrFCmo7jAjqC4GX5n8bmobiz7ifKzBqpT3P_m-PQYOBHv5LPkcgqWSZMT-xX-ylTI46m37P-lDhMGogEmXKGb9lEgB5M1cn-2bqotp4OWIf5eXbNc2FpZTjTjaFcT9EgruuJ84ZNLhHWb_E-c_bfmn5V1TM40bULBJsRUDXlm90yAyCEL-&x-client-SKU=ID_NET8_0&x-client-ver=8.14.0.0",
            "contentType": "text/html; charset=utf-8",
            "bytes": 53475,
            "sitemapUrls": [],
            "textLength": 53467,
            "text": "\r\n\r\n<!-- Copyright (C) Microsoft Corporation. All rights reserved. -->\r\n<!DOCTYPE html>\r\n<html dir=\"ltr\" class=\"\" lang=\"en\">\r\n<head>\r\n    <title>Sign in to your account</title>\r\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=2.0, user-scalable=yes\">\r\n    <meta http-equiv=\"Pragma\" content=\"no-cache\">\r\n    <meta http-equiv=\"Expires\" content=\"-1\">\r\n    <link rel=\"preconnect\" href=\"https://aadcdn.msftauth.net\" crossorigin>\r\n<meta http-equiv=\"x-dns-prefetch-control\" content=\"on\">\r\n<link rel=\"dns-prefetch\" href=\"//aadcdn.msftauth.net\">\r\n<link rel=\"dns-prefetch\" href=\"//aadcdn.msauth.net\">\r\n\r\n    <meta name=\"PageID\" content=\"ConvergedSignIn\" />\r\n    <meta name=\"SiteID\" content=\"\" />\r\n    <meta name=\"ReqLC\" content=\"9\" />\r\n    <meta name=\"LocLC\" content=\"en\" />\r\n\r\n        <meta name=\"referrer\" content=\"origin\" />\r\n\r\n        <meta name=\"format-detection\" content=\"telephone=no\" />\r\n\r\n    <noscript>\r\n        <meta http-equiv=\"Refresh\" content=\"0; URL=https://login.microsoftonline.com/jsdisabled\" />\r\n    </noscript>\r\n\r\n    \r\n    \r\n<meta name=\"robots\" content=\"none\" />\r\n\r\n<script type=\"text/javascript\" nonce='cQ1JSv5U_QMXfbIZR6OSNA'>//<![CDATA[\n$Config={\"fShowPersistentCookiesWarning\":false,\"urlMsaSignUp\":\"https://login.live.com/oauth20_authorize.srf?client_id=4765445b-32c6-49b0-83e6-1d93765276ca\\u0026scope=openid+profile+offline_access+https%3a%2f%2fwww.office.com%2fv2%2fOfficeHome.All\\u0026redirect_uri=https%3a%2f%2fcopilot.com%2flandingv2\\u0026response_type=code+id_token\\u0026state=yx4LvJDXrB6aidfJ-5BW606qxWzAx4R1OwgA2c-VFXHE2uQWT1FEhnni4r3docF1Dk_X6JereJs4vA5p7Y0YGRLpPImQK_jFk0nGAVXdJyMAkVdaP6QFpOvB_3eSPKA-UQICodzbkkB7rTkqe6pt85tv2rUUs1yy48gt_vugAO83ZpQ3XXiC_Gv2Fn5HI6eawyHtIMKHL--jXvJrFCmo7jAjqC4GX5n8bmobiz7ifKzBqpT3P_m-PQYOBHv5LPkcgqWSZMT-xX-ylTI46m37P-lDhMGogEmXKGb9lEgB5M1cn-2bqotp4OWIf5eXbNc2FpZTjTjaFcT9EgruuJ84ZNLhHWb_E-c_bfmn5V1TM40bULBJsRUDXlm90yAyCEL-\\u0026response_mode=form_post\\u0026nonce=639275379136124393.MzdjNWJhYmEtNDQwNS00ODQzLTliOWQtZjg4OTQ5M2E2NmNiNGY1MWIyZjMtOTdiMy00ZDU4LWIwZDYtNTUyN2FmZDRiYWYx\\u0026x-client-SKU=ID_NET8_0\\u0026x-client-Ver=8.14.0.0\\u0026uaid=31e89ec2add74d778dad03fbe93bfc25\\u0026msproxy=1\\u0026issuer=mso\\u0026tenant=common\\u0026ui_locales=en\\u0026signup=1\\u0026lw=1\\u0026fl=easi2\\u0026epctrc=VhVONYZK53g%2fEN%2f1luzKHgA09p6GLwnQQJnVBWBCT78%3d8%3a1%3aCANARY%3a7%2fHMffWnrMTAMxIpsbvADughcS1AlkDRxn5YEelPOvQ%3d\\u0026epct=PBgABDgEAAAA9VeaV3ywaSLp1O3c4_Et5RXZvU3RzQXJ0aWZhY3RzCAAAAAAAB2xlC1UOHQ9QKG99A_MXtb3OVYEvYaJnZV17iaIAXKui0yKC86WMi0cDVrgIHHetjqy79aKUxwXxveGzN9plN0e5ecMdHTnLghv1sL9RlCX2CV2BIiL4eyeSYXf1Jc6ZhyhhRNxTCqgGvL1s3ZrLNkzkDsSY9x1DMfxWr2_wxmBn23-tSy0fs0pft0CPLMqL4YmvclgWHVQi2dnfzHuG14hn2pcoYC9ybOyBaOM2_sK3y42m9JTe3E21yz6UHAnz1j0oLrcyfp_e8aNlZSy589qId-rSaZJMLOul61g8IzC0Cx0JAkoorjNqdpNmCcX1mn2XdJ76BoLQ_4O8EGFS6GAxoAbWVkNN3nyG8AcDypRjldrg8SjbsHn1YkFVLpXPMuLOkA7iBR0ALkQpbDcLfwggn7oh_y_c-RjsaRWNZ92bwsN2-ttg1rL0SBCb7a9EO0_HsJ1Lb__9GQgCmougvyEtQ34H_iiM7wX4wWQ4LM8jjLJ_sGHGLIlZ_VcT50bPBV4a_Ahy7EfPXlqHl17FlncyIWigquxOzyDDc5POdfd978mtRoW3vHrVouW2KwCuS9ZiIY6yhRNrv8lPVafNeXYDa2xBzoDgySiPK0fjvaxCqazZk1S9v7xYWS7iyDoNuZrt09iMfC59s4rb31n07E_0tQZ4Gono8RC3qcPuMFHHcmmacikaejPz_27-eUVI9hqO56EwkbDm0Sbd7UnoZriP-KckNiRYyiMQwCDLnl11wKoyhOlXFFwu8b84Ka2zIAA\\u0026jshs=0\",\"urlMsaLogout\":\"https://login.live.com/logout.srf?iframed_by=https%3a%2f%2flogin.microsoftonline.com\",\"urlOtherIdpForget\":\"https://login.live.com/forgetme.srf?iframed_by=https%3a%2f%2flogin.microsoftonline.com\",\"showCantAccessAccountLink\":true,\"arrExternalTrustedRealmFederatedIdps\":[{\"IdpType\":400,\"IdpSignInUrl\":\"https://login.live.com/oauth20_authorize.srf?client_id=4765445b-32c6-49b0-83e6-1d93765276ca\\u0026scope=openid+profile+offline_access+https%3a%2f%2fwww.office.com%2fv2%2fOfficeHome.All\\u0026redirect_uri=https%3a%2f%2fcopilot.com%2flandingv2\\u0026response_type=code+id_token\\u0026state=yx4LvJDXrB6aidfJ-5BW606qxWzAx4R1OwgA2c-VFXHE2uQWT1FEhnni4r3docF1Dk_X6JereJs4vA5p7Y0YGRLpPImQK_jFk0nGAVXdJyMAkVdaP6QFpOvB_3eSPKA-UQICodzbkkB7rTkqe6pt85tv2rUUs1yy48gt_vugAO83ZpQ3XXiC_Gv2Fn5HI6eawyHtIMKHL--jXvJrFCmo7jAjqC4GX5n8bmobiz7ifKzBqpT3P_m-PQYOBHv5LPkcgqWSZMT-xX-ylTI46m37P-lDhMGogEmXKGb9lEgB5M1cn-2bqotp4OWIf5eXbNc2FpZTjTjaFcT9EgruuJ84ZNLhHWb_E-c_bfmn5V1TM40bULBJsRUDXlm90yAyCEL-\\u0026response_mode=form_post\\u0026nonce=639275379136124393.MzdjNWJhYmEtNDQwNS00ODQzLTliOWQtZjg4OTQ5M2E2NmNiNGY1MWIyZjMtOTdiMy00ZDU4LWIwZDYtNTUyN2FmZDRiYWYx\\u0026x-client-SKU=ID_NET8_0\\u0026x-client-Ver=8.14.0.0\\u0026uaid=31e89ec2add74d778dad03fbe93bfc25\\u0026msproxy=1\\u0026issuer=mso\\u0026tenant=common\\u0026ui_locales=en\\u0026epctrc=VhVONYZK53g%2fEN%2f1luzKHgA09p6GLwnQQJnVBWBCT78%3d8%3a1%3aCANARY%3a7%2fHMffWnrMTAMxIpsbvADughcS1AlkDRxn5YEelPOvQ%3d\\u0026epct=PBgABDgEAAAA9VeaV3ywaSLp1O3c4_Et5RXZvU3RzQXJ0aWZhY3RzCAAAAAAATRsTcXhyfYyiYgsC3RFjrAkCZG5mwORFuuPJeEXmLRyecJBnqUGgf7F3bKR38GyhfitXykz6yYuvWpP5BFqgvzf9JJLfqiiDhxMRJxdsk_ArJWjTTgg6tnS5y2zyhyZrujAx4_Kj-ozrM3Bmrz6qYO4uo8b3zFzhZhE1zr58gyaVkPObxxE6QIfr6LMIGBIBK00qD8NmM66KChKr_EGkEiqHA4RWA_9vML-I4MZCl7Ifb0sYvZcGx30MnRAit6Q4557WYh_v-UwIU8u8Rd69Xk_A6ddx8yiF097C-it9j6O5bbp4bYWzUYz7mMtREiGvwta-qadxm0hamXwN60yyCy3IaxLRVHiqs-EcW3U0IVUvvCFdw6OX48PeCTMEsyPiOYyBE_Owq_lWgfynXAFk27QWNpGaqNIRNtQ5wixZLn80g-AUmZccEYnJi1_hRY057xhJQ_HTJVseeM4QHYZCCiMElaeIpD8CHdSzEnGU9asdEdIJxjZ3hNUDK2GlhIOBAsXz6XP9bT9oGJ9c8ksATJjiGkvPMCH2FSmCITk-Du23dcc0NzbWagMYD1fdWdAeC_JdLlXkuBkF-Ia95E3l03oOTYaFV0LA6Uv_NH9eaRP79uWkEwxK9CpnrJg06Tq4K19EOHalKJKvxkTblD-1fSOj2m3r9vt5yspAOlLuboiSRoml6EAGg3D-bttDVdfILZCK4fFBKF5t1MY_nmHHtLmGUZHKUnVlTbEHoOnQY6MidPNsTS1tDN6atH2tkEjdIAA\\u0026jshs=0\\u0026idp_hint=github.com\",\"DisplayName\":\"GitHub\",\"Promoted\":false}],\"fEnableShowResendCode\":true,\"iShowResendCodeDelay\":90000,\"sSMSCtryPhoneData\":\"AF~Afghanistan~93!!!AX~Åland Islands~358!!!AL~Albania~355!!!DZ~Algeria~213!!!AS~American Samoa~1!!!AD~Andorra~376!!!AO~Angola~244!!!AI~Anguilla~1!!!AG~Antigua and Barbuda~1!!!AR~Argentina~54!!!AM~Armenia~374!!!AW~Aruba~297!!!AC~Ascension Island~247!!!AU~Australia~61!!!AT~Austria~43!!!AZ~Azerbaijan~994!!!BS~Bahamas~1!!!BH~Bahrain~973!!!BD~Bangladesh~880!!!BB~Barbados~1!!!BY~Belarus~375!!!BE~Belgium~32!!!BZ~Belize~501!!!BJ~Benin~229!!!BM~Bermuda~1!!!BT~Bhutan~975!!!BO~Bolivia~591!!!BQ~Bonaire~599!!!BA~Bosnia and Herzegovina~387!!!BW~Botswana~267!!!BR~Brazil~55!!!IO~British Indian Ocean Territory~246!!!VG~British Virgin Islands~1!!!BN~Brunei~673!!!BG~Bulgaria~359!!!BF~Burkina Faso~226!!!BI~Burundi~257!!!CV~Cabo Verde~238!!!KH~Cambodia~855!!!CM~Cameroon~237!!!CA~Canada~1!!!KY~Cayman Islands~1!!!CF~Central African Republic~236!!!TD~Chad~235!!!CL~Chile~56!!!CN~China~86!!!CX~Christmas Island~61!!!CC~Cocos (Keeling) Islands~61!!!CO~Colombia~57!!!KM~Comoros~269!!!CG~Congo~242!!!CD~Congo (DRC)~243!!!CK~Cook Islands~682!!!CR~Costa Rica~506!!!CI~Côte d\\u0027Ivoire~225!!!HR~Croatia~385!!!CU~Cuba~53!!!CW~Curaçao~599!!!CY~Cyprus~357!!!CZ~Czechia~420!!!DK~Denmark~45!!!DJ~Djibouti~253!!!DM~Dominica~1!!!DO~Dominican Republic~1!!!EC~Ecuador~593!!!EG~Egypt~20!!!SV~El Salvador~503!!!GQ~Equatorial Guinea~240!!!ER~Eritrea~291!!!EE~Estonia~372!!!ET~Ethiopia~251!!!FK~Falkland Islands~500!!!FO~Faroe Islands~298!!!FJ~Fiji~679!!!FI~Finland~358!!!FR~France~33!!!GF~French Guiana~594!!!PF~French Polynesia~689!!!GA~Gabon~241!!!GM~Gambia~220!!!GE~Georgia~995!!!DE~Germany~49!!!GH~Ghana~233!!!GI~Gibraltar~350!!!GR~Greece~30!!!GL~Greenland~299!!!GD~Grenada~1!!!GP~Guadeloupe~590!!!GU~Guam~1!!!GT~Guatemala~502!!!GG~Guernsey~44!!!GN~Guinea~224!!!GW~Guinea-Bissau~245!!!GY~Guyana~592!!!HT~Haiti~509!!!HN~Honduras~504!!!HK~Hong Kong SAR~852!!!HU~Hungary~36!!!IS~Iceland~354!!!IN~India~91!!!ID~Indonesia~62!!!IR~Iran~98!!!IQ~Iraq~964!!!IE~Ireland~353!!!IM~Isle of Man~44!!!IL~Israel~972!!!IT~Italy~39!!!JM~Jamaica~1!!!JP~Japan~81!!!JE~Jersey~44!!!JO~Jordan~962!!!KZ~Kazakhstan~7!!!KE~Kenya~254!!!KI~Kiribati~686!!!KR~Korea~82!!!KW~Kuwait~965!!!KG~Kyrgyzstan~996!!!LA~Laos~856!!!LV~Latvia~371!!!LB~Lebanon~961!!!LS~Lesotho~266!!!LR~Liberia~231!!!LY~Libya~218!!!LI~Liechtenstein~423!!!LT~Lithuania~370!!!LU~Luxembourg~352!!!MO~Macao SAR~853!!!MG~Madagascar~261!!!MW~Malawi~265!!!MY~Malaysia~60!!!MV~Maldives~960!!!ML~Mali~223!!!MT~Malta~356!!!MH~Marshall Islands~692!!!MQ~Martinique~596!!!MR~Mauritania~222!!!MU~Mauritius~230!!!YT~Mayotte~262!!!MX~Mexico~52!!!FM~Micronesia~691!!!MD~Moldova~373!!!MC~Monaco~377!!!MN~Mongolia~976!!!ME~Montenegro~382!!!MS~Montserrat~1!!!MA~Morocco~212!!!MZ~Mozambique~258!!!MM~Myanmar~95!!!NA~Namibia~264!!!NR~Nauru~674!!!NP~Nepal~977!!!NL~Netherlands~31!!!NC~New Caledonia~687!!!NZ~New Zealand~64!!!NI~Nicaragua~505!!!NE~Niger~227!!!NG~Nigeria~234!!!NU~Niue~683!!!NF~Norfolk Island~672!!!KP~North Korea~850!!!MK~North Macedonia~389!!!MP~Northern Mariana Islands~1!!!NO~Norway~47!!!OM~Oman~968!!!PK~Pakistan~92!!!PW~Palau~680!!!PS~Palestinian Authority~970!!!PA~Panama~507!!!PG~Papua New Guinea~675!!!PY~Paraguay~595!!!PE~Peru~51!!!PH~Philippines~63!!!PL~Poland~48!!!PT~Portugal~351!!!PR~Puerto Rico~1!!!QA~Qatar~974!!!RE~Réunion~262!!!RO~Romania~40!!!RU~Russia~7!!!RW~Rwanda~250!!!BL~Saint Barthélemy~590!!!KN~Saint Kitts and Nevis~1!!!LC~Saint Lucia~1!!!MF~Saint Martin~590!!!PM~Saint Pierre and Miquelon~508!!!VC~Saint Vincent and the Grenadines~1!!!WS~Samoa~685!!!SM~San Marino~378!!!ST~São Tomé and Príncipe~239!!!SA~Saudi Arabia~966!!!SN~Senegal~221!!!RS~Serbia~381!!!SC~Seychelles~248!!!SL~Sierra Leone~232!!!SG~Singapore~65!!!SX~Sint Maarten~1!!!SK~Slovakia~421!!!SI~Slovenia~386!!!SB~Solomon Islands~677!!!SO~Somalia~252!!!ZA~South Africa~27!!!SS~South Sudan~211!!!ES~Spain~34!!!LK~Sri Lanka~94!!!SH~St Helena, Ascension, and Tristan da Cunha~290!!!SD~Sudan~249!!!SR~Suriname~597!!!SJ~Svalbard~47!!!SZ~Swaziland~268!!!SE~Sweden~46!!!CH~Switzerland~41!!!SY~Syria~963!!!TW~Taiwan~886!!!TJ~Tajikistan~992!!!TZ~Tanzania~255!!!TH~Thailand~66!!!TL~Timor-Leste~670!!!TG~Togo~228!!!TK~Tokelau~690!!!TO~Tonga~676!!!TT~Trinidad and Tobago~1!!!TA~Tristan da Cunha~290!!!TN~Tunisia~216!!!TR~Turkey~90!!!TM~Turkmenistan~993!!!TC~Turks and Caicos Islands~1!!!TV~Tuvalu~688!!!VI~U.S. Virgin Islands~1!!!UG~Uganda~256!!!UA~Ukraine~380!!!AE~United Arab Emirates~971!!!GB~United Kingdom~44!!!US~United States~1!!!UY~Uruguay~598!!!UZ~Uzbekistan~998!!!VU~Vanuatu~678!!!VA~Vatican City~39!!!VE~Venezuela~58!!!VN~Vietnam~84!!!WF~Wallis and Futuna~681!!!YE~Yemen~967!!!ZM~Zambia~260!!!ZW~Zimbabwe~263\",\"fUseInlinePhoneNumber\":true,\"fDetectBrowserCapabilities\":true,\"fUseMinHeight\":true,\"fShouldSupportTargetCredentialForRecovery\":true,\"fAvoidNewOtcGenerationWhenAlreadySent\":true,\"fEnableProofTypeValidation\":true,\"fUseCertificateInterstitialView\":true,\"fIsPasskeySupportEnabled\":true,\"arrPromotedFedCredTypes\":[],\"fShowUserAlreadyExistErrorHandling\":true,\"fBlockOnAppleEmailClaimError\":true,\"fIsVerifiableCredentialsSupportEnabled\":true,\"iVerifiableCredentialPresentationPollingIntervalSeconds\":0.5,\"iVerifiableCredentialPresentationPollingTimeoutSeconds\":300,\"fIsQrPinEnabled\":true,\"fPasskeyAssertionRedirect\":true,\"fShowProgressForPasskeyAutofill\":true,\"fFixUrlExternalIdpFederation\":true,\"fEnableBackButtonBugFix\":true,\"fEnableTotalLossRecovery\":true,\"fUpdatePromotedCredTypesOrder\":true,\"fUseNewPromotedCredsComponent\":true,\"fEnableGctCredentialTelemetry\":true,\"urlSessionState\":\"https://login.microsoftonline.com/common/DeviceCodeStatus\",\"urlResetPassword\":\"https://passwordreset.microsoftonline.com/?ru=https%3a%2f%2flogin.microsoftonline.com%2fcommon%2freprocess%3fctx%3drQQIABABBAABBgIAAAADAOz_BQD0_0V2b1N0c0FydGlmYWN0cxgAAAAAANVcg61Z3W3Ws7w-lmo2ScVW7i6Ln5f9Wa788x1t3XXV9C6phSMsNn9Of1Q9jJ9Y61fEOSzArR1AVRI8HtxoqVEsI4bV9VW3MPd1MclfcYd_6kyH1S0exKedpncjzbz259hhz6cQMh81x91mHa__MzWroHHXm7JugGVypDcA5HeBYivTYiXnIY8DFeo7Mc2tKzPShL_TTCYPZjUSWPkUCyLTXO0MFh2kVGIB_GOUbdWLPcTRFoh4j_YAGogh7X98Y9lTOkDuAqWYwEURNbhA8iobAhV43JoWdmXeG1mLArco6z2wI0UpIHoj02Ic1BBLnaOJA1KWBYbJypOy1uz2dMr2n1FMlABllLGYt86RcTZanDCT4NzRyh38UXdLtpFziaWNittMUFqLmud1v-NkfXa9Lz9IwOhB5BQ8qjl…"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=4765445b-32c6-49b0-83e6-1d93765276ca&redirect_uri=https%3A%2F%2Fcopilot.com%2Flandingv2&response_type=code%20id_token&scope=openid%20profile%20offline_access%20https%3A%2F%2Fwww.office.com%2Fv2%2FOfficeHome.All&response_mode=form_post&nonce=639275379142808063.ZTVmZGYzMWUtNTI0Ni00OThiLWI1MzUtZDVlNDRhMjQ0Y2JkOTgxNDQzZTktMjU4NC00NjRkLWIzNzktOWYxMTIxZDZlMGFh&client-request-id=c796087c-071c-486d-906d-bc158ec1ca8f&state=nTcMIm1lbS-6Kh2KcGnK9Z1lI3amah1tce4prySD_UU-NM342NqrZvKbGtfCFO7Q5jm4X_fjBUCC6yJ2PtkKQDEsxgu7XlHzJpFDgSIBB13cipOgbVPVmegF1uT8FP3u1aWUinz_kmMtNUOTnrSvemAqKYMbwnRzW7eiyz9QJB7DwzlWuxg6Fh62ZLJ8utqtuzQIprbY9AaKM7aPupQMGb7L4gQ-eSt5-6Ma9IuUXOHyvU6hbI8xSBLpRYy61nn9rdnbg5R134Ps61U8kxXJil5G4KRsp7aMInUCY5kyDhQuXzzIEI4sYtBtM5FL4qqSMx0ZarIorUnl3e25N_upDYunl56-LFeyR7xLFONCMRVtIcs1pE2MJMD6efn0oyCv&x-client-SKU=ID_NET8_0&x-client-ver=8.14.0.0",
            "contentType": "text/html; charset=utf-8",
            "bytes": 53433,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=4765445b-32c6-49b0-83e6-1d93765276ca&redirect_uri=https%3A%2F%2Fcopilot.com%2Flandingv2&response_type=code%20id_token&scope=openid%20profile%20offline_access%20https%3A%2F%2Fwww.office.com%2Fv2%2FOfficeHome.All&response_mode=form_post&nonce=639275379148542758.ZGRiMzNkZTYtZDRkOC00NGU1LWE4ZDYtMTFjMWVmNDE1ZjE4Y2RkNDU1ZmEtN2FjOC00YzM0LWEwZTMtZmUxYzNlODc4NjE1&client-request-id=5e3b4e77-59e8-439f-af54-6e97de442da9&state=V8BwMuS6p8A3oGJ5yXPnbzfP6KffaCkR3YBVcshl6Kbdu59w7yyE724Oc62u4Duprh2cUk-aNXVpF8TGLDQA3oPB5u9ipP2gjfvjNX9_k8PocerU3K2PTMTtKphS8FJ9l2tHeok7jzce0IvFzTqINiK5xHMclZ54R5sooFG_yVOGEKeqMfYrRlxZIJADVNys5Eo1qjurvG155c1yRx2D3HBZySDqWuHNwC2Qe_6F6N3WhxEePVkTsiWwGGH4H7vZ9-_gBAa343_AtvWJvhhPT5f2sA6Vs3oYC8hGnwezWTu4Liri2gN1MyQ-ji2vBG5d5E2rAQI4oLiiyCAdQUfxhz_c2UwAo15GEVBFY3ZEj23e0dfe-iDCMIbeexBrPOOE&x-client-SKU=ID_NET8_0&x-client-ver=8.14.0.0",
            "contentType": "text/html; charset=utf-8",
            "bytes": 53451,
            "checkStatus": "warn",
            "pass": false,
            "looksLikeSitemap": false,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "github-copilot",
      "name": "GitHub Copilot",
      "url": "https://github.com/features/copilot",
      "category": "Coding",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:15.930Z",
      "result": {
        "ok": true,
        "inputUrl": "https://github.com/features/copilot",
        "finalUrl": "https://github.com/features/copilot",
        "checkedPath": "/features/copilot",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1861,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /features/copilot. Fetched https://github.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /features/copilot (Allow: /features). Group: GPTBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /features/copilot (Allow: /features). Group: OAI-SearchBot.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /features/copilot. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /features/copilot (Allow: /features). Group: ClaudeBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /features/copilot (Allow: /features). Group: PerplexityBot.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /features/copilot. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /features/copilot. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /features/copilot. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "warn",
                "detail": "Blocked for /features/copilot by User-agent: Bytespider (Disallow: /).",
                "fix": "Leave the block if you don't want training use. To be cited in AI answers, allow the search crawlers (OAI-SearchBot, PerplexityBot)."
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://github.com/features/copilot · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "843 words in the raw HTML, ignoring script and style. H1: “Command your craft”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $ 0, $ 10, $15, $ 39.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 28658 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "warn",
                "detail": "/sitemap.xml returned HTTP 406, and no usable sitemap was listed in robots.txt.",
                "fix": "Publish an XML sitemap at /sitemap.xml, or point a Sitemap line in robots.txt at one, listing your key pages."
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 843,
          "h1": "Command your craft",
          "title": "GitHub Copilot · Your AI coding agent · GitHub · GitHub",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [
            "$ 0",
            "$ 10",
            "$15",
            "$ 39"
          ],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://github.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://github.com/robots.txt",
            "contentType": "text/plain",
            "bytes": 16739,
            "sitemapUrls": [],
            "textLength": 16739,
            "text": "# If you would like to crawl GitHub contact us via https://support.github.com?tags=dotcom-robots\n# We also provide an extensive API: https://docs.github.com\nUser-agent: GPTBot\nUser-agent: OAI-SearchBot\nUser-agent: ClaudeBot\nUser-agent: anthropic-ai\nUser-agent: PerplexityBot\nCrawl-delay: 1\nAllow: /$\nAllow: /about\nAllow: /customer-stories\nAllow: /enterprise\nAllow: /features\nAllow: /marketplace\nAllow: /mcp\nAllow: /newsroom\nAllow: /pricing\nAllow: /resources\nAllow: /security\nAllow: /solutions\nAllow: /topics/download*\nAllow: /topics/comments*\nAllow: /marketplace/actions/download*\nDisallow: /*/*/pulse\nDisallow: /*/*/projects\nDisallow: /*/*/forks\nDisallow: /*/*/issues/new\nDisallow: /*/*/milestones/new\nDisallow: /*/*/issues/search\nDisallow: /*/*/commits/\nDisallow: /*/*/branches\nDisallow: /*/*/contributors\nDisallow: /*/*/tags\nDisallow: /*/*/stargazers\nDisallow: /*/*/watchers\nDisallow: /*/*/network\nDisallow: /*/*/graphs\nDisallow: /*/*/compare\nDisallow: /*/tree/\nDisallow: /gist/\nDisallow: /*/download\nDisallow: /*/revisions\nDisallow: /*/commits/*?author\nDisallow: /*/commits/*?path\nDisallow: /*/comments\nDisallow: /*/archive/\nDisallow: /*/blame/\nDisallow: /*/raw/\nDisallow: /*/cache/\nDisallow: /.git/\nDisallow: */.git/\nDisallow: /*.git$\nDisallow: /search/advanced\nDisallow: /search$\nDisallow: /*.atom$\nDisallow: /ekansa/Open-Context-Data\nDisallow: /ekansa/opencontext-*\nDisallow: */tarball/\nDisallow: */zipball/\nDisallow: /*commits?author=*\nDisallow: /*report-abuse?report=*\nDisallow: /account-login\nDisallow: /Explodingstuff/\nDisallow: /copilot/\nDisallow: /copilot/c/\nDisallow: /marketplace/*/*?tab=readme$\nDisallow: /marketplace/*?*?tab=readme$\nDisallow: /marketplace/actions?tab=readme$\nDisallow: /marketplace/free-trials?tab=readme$\nDisallow: /marketplace/manage?tab=readme$\nDisallow: /marketplace/models?tab=readme$\nDisallow: /marketplace/new?tab=readme$\nDisallow: /marketplace/publishers?tab=readme$\nDisallow: /marketplace/recently-added?tab=readme$\nDisallow: /marketplace/*/*?tab=transparency$\nDisallow: /marketplace/*?*?tab=transparency$\nDisallow: /marketplace/actions?tab=transparency$\nDisallow: /marketplace/free-trials?tab=transparency$\nDisallow: /marketplace/manage?tab=transparency$\nDisallow: /marketplace/models?tab=transparency$\nDisallow: /marketplace/new?tab=transparency$\nDisallow: /marketplace/publishers?tab=transparency$\nDisallow: /marketplace/recently-added?tab=transparency$\nDisallow: /*?source=*\nDisallow: /*&source=*\nDisallow: /*?ref_cta=*\nDisallow: /*&ref_cta=*\nDisallow: /*?plan=*\nDisallow: /*&plan=*\nDisallow: /*?return_to=*\nDisallow: /*&return_to=*\nDisallow: /*?ref_loc=*\nDisallow: /*&ref_loc=*\nDisallow: /*?setup_organization=*\nDisallow: /*&setup_organization=*\nDisallow: /*?source_repo=*\nDisallow: /*&source_repo=*\nDisallow: /*?ref_page=*\nDisallow: /*&ref_page=*\nDisallow: /*?referrer=*\nDisallow: /*&referrer=*\nDisallow: /*?report=*\nDisallow: /*&report=*\nDisallow: /*?author=*\nDisallow: /*&author=*\nDisallow: /*?since=*\nDisallow: /*&since=*\nDisallow: /*?until=*\nDisallow: /*&until=*\nDisallow: /*?tab=*\nDisallow: /*&tab=*\nDisallow: /*?q=*\nDisallow: /*&q=*\nDisallow: /topics/download*?source=*\nDisallow: /topics/download*&source=*\nDisallow: /topics/download*?ref_cta=*\nDisallow: /topics/download*&ref_cta=*\nDisallow: /topics/download*?plan=*\nDisallow: /topics/download*&plan=*\nDisallow: /topics/download*?return_to=*\nDisallow: /topics/download*&return_to=*\nDisallow: /topics/download*?ref_loc=*\nDisallow: /topics/download*&ref_loc=*\nDisallow: /topics/download*?setup_organization=*\nDisallow: /topics/download*&setup_organization=*\nDisallow: /topics/download*?source_repo=*\nDisallow: /topics/download*&source_repo=*\nDisallow: /topics/download*?ref_page=*\nDisallow: /topics/download*&ref_page=*\nDisallow: /topics/download*?referrer=*\nDisallow: /topics/download*&referrer=*\nDisallow: /topics/download*?report=*\nDisallow: /topics/download*&report=*\nDisallow: /topics/download*?author=*\nDisallow: /topics/download*&author=*\nDisallow: /topics/download*?since=*\nDisallow: /topics/download*&since=*\nDisallow: /topics/download*?until=*\nDisallow: /topics/download*&until=*\nDisallow: /topics/download*?tab=*\nDisallow: /topics/download*&tab=*\nDisallow: /topics/download*?q=*\nDisallow: /topics/download*&q=*\nDisallow: /topics/comments*?source=*\nDisallow: /topics/comments*&source=*\nDisallow: /topics/comments*?ref_cta=*\nDisallow: /topics/comments*&ref_cta=*\nDisallow: /topics/comments*?plan=*\nDisallow: /topics/comments*&plan=*\nDisallow: /topics/comments*?return_to=*\nDisallow: /topics/comments*&return_to=*\nDisallow: /topics/comments*?ref_loc=*\nDisallow: /topics/comments*&ref_loc=*\nDisallow: /topics/comments*?setup_organization=*\nDisallow: /topics/comments*&setup_organization=*\nDisallow: /topics/comments*?source_repo=*\nDisallow: /topics/comments*&source_repo=*\nDisallow: /topics/comments*?ref_page=*\nDisallow: /topics/comments*&ref_page=*\nDisallow: /topics/comments*?referrer=*\nDisallow: /topics/comments*&referrer=*\nDisallow: /topics/comments*?report=*\nDisallow: /topics/comments*&report=*\nDisallow: /topics/comments*?author=*\nDisallow: /topics/comments*&author=*\nDisallow: /topics/comments*?since=*\nDisallow: /topics/comments*&since=*\nDisallow: /topics/comments*?until=*\nDisallow: /topics/comments*&until=*\nDisallow: /topics/comments*?tab=*\nDisallow: /topics/comments*&tab=*\nDisallow: /topics/comments*?q=*\nDisallow: /topics/comments*&q=*\nDisallow: /marketplace/actions/download*?source=*\nDisallow: /marketplace/actions/download*&source=*\nDisallow: /marketplace/actions/download*?ref_cta=*\nDisallow: /marketplace/actions/download*&ref_cta=*\nDisallow: /marketplace/actions/download*?plan=*\nDisallow: /marketplace/actions/download*&plan=*\nDisallow: /marketplace/actions/download*?return_to=*\nDisallow: /marketplace/actions/download*&return_to=*\nDisallow: /marketplace/actions/download*?ref_loc=*\nDisallow: /marketplace/actions/download*&ref_loc=*\nDisallow: /marketplace/actions/download*?setup_organization=*\nDisallow: /marketplace/actions/download*&setup_organization=*\nDisallow: /marketplace/actions/download*?source_repo=*\nDisallow: /marketplace/actions/download*&source_repo=*\nDisallow: /marketplace/actions/download*?ref_page=*\nDisallow: /marketplace/actions/download*&ref_page=*\nDisallow: /marketplace/actions/download*?referrer=*\nDisallow: /marketplace/actions/download*&referrer=*\nDisallow: /marketplace/actions/download*?report=*\nDisallow: /marketplace/actions/download*&report=*\nDisallow: /marketplace/actions/download*?author=*\nDisallow: /marketplace/actions/download*&author=*\nDisallow: /marketplace/actions/download*?since=*\nDisallow: /marketplace/actions/download*&since=*\nDisallow: /marketplace/actions/download*?until=*\nDisallow: /marketplace/actions/download*&until=*\nDisallow: /marketplace/actions/download*?tab=*\nDisallow: /marketplace/actions/download*&tab=*\nDisallow: /marketplace/actions/download*?q=*\nDisallow: /marketplace/actions/download*&q=*\n\nUser-agent: Bytespider\nDisallow: /\n\nUser-agent: AdsBot-Google\nUser-agent: AdsBot-Google-Mobile\nDisallow: /*/*/pulse\nDisallow: /*/*/projects\nDisallow: /*/*/forks\nDisallow: /*/*/issues/new\nDisallow: /*/*/milestones/new\nDisallow: /*/*/issues/search\nDisallow: /*/*/commits/\nDisallow: /*/*/branches\nDisallow: /*/*/contributors\nDisallow: /*/*/tags\nDisallow: /*/*/stargazers\nDisallow: /*/*/watchers\nDisallow: /*/*/network\nDisallow: /*/*/graphs\nDisallow: /*/*/compare\nDisallow: /*/tree/\nDisallow: /gist/\nDisallow: /*/download\nDisallow: /*/revisions\nDisallow: /*/commits/*?author\nDisallow: /*/commits/*?path\nDisallow: /*/comments\nDisallow: /*/archive/\nDisallow: /*/blame/\nDisallow: /*/raw/\nDisallow: /*/cache/\nDisallow: /.git/\nDisallow: */.git/\nDisallow: /*.git$\nDisallow: /search/advanced\nDisallow: /search$\nDisallow: /*.atom$\nDisallow: /ekansa/Open-Context-Data\nDisallow: /ekansa/opencontext-*\nDisallow: */tarball/\nDisallow: */zipball/\nDisallow: /*commits?author=*\nDisallow: /*report-abuse?report=*\nDisallow: /account-login\nDisallow: /Explodingstuff/\nDisallow: /copilot/\nDisallow: /copilot/c/\nDisallow: /marketplace/*/*?tab=readme$\nDisallow: /marketplace/*?*?tab=readme$\nDisallow: /marketplace/actions?tab=readme$\nDisallow: /marketplace/free-trials?tab=readme$\nDisallow: /marketplace/manage?tab=readme$\nDisallow: /marketplace/models?tab=readme$\nDisallow: /marketplace/new?tab=readme$\nDisallow: /marketplace/publishers?tab=readme$\nDisallow: /marketplace/recently-added?tab=readme$\nDisallow: /marketplace/*/*?tab=transparency$\nDisallow: /marketplace/*?*?tab=transparency$\nDisallow: /marketplace/actions?tab=transparency$\nDisallow: /marketplace/free-trials?tab=transparency$\nDisallow: /marketplace/manage?tab=transparency$\nDisallow: /marketplace/models?tab=transparency$\nDisallow: /marketplace/new?tab=transparency$\nDisallow: /marketplace/publishers?tab=transparency$\nDisallow: /marketplace/recently-added?tab=transparency$\nDisallow: /*?source=*\nDisallow: /*&source=*\nDisallow: /*?ref_cta=*\nDisallow: /*&ref_cta=*\nDisallow: /*?plan=*\nDisallow: /*&plan=*\nDisallow: /*?return_to=*\nDisallow: /*&return_to=*\nDisallow: /*?ref_loc=*\nDisallow: /*&ref_loc=*\nDisallow: /*?setup_organization=*\nDisallow: /*&setup_organization=*\nDisallow: /*?source_repo=*\nDisallow: /*&source_repo=*\nDisallow: /*?ref_page=*\nDisallow: /*&ref_page=*\nDisallow: /*?referrer=*\nDisallow: /*&referrer=*\nDisallow: /*?report=*\nDisallow: /*&report=*\nDisallow: /*?author=*\nDisallow: /*&author=*\nDisallow: /*?since=*\nDisallow: /*&since=*\nDisallow: /*?until=*\nDisallow: /*&until=*\nDisallow: /*?tab=*\nDisallow: /*&tab=*\nDisallow: /*?q=*\nDisallow: /*&q=*\n\nUser-agent: bingbot\nDisallow: /ekansa/Open-Context-Data\nDisallow: /ekansa/opencontext-*\nDisallow: /account-login\nDisallow: */tarball/\nDisallow: */zipball/\nDisallow: /Explodingstuff/\nDisallow: /copilot/\nDisallow: /copilot/c/\n\nUser-agent: adidxbot\nDisallow: /ekansa/Open-Context-Data\nDisallow: /ekansa/opencontext-*\nDisallow: /account-login\nDisallow: */tarball/\nDisallow: */zipball/\nDisallow: /Explodingstuff/\nDisallow: /copilot/\nDisallow: /copilot/c/\n\nUser-agent: BingPreview\nDisallow: /ekansa/Open-Context-Data\nDisallow: /ekansa/opencontext-*\nDisallow: /account-login\nDisallow: */tarball/\nDisallow: */zipball/\nDisallow: /Explodingstuff/\nDisallow: /copilot/\nDisallow: /copilot/c/\n\nUser-agent: baidu\ncrawl-delay: 1\n\n\nUser-agent: *\nAllow: /*?tab=achievements&achievement=*\nAllow: /marketplace/*?tab=readme$\nAllow: /marketplace/*?tab=transparency$\nAllow: /topics/download*\nAllow: /topics/comments*\nAllow: /marketplace/actions/download*\nDisallow: /*/*/pulse\nDisallow: /*/*/projects\nDisallow: /*/*/forks\nDisallow: /*/*/issues/new\nDisallow: /*/*/milestones/new\nDisallow: /*/*/issues/search\nDisallow: /*/*/commits/\nDisallow: /*/*/branches\nDisallow: /*/*/contributors\nDisallow: /*/*/tags\nDisallow: /*/*/stargazers\nDisallow: /*/*/watchers\nDisallow: /*/*/network\nDisallow: /*/*/graphs\nDisallow: /*/*/compare\nDisallow: /*/tree/\nDisallow: /gist/\nDisallow: /*/download\nDisallow: /*/revisions\nDisallow: /*/commits/*?author\nDisallow: /*/commits/*?path\nDisallow: /*/comments\nDisallow: /*/archive/\nDisallow: /*/blame/\nDisallow: /*/raw/\nDisallow: /*/cache/\nDisallow: /.git/\nDisallow: */.git/\nDisallow: /*.git$\nDisallow: /search/advanced\nDisallow: /search$\nDisallow: /*.atom$\nDisallow: /ekansa/Open-Context-Data\nDisallow: /ekansa/opencontext-*\nDisallow: */tarball/\nDisallow: */zipball/\nDisallow: /*commits?author=*\nDisallow: /*report-abuse?report=*\nDisallow: /account-login\nDisallow: /Explodingstuff/\nDisallow: /copilot/\nDisallow: /copilot/c/\nDisallow: /marketplace/*/*?tab=readme$\nDisallow: /marketplace/*?*?tab=readme$\nDisallow: /marketplace/actions?tab=readme$\nDisallow: /marketplace/free-trials?tab=readme$\nDisallow: /marketplace/manage?tab=readme$\nDisallow: /marketplace/models?tab=readme$\nDisallow: /marketplace/new?tab=readme$\nDisallow: /marketplace/publishers?tab=readme$\nDisallow: /marketplace/recently-added?tab=readme$\nDisallow: /marketplace/*/*?tab=transparency$\nDisallow: /marketplace/*?*?tab=transparency$\nDisallow: /marketplace/actions?tab=transparency$\nDisallow: /marketplace/free-trials?tab=transparency$\nD…"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "GPTBot",
              "rule": "Allow: /features"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "OAI-SearchBot",
              "rule": "Allow: /features"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ClaudeBot",
              "rule": "Allow: /features"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "PerplexityBot",
              "rule": "Allow: /features"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": false,
              "countedAsBlock": true,
              "specific": true,
              "agent": "Bytespider",
              "rule": "Disallow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://github.com/llms.txt",
            "contentType": "text/plain",
            "bytes": 28658,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 406,
            "error": "",
            "finalUrl": "https://github.com/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 0,
            "checkStatus": "warn",
            "pass": false,
            "looksLikeSitemap": false,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "meta-ai",
      "name": "Meta AI",
      "url": "https://ai.meta.com",
      "category": "Assistant",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:18.796Z",
      "result": {
        "ok": true,
        "inputUrl": "https://ai.meta.com/",
        "finalUrl": "https://ai.meta.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 3417,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://ai.meta.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://ai.meta.com/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "fail",
                "detail": "9 words in the raw HTML, ignoring script and style. No H1 heading. Counted from the first 512 KB.",
                "fix": "Render the page on the server, or pre-render it, so the description is in the HTML before JavaScript runs."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: WebPage, Organization, Brand, Corporation, ImageObject, WebSite.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "warn",
                "detail": "/sitemap.xml returned HTTP 404, and no usable sitemap was listed in robots.txt.",
                "fix": "Publish an XML sitemap at /sitemap.xml, or point a Sitemap line in robots.txt at one, listing your key pages."
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=\"utf-8\"",
          "bytes": 524288,
          "words": 9,
          "h1": "",
          "title": "AI at Meta: Meta AI Products, Models and Research",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "WebPage",
            "Organization",
            "Brand",
            "Corporation",
            "ImageObject",
            "WebSite"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://ai.meta.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://ai.meta.com/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 859,
            "sitemapUrls": [
              "https://ai.meta.com/sitemap/ai_meta_com_sitemap.xml.gz"
            ],
            "textLength": 859,
            "text": "# Notice: Collection of data on Facebook through automated means is\n# prohibited unless you have express written permission from Facebook\n# and may only be conducted for the limited purpose contained in said\n# permission.\n# See: http://www.facebook.com/apps/site_scraping_tos_terms.php\n\nUser-agent: facebookexternalhit\nAllow: *\n\nUser-agent: meta-externalads\nAllow: *\n\nUser-agent: *\nDisallow: /*cursor=\nDisallow: /*fb_comment_id=\nDisallow: /ajax/\nDisallow: /tealium/\nDisallow: /intern/\nDisallow: /internal/\nDisallow: /login/\nDisallow: /oidc/callback/\nDisallow: /*.php\n\nUser-agent: PetalBot\nDisallow: /\n\nUser-agent: Scrapy\nDisallow: /\n\nUser-agent: uptimerobot\nDisallow: /\n\nUser-agent: viberbot\nDisallow: /\n\nUser-agent: YaK\nDisallow: /\n\nUser-agent: Yandex\nDisallow: /\n\nUser-agent: Yeti\nDisallow: /\n\nSitemap: https://ai.meta.com/sitemap/ai_meta_com_sitemap.xml.gz"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://ai.meta.com/llms.txt/",
            "contentType": "text/html; charset=\"utf-8\"",
            "bytes": 156748,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://ai.meta.com/sitemap.xml/",
            "contentType": "text/html; charset=\"utf-8\"",
            "bytes": 156933,
            "checkStatus": "warn",
            "pass": false,
            "looksLikeSitemap": false,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "deepseek",
      "name": "DeepSeek",
      "url": "https://www.deepseek.com",
      "category": "Assistant",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:23.215Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.deepseek.com/",
        "finalUrl": "https://www.deepseek.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 1700,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.deepseek.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.deepseek.com/ · HTTP 200 · 115583 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "222 words in the raw HTML, ignoring script and style. H1: “探索未至之境”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.deepseek.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html",
          "bytes": 115583,
          "words": 222,
          "h1": "探索未至之境",
          "title": "DeepSeek | 深度求索",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.deepseek.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.deepseek.com/robots.txt",
            "contentType": "text/plain",
            "bytes": 70,
            "sitemapUrls": [
              "https://www.deepseek.com/sitemap.xml"
            ],
            "textLength": 70,
            "text": "User-Agent: *\nAllow: /\n\nSitemap: https://www.deepseek.com/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://www.deepseek.com/llms.txt",
            "contentType": "text/html",
            "bytes": 115583,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.deepseek.com/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 4391,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "mistral",
      "name": "Mistral AI",
      "url": "https://mistral.ai",
      "category": "Assistant",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:25.918Z",
      "result": {
        "ok": true,
        "inputUrl": "https://mistral.ai/",
        "finalUrl": "https://mistral.ai/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 1753,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://mistral.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://mistral.ai/ · HTTP 200 · 341402 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "warn",
                "detail": "832 words in the raw HTML, ignoring script and style. No H1 heading.",
                "fix": "Add a text H1 in the HTML so crawlers have a main heading. The word count itself is fine."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, PostalAddress, Person, WebPage, ContactPoint, WebSite.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 5477 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://mistral.ai/sitemap-index.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 341402,
          "words": 832,
          "h1": "",
          "title": "Mistral | #1 in Sovereign AI: Frontier Open Models You Own",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Organization",
            "PostalAddress",
            "Person",
            "WebPage",
            "ContactPoint",
            "WebSite"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://mistral.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://mistral.ai/robots.txt",
            "contentType": "text/plain; charset=UTF-8",
            "bytes": 70,
            "sitemapUrls": [
              "https://mistral.ai/sitemap-index.xml"
            ],
            "textLength": 70,
            "text": "User-agent: *\nAllow: /\n\nSitemap: https://mistral.ai/sitemap-index.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://mistral.ai/llms.txt",
            "contentType": "text/plain; charset=UTF-8",
            "bytes": 5477,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://mistral.ai/sitemap-index.xml",
            "contentType": "application/xml",
            "bytes": 224,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "cohere",
      "name": "Cohere",
      "url": "https://cohere.com",
      "category": "Assistant",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:28.674Z",
      "result": {
        "ok": true,
        "inputUrl": "https://cohere.com/",
        "finalUrl": "https://cohere.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1809,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://cohere.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://cohere.com/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1187 words in the raw HTML, ignoring script and style. H1: “Your AI. Your rules.”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 4805 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://cohere.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 1187,
          "h1": "Your AI. Your rules.",
          "title": "Enterprise AI: Private, Secure, Customizable | Cohere",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Organization"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://cohere.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://cohere.com/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 352,
            "sitemapUrls": [
              "https://cohere.com/sitemap.xml"
            ],
            "textLength": 352,
            "text": "User-Agent: *\nAllow: /\nDisallow: /helloworld\nDisallow: /project-pursue\nDisallow: /labormap\nDisallow: /mcp-landscape\nDisallow: /mcp-expertise\nDisallow: /studio\nDisallow: /studio-cohere-labs\nDisallow: /studio-mops\nDisallow: /studio-blog\nDisallow: /studio-campaign\nDisallow: /studio-events\nDisallow: /studio-legal\n\nSitemap: https://cohere.com/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://cohere.com/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 4805,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://cohere.com/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 122839,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "huggingface",
      "name": "Hugging Face",
      "url": "https://huggingface.co",
      "category": "Platform",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:31.485Z",
      "result": {
        "ok": true,
        "inputUrl": "https://huggingface.co/",
        "finalUrl": "https://huggingface.co/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 1631,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://huggingface.co/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://huggingface.co/ · HTTP 200 · 176534 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "667 words in the raw HTML, ignoring script and style. H1: “The AI community building the future.”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $20, $0.60.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://huggingface.co/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 176534,
          "words": 667,
          "h1": "The AI community building the future.",
          "title": "Hugging Face – The AI community building the future.",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [
            "$20",
            "$0.60"
          ],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://huggingface.co/robots.txt.",
            "status": 200,
            "finalUrl": "https://huggingface.co/robots.txt",
            "contentType": "text/plain",
            "bytes": 68,
            "sitemapUrls": [
              "https://huggingface.co/sitemap.xml"
            ],
            "textLength": 68,
            "text": "User-agent: *\nAllow: /\n\nSitemap: https://huggingface.co/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://huggingface.co/llms.txt",
            "contentType": "text/html; charset=utf-8",
            "bytes": 52262,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://huggingface.co/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 692,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "midjourney",
      "name": "Midjourney",
      "url": "https://www.midjourney.com",
      "category": "Image",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:34.118Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.midjourney.com/",
        "finalUrl": "https://www.midjourney.com/",
        "checkedPath": "/",
        "pageStatus": 403,
        "truncated": false,
        "elapsedMs": 1669,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "HTTP 403",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "warn",
                "detail": "GPTBot: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "warn",
                "detail": "OAI-SearchBot: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "warn",
                "detail": "ChatGPT-User: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "warn",
                "detail": "ClaudeBot: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "warn",
                "detail": "PerplexityBot: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "warn",
                "detail": "Google-Extended: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "warn",
                "detail": "Applebot-Extended: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "warn",
                "detail": "CCBot: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "warn",
                "detail": "Bytespider: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "Couldn't read robots.txt. xAI has not published a crawler user-agent, so there is no token that reliably allows or blocks Grok.",
                "fix": "Keep the page's facts in the raw HTML. robots.txt cannot reliably control Grok until xAI publishes a token."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.midjourney.com/ · HTTP 403 · 5845 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "page-http",
                "name": "Page response",
                "hint": "HTTP status",
                "status": "warn",
                "detail": "The URL returned HTTP 403.",
                "fix": "Open the exact URL visitors and crawlers should read. This score is for the response this address returned."
              },
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "fail",
                "detail": "The URL returned HTTP 403 and only 9 visible words. This is not the page content.",
                "fix": "Check the exact public URL. A 4xx or 5xx response is what a crawler may keep."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 403.",
                "fix": "Serve /llms.txt as a public plain-text file with HTTP 200."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "warn",
                "detail": "/sitemap.xml returned HTTP 403, and no usable sitemap was listed in robots.txt.",
                "fix": "Publish an XML sitemap at /sitemap.xml, or point a Sitemap line in robots.txt at one, listing your key pages."
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 5845,
          "words": 9,
          "h1": "",
          "title": "Just a moment...",
          "challenge": true,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "unavailable",
            "note": "HTTP 403",
            "status": 403,
            "finalUrl": "https://www.midjourney.com/robots.txt",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 5897,
            "sitemapUrls": [],
            "textLength": 5897,
            "text": "<!DOCTYPE html><html lang=\"en-US\"><head><title>Just a moment...</title><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"><meta name=\"robots\" content=\"noindex,nofollow\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><meta http-equiv=\"content-security-policy\" content=\"default-src &#39;none&#39;; script-src &#39;nonce-m5tvuZBaoUVFaExaMJn9Ce&#39; &#39;unsafe-eval&#39; https://challenges.cloudflare.com; script-src-attr &#39;none&#39;; style-src &#39;unsafe-inline&#39;; img-src &#39;self&#39; https://challenges.cloudflare.com; connect-src &#39;self&#39; https://challenges.cloudflare.com; frame-src &#39;self&#39; https://challenges.cloudflare.com blob:; child-src &#39;self&#39; https://challenges.cloudflare.com blob:; worker-src blob:; form-action http: https:; base-uri &#39;self&#39;\"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}#challenge-error-text{background-image:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+\");background-repeat:no-repeat;background-size:contain;padding-left:34px}</style><meta http-equiv=\"refresh\" content=\"360\"></head><body><div class=\"main-wrapper\" role=\"main\"><div class=\"main-content\"><noscript><div class=\"h2\"><span id=\"challenge-error-text\">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script nonce=\"m5tvuZBaoUVFaExaMJn9Ce\">(function(){window._cf_chl_opt = {cFPWv: 'g',cH: 'FxAnHa5az3QKsFcMwrn.vsNlQ3rJKOQYg5wsh.jrJpA-1791941134-1.2.1.1-mKkG106RW2zVSVkLMfLISWFHSHAE8BW7Q2j6krS_GB0XefdQ4AtVOgTcQgQ1ibpR',cITimeS: '1791941134',cN: 'm5tvuZBaoUVFaExaMJn9Ce',cRay: 'a4a2ca7bd86092aa',cTplC:0,cTplO:0,cTplV:5,cType: 'managed',cUPMDTk:\"/robots.txt?__cf_chl_tk=wnnHaGE0GwkrF4iGqOp.MIlxy.qVb6NpEvnVwMLkLs8-1791941134-1.0.1.1-OdvnPiAs57psnIdu6FILZfjG_FcQcMJ.8ED6mSJpRhk\",cvId: '3',cZone: 'www.midjourney.com',fa:\"/robots.txt?__cf_chl_f_tk=wnnHaGE0GwkrF4iGqOp.MIlxy.qVb6NpEvnVwMLkLs8-1791941134-1.0.1.1-OdvnPiAs57psnIdu6FILZfjG_FcQcMJ.8ED6mSJpRhk\",md: 'a.jPDMeOVZfEdZkSyX_KBnVwYyIdq1mku6Rkr2s5gYc-1791941134-1.2.1.1-ROhKqli4YFfE04U1E7c_1ST8X_Bo2a06qBG9D63qdc7azZ0omE9XAl1Hohe1ibShuxsuX_PwXo1LoTrijX7jkb5r_gLs5kHv_3d5yO7YVm1gp72t1oSBZf0F5b4lGP.Pj8otfQL568055z9TNQlmMssxiAFaEQyVG.EI5H94xA_RyQb74S8lboZ5bQlijx3hEjsPfW1JTyc3f3HaoG0vlyVLrNLvWPJTRvFv33VdhiSknXqAKerxOQvVx6Zcjk.VD9477dbg1qcJWbSo3cOGsTIKrRPXeundVA3WJwRzSH07V5H3gtkZfjg4MFKX6TaNvxU6bhQMaE3qQpVxPZ_EXIhPG7b77QFEXO2y3ugPmd0E4Jj6gGNDu4SghQ4FFU6evu7I2rduPW6c7IVbjP2NUmdfCqSusGIn8NrVWzJrr_WQL9Kft.RqCNXxz2NYTV9XR2NTzjJrlmbpqtoaK2r1jszIwwSn65UKh3.xQSaNz88xowVUELltAinhzeA1CPo8Z.4ICnI9galN_ao8Vzko4yEuX3MMlPiIJ4IMECEahneIDHLr2LN70txTyEWPmmXo4.MJvf5JQM1NY.YZoa9AcIu1pw0zMDVky9lVwpvEabo1ekg3U8Dx2YeG1yqeFh9rtqbnFu7csGjGMAKmux2mW.XsvGDsrXV25mJp7GlRIRq7jBDonzR_lTyCcrz.nmvbfs25eEhTi_X3.HN3C9No5LjY82FDm7BlSgLljAzde5ZXAG5kx10V4PWnEeEMh9fo4.FMlif3hVUIKR.8szim1WK7cFRoIkDxrrK2sdl1oPReEKXzPR1N7Q6p8xML3CRz72hbiqle98WriYAhPsRLuT_JbHGjWihJZKzsvVIxlXyqd8kPtjXJwgBwkOTlXTgmNjSsrlq26zhrrqG1dUtnbsTTuUpGNMLkSx_SDQAN.N1GQmne78ukQ0bEFQcj4I3FD1r2zpjc9A6f1W0zVBkJ2ggx0LmQy1AvTnbHHW8UuPtTKBt_SbV7HqBqNh7MABCXqaJnxduG1g.lekK7Mw_B7YPg0tGr3Ehh6.yJRXBdm3DynK7JXpTnKTE_JSTj5xQP9bjYPSK1pdQm9fWkZ_HDqL_ftI.nXmByxBTadNAj6PasuG_Od2rL5oZvFNQWiMwtz2ZNTStqDCmD9IcAw0FkAL7qJnrutAec0tsFoQgZ3I6qkBnzPtwNzdfNwH9wukEG0U266qFbxOP1EQtfoL9eO1wmwcVAXQxEMutphYG9Y.UOEKJnAW9hVUDdqgJENuxa_M7skCx4t11wh7PAY3og8g',mdrd: 'mId2q7eMpegdw3SeFHOUT1DVBKYh0e2w8QxoFvpP2mI-1791941134-1.2.1.1-WGjZmMb4b3rNmbUNtCVmYg6bI.Dgu346FAIhuEUs0btxjdec9wT6CKbR_45y6yu9vzKvptRyoUBRl1cBxNV5iT4r3P6eNoIN6osGf3RL2UIpSe8P_9cY9FkUF8v5fVgOssKuk1S4a5tlMb4rhryXUeox.8c8UBODAeTrkaQwIGsI5pnAWJmT3p4iRgFrHj67wuGqBlelnbAlUhWONCOXuD.dkUsmUdPB59XocyoMVQPGK4J2F0kIinGq2Gl6Ijwjjr_sMkHqE536nR.ojnq9tauWs6zO2ffrOTJ1wOnf1u5tC5Y5lJVxwiudXZNv0XWYmqFI0BhBTmaWWQw9UUv84p7Z4GXX9Qp_rEWy2GEkIbjO79CVr4xeHkV7x14HGtKs7N3pwgyhtTAV0hRG8esYKq0BrTlwW3B_Td8YBhzQRutE_MCcEio0m4A8.scbxNzFxaP1KdVmI4iI.OPVXfpcLnv3F3smGuRsQCjIHS4XzMSr5xA3kXZeyn_zu1hi545s',};var a = document.createElement('script');a.nonce = 'm5tvuZBaoUVFaExaMJn9Ce';a.src = '/cdn-cgi/challenge-platform/h/g/orchestrate/chl_page/v1?ray=a4a2ca7bd86092aa';window._cf_chl_opt.cOgUHash = location.hash === '' && location.href.indexOf('#') !== -1 ? '#' : location.hash;window._cf_chl_opt.cOgUQuery = location.search === '' && location.href.slice(0, location.href.length - window._cf_chl_opt.cOgUHash.length).indexOf('?') !== -1 ? '?' : location.search;if (window.history && window.history.replaceState) {var ogU = location.pathname + window._cf_chl_opt.cOgUQuery + window._cf_chl_opt.cOgUHash;history.replaceState(null, null,\"/robots.txt?__cf_chl_rt_tk=wnnHaGE0GwkrF4iGqOp.MIlxy.qVb6NpEvnVwMLkLs8-1791941134-1.0.1.1-OdvnPiAs57psnIdu6FILZfjG_FcQcMJ.8ED6mSJpRhk\"+ window._cf_chl_opt.cOgUHash);a.onload = function() {history.replaceState(null, null, ogU);}}document.getElementsByTagName('head')[0].appendChild(a);}());</script></body></html>"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": null,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": null,
              "specific": false,
              "agent": "",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 403,
            "error": "",
            "finalUrl": "https://www.midjourney.com/llms.txt",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 5891,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 403,
            "error": "",
            "finalUrl": "https://www.midjourney.com/sitemap.xml",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 5900,
            "checkStatus": "warn",
            "pass": false,
            "looksLikeSitemap": false,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "stability",
      "name": "Stability AI",
      "url": "https://stability.ai",
      "category": "Image",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:36.790Z",
      "result": {
        "ok": true,
        "inputUrl": "https://stability.ai/",
        "finalUrl": "https://stability.ai/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1701,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://stability.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: GPTBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: ClaudeBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: Google-Extended. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: Applebot-Extended. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: CCBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: Bytespider. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://stability.ai/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "warn",
                "detail": "919 words in the raw HTML, ignoring script and style. No H1 heading. Counted from the first 512 KB.",
                "fix": "Add a text H1 in the HTML so crawlers have a main heading. The word count itself is fine."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $232, $76.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "warn",
                "detail": "JSON-LD types: WebSite.",
                "fix": "Add SoftwareApplication or Product JSON-LD with an Offer so the name, description and price are explicit."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://stability.ai/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html;charset=utf-8",
          "bytes": 524288,
          "words": 919,
          "h1": "",
          "title": "Stability AI",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [
            "$232",
            "$76"
          ],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "WebSite"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://stability.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://stability.ai/robots.txt",
            "contentType": "text/plain;charset=utf-8",
            "bytes": 1503,
            "sitemapUrls": [
              "https://stability.ai/sitemap.xml"
            ],
            "textLength": 1503,
            "text": "# Squarespace Robots Txt\n\nUser-agent: AI2Bot\nUser-agent: Ai2Bot-Dolma\nUser-agent: aiHitBot\nUser-agent: Amazonbot\nUser-agent: anthropic-ai\nUser-agent: Applebot-Extended\nUser-agent: Bytespider\nUser-agent: CCBot\nUser-agent: ClaudeBot\nUser-agent: cohere-ai\nUser-agent: cohere-training-data-crawler\nUser-agent: DuckAssistBot\nUser-agent: FacebookBot\nUser-agent: Google-Extended\nUser-agent: GoogleOther\nUser-agent: GoogleOther-Image\nUser-agent: GoogleOther-Video\nUser-agent: GPTBot\nUser-agent: img2dataset\nUser-agent: Meta-ExternalAgent\nUser-agent: MyCentralAIScraperBot\nUser-agent: omgili\nUser-agent: omgilibot\nUser-agent: Quora-Bot\nUser-agent: TikTokSpider\nUser-agent: YouBot\nUser-agent: AdsBot-Google\nUser-agent: AdsBot-Google-Mobile\nUser-agent: AdsBot-Google-Mobile-Apps\nUser-agent: *\nDisallow: /config\nDisallow: /search\nDisallow: /account$\nDisallow: /account/\nDisallow: /commerce/digital-download/\nDisallow: /api/\nAllow: /api/ui-extensions/\nDisallow: /static/\nDisallow:/*?author=*\nDisallow:/*&author=*\nDisallow:/*?tag=*\nDisallow:/*&tag=*\nDisallow:/*?month=*\nDisallow:/*&month=*\nDisallow:/*?view=*\nDisallow:/*&view=*\nDisallow:/*?format=json\nDisallow:/*&format=json\nDisallow:/*?format=page-context\nDisallow:/*&format=page-context\nDisallow:/*?format=main-content\nDisallow:/*&format=main-content\nDisallow:/*?format=json-pretty\nDisallow:/*&format=json-pretty\nDisallow:/*?format=ical\nDisallow:/*&format=ical\nDisallow:/*?reversePaginate=*\nDisallow:/*&reversePaginate=*\n\nSitemap: https://stability.ai/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "GPTBot",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ClaudeBot",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Google-Extended",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Applebot-Extended",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "CCBot",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Bytespider",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://stability.ai/llms.txt",
            "contentType": "text/plain;charset=utf-8",
            "bytes": 0,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://stability.ai/sitemap.xml",
            "contentType": "text/xml;charset=utf-8",
            "bytes": 283772,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "runway",
      "name": "Runway",
      "url": "https://runwayml.com",
      "category": "Video",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:39.496Z",
      "result": {
        "ok": true,
        "inputUrl": "https://runwayml.com/",
        "finalUrl": "https://runway.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1754,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://runway.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://runway.com/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "warn",
                "detail": "100 words in the raw HTML, ignoring script and style. H1: “Building Real-World Intelligence”. Counted from the first 512 KB.",
                "fix": "Add a plain-text H1 and a short paragraph (what it is, and who it's for) to the initial HTML."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, Person, ContactPoint, SoftwareApplication, WebSite.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 8035 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://runway.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 100,
          "h1": "Building Real-World Intelligence",
          "title": "Runway | Building Real-World Intelligence",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Organization",
            "Person",
            "ContactPoint",
            "SoftwareApplication",
            "WebSite"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://runway.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://runway.com/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 666,
            "sitemapUrls": [
              "https://runway.com/sitemap.xml"
            ],
            "textLength": 664,
            "text": "User-agent: *\nAllow: /\n\n# Gated assets. The landing pages at /reports/<slug> are indexable; the PDFs\n# they give away are not. Each download response also carries an\n# `X-Robots-Tag: noindex` header, which is the enforcing half — this rule just\n# keeps well-behaved crawlers from spending requests on an endpoint that\n# answers 404 without a form submission.\nDisallow: /api/gated-resource/\n\n# Hosted files (/files/<slug>, Sanity `hostedFile`) are deliberately NOT listed\n# here: each is noindex or indexable per document, carried as an X-Robots-Tag on\n# its own response, and a blanket Disallow would override that opt-in.\n\nSitemap: https://runway.com/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://runway.com/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 8035,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://runway.com/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 68659,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "leonardo",
      "name": "Leonardo.Ai",
      "url": "https://leonardo.ai",
      "category": "Image",
      "notable": false,
      "checkedAt": "2026-10-14T01:25:42.252Z",
      "result": {
        "ok": true,
        "inputUrl": "https://leonardo.ai/",
        "finalUrl": "https://leonardo.ai/",
        "checkedPath": "/",
        "pageStatus": 403,
        "truncated": false,
        "elapsedMs": 1962,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://leonardo.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://leonardo.ai/ · HTTP 403 · 5817 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "page-http",
                "name": "Page response",
                "hint": "HTTP status",
                "status": "warn",
                "detail": "The URL returned HTTP 403.",
                "fix": "Open the exact URL visitors and crawlers should read. This score is for the response this address returned."
              },
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "fail",
                "detail": "The URL returned HTTP 403 and only 9 visible words. This is not the page content.",
                "fix": "Check the exact public URL. A 4xx or 5xx response is what a crawler may keep."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "warn",
                "detail": "/sitemap.xml returned HTTP 403, and no usable sitemap was listed in robots.txt.",
                "fix": "Publish an XML sitemap at /sitemap.xml, or point a Sitemap line in robots.txt at one, listing your key pages."
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 5817,
          "words": 9,
          "h1": "",
          "title": "Just a moment...",
          "challenge": true,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://leonardo.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://leonardo.ai/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 270,
            "sitemapUrls": [
              "https://leonardo.ai/sitemaps.xml"
            ],
            "textLength": 270,
            "text": "User-agent: *\nDisallow: /wp-admin/\nDisallow: /search/*\nDisallow: /?s=*\nDisallow: /*?s=\nDisallow: /*?__hstc=\nDisallow: /*?__hssc=\nDisallow: /*?__hsfp=\nDisallow: /*?hubs_content=\nDisallow: /*?utm_\nAllow: /wp-admin/admin-ajax.php\n\nSitemap: https://leonardo.ai/sitemaps.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://leonardo.ai/llms.txt",
            "contentType": "text/html; charset=utf-8",
            "bytes": 125977,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 403,
            "error": "",
            "finalUrl": "https://leonardo.ai/sitemap.xml",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 5850,
            "checkStatus": "warn",
            "pass": false,
            "looksLikeSitemap": false,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "ideogram",
      "name": "Ideogram",
      "url": "https://ideogram.ai",
      "category": "Image",
      "notable": false,
      "checkedAt": "2026-10-14T01:25:45.218Z",
      "result": {
        "ok": true,
        "inputUrl": "https://ideogram.ai/",
        "finalUrl": "https://ideogram.ai/",
        "checkedPath": "/",
        "pageStatus": 403,
        "truncated": false,
        "elapsedMs": 1701,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://ideogram.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://ideogram.ai/ · HTTP 403 · 5817 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "page-http",
                "name": "Page response",
                "hint": "HTTP status",
                "status": "warn",
                "detail": "The URL returned HTTP 403.",
                "fix": "Open the exact URL visitors and crawlers should read. This score is for the response this address returned."
              },
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "fail",
                "detail": "The URL returned HTTP 403 and only 9 visible words. This is not the page content.",
                "fix": "Check the exact public URL. A 4xx or 5xx response is what a crawler may keep."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 849 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "warn",
                "detail": "/sitemap.xml returned HTTP 403, and no usable sitemap was listed in robots.txt.",
                "fix": "Publish an XML sitemap at /sitemap.xml, or point a Sitemap line in robots.txt at one, listing your key pages."
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 5817,
          "words": 9,
          "h1": "",
          "title": "Just a moment...",
          "challenge": true,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://ideogram.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://ideogram.ai/robots.txt",
            "contentType": "text/plain",
            "bytes": 1111,
            "sitemapUrls": [
              "https://ideogram.ai/sitemap-index.xml"
            ],
            "textLength": 1101,
            "text": "# Allow social media bots to unfurl our share links on /g/ permalinks.\n# Each User-agent block is independent per the robots.txt spec, so the\n# Disallow: /g/ in the * block below does not affect these named bots —\n# they need an explicit Allow here to crawl /g/ for unfurl metadata.\nUser-agent: Discordbot\nAllow: /g/\n\nUser-agent: facebookexternalhit\nAllow: /g/\n\nUser-agent: LinkedInBot\nAllow: /g/\n\nUser-agent: Twitterbot\nAllow: /g/\n\nUser-agent: Googlebot\nAllow: /g/\n\n# Default crawler policy.\n# Allow the marketing surface (everything served by ideogram-ai/website).\n# Disallow app surfaces owned by ideogram-ai/ui:\n#   /api/  — REST endpoints. Do not Allow /api/learn or /api/pricing; those\n#            marketing dups were retired. Top-level /api-* 301s in nginx.\n#   /g/    — generation permalinks (too many, low search value; social-bot\n#            allow rules above carve out the unfurling case)\n#   /t/    — gallery / feed / explore\n#   /u/    — user profile pages\nUser-agent: *\nAllow: /\nDisallow: /api/\nDisallow: /g/\nDisallow: /t/\nDisallow: /u/\n\nSitemap: https://ideogram.ai/sitemap-index.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://ideogram.ai/llms.txt",
            "contentType": "text/plain",
            "bytes": 849,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 403,
            "error": "",
            "finalUrl": "https://ideogram.ai/sitemap.xml",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 5871,
            "checkStatus": "warn",
            "pass": false,
            "looksLikeSitemap": false,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "firefly",
      "name": "Adobe Firefly",
      "url": "https://www.adobe.com/products/firefly.html",
      "category": "Image",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:47.924Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.adobe.com/products/firefly.html",
        "finalUrl": "https://www.adobe.com/products/firefly.html",
        "checkedPath": "/products/firefly.html",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 3362,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /products/firefly.html. Fetched https://www.adobe.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /products/firefly.html. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /products/firefly.html. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /products/firefly.html. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /products/firefly.html. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /products/firefly.html. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /products/firefly.html. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /products/firefly.html. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /products/firefly.html. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /products/firefly.html. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.adobe.com/products/firefly.html · HTTP 200 · 63197 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1852 words in the raw HTML, ignoring script and style. H1: “Adobe Firefly. Create stunning content faster.”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 10499 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "warn",
                "detail": "/sitemap.xml returned HTTP 404, and no usable sitemap was listed in robots.txt.",
                "fix": "Publish an XML sitemap at /sitemap.xml, or point a Sitemap line in robots.txt at one, listing your key pages."
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 63197,
          "words": 1852,
          "h1": "Adobe Firefly. Create stunning content faster.",
          "title": "Adobe Firefly - Free Generative AI for Creatives",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.adobe.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.adobe.com/robots.txt",
            "contentType": "text/plain; charset=UTF-8",
            "bytes": 10199,
            "sitemapUrls": [
              "https://www.adobe.com/cc-product.index.xml",
              "https://www.adobe.com/creativecloud/sitemap-index.xml",
              "https://www.adobe.com/acrobat/sitemap-index.xml",
              "https://www.adobe.com/home-sitemap.xml",
              "https://www.adobe.com/plans-catalog-sitemap.xml",
              "https://www.adobe.com/learn/sitemap_index.xml",
              "https://www.adobe.com/express/sitemap-index.xml",
              "https://www.adobe.com/naver.index.xml",
              "https://www.adobe.com/edu/sitemap-index.xml"
            ],
            "textLength": 10199,
            "text": "# The use of robots or other automated means to access the Adobe site\n# without the express permission of Adobe is strictly prohibited.\n# Notwithstanding the foregoing, Adobe may permit automated access to\n# access certain Adobe pages but solely for the limited purpose of\n# including content in publicly available search engines. Any other\n# use of robots or failure to obey the robots exclusion standards set\n# forth at http://www.robotstxt.org/ is strictly prohibited.\n\n# Details about Googlebot available at: http://www.google.com/bot.html\n# The Google search engine can see everything\nUser-agent: gsa-crawler-www \nAllow: /assets/globalnav/v1.1.4/css/globalnav.css\nAllow: /assets/globalnav/v1.1.4/*/globalnav.js\nAllow: /au/special/symposium\nAllow: /sea/special/symposium\nAllow: /*special/products/marketing-cloud/*.css$\nAllow: /*special/products/marketing-cloud/*.png$\nAllow: /*special/products/marketing-cloud/*.js$\nAllow: /www.adobe.com/special/ri/prod/assets/*.css$\nAllow: /www.adobe.com/special/ri/prod/assets/*.jpg$\nAllow: /www.adobe.com/special/ri/prod/assets/*.js$\nAllow: /www.adobe.com/special/ri/prod/assets/*.png$\nAllow: /www.adobe.com/special/retail-shopping-insights/\nAllow: /uk/special/landing/student/digitaledgeaward/\nAllow: /uk/special/landing/student/digitaledgeaward/\nAllow: /uk/special/landing/student/lovethejourney\nAllow: /fr/special/landing/student/lovethejourney\nDisallow: /assets/globalnav/\nDisallow: /*creativesuite/bridge\nDisallow: /cfusion/gpr/\nDisallow: /cfusion/search/\nDisallow: /cfusion/partnerportal/\nDisallow: /globalsearch\nDisallow: /cgi-local/\nDisallow: /de/products/index-notabs.html\nDisallow: /de/products/index-tabs.html\nDisallow: /devnet-archive/\nDisallow: /devnet/archive\nDisallow: /*devnet/tagsearch\nDisallow: /emea/eemeachannel/\nDisallow: /events/ciocouncil/\nDisallow: /events/executivecouncil/\nDisallow: /google_indexing/\nDisallow: /*.html_\nDisallow: /licensing/distribution/strategies/\nDisallow: /*limited/\nDisallow: /livedocs/\nDisallow: /*Ljava.lang.Object*\nDisallow: /products/acrobat/readstep2.html;JMICROSITE2SESSION*\nDisallow: /*products/flashplayer/distribution3.html\nDisallow: /*products/flashplayer/distribution4.html\nDisallow: /*special/\nDisallow: /*.sql$\nDisallow: /*supportservice/\nDisallow: /*.translate.html\nDisallow: /*products/adobeconnect/enterprise/trial.html\nDisallow: /*products/adobeconnect/enterprise/trial-check.html\nDisallow: /*products/adobeconnect/enterprise/trial-thankyou.html\nDisallow: /*products/adobeconnect/enterprise/trial-error.html\nDisallow: /*products/photoshop/selector\nDisallow: /*unsubscribe.html\nDisallow: /content/dam/acom/en/marketing-cloud/offers/pdf\nDisallow: /content/dam/www/us/en/adi/2020/pdfs/*\nDisallow: /content/dotcom/*.html$\nDisallow: /content/dam/www/us/en/offer/digital-trends-2020/digital-trends-2020-full-report.pdf\nDisallow: /plans-fragments/\nDisallow: /plans.modals*\n\n# The Omniture search engine can see everything\nUser-agent: Atomz/1.0\nDisallow: /devnet-archive/\nDisallow: /devnet/archive\nDisallow: /events/ciocouncil/\nDisallow: /events/executivecouncil/\nDisallow: /licensing/distribution/strategies/\nDisallow: /*limited/\nDisallow: /livedocs/\nDisallow: /products/flashplayer/distribution3.html\nDisallow: /products/flashplayer/distribution4.html\nDisallow: /*special/\nDisallow: /*.sql$\nDisallow: /*supportservice/\n\nUser-agent: *\nAllow: /assets/globalnav/v1.1.4/css/globalnav.css\nAllow: /assets/globalnav/v1.1.4/*globalnav.js\nAllow: /au/special/symposium\nAllow: /sea/special/symposium\nAllow: /*special/products/marketing-cloud/*.css$\nAllow: /*special/products/marketing-cloud/*.js$\nAllow: /*special/products/marketing-cloud/*.png$\nAllow: /www.adobe.com/special/ri/prod/assets/*.css$\nAllow: /www.adobe.com/special/ri/prod/assets/*.jpg$\nAllow: /www.adobe.com/special/ri/prod/assets/*.js$\nAllow: /www.adobe.com/special/ri/prod/assets/*.png$\nAllow: /www.adobe.com/special/retail-shopping-insights/\nAllow: /uk/special/landing/student/digitaledgeaward/\nAllow: /uk/special/landing/student/lovethejourney\nAllow: /fr/special/landing/student/lovethejourney\nAllow: /community/gallery$\nAllow: /community/gallery/assets$\nAllow: /community/gallery/challenges$\nDisallow: /assets/globalnav/\nDisallow: /*creativesuite/bridge\nDisallow: /cfusion/gpr/\nDisallow: /cfusion/search/\nDisallow: /cfusion/partnerportal/\nDisallow: /globalsearch\nDisallow: /cgi-local/\nDisallow: /de/products/index-notabs.html\nDisallow: /de/products/index-tabs.html\nDisallow: /devnet-archive/\nDisallow: /devnet/archive\nDisallow: /*devnet/tagsearch\nDisallow: /emea/eemeachannel/\nDisallow: /events/ciocouncil/\nDisallow: /events/executivecouncil/\nDisallow: /google_indexing/\nDisallow: /*.html_\nDisallow: /licensing/distribution/strategies/\nDisallow: /*limited/\nDisallow: /livedocs/\nDisallow: /*Ljava.lang.Object*\nDisallow: /products/acrobat/readstep2.html;JMICROSITE2SESSION*\nDisallow: /*products/flashplayer/distribution3.html\nDisallow: /*products/flashplayer/distribution4.html\nDisallow: /*special/\nDisallow: /*.sql$\nDisallow: /*supportservice/\nDisallow: /*.translate.html\nDisallow: /*products/adobeconnect/enterprise/trial.html\nDisallow: /*products/adobeconnect/enterprise/trial-check.html\nDisallow: /*products/adobeconnect/enterprise/trial-thankyou.html\nDisallow: /*products/adobeconnect/enterprise/trial-error.html\nDisallow: /*products/photoshop/selector\nDisallow: /*unsubscribe.html\nDisallow: /content/dam/acom/en/marketing-cloud/offers/pdf\nDisallow: /content/dotcom/*.html$\nDisallow: /plans-fragments/\nDisallow: /content/dam/www/us/en/offer/digital-trends-2020-in-media-and-entertainment-html/digital-trends-2020-in-media-and-entertainment.pdf\nDisallow: /content/dam/www/us/en/offer/digital-trends-2020-in-media-and-entertainment-html/digital-trends-2020-in-media-and-entertainment-DE.pdf\nDisallow: /content/dam/www/us/en/offer/digital-trends-2020-in-media-and-entertainment-html/digital-trends-2020-in-media-and-entertainment-EN-US.pdf\nDisallow: /content/dam/www/us/en/offer/digital-trends-2020-in-media-and-entertainment-html/digital-trends-2020-in-media-and-entertainment-EN.pdf\nDisallow: /content/dam/www/us/en/offer/digital-trends-2020-in-media-and-entertainment-html/digital-trends-2020-in-media-and-entertainment-ES.pdf\nDisallow: /content/dam/www/us/en/offer/digital-trends-2020-in-media-and-entertainment-html/digital-trends-2020-in-media-and-entertainment-FR.pdf\nDisallow: /content/dam/www/us/en/offer/digital-trends-2020-in-media-and-entertainment-html/digital-trends-2020-in-media-and-entertainment-IT.pdf\nDisallow: /content/dam/www/us/en/offer/digital-trends-2020-in-media-and-entertainment-html/digital-trends-2020-in-media-and-entertainment-JA.pdf\nDisallow: /content/dam/www/us/en/offer/digital-trends-2020-in-media-and-entertainment-html/digital-trends-2020-in-media-and-entertainment-KR.pdf\nDisallow: /content/dam/www/us/en/offer/digital-trends-2020-in-media-and-entertainment-html/digital-trends-2020-in-media-and-entertainment-zh-Hans.pdf\nDisallow: /content/dam/www/us/en/offer/digital-trends-2020-in-media-and-entertainment-html/digital-trends-2020-in-media-and-entertainment-zh-Hant.pdf\nDisallow: /content/dam/www/us/en/offer/digital-trends-2020-in-media-and-entertainment-html/digital_trends_21_core_report_TC_FA.pdf\nDisallow: /content/dam/dx/us/en/resources/reports/digital-trends-2021-in-high-tech/2021_Digital_Trends_High_Tech_in_Focus.pdf\nDisallow: /content/dam/dx/us/en/resources/digital-trends-2021-in-telecommunications-media-and-entertainment/Digital_Trends_2021_Media_Entertainment_and_Telecoms_Report.pdf\nDisallow: /content/dam/dx/us/en/resources/digital-trends-2021-in-retail/2021_Digital_Trends_Retail_in_Focus.pdf\nDisallow: /content/dam/dx/us/en/resources/digital-trends-2021-in-manufacturing/2021_Digital_Trends_Manufacturing_in_Focus.pdf\nDisallow: /content/dam/www/us/en/offer/technology-trends-2021/eConsultancy_Digital_Trends_2021_IT_Report.pdf\nDisallow: /content/dam/www/us/en/offer/pdf/digital-trends-2020-in-financial-services.pdf\nDisallow: /content/dam/www/us/en/offer/pdf/digital-trends-2020-in-retail.pdf\nDisallow: /content/dam/www/us/en/offer/pdf/digital-trends-2020-in-media-and-entertainment.pdf\nDisallow: /content/dam/www/us/en/offer/pdf/digital-trends-2020-in-travel-and-hospitality.pdf\nDisallow: /content/dam/www/us/en/offer/pdf/digital-trends-2020-in-telecommunications.pdf\nDisallow: /content/dam/www/us/en/offer/pdf/digital-trends-2020-in-advertising.pdf\nDisallow: /content/dam/www/us/en/offer/pdf/digital-trends-2020-in-high-tech.pdf\nDisallow: /content/dam/www/us/en/offer/pdf/digital-trends-2020-in-IT.pdf\nDisallow: /content/dam/www/us/en/adi/2020/pdfs/*\nDisallow: /content/dam/www/us/en/offer/digital-trends-2021-core/digital-trends-2021-full-report-*.pdf\nDisallow: /*langmaster/\nDisallow: /*express/*.mp4$\nDisallow: /en-AE/learn/\nDisallow: /en-BE/learn/\nDisallow: /en-CY/learn/\nDisallow: /en-GR/learn/\nDisallow: /en-HK/learn/\nDisallow: /en-ID/learn/\nDisallow: /en-IL/learn/\nDisallow: /en-LU/learn/\nDisallow: /en-MT/learn/\nDisallow: /en-MY/learn/\nDisallow: /en-PH/learn/\nDisallow: /en-SA/learn/\nDisallow: /en-SG/learn/\nDisallow: /en-TH/learn/\nDisallow: /en-VN/learn/\nDisallow: /en-x-MenA/learn/\nDisallow: /en-ZA/learn/\nDisallow: /*?searchId=\nDisallow: /*?tasks=\nDisallow: /*?campaignid=\nDisallow: /*?skwcid=\nDisallow: /products/photoshop/photoshop-brushes.h*\nDisallow: /community/gallery\n\nUser-agent: Googlebot\nAllow: /?promoid=RTQCN3LX\nDisallow: /*promoid=\nDisallow: /*trackingid=\nDisallow: /*?searchId=\nDisallow: /*?tasks=\nDisallow: /*?campaignid=\nDisallow: /*?skwcid=\nDisallow: /products/photoshop/photoshop-brushes.h*\n\nUser-agent: AdsBot-Google\nAllow: /\n\nUser-agent: AdsBot-Google-Mobile\nAllow: /\n\nUser-agent: SearchmetricsBot\nDisallow: /\n\n# XML sitemaps\nSitemap: https://www.adobe.com/cc-product.index.xml\nSitemap: https://www.adobe.com/creativecloud/sitemap-index.xml\nSitemap: https://www.adobe.com/acrobat/sitemap-index.xml\nSitemap: https://www.adobe.com/home-sitemap.xml\nSitemap: https://www.adobe.com/plans-catalog-sitemap.xml\nSitemap: https://www.adobe.com/learn/sitemap_index.xml\n\n# CC Express \nSitemap: https://www.adobe.com/express/sitemap-index.xml\n\n#Naver\nSitemap: https://www.adobe.com/naver.index.xml\n\n#Education\nSitemap: https://www.adobe.com/edu/sitemap-index.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.adobe.com/llms.txt",
            "contentType": "text/plain; charset=UTF-8",
            "bytes": 10499,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://www.adobe.com/sitemap.xml",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 889,
            "checkStatus": "warn",
            "pass": false,
            "looksLikeSitemap": false,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "canva",
      "name": "Canva",
      "url": "https://www.canva.com",
      "category": "Design",
      "notable": true,
      "checkedAt": "2026-10-14T01:25:52.291Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.canva.com/",
        "finalUrl": "https://www.canva.com/",
        "checkedPath": "/",
        "pageStatus": 403,
        "truncated": true,
        "elapsedMs": 1750,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.canva.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "warn",
                "detail": "Blocked for / by User-agent: GPTBot (Disallow: /).",
                "fix": "Leave the block if you don't want training use. To be cited in AI answers, allow the search crawlers (OAI-SearchBot, PerplexityBot)."
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "warn",
                "detail": "Blocked for / by User-agent: ClaudeBot (Disallow: /).",
                "fix": "Leave the block if you don't want training use. To be cited in AI answers, allow the search crawlers (OAI-SearchBot, PerplexityBot)."
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: PerplexityBot.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "warn",
                "detail": "Blocked for / by User-agent: Applebot-Extended (Disallow: /).",
                "fix": "Leave this Disallow if you want to opt out of Apple Intelligence training. It does not block ordinary search crawling."
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "warn",
                "detail": "Blocked for / by User-agent: CCBot (Disallow: /).",
                "fix": "Leave the block if you don't want training use. To be cited in AI answers, allow the search crawlers (OAI-SearchBot, PerplexityBot)."
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "warn",
                "detail": "Blocked for / by User-agent: Bytespider (Disallow: /).",
                "fix": "Leave the block if you don't want training use. To be cited in AI answers, allow the search crawlers (OAI-SearchBot, PerplexityBot)."
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.canva.com/ · HTTP 403 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "page-http",
                "name": "Page response",
                "hint": "HTTP status",
                "status": "warn",
                "detail": "The URL returned HTTP 403.",
                "fix": "Open the exact URL visitors and crawlers should read. This score is for the response this address returned."
              },
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "fail",
                "detail": "The URL returned HTTP 403 and only 32 visible words. This is not the page content.",
                "fix": "Check the exact public URL. A 4xx or 5xx response is what a crawler may keep."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 403.",
                "fix": "Serve /llms.txt as a public plain-text file with HTTP 200."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "warn",
                "detail": "/sitemap.xml returned HTTP 403, and no usable sitemap was listed in robots.txt.",
                "fix": "Publish an XML sitemap at /sitemap.xml, or point a Sitemap line in robots.txt at one, listing your key pages."
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 524288,
          "words": 32,
          "h1": "We’ll have you designing again soon",
          "title": "Canva",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.canva.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.canva.com/robots.txt",
            "contentType": "text/plain;charset=UTF-8",
            "bytes": 6527,
            "sitemapUrls": [
              "https://sitemap.canva.com/sitemap_index.xml",
              "https://www.canva.com/landing_page_sitemap_index.xml"
            ],
            "textLength": 6527,
            "text": "#              vnacccan\n#           nVCCCNVccNCCNv\n#         cCCCAa      aCCC\n#       nCCCCa        nCCC\n#      cCCCAv         ACCa                                           CACCn\n#     aCCCCv         nVa     vcVNn  nVVa    cVc    aVNVv     cNNv   Cc  Cc    vaVNVa vcVa\n#     CCCCa                nACCAcaAACCCc   nCCCa aCCCCCC    NCCCv   Cc  Cn  cNCCCVaNACCCA\n#    aCCCC                cCCCV   cCCCA    VCCCaAA  CCCA    CCCCv    CACNvnVCCCAv  vCCCCv\n#    cCCCC               aCCCN    VCCCa   vCCCCCV   CCCc    CCCCv    aCA  cCCCCv   nCCCN\n#    aCCCC              nCCCCv    CCCA    ACCCCc    CCC    nCCCCn   vCN   VCCCc    NCCCn\n#    aCCCCa            aCCCCC    NCCCc   NCCCCV    CCCN   C aCCCc  aCc    NCCCn   aCCCA   Nc\n#     aCCCCn         nNV CCCCa nAACCCc  AACCCN    vCCCAaVC   ACCCaNAv     cCCCN vVACCCA vNA\n#      aCCCCNav  vncACc   NCCCNn  VCCCcVvvCCCv     cCCCCV    vACCNn        cCCCCAa  aCCCAa\n#        aNCCCCCCCCNa\n#\n#                See something you can improve? We're hiring SEOs and Engineers!\n#                          Checkout canva.com/careers and get in touch\nUser-agent: *\nDisallow: \nDisallow: /media/*\nDisallow: /template/*\nDisallow: /_ok\nDisallow: /_blank\nDisallow: *v=\nDisallow: *utm_expid=\nDisallow: *source=\nDisallow: *utm_source=\nDisallow: *utm_campaign=\nDisallow: *utm_content=\nDisallow: *__hstc=\nDisallow: *reviews_page=\nDisallow: *gclid=\nDisallow: *magazineName=\nDisallow: *_ga=\nDisallow: *like=\nDisallow: *sp_url=\nDisallow: *fbclid=\nDisallow: *country=\nDisallow: *company_size=\nDisallow: *_hsenc=\nDisallow: *zd_source=\nDisallow: *wt.mc_id=\nDisallow: *via=\nDisallow: *utm_medium=\nDisallow: *spc-source=\nDisallow: *sp=\nDisallow: *sort=\nDisallow: *sf11500465=\nDisallow: *sa=\nDisallow: *ref=\nDisallow: *preview=\nDisallow: *pr=\nDisallow: *o=\nDisallow: *NoCode=\nDisallow: *mod=\nDisallow: *kui=\nDisallow: *industry=\nDisallow: *iframe=\nDisallow: *hsLang=\nDisallow: *hsCtaTracking=\nDisallow: *hash=\nDisallow: *gh_jid=\nDisallow: *filterTags=\nDisallow: *clickId=\nDisallow: *ca_referer=\nDisallow: *author=\nDisallow: *ak_action=\nDisallow: *ad=\nDisallow: *__hstc=\nDisallow: *__+hsfp=\nDisallow: /_ajax/\nDisallow: /design/\nDisallow: /design?create*\nDisallow: /font-combinations/search/*\nDisallow: /*/followers\nDisallow: /*/followers/\nDisallow: /*/following\nDisallow: /*/following/\nDisallow: /templates/*/*/?uid=*\nDisallow: /templates/?uid=*\nAllow: /templates/classroom-decoration\nAllow: /t/E\nDisallow: /templates/M\nDisallow: /pt_br/modelos/M\nDisallow: /es_es/plantillas/M\nDisallow: /es_mx/plantillas/M\nDisallow: /fr_fr/modeles/M\nDisallow: /de_de/vorlagen/M\nDisallow: /ru_ru/shablony/M\nDisallow: /tr_tr/sablonlar/M\nDisallow: /ja_jp/templates/M\nDisallow: /ar_eg/templates/M\nDisallow: /id_id/contoh/M\nDisallow: /es_ar/plantillas/M\nDisallow: /it_it/modelli/M\nDisallow: /es_co/plantillas/M\nDisallow: /pl_pl/szablony/M\nDisallow: /th_th/templates/M\nDisallow: /pt_pt/modelos/M\nDisallow: /vi_vn/mau/M\nDisallow: /nl_nl/sjablonen/M\nDisallow: /ko_kr/templates/M\nDisallow: /sv_se/mallar/M\nDisallow: /zh_tw/templates/M\nDisallow: /hi_in/templates/M\nDisallow: /templates/*/MA\nDisallow: /*/_m2/\nDisallow: /_upload-widget\nDisallow: /*/_upload-widget\nDisallow: /_print/*\nDisallow: /en_oz/\nDisallow: /join/*\nDisallow: /q/*\nDisallow: *?filters=\nDisallow: *&filters=\nDisallow: /*/help/*?query=\nDisallow: /*/help/*&query=\nDisallow: /zh_cn/\nDisallow: /en_psaccent/\nDisallow: /en_instrume/\nDisallow: /ar/\nDisallow: /ar_ae/\nDisallow: /ar_sa/\nDisallow: /en_ph/\nDisallow: /cdn-cgi/\nDisallow: /*/login/verify-email\nDisallow: /M/\n\nUser-agent: AdsBot-Google\nUser-agent: AdsIdxBot\nUser-agent: Google-InspectionTool\nUser-agent: facebookexternalhit\nUser-agent: LinkedInBot\nUser-agent: PerplexityBot\nUser-agent: Perplexity-User\nUser-agent: Canva-Slackapp-LinkExpanding\nUser-agent: Canva-Teamsapp-LinkExpanding\nAllow: /\n\nUser-agent: GPTBot\nUser-agent: ClaudeBot\nUser-agent: CCBot\nUser-agent: Applebot-Extended\nUser-agent: anthropic-ai\nUser-agent: Claude-Web\nDisallow: /\nAllow: /create/\nAllow: /ar_eg/create/\nAllow: /da_dk/skabe/\nAllow: /de_de/erstellen/\nAllow: /es_ar/crear/\nAllow: /es_co/crear/\nAllow: /es_es/crear/\nAllow: /es_mx/crear/\nAllow: /es_us/crear/\nAllow: /fr_fr/creer/\nAllow: /hi_in/banaye/\nAllow: /id_id/membuat/\nAllow: /it_it/creare/\nAllow: /ja_jp/create/\nAllow: /ko_kr/create/\nAllow: /ms_my/buat/\nAllow: /nb_no/skape/\nAllow: /nl_nl/maken/\nAllow: /pl_pl/tworzyc/\nAllow: /pt_br/criar/\nAllow: /pt_pt/criar/\nAllow: /ru_ru/sozdat/\nAllow: /sv_se/skapa/\nAllow: /th_th/create/\nAllow: /tr_tr/yapma/\nAllow: /uk_ua/stvoryty/\nAllow: /vi_vn/thiet-ke/\nAllow: /zh_hk/create/\nAllow: /zh_tw/create/\nAllow: /features/\nAllow: /ar_eg/features/\nAllow: /da_dk/funktioner/\nAllow: /de_de/funktionen/\nAllow: /es_ar/funciones/\nAllow: /es_co/funciones/\nAllow: /es_es/funciones/\nAllow: /es_mx/funciones/\nAllow: /es_us/funciones/\nAllow: /fr_fr/outils/\nAllow: /hi_in/features/\nAllow: /id_id/fitur/\nAllow: /it_it/strumenti/\nAllow: /ja_jp/features/\nAllow: /ko_kr/features/\nAllow: /nl_nl/functies/\nAllow: /pt_pt/ferramentas/\nAllow: /sv_se/funktioner/\nAllow: /th_th/features/\nAllow: /tr_tr/ozellikler/\nAllow: /vi_vn/tinh-nang/\nAllow: /zh_hk/features/\nAllow: /zh_tw/features/\nAllow: /graphs/\nAllow: /ar_eg/graphs/\nAllow: /da_dk/grafer/\nAllow: /de_de/diagramme/\nAllow: /es_ar/graficos/\nAllow: /es_co/graficos/\nAllow: /es_es/graficos/\nAllow: /es_mx/graficas/\nAllow: /es_us/graficas/\nAllow: /fr_fr/graphiques/\nAllow: /hi_in/graphs/\nAllow: /it_it/diagramma/\nAllow: /ja_jp/graphs/\nAllow: /ko_kr/graphs/\nAllow: /nb_no/grafer/\nAllow: /nl_nl/grafieken/\nAllow: /pt_br/graficos/\nAllow: /pt_pt/graficos/\nAllow: /sv_se/grafer/\nAllow: /th_th/graphs/\nAllow: /tr_tr/grafik/\nAllow: /tr_tr/sema/\nAllow: /vi_vn/bieu-do/\nAllow: /zh_hk/graphs/\nAllow: /zh_tw/graphs/\nAllow: /learn/\nAllow: /de_de/lernen/\nAllow: /fr_fr/decouvrir/\nAllow: /ja_jp/learn/\nAllow: /ko_kr/learn/\nAllow: /pt_br/aprenda/\nAllow: /ru_ru/obuchenie/\nAllow: /help/\nAllow: /*/help/\nAllow: /design-school/\nAllow: /*/design-school/\nAllow: /ai-connector/\nAllow: /*/ai-connector/\nAllow: /developers/\n\nUser-agent: Bytespider\nUser-agent: meta-externalagent\nUser-agent: ImagesiftBot\nUser-agent: Timpibot\nUser-agent: Scrapy\nUser-agent: Ai2Bot\nUser-agent: Diffbot\nUser-agent: img2dataset\nUser-agent: ICC-Crawler\nUser-agent: FacebookBot\nUser-agent: VelenPublicWebCrawler\nUser-agent: FriendlyCrawler\nUser-agent: omgili\nUser-agent: Webzio-Extended\nUser-agent: Ai2Bot-Dolma\nDisallow: /\n\nUser-agent: Twitterbot\nAllow: /\n\n\nSitemap: https://sitemap.canva.com/sitemap_index.xml\nSitemap: https://www.canva.com/landing_page_sitemap_index.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": false,
              "countedAsBlock": true,
              "specific": true,
              "agent": "GPTBot",
              "rule": "Disallow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": false,
              "countedAsBlock": true,
              "specific": true,
              "agent": "ClaudeBot",
              "rule": "Disallow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "PerplexityBot",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": false,
              "countedAsBlock": true,
              "specific": true,
              "agent": "Applebot-Extended",
              "rule": "Disallow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": false,
              "countedAsBlock": true,
              "specific": true,
              "agent": "CCBot",
              "rule": "Disallow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": false,
              "countedAsBlock": true,
              "specific": true,
              "agent": "Bytespider",
              "rule": "Disallow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 403,
            "error": "",
            "finalUrl": "https://www.canva.com/llms.txt",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 512000,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 403,
            "error": "",
            "finalUrl": "https://www.canva.com/sitemap.xml",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 512000,
            "checkStatus": "warn",
            "pass": false,
            "looksLikeSitemap": false,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "photoroom",
      "name": "Photoroom",
      "url": "https://www.photoroom.com",
      "category": "Image",
      "notable": false,
      "checkedAt": "2026-10-14T01:25:55.046Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.photoroom.com/",
        "finalUrl": "https://www.photoroom.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1822,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.photoroom.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.photoroom.com/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1197 words in the raw HTML, ignoring script and style. H1: “Sell at first sight”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 5558 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.photoroom.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html",
          "bytes": 524288,
          "words": 1197,
          "h1": "Sell at first sight",
          "title": "AI-Powered Photo Editor and Listing Studio for Product Photography | Photoroom",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.photoroom.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.photoroom.com/robots.txt",
            "contentType": "text/plain",
            "bytes": 87,
            "sitemapUrls": [
              "https://www.photoroom.com/sitemap.xml"
            ],
            "textLength": 87,
            "text": "User-agent: *\nSitemap: https://www.photoroom.com/sitemap.xml\nAllow: /\nDisallow: /join/\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.photoroom.com/llms.txt",
            "contentType": "text/plain",
            "bytes": 5558,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.photoroom.com/sitemap.xml",
            "contentType": "text/xml",
            "bytes": 45327,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "krea",
      "name": "Krea",
      "url": "https://www.krea.ai",
      "category": "Image",
      "notable": false,
      "checkedAt": "2026-10-14T01:25:57.874Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.krea.ai/",
        "finalUrl": "https://www.krea.ai/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1928,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.krea.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.krea.ai/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1515 words in the raw HTML, ignoring script and style. H1: “Krea.ai is the world's most powerful creative AI suite.”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $0, $9, $35, $105.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, ImageObject, WebSite, SoftwareApplication, Offer, BreadcrumbList, ListItem.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 23663 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.krea.ai/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html",
          "bytes": 524288,
          "words": 1515,
          "h1": "Krea.ai is the world's most powerful creative AI suite.",
          "title": "Krea: AI Creative Suite for Images, Video & 3D",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [
            "$0",
            "$9",
            "$35",
            "$105"
          ],
          "metaPrices": [],
          "ldPrices": [
            "USD 0"
          ],
          "ldTypes": [
            "Organization",
            "ImageObject",
            "WebSite",
            "SoftwareApplication",
            "Offer",
            "BreadcrumbList",
            "ListItem"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.krea.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.krea.ai/robots.txt",
            "contentType": "text/plain",
            "bytes": 278,
            "sitemapUrls": [
              "https://www.krea.ai/sitemap.xml",
              "https://www.krea.ai/flush-sitemap.xml",
              "https://www.krea.ai/blog/sitemap.xml",
              "https://www.krea.ai/docs/sitemap.xml"
            ],
            "textLength": 278,
            "text": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow: /admin/\nDisallow: /*?preview=\n\nSitemap: https://www.krea.ai/sitemap.xml\nSitemap: https://www.krea.ai/flush-sitemap.xml\nSitemap: https://www.krea.ai/blog/sitemap.xml\nSitemap: https://www.krea.ai/docs/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.krea.ai/llms.txt",
            "contentType": "text/plain",
            "bytes": 23663,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.krea.ai/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 427226,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "luma",
      "name": "Luma AI",
      "url": "https://lumalabs.ai",
      "category": "Video",
      "notable": false,
      "checkedAt": "2026-10-14T01:26:00.807Z",
      "result": {
        "ok": true,
        "inputUrl": "https://lumalabs.ai/",
        "finalUrl": "https://lumalabs.ai/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 2093,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://lumalabs.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://lumalabs.ai/ · HTTP 200 · 304928 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "523 words in the raw HTML, ignoring script and style. H1: “Luma is your creative partner”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "A price is present in structured data (USD 0) but not in the visible text.",
                "fix": "Put the price in the visible HTML as well. Some crawlers never read JSON-LD."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: SoftwareApplication, Offer, Organization, VideoObject, ItemList, ListItem, PostalAddress, QuantitativeValue, ContactPoint, WebSite.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 2886 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://lumalabs.ai/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 304928,
          "words": 523,
          "h1": "Luma is your creative partner",
          "title": "Luma | AI Agents for Creative Work",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [
            "USD 0"
          ],
          "ldTypes": [
            "SoftwareApplication",
            "Offer",
            "Organization",
            "VideoObject",
            "ItemList",
            "ListItem",
            "PostalAddress",
            "QuantitativeValue",
            "ContactPoint",
            "WebSite"
          ],
          "ldParsed": 5,
          "ldBlocks": 5,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://lumalabs.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://lumalabs.ai/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 761,
            "sitemapUrls": [
              "https://lumalabs.ai/sitemap.xml",
              "https://lumalabs.ai/authors/sitemap.xml",
              "https://lumalabs.ai/case-studies/sitemap.xml",
              "https://lumalabs.ai/changelog/sitemap.xml",
              "https://lumalabs.ai/comparison/sitemap.xml",
              "https://lumalabs.ai/create/sitemap.xml",
              "https://lumalabs.ai/learning-center/sitemap.xml",
              "https://lumalabs.ai/legal/sitemap.xml",
              "https://lumalabs.ai/models/sitemap.xml",
              "https://lumalabs.ai/news/sitemap.xml",
              "https://lumalabs.ai/reframe/sitemap.xml",
              "https://lumalabs.ai/use-case/sitemap.xml",
              "https://lumalabs.ai/video-to-video/sitemap.xml"
            ],
            "textLength": 761,
            "text": "# *\nUser-agent: *\nAllow: /\nDisallow: /captures\nDisallow: /capture\nDisallow: /dashboard\nDisallow: /me\n\n# Sitemaps\nSitemap: https://lumalabs.ai/sitemap.xml\nSitemap: https://lumalabs.ai/authors/sitemap.xml\nSitemap: https://lumalabs.ai/case-studies/sitemap.xml\nSitemap: https://lumalabs.ai/changelog/sitemap.xml\nSitemap: https://lumalabs.ai/comparison/sitemap.xml\nSitemap: https://lumalabs.ai/create/sitemap.xml\nSitemap: https://lumalabs.ai/learning-center/sitemap.xml\nSitemap: https://lumalabs.ai/legal/sitemap.xml\nSitemap: https://lumalabs.ai/models/sitemap.xml\nSitemap: https://lumalabs.ai/news/sitemap.xml\nSitemap: https://lumalabs.ai/reframe/sitemap.xml\nSitemap: https://lumalabs.ai/use-case/sitemap.xml\nSitemap: https://lumalabs.ai/video-to-video/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://lumalabs.ai/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 2886,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://lumalabs.ai/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 3883,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "pika",
      "name": "Pika",
      "url": "https://pika.art",
      "category": "Video",
      "notable": false,
      "checkedAt": "2026-10-14T01:26:03.903Z",
      "result": {
        "ok": true,
        "inputUrl": "https://pika.art/",
        "finalUrl": "https://pika.art/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 1854,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://pika.art/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://pika.art/ · HTTP 200 · 342128 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "916 words in the raw HTML, ignoring script and style. H1: “AI Creative Tools Built for Creatives”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, WebSite.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 4213 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://pika.art/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 342128,
          "words": 916,
          "h1": "AI Creative Tools Built for Creatives",
          "title": "Pika",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Organization",
            "WebSite"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://pika.art/robots.txt.",
            "status": 200,
            "finalUrl": "https://pika.art/robots.txt",
            "contentType": "text/plain",
            "bytes": 287,
            "sitemapUrls": [
              "https://pika.art/sitemap.xml"
            ],
            "textLength": 287,
            "text": "User-Agent: *\nAllow: /\nDisallow: /api/\nDisallow: /auth/\nDisallow: /oauth/\nDisallow: /login\nDisallow: /signup\nDisallow: /onboarding\nDisallow: /account\nDisallow: /projects\nDisallow: /library\nDisallow: /credits\nDisallow: /jobs\nDisallow: /subscription\n\nSitemap: https://pika.art/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://pika.art/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 4213,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://pika.art/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 2188,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "kling",
      "name": "Kling AI",
      "url": "https://klingai.com",
      "category": "Video",
      "notable": false,
      "checkedAt": "2026-10-14T01:26:06.761Z",
      "result": {
        "ok": true,
        "inputUrl": "https://klingai.com/",
        "finalUrl": "https://kling.ai/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 3200,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://kling.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: GPTBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: OAI-SearchBot.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: ChatGPT-User. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: (default). This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: PerplexityBot.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: Google-Extended. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: (default). This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: (default). This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: Bytespider. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://kling.ai/ · HTTP 200 · 102886 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "993 words in the raw HTML, ignoring script and style. H1: “Kling AI Video and Image Generator”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, ImageObject, WebSite, WebPage, SoftwareApplication, ItemList, ListItem, BreadcrumbList.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 22277 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://kling.ai/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 102886,
          "words": 993,
          "h1": "Kling AI Video and Image Generator",
          "title": "Kling AI: Next-Gen AI Video & Image Generator",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Organization",
            "ImageObject",
            "WebSite",
            "WebPage",
            "SoftwareApplication",
            "ItemList",
            "ListItem",
            "BreadcrumbList"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://kling.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://kling.ai/robots.txt",
            "contentType": "text/plain; charset=UTF-8",
            "bytes": 1549,
            "sitemapUrls": [
              "https://kling.ai/sitemap.xml"
            ],
            "textLength": 1549,
            "text": "User-agent: GPTBot\nUser-agent: SemrushBot\nAllow: /\n\nUser-agent: Bytespider\nUser-agent: PanguBot\nUser-agent: PetalBot\nAllow: /\n\nUser-agent: OAI-SearchBot\nUser-agent: ChatGPT-User\nUser-agent: Claude-SearchBot\nUser-agent: Claude-User\nUser-agent: PerplexityBot\nUser-agent: Google-Extended\nUser-agent: bingbot\nUser-agent: YouBot\nUser-agent: Webzio-Extended\nUser-agent: Timpibot\nAllow: /\nDisallow: /app/sign-in\nDisallow: /app/search\nDisallow: /app/face-model\nDisallow: /app/text-to-image\nDisallow: /app/image-to-image\nDisallow: /app/text-to-video\nDisallow: /app/text-to-audio\nDisallow: /app/video-to-audio\nDisallow: /app/image-to-video\nDisallow: /app/multimodal-to-video\nDisallow: /app/special-effects\nDisallow: /app/video-to-lip\nDisallow: /app/membership\nDisallow: /app/user-assets\nDisallow: /app/user-profile\nDisallow: /app/account\nDisallow: /app/reward-tasks\nDisallow: /app/badge-center\nDisallow: /app/dev-center\nDisallow: /app/future-partner\nDisallow: /app/activity-zone/brand-activity\nDisallow: /app/skit-detail/\nDisallow: /app/work-detail/\nDisallow: /app/try-on\nDisallow: /app/docs/professional\n\nUser-agent: img2dataset\nUser-agent: Scrapy\nUser-agent: FriendlyCrawler\nUser-agent: ICC-Crawler\nUser-agent: ISSCyberRiskCrawler\nUser-agent: Sidetrade indexer bot\nUser-agent: VelenPublicWebCrawler\nDisallow: /\n\nUser-agent: Googlebot\nUser-agent: Googlebot-Image\nUser-agent: Googlebot-Video\nUser-agent: AdsBot-Google\nUser-agent: AdsBot-Google-Mobile\nUser-agent: Mediapartners-Google\nUser-agent: Googlebot-News\nAllow: /\n\nSitemap: https://kling.ai/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "GPTBot",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "OAI-SearchBot",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ChatGPT-User",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "(default)",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "PerplexityBot",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Google-Extended",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "(default)",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "(default)",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Bytespider",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "(default)",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "(default)",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://kling.ai/llms.txt",
            "contentType": "text/plain",
            "bytes": 22277,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://kling.ai/sitemap.xml",
            "contentType": "text/xml",
            "bytes": 1096,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "elevenlabs",
      "name": "ElevenLabs",
      "url": "https://elevenlabs.io",
      "category": "Audio",
      "notable": true,
      "checkedAt": "2026-10-14T01:26:10.967Z",
      "result": {
        "ok": true,
        "inputUrl": "https://elevenlabs.io/",
        "finalUrl": "https://elevenlabs.io/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1809,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://elevenlabs.io/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://elevenlabs.io/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1532 words in the raw HTML, ignoring script and style. H1: “Bringing technology to life”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $1.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, ImageObject, PostalAddress, Person, WebSite, Brand, WebPage, BreadcrumbList, ListItem, SoftwareApplication, PropertyValue, Offer.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 11314 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://elevenlabs.io/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 1532,
          "h1": "Bringing technology to life",
          "title": "Free AI Voice Generator & Voice Agents Platform | ElevenLabs",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [
            "$1"
          ],
          "metaPrices": [],
          "ldPrices": [
            "USD 0"
          ],
          "ldTypes": [
            "Organization",
            "ImageObject",
            "PostalAddress",
            "Person",
            "WebSite",
            "Brand",
            "WebPage",
            "BreadcrumbList",
            "ListItem",
            "SoftwareApplication",
            "PropertyValue",
            "Offer"
          ],
          "ldParsed": 2,
          "ldBlocks": 2,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://elevenlabs.io/robots.txt.",
            "status": 200,
            "finalUrl": "https://elevenlabs.io/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 3372,
            "sitemapUrls": [
              "https://elevenlabs.io/sitemap.xml",
              "https://help.elevenlabs.io/hc/sitemap.xml",
              "https://elevenlabs.io/docs/sitemap.xml",
              "https://showcase.elevenlabs.io/sitemap.xml"
            ],
            "textLength": 3372,
            "text": "User-Agent: Twitterbot\nAllow: /\nAllow: /share/\nAllow: /embed/\nAllow: /app/sign-in\nAllow: /app/sign-up\nAllow: /docs/api/fern-docs/og\nDisallow: /admin\nDisallow: /app/redirect-external/\nDisallow: /legal/\nDisallow: /hog/\nDisallow: /dachshund/\nDisallow: /feature-flags/\nDisallow: /app/sign-in?\nDisallow: /app/sign-up?\nDisallow: */abtest/\nDisallow: */p/\nDisallow: */ab/\nDisallow: /sentry-monitoring\nDisallow: /next/\nDisallow: */page-template-preview/\nDisallow: /v1/\nDisallow: /nl$\nDisallow: /nl/\nAllow: /app/flows\nDisallow: /app/agents\nDisallow: /app/api\nDisallow: /app/developers\nDisallow: /app/files\nDisallow: /app/settings\nDisallow: /app/subscription\n\nUser-Agent: facebookexternalhit\nAllow: /\nAllow: /share/\nAllow: /embed/\nAllow: /app/sign-in\nAllow: /app/sign-up\nAllow: /docs/api/fern-docs/og\nDisallow: /admin\nDisallow: /app/redirect-external/\nDisallow: /legal/\nDisallow: /hog/\nDisallow: /dachshund/\nDisallow: /feature-flags/\nDisallow: /app/sign-in?\nDisallow: /app/sign-up?\nDisallow: */abtest/\nDisallow: */p/\nDisallow: */ab/\nDisallow: /sentry-monitoring\nDisallow: /next/\nDisallow: */page-template-preview/\nDisallow: /v1/\nDisallow: /nl$\nDisallow: /nl/\nAllow: /app/flows\nDisallow: /app/agents\nDisallow: /app/api\nDisallow: /app/developers\nDisallow: /app/files\nDisallow: /app/settings\nDisallow: /app/subscription\n\nUser-Agent: LinkedInBot\nAllow: /\nAllow: /share/\nAllow: /embed/\nAllow: /app/sign-in\nAllow: /app/sign-up\nAllow: /docs/api/fern-docs/og\nDisallow: /admin\nDisallow: /app/redirect-external/\nDisallow: /legal/\nDisallow: /hog/\nDisallow: /dachshund/\nDisallow: /feature-flags/\nDisallow: /app/sign-in?\nDisallow: /app/sign-up?\nDisallow: */abtest/\nDisallow: */p/\nDisallow: */ab/\nDisallow: /sentry-monitoring\nDisallow: /next/\nDisallow: */page-template-preview/\nDisallow: /v1/\nDisallow: /nl$\nDisallow: /nl/\nAllow: /app/flows\nDisallow: /app/agents\nDisallow: /app/api\nDisallow: /app/developers\nDisallow: /app/files\nDisallow: /app/settings\nDisallow: /app/subscription\n\nUser-Agent: WhatsApp\nAllow: /\nAllow: /share/\nAllow: /embed/\nAllow: /app/sign-in\nAllow: /app/sign-up\nAllow: /docs/api/fern-docs/og\nDisallow: /admin\nDisallow: /app/redirect-external/\nDisallow: /legal/\nDisallow: /hog/\nDisallow: /dachshund/\nDisallow: /feature-flags/\nDisallow: /app/sign-in?\nDisallow: /app/sign-up?\nDisallow: */abtest/\nDisallow: */p/\nDisallow: */ab/\nDisallow: /sentry-monitoring\nDisallow: /next/\nDisallow: */page-template-preview/\nDisallow: /v1/\nDisallow: /nl$\nDisallow: /nl/\nAllow: /app/flows\nDisallow: /app/agents\nDisallow: /app/api\nDisallow: /app/developers\nDisallow: /app/files\nDisallow: /app/settings\nDisallow: /app/subscription\n\nUser-Agent: *\nContent-Signal: ai-train=yes, search=yes, ai-input=yes\nAllow: /\nAllow: /share/\nAllow: /embed/\nAllow: /app/sign-in\nAllow: /app/sign-up\nAllow: /docs/api/fern-docs/og\nDisallow: /admin\nDisallow: /app/redirect-external/\nDisallow: /legal/\nDisallow: /hog/\nDisallow: /dachshund/\nDisallow: /feature-flags/\nDisallow: /app/sign-in?\nDisallow: /app/sign-up?\nDisallow: */abtest/\nDisallow: */p/\nDisallow: */ab/\nDisallow: /sentry-monitoring\nDisallow: /next/\nDisallow: */page-template-preview/\nDisallow: /v1/\nDisallow: /nl$\nDisallow: /nl/\nDisallow: /docs/api/\nDisallow: /app/\n\nSitemap: https://elevenlabs.io/sitemap.xml\nSitemap: https://help.elevenlabs.io/hc/sitemap.xml\nSitemap: https://elevenlabs.io/docs/sitemap.xml\nSitemap: https://showcase.elevenlabs.io/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://elevenlabs.io/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 11314,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://elevenlabs.io/sitemap.xml",
            "contentType": "application/xml; charset=utf-8",
            "bytes": 24980,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "suno",
      "name": "Suno",
      "url": "https://suno.com",
      "category": "Audio",
      "notable": true,
      "checkedAt": "2026-10-14T01:26:13.783Z",
      "result": {
        "ok": true,
        "inputUrl": "https://suno.com/",
        "finalUrl": "https://suno.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 1772,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://suno.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://suno.com/ · HTTP 200 · 267856 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1067 words in the raw HTML, ignoring script and style. H1: “Make any song you can imagine”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "A price is present in structured data (USD 0, USD 10, USD 96, USD 30) but not in the visible text.",
                "fix": "Put the price in the visible HTML as well. Some crawlers never read JSON-LD."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: WebSite, Organization, PostalAddress, SoftwareApplication, Offer, FAQPage, Question, Answer.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 11816 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://suno.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 267856,
          "words": 1067,
          "h1": "Make any song you can imagine",
          "title": "Suno | AI Music Generator",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [
            "USD 0",
            "USD 10",
            "USD 96",
            "USD 30"
          ],
          "ldTypes": [
            "WebSite",
            "Organization",
            "PostalAddress",
            "SoftwareApplication",
            "Offer",
            "FAQPage",
            "Question",
            "Answer"
          ],
          "ldParsed": 4,
          "ldBlocks": 4,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://suno.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://suno.com/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 427,
            "sitemapUrls": [
              "https://suno.com/sitemap.xml",
              "https://suno.com/public-site-sitemap/sitemap.xml",
              "https://suno.com/music-library-sitemap/sitemap.xml",
              "https://suno.com/products-sitemap/sitemap.xml",
              "https://suno.com/tools-sitemap/sitemap.xml",
              "https://blog.suno.com/sitemap.xml"
            ],
            "textLength": 427,
            "text": "User-Agent: *\nAllow: /\nDisallow: /profile/*/followers\nDisallow: /profile/*/following\nDisallow: /login\nDisallow: /voice/\n\nSitemap: https://suno.com/sitemap.xml\nSitemap: https://suno.com/public-site-sitemap/sitemap.xml\nSitemap: https://suno.com/music-library-sitemap/sitemap.xml\nSitemap: https://suno.com/products-sitemap/sitemap.xml\nSitemap: https://suno.com/tools-sitemap/sitemap.xml\nSitemap: https://blog.suno.com/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://suno.com/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 11816,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://suno.com/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 133161,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "udio",
      "name": "Udio",
      "url": "https://www.udio.com",
      "category": "Audio",
      "notable": false,
      "checkedAt": "2026-10-14T01:26:16.559Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.udio.com/",
        "finalUrl": "https://www.udio.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 1905,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.udio.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.udio.com/ · HTTP 200 · 308064 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "fail",
                "detail": "The response looks like a bot challenge (Udio | AI Music Generator - Official Website), not the page. AI crawlers may hit the same wall.",
                "fix": "Let the search crawlers through your firewall or CDN, or serve the HTML without a JavaScript challenge."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.udio.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 308064,
          "words": 8,
          "h1": "",
          "title": "Udio | AI Music Generator - Official Website",
          "challenge": true,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.udio.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.udio.com/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 533,
            "sitemapUrls": [
              "https://www.udio.com/sitemap.xml"
            ],
            "textLength": 533,
            "text": "User-Agent: Twitterbot\nAllow: /\nDisallow: /*?\nDisallow: /api/\n\nUser-Agent: Slackbot-LinkExpanding 1.0 (+https://api.slack.com/robots)\nAllow: /\nDisallow: /*?\nDisallow: /api/\n\nUser-Agent: Slack-ImgProxy 0.19 (+https://api.slack.com/robots)\nAllow: /\nDisallow: /*?\nDisallow: /api/\n\nUser-Agent: Slackbot 1.0 (+https://api.slack.com/robots)\nAllow: /\nDisallow: /*?\nDisallow: /api/\n\nUser-Agent: Googlebot\nAllow: /\nDisallow: /*?\nDisallow: /api/\n\nUser-Agent: *\nAllow: /\nDisallow: /*?\nDisallow: /api/\n\nSitemap: https://www.udio.com/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://www.udio.com/llms.txt",
            "contentType": "text/html; charset=utf-8",
            "bytes": 124466,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.udio.com/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 1101,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "synthesia",
      "name": "Synthesia",
      "url": "https://www.synthesia.io",
      "category": "Video",
      "notable": false,
      "checkedAt": "2026-10-14T01:26:19.470Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.synthesia.io/",
        "finalUrl": "https://www.synthesia.io/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1814,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.synthesia.io/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.synthesia.io/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "2818 words in the raw HTML, ignoring script and style. H1: “AI Video and Avatar platform for business”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $56.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 13218 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.synthesia.io/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 2818,
          "h1": "AI Video and Avatar platform for business",
          "title": "Synthesia: #1 AI Video Platform for Business",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [
            "$56"
          ],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.synthesia.io/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.synthesia.io/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 183,
            "sitemapUrls": [
              "https://www.synthesia.io/sitemap.xml"
            ],
            "textLength": 183,
            "text": "User-agent: YisouSpider\nDisallow: /\n\nUser-agent: Sogou web spider\nDisallow: /\n\nUser-agent: 360Spider\nDisallow: /\n\nUser-agent: *\nAllow: /\n\nSitemap: https://www.synthesia.io/sitemap.xml"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.synthesia.io/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 13218,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.synthesia.io/sitemap.xml",
            "contentType": "application/rss+xml; charset=utf-8",
            "bytes": 73561,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "heygen",
      "name": "HeyGen",
      "url": "https://www.heygen.com",
      "category": "Video",
      "notable": false,
      "checkedAt": "2026-10-14T01:26:22.288Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.heygen.com/",
        "finalUrl": "https://www.heygen.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 2023,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.heygen.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: GPTBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: OAI-SearchBot.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: ChatGPT-User. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: ClaudeBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: PerplexityBot.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: Google-Extended. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: Applebot-Extended. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: CCBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.heygen.com/ · HTTP 200 · 445264 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "2139 words in the raw HTML, ignoring script and style. H1: “AI videos starring you, made in minutes”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $200.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: FAQPage, Question, Answer.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 8254 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.heygen.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 445264,
          "words": 2139,
          "h1": "AI videos starring you, made in minutes",
          "title": "HeyGen: Create AI Videos with Your Personal Avatar",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [
            "$200"
          ],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "FAQPage",
            "Question",
            "Answer"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.heygen.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.heygen.com/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 2999,
            "sitemapUrls": [
              "https://www.heygen.com/sitemap.xml",
              "https://www.heygen.com/sitemap-blogs.xml",
              "https://www.heygen.com/sitemap-pt-br.xml",
              "https://www.heygen.com/sitemap-es-es.xml",
              "https://www.heygen.com/sitemap-id-id.xml",
              "https://www.heygen.com/sitemap-fr-fr.xml",
              "https://www.heygen.com/sitemap-de-de.xml",
              "https://www.heygen.com/sitemap-ko-kr.xml",
              "https://www.heygen.com/sitemap-it-it.xml",
              "https://www.heygen.com/sitemap-vi-vn.xml",
              "https://www.heygen.com/sitemap-nl-nl.xml",
              "https://www.heygen.com/sitemap-ja-jp.xml",
              "https://www.heygen.com/sitemap-tl-ph.xml",
              "https://www.heygen.com/sitemap-pl-pl.xml",
              "https://www.heygen.com/sitemap-en-gb.xml",
              "https://www.heygen.com/sitemap-en-in.xml",
              "https://www.heygen.com/sitemap-ur-pk.xml",
              "https://www.heygen.com/sitemap-es-mx.xml",
              "https://www.heygen.com/sitemap-ar-sa.xml",
              "https://www.heygen.com/sitemap-tr-tr.xml",
              "https://www.heygen.com/sitemap-he-il.xml",
              "https://www.heygen.com/sitemap-uk-ua.xml",
              "https://www.heygen.com/sitemap-en-ca.xml",
              "https://www.heygen.com/sitemap-ar-eg.xml",
              "https://www.heygen.com/sitemap-th-th.xml",
              "https://www.heygen.com/sitemap-sv-se.xml",
              "https://www.heygen.com/sitemap-es-ar.xml",
              "https://www.heygen.com/sitemap-es-co.xml",
              "https://www.heygen.com/sitemap-zh-tw.xml",
              "https://www.heygen.com/sitemap-zh-hk.xml"
            ],
            "textLength": 2999,
            "text": "User-agent: *\nDisallow: /ebook/register\nDisallow: /app2/tr\n\nUser-agent: Googlebot\nUser-agent: Googlebot-Image\nUser-agent: Googlebot-Video\nUser-agent: Googlebot-News\nUser-agent: Bingbot\nUser-agent: DuckDuckBot\nUser-agent: DuckAssistBot\nUser-agent: Baiduspider\nUser-agent: YandexBot\nUser-agent: Sogou\nUser-agent: YouBot\nUser-agent: PetalBot\nDisallow: /ebook/register\nDisallow: /app2/\nDisallow: /metrics?\n\nUser-agent: Yeti\nUser-agent: NaverBot\nUser-agent: Daum\nAllow: /\n\nUser-agent: Google-Extended\nAllow: /\n\nUser-agent: Google-Agent\nAllow: /\n\nUser-agent: GPTBot\nAllow: /\n\nUser-agent: OAI-SearchBot\nAllow: /\n\nUser-agent: ChatGPT-User\nAllow: /\n\nUser-agent: OAI-Operator\nAllow: /\n\nUser-agent: ClaudeBot\nAllow: /\n\nUser-agent: Claude-Web\nAllow: /\n\nUser-agent: Claude-SearchBot\nAllow: /\n\nUser-agent: Claude-Code\nAllow: /\n\nUser-agent: Claude-User\nAllow: /\n\nUser-agent: PerplexityBot\nAllow: /\n\nUser-agent: Perplexity-User\nAllow: /\n\nUser-agent: Gemini-Fetch\nAllow: /\n\nUser-agent: Gemini-Deep-Research\nAllow: /\n\nUser-agent: Applebot\nAllow: /\n\nUser-agent: Applebot-Extended\nAllow: /\n\nUser-agent: Amazonbot\nAllow: /\n\nUser-agent: FacebookBot\nAllow: /\n\nUser-agent: Facebot\nAllow: /\n\nUser-agent: meta-webindexer\nAllow: /\n\nUser-agent: meta-externalfetcher\nAllow: /\n\nUser-agent: meta-externalagent\nAllow: /\n\nUser-agent: AhrefsBot\nAllow: /\n\nUser-agent: AhrefsSiteAudit\nAllow: /\n\nUser-agent: CCBot\nAllow: /\n\nUser-agent: NeevaBot\nUser-agent: PhindBot\nUser-agent: PoeBot\nUser-agent: AndiBot\nUser-agent: komo-crawler\nDisallow: /\n\nSitemap: https://www.heygen.com/sitemap.xml\nSitemap: https://www.heygen.com/sitemap-blogs.xml\nSitemap: https://www.heygen.com/sitemap-pt-br.xml\nSitemap: https://www.heygen.com/sitemap-es-es.xml\nSitemap: https://www.heygen.com/sitemap-id-id.xml\nSitemap: https://www.heygen.com/sitemap-fr-fr.xml\nSitemap: https://www.heygen.com/sitemap-de-de.xml\nSitemap: https://www.heygen.com/sitemap-ko-kr.xml\nSitemap: https://www.heygen.com/sitemap-it-it.xml\nSitemap: https://www.heygen.com/sitemap-vi-vn.xml\nSitemap: https://www.heygen.com/sitemap-nl-nl.xml\nSitemap: https://www.heygen.com/sitemap-ja-jp.xml\nSitemap: https://www.heygen.com/sitemap-tl-ph.xml\nSitemap: https://www.heygen.com/sitemap-pl-pl.xml\nSitemap: https://www.heygen.com/sitemap-en-gb.xml\nSitemap: https://www.heygen.com/sitemap-en-in.xml\nSitemap: https://www.heygen.com/sitemap-ur-pk.xml\nSitemap: https://www.heygen.com/sitemap-es-mx.xml\nSitemap: https://www.heygen.com/sitemap-ar-sa.xml\nSitemap: https://www.heygen.com/sitemap-tr-tr.xml\nSitemap: https://www.heygen.com/sitemap-he-il.xml\nSitemap: https://www.heygen.com/sitemap-uk-ua.xml\nSitemap: https://www.heygen.com/sitemap-en-ca.xml\nSitemap: https://www.heygen.com/sitemap-ar-eg.xml\nSitemap: https://www.heygen.com/sitemap-th-th.xml\nSitemap: https://www.heygen.com/sitemap-sv-se.xml\nSitemap: https://www.heygen.com/sitemap-es-ar.xml\nSitemap: https://www.heygen.com/sitemap-es-co.xml\nSitemap: https://www.heygen.com/sitemap-zh-tw.xml\nSitemap: https://www.heygen.com/sitemap-zh-hk.xml"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "GPTBot",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "OAI-SearchBot",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ChatGPT-User",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ClaudeBot",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "PerplexityBot",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Google-Extended",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Applebot-Extended",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "CCBot",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.heygen.com/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 8254,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.heygen.com/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 68791,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "descript",
      "name": "Descript",
      "url": "https://www.descript.com",
      "category": "Audio",
      "notable": false,
      "checkedAt": "2026-10-14T01:26:25.315Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.descript.com/",
        "finalUrl": "https://www.descript.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 2329,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.descript.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: OAI-SearchBot.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: ChatGPT-User. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: ClaudeBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: PerplexityBot.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "warn",
                "detail": "Blocked for / by User-agent: ByteSpider (Disallow: /).",
                "fix": "Leave the block if you don't want training use. To be cited in AI answers, allow the search crawlers (OAI-SearchBot, PerplexityBot)."
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.descript.com/ · HTTP 200 · 286641 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1750 words in the raw HTML, ignoring script and style. H1: “AI Video Editor”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: BreadcrumbList, ListItem, Organization, FAQPage, Question, Answer.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 6329 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.descript.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 286641,
          "words": 1750,
          "h1": "AI Video Editor",
          "title": "Descript: AI Video & Audio Text-based Editor — Try Free",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "BreadcrumbList",
            "ListItem",
            "Organization",
            "FAQPage",
            "Question",
            "Answer"
          ],
          "ldParsed": 3,
          "ldBlocks": 3,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.descript.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.descript.com/robots.txt",
            "contentType": "text/plain",
            "bytes": 751,
            "sitemapUrls": [
              "https://www.descript.com/sitemap.xml"
            ],
            "textLength": 751,
            "text": "Sitemap: https://www.descript.com/sitemap.xml\n\n# Allow AI Search Crawlers\nUser-agent: OAI-SearchBot\nAllow: /\n\nUser-agent: ChatGPT-User\nAllow: /\n\nUser-agent: ClaudeBot\nAllow: /\n\nUser-agent: PerplexityBot\nAllow: /\n\n# Ensure Googlebot continues to have access\nUser-agent: Googlebot\nAllow: /\n\n# Block these crawlers entirely\nUser-agent: Amazonbot\nDisallow: /\nUser-agent: ByteSpider\nDisallow: /\nUser-agent: ByteSpiderVideo\nDisallow: /\nUser-agent: ByteSpider-Image\nDisallow: /\n\n# ---------- rules for everyone else ----------\nUser-agent: *\nDisallow: /*?*utm_*\nDisallow: /*?*gclid=*\nDisallow: /*?*fbclid=*\nDisallow: /*?*_page=*\nDisallow: /*features?*_*page=\nDisallow: /blog/author/*?*_page=\nDisallow: /blog/category/*?*_page=\nDisallow: /download/other-device"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "OAI-SearchBot",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ChatGPT-User",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ClaudeBot",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "PerplexityBot",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": false,
              "countedAsBlock": true,
              "specific": true,
              "agent": "ByteSpider",
              "rule": "Disallow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.descript.com/llms.txt",
            "contentType": "text/plain",
            "bytes": 6329,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.descript.com/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 265,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "murf",
      "name": "Murf",
      "url": "https://murf.ai",
      "category": "Audio",
      "notable": false,
      "checkedAt": "2026-10-14T01:26:28.649Z",
      "result": {
        "ok": true,
        "inputUrl": "https://murf.ai/",
        "finalUrl": "https://murf.ai/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1615,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://murf.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://murf.ai/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1760 words in the raw HTML, ignoring script and style. H1: “Build AI Voice Experiences That Are Natural, Scalable & Efficient”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "warn",
                "detail": "JSON-LD types: WebPage, WebSite, Corporation, Person, ContactPoint, Thing.",
                "fix": "Add SoftwareApplication or Product JSON-LD with an Offer so the name, description and price are explicit."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 9403 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://murf.ai/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 1760,
          "h1": "Build AI Voice Experiences That Are Natural, Scalable & Efficient",
          "title": "Leading AI Voice & Conversational Agent Platform - Murf AI",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "WebPage",
            "WebSite",
            "Corporation",
            "Person",
            "ContactPoint",
            "Thing"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://murf.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://murf.ai/robots.txt",
            "contentType": "text/plain",
            "bytes": 355,
            "sitemapUrls": [
              "https://murf.ai/public-assets/sitemaps/sitemap.xml",
              "https://murf.ai/public-assets/sitemaps/translated-page-sitemap.xml",
              "https://murf.ai/public-assets/sitemaps/helpsitemap.xml"
            ],
            "textLength": 355,
            "text": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow: /swagger.json\nDisallow: /share/\nDisallow: /Share/\nDisallow: /Shared/\nDisallow: /shared/\nSitemap: https://murf.ai/public-assets/sitemaps/sitemap.xml\nSitemap: https://murf.ai/public-assets/sitemaps/translated-page-sitemap.xml\nSitemap: https://murf.ai/public-assets/sitemaps/helpsitemap.xml "
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://murf.ai/llms.txt",
            "contentType": "text/plain",
            "bytes": 9403,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://murf.ai/sitemap.xml",
            "contentType": "application/rss+xml; charset=utf-8",
            "bytes": 36204,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "speechify",
      "name": "Speechify",
      "url": "https://speechify.com",
      "category": "Audio",
      "notable": false,
      "checkedAt": "2026-10-14T01:26:31.270Z",
      "result": {
        "ok": true,
        "inputUrl": "https://speechify.com/",
        "finalUrl": "https://speechify.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1956,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://speechify.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: GPTBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: OAI-SearchBot.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: ChatGPT-User. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: ClaudeBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://speechify.com/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "2974 words in the raw HTML, ignoring script and style. H1: “Speechify , Text to Speech . Voice Typing . Fast Answers .”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 24196 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://speechify.com/sitemap_index.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 2974,
          "h1": "Speechify , Text to Speech . Voice Typing . Fast Answers .",
          "title": "Speechify: Text to Speech & Voice Typing AI Assistant | 60M+ Users",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://speechify.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://speechify.com/robots.txt",
            "contentType": "text/plain",
            "bytes": 389,
            "sitemapUrls": [
              "https://speechify.com/sitemap_index.xml"
            ],
            "textLength": 389,
            "text": "User-Agent: *\nAllow: /onboarding/sign-in/\nDisallow: /*?landing=\nDisallow: /api/\nDisallow: /onboarding/\n\nUser-Agent: AdsBot-Google\nDisallow: /*?landing=\nDisallow: /api/\n\nUser-Agent: OAI-SearchBot\nUser-Agent: ChatGPT-User\nUser-Agent: GPTBot\nUser-Agent: ClaudeBot\nUser-Agent: Claude-User\nUser-Agent: Claude-SearchBot\nAllow: /\nDisallow: /api/\n\nSitemap: https://speechify.com/sitemap_index.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "GPTBot",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "OAI-SearchBot",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ChatGPT-User",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ClaudeBot",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://speechify.com/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 24196,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://speechify.com/sitemap_index.xml",
            "contentType": "application/xml",
            "bytes": 12316,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "jasper",
      "name": "Jasper",
      "url": "https://www.jasper.ai",
      "category": "Writing",
      "notable": true,
      "checkedAt": "2026-10-14T01:26:34.229Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.jasper.ai/",
        "finalUrl": "https://www.jasper.ai/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 1789,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.jasper.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: GPTBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: OAI-SearchBot.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: ChatGPT-User. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: ClaudeBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: PerplexityBot.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: Google-Extended. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: Applebot-Extended. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: CCBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: Bytespider. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.jasper.ai/ · HTTP 200 · 486145 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "2501 words in the raw HTML, ignoring script and style. H1: “Put AI agents to work for marketing”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "A price is present in structured data (USD 0) but not in the visible text.",
                "fix": "Put the price in the visible HTML as well. Some crawlers never read JSON-LD."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, ImageObject, ContactPoint, Thing, WebSite, FAQPage, Question, Answer, SoftwareApplication, Offer, AggregateRating.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 12237 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.jasper.ai/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 486145,
          "words": 2501,
          "h1": "Put AI agents to work for marketing",
          "title": "Put AI agents to work for marketing | Jasper",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [
            "USD 0"
          ],
          "ldTypes": [
            "Organization",
            "ImageObject",
            "ContactPoint",
            "Thing",
            "WebSite",
            "FAQPage",
            "Question",
            "Answer",
            "SoftwareApplication",
            "Offer",
            "AggregateRating"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.jasper.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.jasper.ai/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 665,
            "sitemapUrls": [
              "https://www.jasper.ai/sitemap.xml"
            ],
            "textLength": 665,
            "text": "User-agent: Googlebot\nUser-agent: Bingbot\nUser-agent: Slurp\nAllow: /\n\nUser-agent: PerplexityBot\nUser-agent: YouBot\nUser-agent: Applebot-Extended\nUser-agent: Google-Extended\nAllow: /\n\nUser-agent: anthropic-ai\nUser-agent: ClaudeBot\nAllow: /\n\nUser-agent: GPTBot\nUser-agent: OAI-SearchBot\nUser-agent: ChatGPT-User\nAllow: /\n\nUser-agent: CCBot\nUser-agent: cohere-ai\nUser-agent: AI2Bot\nUser-agent: Diffbot\nUser-agent: Bytespider\nUser-agent: meta-externalagent\nUser-agent: FacebookBot\nAllow: /\n\nUser-agent: Omgilibot\nDisallow: /\n\nUser-agent: *\nDisallow: /credits-rate-card\n\nContent-Signal: ai-train=yes, search=yes, ai-input=yes\n\nSitemap: https://www.jasper.ai/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "GPTBot",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "OAI-SearchBot",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ChatGPT-User",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ClaudeBot",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "PerplexityBot",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Google-Extended",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Applebot-Extended",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "CCBot",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Bytespider",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.jasper.ai/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 12237,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.jasper.ai/sitemap.xml",
            "contentType": "application/rss+xml; charset=utf-8",
            "bytes": 123127,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "copyai",
      "name": "Copy.ai",
      "url": "https://www.copy.ai",
      "category": "Writing",
      "notable": false,
      "checkedAt": "2026-10-14T01:26:37.025Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.copy.ai/",
        "finalUrl": "https://www.copy.ai/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 1696,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.copy.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.copy.ai/ · HTTP 200 · 212869 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1245 words in the raw HTML, ignoring script and style. H1: “GTM Platform”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $16.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.copy.ai/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 212869,
          "words": 1245,
          "h1": "GTM Platform",
          "title": "Future proof your business with GTM AI",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [
            "$16"
          ],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.copy.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.copy.ai/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 854,
            "sitemapUrls": [
              "https://www.copy.ai/sitemap.xml",
              "https://www.copy.ai/sitemap.xml"
            ],
            "textLength": 850,
            "text": "User-agent: *\nAllow: /\n\n# 🚫 Block paginated URLs (common Webflow blog query params)\nDisallow: /*?88f8398a_page=\nDisallow: /*?4306d73d_page=\nDisallow: /*?4e25f633_page=\nDisallow: /*?_page=\nDisallow: /*&ec3b096a_page=\nDisallow: /*&fbc21e0b_page=\nDisallow: /*?*page=\n\n# 🚫 Block internal utility pages or duplicated content sections\nDisallow: *vendors?q\nDisallow: /components-for-blog\nDisallow: /prompt-library-category/\nDisallow: /tool-categories/\nDisallow: /prompt-library-use-case/\nDisallow: /glossary-categories/\nDisallow: /glossary\nDisallow: /tag\nDisallow: /for\nDisallow: /archive/\nDisallow: /alternatives\nDisallow: /workflow-template\nDisallow: /abm/\nDisallow: /abm-templates\nDisallow: /author/\nDisallow: /app/\nDisallow: /community/\nDisallow: /learn/certificates/\n\nSitemap: https://www.copy.ai/sitemap.xml\n\nSitemap: https://www.copy.ai/sitemap.xml"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://www.copy.ai/llms.txt",
            "contentType": "text/html; charset=utf-8",
            "bytes": 22384,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.copy.ai/sitemap.xml",
            "contentType": "application/rss+xml; charset=utf-8",
            "bytes": 507942,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "writesonic",
      "name": "Writesonic",
      "url": "https://writesonic.com",
      "category": "Writing",
      "notable": false,
      "checkedAt": "2026-10-14T01:26:39.727Z",
      "result": {
        "ok": true,
        "inputUrl": "https://writesonic.com/",
        "finalUrl": "https://writesonic.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 2146,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://writesonic.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://writesonic.com/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "2372 words in the raw HTML, ignoring script and style. H1: “Win customers from AI search.”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $350, $150, $1.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, PostalAddress, ContactPoint, WebSite, SoftwareApplication, AggregateRating.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 11720 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://writesonic.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 2372,
          "h1": "Win customers from AI search.",
          "title": "Writesonic | The AI Search Growth Engine. Win Customers.",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [
            "$350",
            "$150",
            "$1"
          ],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Organization",
            "PostalAddress",
            "ContactPoint",
            "WebSite",
            "SoftwareApplication",
            "AggregateRating"
          ],
          "ldParsed": 3,
          "ldBlocks": 3,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://writesonic.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://writesonic.com/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 164,
            "sitemapUrls": [
              "https://writesonic.com/sitemap.xml",
              "https://writesonic.com/blog/sitemap.xml"
            ],
            "textLength": 164,
            "text": "User-Agent: *\nAllow: /\n\n# Host\nHost: https://writesonic.com/\n\n# Sitemap\nSitemap: https://writesonic.com/sitemap.xml\nSitemap: https://writesonic.com/blog/sitemap.xml"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://writesonic.com/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 11720,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://writesonic.com/sitemap.xml",
            "contentType": "application/xml; charset=UTF-8",
            "bytes": 15098,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "grammarly",
      "name": "Grammarly",
      "url": "https://www.grammarly.com",
      "category": "Writing",
      "notable": true,
      "checkedAt": "2026-10-14T01:26:42.880Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.grammarly.com/",
        "finalUrl": "https://www.grammarly.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 1797,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.grammarly.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.grammarly.com/ · HTTP 200 · 501654 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1226 words in the raw HTML, ignoring script and style. H1: “Think big. We’ll take care of the details.”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $0, $12, $30, $5,00.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.grammarly.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 501654,
          "words": 1226,
          "h1": "Think big. We’ll take care of the details.",
          "title": "Grammarly: Free AI Writing Assistance",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [
            "$0",
            "$12",
            "$30",
            "$5,00"
          ],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.grammarly.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.grammarly.com/robots.txt",
            "contentType": "text/plain; charset=UTF-8",
            "bytes": 289,
            "sitemapUrls": [
              "https://www.grammarly.com/sitemap.xml",
              "https://www.grammarly.com/blog/sitemap_index.xml"
            ],
            "textLength": 289,
            "text": "User-agent: *\n\nDisallow: /voucher/\nDisallow: /social/\nDisallow: /api/\nDisallow: /enterprise/\nDisallow: /nonprofits-ngos\nDisallow: /plans/try\nDisallow: /es-us/\nDisallow: /blog/search/\n\nSitemap: https://www.grammarly.com/sitemap.xml\nSitemap: https://www.grammarly.com/blog/sitemap_index.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://www.grammarly.com/llms.txt",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 474099,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.grammarly.com/sitemap.xml",
            "contentType": "text/xml; charset=UTF-8",
            "bytes": 1015,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "quillbot",
      "name": "QuillBot",
      "url": "https://quillbot.com",
      "category": "Writing",
      "notable": false,
      "checkedAt": "2026-10-14T01:26:45.684Z",
      "result": {
        "ok": true,
        "inputUrl": "https://quillbot.com/",
        "finalUrl": "https://quillbot.com/",
        "checkedPath": "/",
        "pageStatus": 403,
        "truncated": false,
        "elapsedMs": 1648,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "HTTP 403",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "warn",
                "detail": "GPTBot: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "warn",
                "detail": "OAI-SearchBot: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "warn",
                "detail": "ChatGPT-User: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "warn",
                "detail": "ClaudeBot: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "warn",
                "detail": "PerplexityBot: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "warn",
                "detail": "Google-Extended: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "warn",
                "detail": "Applebot-Extended: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "warn",
                "detail": "CCBot: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "warn",
                "detail": "Bytespider: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "Couldn't read robots.txt. xAI has not published a crawler user-agent, so there is no token that reliably allows or blocks Grok.",
                "fix": "Keep the page's facts in the raw HTML. robots.txt cannot reliably control Grok until xAI publishes a token."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://quillbot.com/ · HTTP 403 · 5818 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "page-http",
                "name": "Page response",
                "hint": "HTTP status",
                "status": "warn",
                "detail": "The URL returned HTTP 403.",
                "fix": "Open the exact URL visitors and crawlers should read. This score is for the response this address returned."
              },
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "fail",
                "detail": "The URL returned HTTP 403 and only 9 visible words. This is not the page content.",
                "fix": "Check the exact public URL. A 4xx or 5xx response is what a crawler may keep."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 403.",
                "fix": "Serve /llms.txt as a public plain-text file with HTTP 200."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "warn",
                "detail": "/sitemap.xml returned HTTP 403, and no usable sitemap was listed in robots.txt.",
                "fix": "Publish an XML sitemap at /sitemap.xml, or point a Sitemap line in robots.txt at one, listing your key pages."
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 5818,
          "words": 9,
          "h1": "",
          "title": "Just a moment...",
          "challenge": true,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "unavailable",
            "note": "HTTP 403",
            "status": 403,
            "finalUrl": "https://quillbot.com/robots.txt",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 5891,
            "sitemapUrls": [],
            "textLength": 5891,
            "text": "<!DOCTYPE html><html lang=\"en-US\"><head><title>Just a moment...</title><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"><meta name=\"robots\" content=\"noindex,nofollow\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><meta http-equiv=\"content-security-policy\" content=\"default-src &#39;none&#39;; script-src &#39;nonce-u1L9AfHsC9CKmSZve4Y574&#39; &#39;unsafe-eval&#39; https://challenges.cloudflare.com; script-src-attr &#39;none&#39;; style-src &#39;unsafe-inline&#39;; img-src &#39;self&#39; https://challenges.cloudflare.com; connect-src &#39;self&#39; https://challenges.cloudflare.com; frame-src &#39;self&#39; https://challenges.cloudflare.com blob:; child-src &#39;self&#39; https://challenges.cloudflare.com blob:; worker-src blob:; form-action http: https:; base-uri &#39;self&#39;\"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}#challenge-error-text{background-image:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+\");background-repeat:no-repeat;background-size:contain;padding-left:34px}</style><meta http-equiv=\"refresh\" content=\"360\"></head><body><div class=\"main-wrapper\" role=\"main\"><div class=\"main-content\"><noscript><div class=\"h2\"><span id=\"challenge-error-text\">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script nonce=\"u1L9AfHsC9CKmSZve4Y574\">(function(){window._cf_chl_opt = {cFPWv: 'g',cH: 'Fg7uHs2GazFRaxykPUBg45VbX1vRzJGeplUyS0kCDe4-1791941206-1.2.1.1-Hppo0UgGFm41MpVMmUA7pEmWxqz27PTbUXjGfvF4wvHiLOPF6JoO7hvUAGVeyg4q',cITimeS: '1791941206',cN: 'u1L9AfHsC9CKmSZve4Y574',cRay: 'a4a2cc3b1ff8c768',cTplC:0,cTplO:0,cTplV:5,cType: 'managed',cUPMDTk:\"/robots.txt?__cf_chl_tk=FQOAsEwpJywZNTerdMPsQ3Oi_DItOFJW2MpO2P6.4co-1791941206-1.0.1.1-ZIwaLfr0bRUJN.cEhQ04s45Uwe_6fkP8FL5xNNDmeT4\",cvId: '3',cZone: 'quillbot.com',fa:\"/robots.txt?__cf_chl_f_tk=FQOAsEwpJywZNTerdMPsQ3Oi_DItOFJW2MpO2P6.4co-1791941206-1.0.1.1-ZIwaLfr0bRUJN.cEhQ04s45Uwe_6fkP8FL5xNNDmeT4\",md: 'AokfeQiIEPvOtESboR8NbmzA28NY7l7taZkwXGmaiL0-1791941206-1.2.1.1-BVN.DkYJzpZqPqCFkFZT1xcvJtc01MvSo7LBQiVFrBEk0WjXCSKs7nWOejSC.O1uG2.9Fs6EYkcZZcm._4rK1Tom3CCyr0TxIOGvLxcU_4CTOzr8SR5YBMjEPmM9EfDRf6qLtAcqs0bPZW4E6_u1UlEF5TFf1fdORL2519Hxho05DUL.0pfstyYSsGdzSVHloHOzzy7bvIlh7KB3Fa3Jru4mfLkch01iACUvVW2NdeYM__LuQptlwsDBeGNQDLyGPU1mTCqKwYyoOXBVpBE8q1bWpxnuaC30R_G4mrQBEVuh2_.ZNRcZf_9xEV7_yH2jlpqPyRLrixkX2rvE7bV72RJ42T3uKrAq7zaVD5dRdVtYqRCxHXsFQiLxLbPZpQwBu_FmYSobfRbAJgMJuJiHwE_Q619lj.kTtCFGQ.VLSEjwa.Bq3VcNOnECuCHiI2unpK2paQ7M3uNavuT5m8xtGk4Bi4ZNnACt5.IOP6MdsyCHsRXoCHyGjFDZitRvv64Eu5d1J9OEZTpCq3qsWt.l4hhfFcq3H0HDrSMvKQRZ6KGtOLlMNHZ2_3qkXVXZ.4JHMPOkyG4yE0y0oygDwGEqDezRVyUv9tXgGbJGg3yUHC6H5qJyTop9peMhQoUVFw4M5PI3Vl7ZmuT3hjgFb_nJ7A487TDjiFkph7o070yskFqBMbDlzAHp4siFFBXFdZKLhF_MN_7TDGm8r8xJt6xsgRYGbV19D_HNhG80CFyo3kZjwFXcPCbuh9DNntzInvhWblGjC6xvimFnBlHULGUe2hgALW_2vJQgW4jygs6RiN2eVFGKrrTk7V5Y77qi57bKdMUoA26RTL1zXIzuy.wJFiJ0pAzPCrNQT95zMIetDoeRtvsQw1essp1yOOJ5FEh7bKJ.2PyHSP.dhROv_afWpZFsW9ehQPuUlGnJkfo7tmKvNP3aiBBG2XccuaZ3zpEJPD7EKC9z2.RTUaWdW0wR7MXjRJNdsKtXhkOTWEeoljZIP3liLf1WSz.dv50t9oHp4ZO_diA9Uj_Fkkg60VULL4ZSwG_xMBrcAcjzbtllLUGApDKDJCdnTeB3yJsdYK4pZsN6OkvaMRe1.jOjkNf_vcoXoJ2tWG45oLas3ITmiXPAiOkavr9Ede9w7v7WQNrXSQSiVlEuK6DDzi7MSWW4pRz5XYQ9IOu4S6r0kv4xvNvSyJzQzZTq_Kl9eQRaKj6smvMH.7g336cOxpwP3bZ2m5DpT5OM68RD2rnJs7SOugL_KoqZyyZjMFVD15Gr5i5jNmXaWNuZodrAT1eZ7drvgg',mdrd: 'gVBCt9Z6yQcdsu6b6IbgTKD6xkejEj_ogW7SClcvCfQ-1791941206-1.2.1.1-74X6NLcFjh1NyyYXcWQsIi.itrBw_FdJXx.RtY3V8OsIzqTJuesdugjo.M2nh746nHYmiekr55PkPe7N.CIctyp5KRORa_AgZL8fh4StgyL_1GEkhHCxZfZbG6v0WOT_2_qmFEoT.sVSgw8.jD9kgfA5Y8VdRVAUV5afmWiN1RIib.7pd_OeXNpxJBHCCbCnVmDjhMmzENgah9pyNUU_aw3WF5y6vZrC_be68HQNP583IU5yxhxRBDLInH_FdfzUsej8kcK_eKB7_J8qAtWISrSGlTA.somdo4klC2ye7nG.ELYwHUcltKLY95RW2FRAXdRBzZ7MSmP6M1XiDISgtpe1EngBbDPw.4GjMdMu6f5ei38SXoSnP3qYqDdm7KSdpHmQiOD9dL5wz7M8zcAm2crY4bE6doOIbWvwzTufbVU0zeI3mfdaKGrk0x47m1JWW9.hapFWlNFS0U6vA_BJQFGkX8wgpaio.bshXSqLgGdv2tRFMPBI3G2WHwpUoMPe',};var a = document.createElement('script');a.nonce = 'u1L9AfHsC9CKmSZve4Y574';a.src = '/cdn-cgi/challenge-platform/h/g/orchestrate/chl_page/v1?ray=a4a2cc3b1ff8c768';window._cf_chl_opt.cOgUHash = location.hash === '' && location.href.indexOf('#') !== -1 ? '#' : location.hash;window._cf_chl_opt.cOgUQuery = location.search === '' && location.href.slice(0, location.href.length - window._cf_chl_opt.cOgUHash.length).indexOf('?') !== -1 ? '?' : location.search;if (window.history && window.history.replaceState) {var ogU = location.pathname + window._cf_chl_opt.cOgUQuery + window._cf_chl_opt.cOgUHash;history.replaceState(null, null,\"/robots.txt?__cf_chl_rt_tk=FQOAsEwpJywZNTerdMPsQ3Oi_DItOFJW2MpO2P6.4co-1791941206-1.0.1.1-ZIwaLfr0bRUJN.cEhQ04s45Uwe_6fkP8FL5xNNDmeT4\"+ window._cf_chl_opt.cOgUHash);a.onload = function() {history.replaceState(null, null, ogU);}}document.getElementsByTagName('head')[0].appendChild(a);}());</script></body></html>"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": null,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": null,
              "specific": false,
              "agent": "",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 403,
            "error": "",
            "finalUrl": "https://quillbot.com/llms.txt",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 5885,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 403,
            "error": "",
            "finalUrl": "https://quillbot.com/sitemap.xml",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 5894,
            "checkStatus": "warn",
            "pass": false,
            "looksLikeSitemap": false,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "wordtune",
      "name": "Wordtune",
      "url": "https://www.wordtune.com",
      "category": "Writing",
      "notable": false,
      "checkedAt": "2026-10-14T01:26:48.336Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.wordtune.com/",
        "finalUrl": "https://www.wordtune.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 1793,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.wordtune.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.wordtune.com/ · HTTP 200 · 124083 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1160 words in the raw HTML, ignoring script and style. H1: “Express yourself with confidence”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.wordtune.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 124083,
          "words": 1160,
          "h1": "Express yourself with confidence",
          "title": "Wordtune — Express yourself with confidence",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.wordtune.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.wordtune.com/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 116,
            "sitemapUrls": [
              "https://www.wordtune.com/sitemap.xml",
              "https://www.wordtune.com/sitemap.xml"
            ],
            "textLength": 116,
            "text": "User-agent: *\nAllow: /\n\nSitemap: https://www.wordtune.com/sitemap.xml\n\nSitemap: https://www.wordtune.com/sitemap.xml"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://www.wordtune.com/llms.txt",
            "contentType": "text/html; charset=utf-8",
            "bytes": 12730,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.wordtune.com/sitemap.xml",
            "contentType": "application/rss+xml; charset=utf-8",
            "bytes": 51416,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "deepl",
      "name": "DeepL",
      "url": "https://www.deepl.com",
      "category": "Writing",
      "notable": true,
      "checkedAt": "2026-10-14T01:26:51.136Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.deepl.com/",
        "finalUrl": "https://www.deepl.com/en",
        "checkedPath": "/en",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 2369,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /en. Fetched https://www.deepl.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /en. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /en. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /en. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /en. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /en. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /en. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /en. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /en. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /en. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.deepl.com/en · HTTP 200 · 389680 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1272 words in the raw HTML, ignoring script and style. H1: “AI solutions that help you get work done”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, ImageObject, Place, QuantitativeValue, ContactPoint, WebSite, ItemList, ListItem, WebApplication, Action, EntryPoint, Offer.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.deepl.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 389680,
          "words": 1272,
          "h1": "AI solutions that help you get work done",
          "title": "DeepL AI Platform: Translation, Voice & API",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Organization",
            "ImageObject",
            "Place",
            "QuantitativeValue",
            "ContactPoint",
            "WebSite",
            "ItemList",
            "ListItem",
            "WebApplication",
            "Action",
            "EntryPoint",
            "Offer"
          ],
          "ldParsed": 3,
          "ldBlocks": 3,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.deepl.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.deepl.com/robots.txt",
            "contentType": "text/plain; charset=UTF-8",
            "bytes": 1722,
            "sitemapUrls": [
              "https://www.deepl.com/sitemap.xml"
            ],
            "textLength": 1722,
            "text": "############################################\n# Last full revision: 2026-08-31\n############################################\n\nSitemap: https://www.deepl.com/sitemap.xml\n\n##### Ads & Monetization #####\nUser-agent: AdsBot-Google\nUser-agent: AdsBot-Google-Mobile\nUser-agent: AdIdxBot\nUser-agent: Mediapartners-Google\nUser-agent: Ads-Naver\nUser-agent: Y!J-BRY\nUser-agent: Y!J-BRZ\n# Full access for ads quality assessment & UTM tracking\nAllow: /\n# API legacy docs exclusion\nDisallow: /*docs-api-legacy$\nDisallow: /*docs-api-legacy/\n# Cloudflare paths\nDisallow: /cdn-cgi/bm/cv/\nDisallow: /cdn-cgi/challenge-platform/\nDisallow: /cdn-cgi/images/trace/\nDisallow: /cdn-cgi/rum\nDisallow: /cdn-cgi/scripts/\nDisallow: /cdn-cgi/styles/\nDisallow: /cdn-cgi/zaraz/\n\n##### Organic #####\nUser-agent: Googlebot\nUser-agent: Bingbot\nUser-agent: Yeti\nUser-agent: Y!J-ASR\nUser-agent: Y!J-WSC\nUser-agent: Slurp\n# Block campaign paths & UTM parameters\nDisallow: */translator/c/\nDisallow: /*utm_campaign=*\nDisallow: /*utm_source=linguee*\n# API legacy docs exclusion\nDisallow: /*docs-api-legacy$\nDisallow: /*docs-api-legacy/\n# Cloudflare paths\nDisallow: /cdn-cgi/bm/cv/\nDisallow: /cdn-cgi/challenge-platform/\nDisallow: /cdn-cgi/images/trace/\nDisallow: /cdn-cgi/rum\nDisallow: /cdn-cgi/scripts/\nDisallow: /cdn-cgi/styles/\nDisallow: /cdn-cgi/zaraz/\n\n##### Everone else #####\nUser-agent: *\n# Explicit access for campaign paths\nAllow: */translator/c/\n# API legacy docs exclusion\nDisallow: /*docs-api-legacy$\nDisallow: /*docs-api-legacy/\n# Cloudflare paths\nDisallow: /cdn-cgi/bm/cv/\nDisallow: /cdn-cgi/challenge-platform/\nDisallow: /cdn-cgi/images/trace/\nDisallow: /cdn-cgi/rum\nDisallow: /cdn-cgi/scripts/\nDisallow: /cdn-cgi/styles/\nDisallow: /cdn-cgi/zaraz/"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://www.deepl.com/llms.txt",
            "contentType": "text/html; charset=utf-8",
            "bytes": 63741,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.deepl.com/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 425,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "notion",
      "name": "Notion",
      "url": "https://www.notion.com",
      "category": "Workspace",
      "notable": true,
      "checkedAt": "2026-10-14T01:26:54.508Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.notion.com/",
        "finalUrl": "https://www.notion.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 1938,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.notion.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.notion.com/ · HTTP 200 · 210083 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "444 words in the raw HTML, ignoring script and style. H1: “Where teams and agents Think together.”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "A price is present in structured data (USD 0) but not in the visible text.",
                "fix": "Put the price in the visible HTML as well. Some crawlers never read JSON-LD."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, WebSite, SoftwareApplication, Offer.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 6803 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.notion.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 210083,
          "words": 444,
          "h1": "Where teams and agents Think together.",
          "title": "The AI workspace that works for you. | Notion",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [
            "USD 0"
          ],
          "ldTypes": [
            "Organization",
            "WebSite",
            "SoftwareApplication",
            "Offer"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.notion.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.notion.com/robots.txt",
            "contentType": "text/plain",
            "bytes": 1178,
            "sitemapUrls": [
              "https://www.notion.com/sitemap.xml",
              "https://sitemaps.notion.com/sitemap-categories.xml",
              "https://sitemaps.notion.com/sitemap-collections.xml",
              "https://www.notion.com/sitemap-root.xml",
              "https://www.notion.com/blog/sitemap.xml",
              "https://www.notion.com/customers/sitemap.xml",
              "https://www.notion.com/help/sitemap.xml",
              "https://www.notion.com/md/sitemap.xml",
              "https://www.notion.com/releases/sitemap.xml",
              "https://www.notion.com/use-case/sitemap.xml",
              "https://www.notion.com/feature/sitemap.xml",
              "https://www.notion.com/front-static/sitemap.xml"
            ],
            "textLength": 1178,
            "text": "User-Agent: *\nAllow: /\nDisallow: /invite/\nDisallow: /*/invite/\nDisallow: /templates/search?query=*\nDisallow: /*/templates/search?query=*\nDisallow: /lp/webinars/\nDisallow: /lp/webinars/*\nDisallow: /_vercel/insights/view\nDisallow: /embed/*\nDisallow: /*/embed/*\nDisallow: /product/agents-homepage\n\nUser-Agent: BLEXBot\nDisallow: /\n\nUser-Agent: AhrefsBot\nDisallow: /\n\nUser-Agent: Amazonbot\nDisallow: /\n\nUser-Agent: Amzn-SearchBot\nDisallow: /\n\nUser-Agent: meta-externalagent\nDisallow: /\n\nUser-Agent: SemrushBot\nDisallow: /\n\nUser-Agent: dotbot\nDisallow: /\n\nSitemap: https://www.notion.com/sitemap.xml\nSitemap: https://sitemaps.notion.com/sitemap-categories.xml\nSitemap: https://sitemaps.notion.com/sitemap-collections.xml\nSitemap: https://www.notion.com/sitemap-root.xml\nSitemap: https://www.notion.com/blog/sitemap.xml\nSitemap: https://www.notion.com/customers/sitemap.xml\nSitemap: https://www.notion.com/help/sitemap.xml\nSitemap: https://www.notion.com/md/sitemap.xml\nSitemap: https://www.notion.com/releases/sitemap.xml\nSitemap: https://www.notion.com/use-case/sitemap.xml\nSitemap: https://www.notion.com/feature/sitemap.xml\nSitemap: https://www.notion.com/front-static/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.notion.com/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 6803,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.notion.com/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 12688,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "gamma",
      "name": "Gamma",
      "url": "https://gamma.app",
      "category": "Workspace",
      "notable": false,
      "checkedAt": "2026-10-14T01:26:57.451Z",
      "result": {
        "ok": true,
        "inputUrl": "https://gamma.app/",
        "finalUrl": "https://gamma.app/",
        "checkedPath": "/",
        "pageStatus": 403,
        "truncated": true,
        "elapsedMs": 2088,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "HTTP 403",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "warn",
                "detail": "GPTBot: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "warn",
                "detail": "OAI-SearchBot: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "warn",
                "detail": "ChatGPT-User: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "warn",
                "detail": "ClaudeBot: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "warn",
                "detail": "PerplexityBot: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "warn",
                "detail": "Google-Extended: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "warn",
                "detail": "Applebot-Extended: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "warn",
                "detail": "CCBot: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "warn",
                "detail": "Bytespider: robots.txt could not be used (HTTP 403). This is not counted as a disallow.",
                "fix": "Serve a public /robots.txt that returns HTTP 200 and plain text."
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "Couldn't read robots.txt. xAI has not published a crawler user-agent, so there is no token that reliably allows or blocks Grok.",
                "fix": "Keep the page's facts in the raw HTML. robots.txt cannot reliably control Grok until xAI publishes a token."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://gamma.app/ · HTTP 403 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "page-http",
                "name": "Page response",
                "hint": "HTTP status",
                "status": "warn",
                "detail": "The URL returned HTTP 403.",
                "fix": "Open the exact URL visitors and crawlers should read. This score is for the response this address returned."
              },
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "fail",
                "detail": "The URL returned HTTP 403 and only 9 visible words. This is not the page content.",
                "fix": "Check the exact public URL. A 4xx or 5xx response is what a crawler may keep."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 4328 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "warn",
                "detail": "/sitemap.xml returned HTTP 403, and no usable sitemap was listed in robots.txt.",
                "fix": "Publish an XML sitemap at /sitemap.xml, or point a Sitemap line in robots.txt at one, listing your key pages."
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 524288,
          "words": 9,
          "h1": "",
          "title": "",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "unavailable",
            "note": "HTTP 403",
            "status": 403,
            "finalUrl": "https://gamma.app/robots.txt",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 512000,
            "sitemapUrls": [],
            "textLength": 512000,
            "text": "<!DOCTYPE html>\n<html lang=\"en\" translate=\"no\" class=\"notranslate\">\n  <head>\n    <link rel=\"manifest\" href=\"/manifest.json\" data-next-head=\"\" />\n    <link\n      rel=\"icon\"\n      type=\"image/svg+xml\"\n      href=\"https://static.gamma.app/favicons/favicon_dark.svg\"\n    />\n    <meta\n      content=\"Gamma is your free-to-use AI design partner for creating effortless presentations, websites, and more. No coding or design skills required.\"\n      name=\"description\"\n      data-next-head=\"\"\n    />\n    <meta content=\"Gamma\" property=\"og:title\" data-next-head=\"\" />\n    <meta\n      content=\"Gamma is your free-to-use AI design partner for creating effortless presentations, websites, and more. No coding or design skills required.\"\n      property=\"og:description\"\n      data-next-head=\"\"\n    />\n    <meta\n      content=\"https://static.gamma.app/images/gamma-banner-8d71c455.png\"\n      property=\"og:image\"\n      data-next-head=\"\"\n    />\n  <meta http-equiv=\"refresh\" content=\"360\"></head>\n  <style>\n    /* [project]/packages/client/src/scss/fonts-esbuild.scss.css [client] (css) */\n    @font-face {\n      font-family: ESBuild;\n      src: url('data:font/woff2;base64,d09GMk9UVE8AAIEwAAwAAAAA8swAAIDgAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYKqFRqCWhvnLhyfegZgAItsATYCJAOVPgQGBYxOByAb7vFHUL12CA66DQGo1Lm6qvzhE9i67eoF3Db2DcPhPu6wGek4aaVv9v//f1qyMUbCWQdgaPb1axumGfRI4O4uET0l0yUsJEwOiZBuIaw+nLp6jIkonGefa7GlEDe/Ptm7Gq4vYd6kuTwqApKQhCQkLjgYS/qjIkLCloRBEpKQ3PJCY3/f1p+QNx/XuSN3NU8DJKRQTNGEypSli5FOOT/A5VEXJQoc5FuGzKylqI3Nw9GJMrtarXf/vXK++thdvaeYNrGjD7Uy85I/FVHIzEC5y0SEl5p4qRvfm7Hp3wjO0sO+x2yt/ZS8Qm0t/wVs+8SrwNj1EFWj1nl/np/bn3vfG4wxFjCiJgyEETVHijgUMEaJiJSIhXykxShaSqQcFSotrR/5GNETlBLzCzYYhQ3VtIx0uCE3wObT2rBm68OUNVDwcp+z+/4BCKEK7nJ1wNJGCXYU9R97n9Zz3t8lKAqJWoQD4ZIMWWI8QmMV5VEG4dOFHlh+bmbe3l3KT+hd0oUGhYyKokpsNwrhEBahkbr0HeC3+f8HJA+HkBY4h/BgYCMzsXImFhg4sLBizhkzilurcHGd2+zdebfbunJxa1n/vlV9twbnwp7nbev/5WGfnrf3//u/z/7tf0/v7kYdjGGUpGi+jimP944z6qgzpmG0MaA2hmGAxjHkQWnNGBIKGMEIBgQRSUHApgFFEa2Dq3Xmn99WPx7n4Rz4qYc5C++8dzdjZnbbcUp3RxttjAJRogyMwlHEBKvGJozCxMTCKTGYsjaiLp7n//77OLNfr/Pu+4qlkZToRVEixyUaKsy00y4y+O+mS8jFaQeAf+IhNyU6L/+6Wv+/+3bG4wALv7YJzvG4sJNmGycwPNQy1DL8qOW20E0nvToqjdnImF7aQQ5G9ICsGa2c85u45kjaaAzfveqmLJDddLBtcGlT4LYEhe0eKDazqQn/z4/h/L93rmyLK5WYxJJpIpFIJBL/q9pOsLIMGeGlSV+d7kopVbEVWw9b9tnSmdzMMrMzY9HYqpDYOUVlD3FJ+p4+aogCTjjw3hqQHeZwpZqUlcL1xrO/WuX2oZmVfUKC6r5NV7pbITyf20rdhr2PiGUSR4NESCS6gQKibbDbf1PzvbB4f0opDBgHImlmpK94d6+tfU2X3gGRDtlBFxgYhBNEUP7ebFXue1nQm9kiFlbCSnols0r4TK+UpyxpavP/97OozJ8F/MyC7swquC4Sdq4oeiaKpGemgFZVzczQtFilhFWiFfQoajS9qmElp6Q2lXvemhtnXZxhnecqYd7Zpw3PPMM5Ami/b3XnfBuiHiq1vLfo/kXPF7FkljiSSTVJUUOjdmIh4z2cfT9Nab6/W9tUGZolzAdYiuwAHBwYQKQv3UhPz629O6f0LvuUXggplZXWUMKCg2AoEQ//f0N99yQlGIbfsZIq+c/CcN8mMBv4BOfx/Pd73+mTlfpUTgpcY+NdK5tahElR4akvFBapS3UMymGEA0oU54r0qU4VGbYFLPrZaYaeCAAiUC6wSkgRAwh10x/sLokCnngswWOAaR54rkHHmmEZGFrQGGFXV2kl/dVe7e5nbPb/YSz9De5AmZjoSs6YLuUqjzGtzo31fL9kr78aaxQFLImpNpQBs2uYrT2mFSWdqO9oDv7dkv/euZkfN+1CgrgIjkiQ+m3Y539jSXrt3u4lIYgMMogEEQlBQhD5pL3/hiANSIj1UdpDkbLbixZh+T9jkz+Z8ONv9OM9/p6L+1UKIkYvpPM/Kz5NfJijaL1dQdd6n87+BQYg/XMm5k6AkIGOEg26+CxYm8uV2DL+QmwQY6s90mQrUKFGgza9TrnohnseG/HSpM++m3EySAGxVJWriQLtFblIHwNc7QYjjXenKWaZ7wHLrbPJDv/1pBe87j1HfOmkn/TNGMtjdlrx4ifIvvm55l1Qa4rMINMv78pOuuAVr39Zl39V9+4+hkiVLklpZzab8Qsz7IiTluzcCBUt7gSTTjH1dJOevJTElcYslJj3SstttN+ZLnWjnmU0pHEVNLm5LSldW0PNtN2MPm9By1vTd7X2C5apbAhlEi2GLLOPP6FEkUQKmRRBI+ElSYEO6WRTRh0QiwKBqXp7Trvkpt6GGi1bnhJl5nhDRF6nflNW7ZhuvqU6feMHF4Zh5pF1trTWprc2nwUtdoJlLH/lk+dbdMV193TZK1jV3s7yNt3c3X33F3//Az76eS/93C99xli2apu3c0/slb2/w/t2f0Mjc5DihopQEkglhyLKaaSdXvZRSBVN9HCe+4zxnim+SCBDAkmFylVeClSo4pUsnQpUrio1aoV6lat8lapWjWpXp47rtK7otqQa0nP9r8/6YCyFTLE132LL7W4fhzjGyc50ngtd7jovd4cznediV/mwW93tPp/xZd/yQz/1uCf8xQvBQzSIF3Gc4x11IhKf1GiTn+JUpiEt6Up2ClKamjSkLUfTn3O5mjuRZjgvMpHPmS9QIpVdef0a0aRm1NCKLmtvJT3U7p7r/b7ot37WnMAVkFDSNuOBgSlWIpEM+UqoNemgN2bGklvuGTDqlXemHCjU6ilapmKNek3a5Ftw8bG7mQlNfKSLRXL4sPQ/Ru8wyXLyKi+S/osIbiVDX//wl35LCswy8k0MNqtM8WlWD8HHYSDmVvWscG5CrJIVPOS8AVBFolRItCI+KHL9QbyOsPUHsPHwkKOkAkx8KysfpUcy7BF/9VQ83azwVHxMs1ZFkVI8D516fo7xOWPwUhS+2fJE1no3edHSrul9GvvOfFB6USCTzTmQGf55mhTd3Cxzm7fyKdlrz9Lrgnou3vBfvals7bpeyi9EQRKynuri7UEvvU0OERJYkrINS5SYNG3pL/zd+tq79E5Fs3dHyvjBXv3wPi/t5+n980Pt7Buyr374ZB5H7Cdh/MTFz7HXP6tdG/kjmN08Y4ILM+HkRCVgxQpL7LSpzFwQRjhDusEaUDzyM6rdXM3d53IXeUkcwAjcIgaJSqBSaggjnGGm0msIkTMASpUC3XD+MriuXgWpIB44YjU7nzFwyAqvlBirmrBeKT7WiLiIWixgkKgMtkRhIlGCVpBzwoghOypsu72krVmz8ZiG+KxsAimqqV4Bg0QlplRhIlGC2n6mhBHOkM7XYXCj9GPvjmo7jMD/mWO364aqe/v6iTOn3Bxo+6mO2Kk5dOJjlkNVnPUyI+Ck+VzOGDhkRfsl4J5gL03AIFGJWYQwkShBXVIWhBHOMGO/kjkhcuZgcloGue6bYAJKwZ71jSHA9Q1Ieb/zG6RDb3J88A7QqJEHpkPJx+oB7gk5Z5PzszARekKn2AIGiUpMpQgLeTkFuuCSCMQYFuccVueO1nSi9Qb4HGGbPLzDPwZiQTGBv1ikMMNF5Tiovi0EJYzVMM4cMOPa5JQQOSMQCFrjnBMiZwSCQGUAdEREZZ6KalSLnBFGOMPskE52GfyKGnWzy+BzuaaCcuZhloTEwcGykDk4tGQIJrwbz0ApGDXasYeJxkuKrYbdEMZwhjD1Gw0hcgZAx8//DOYN53FR/dKixrWl1OKypvF0i85Oyc7JEzlRCQbZhogJRn7GGx8X3Sexihoc/kRpxMsV/ezyGP+MHn8cDWPWZ/nhxu6NHTjEAA7arzwpwmS73ZjK3AVem5Z6G+mpZuR5okf36v79MB+tFAD2/uBtUE2QZqbcqrEVlmT1gSmvquHlol5x0Q0TLqZX3IUl1LA3u98Igikun2FwUa/UIhwj1AD9Dky6l8MxPgdWluZ1KYVJU6YtsdQyyyfFNVYk5wU2YmDUmHETJqNSz53aDz0RVAGgQwfbzykcAnYZLh063EkCHE4h/YBwSibsCpb4PsapNkhU3IQnjkyYNBX0eQxGDRsxZtyESVOmLbHUspCfg3LCOwpreCgENS9TD3R/4qR1ydVgGz5NUfvG7pw/bU9jmydwWxdJTshXxa7G1NJTvd7zEW+y4BPqXZQvtEEMcXQIPPplw8j9raM3H+46WfrBGS+5w7X8WKqyND7XoeE5jSyV3TT3vRwkazR4ZBic4nj8bpQcURNWFXLQLzVfOhUlp0rf5WYq7S9xhJ5o6eMGiAsKKpY/aKy1IAjor5o8Yp3nAcWKRNl1jT/ZEmwuFJhSYmCZiZic9wySBfaBQD2E4TMXzkEYJoPyINa1U+amqrOvwH3+t5MzvulOXZLu1ITR7vdnNLtQ5s1xg2mRKOY6FeQ6Sz55blZraCz9IF8SVTfc4/4tbc378rrfhCMVlfY6gN2aN/ltKK0eCQ0WZdp0fkx2FmCDzQNoq33We9/8jYLkka76uuilv2sMc4d7zbXIBtuVZXb/0Z6nl4a+/rVy6V5OfsIFL36VG1/mFZ/rGu5DAAIN9JZG1hMWTmQpj5Zwsqmnn6wU5mVq2q1vrW6g2zaRCAsVcbLsee1/AJgQDlz20nBFysWVdJm2at/nllvje+cHMPM+LCk9PTO6NJJ+i/bqfgIiS8lmi0Cl6tNjvfRip3qlz/hrXGPM6jzJeLVa1+G+6ntP8d11+C5hk97q7bPNpw/KolmCaOCOPGgxBzPuYFywJ6nIipFYBnHFl4PQkTNIflwn5VC+3+oit7oPDaqW2rfSiwZb7qZvYGgd0Rnd0HPc+Gkw5AyFJAMeUsL7eRYyzjTNdp4l1t50l7MtseaWK9nrufXqM2ILtmmnQp9pG049UdJjwoo9n5pv5TtDKgGs/Q62wkrPbau4VUcylgmfNvkTyRqnBExqJIGKdA1koEKEVejBMctEJAI56P8XFqZ3Fu3LTeqmyjpatBa9QZ1XlffbgjYutq7KrMxCvxnFeM7CTdnvLK+yJrPWB3pVA+GwwtAR/A2y9dsYbRLKveKc2O+XlUVvYJ1LldfuNeqXfwJyde01RIYeYgXBk23GiMZ209uSJCVvkGzrTLBTe0oPUxw3XCrcAYABF0dfVOhWSOId7fFyp6Gb4KV0RaF7kSQXAMSAe4rfOj+w+xKYQeIHttQ13kT5qj9u5GeifHGcY/xpSt8RocGBIePfpDBQTBOSeCPHucz8lRLY5FJB7yuFZGc9NiTJ+CiFoWIak0Tu6wd6ipuekt6dV4uRGj98SNWoAbclDysFow9Qhqf/E6HWjiFIkW6q0DYOQW7/qHqRh8NNbcjtJytEIRJ8+ny+mxIIt8DXAsv0zbi7tT/cu3twfyvg6/bD/VwB94hzYupbjJuqO81HDWAIaZYtgReMTkkYnJWDISTf3VmnV7cSXjn/Crad+vuiv6ecsrr3rBPt9DJ+a9emN8rLmvCXMnqdorwIlW9TT5d5JYINOUJWV2h8wE9Rrq4c4+MUthXTLtn+3mGu+8z8+jhMTB4n8+GAjdmCW/+uja3Z3xS2U5xJCljiNZ6/KO55vgXmDzifQtaVleaDSDv8BufEC3rjDJ2M3VtR2QjskcQ3fE7wo7uG+oz0BxfduBjwXTgjekjQW4BHGnniCWlMDXBSzYbrpq6tvCd/6A74ueOa4WGJNilJIklK0kqHAactqy4qgSheecbPLc/HdY/j3AQX0M+79eI3HcrOm45wpy6A6VDFPXNa6C4en9YPCzXu9TjXCcEagB+7LBR77o1LUGyVtHDl1YUap+wGsCwqAmWCV7VW4lGaZnEETHboPCbO1TW4f/URcyeNsB++PBW8JM9RwmQ37thRVVvX9DWEcXt0dW1l9Rk7xZFAemjx8m6dtqu7v78rVSJOTRUCHjjs1pufd27t7Vv8fSwc+9ioPloojfB2dK3k6A3AY+GWeLB2+rB/JSRwq7mOuP66na2VqbDJuFMfd5pTC+xGbrqlZSJZ+Gh8wbc6L5QoDPD+iS8+XD4rl7sGGnI1wkMkiEj7MJP/lJwF2Sr3QH3Ok3uceAFBj8lNIIDSDRXcmdDSo+cMzo1CEKGdRo7ASIbfkU5zC8UrLSV+rms5mdUY1KPj8IgPr3uOfvI46Ki12fZyLpyTwlTZuPLVl94JHnGSLEUBiNT2VwoEd3ELzaMVIk87ENPTpEUvnkqOjOZLEjii7r4i4KcF7TZfUtRKeMQ5TQy5VJAyOd93gVVYzT39cpiUJHhGe0IZ3e0I2OHY4VIbbtV/qQNLMZLvmANRinvkuOAvW8ycFi78SviBfxXgEo1hJF1dWKVQ0aJTJaDJl3+9PzfOkEM7iSMLLnCDDjo+2ziLs4DbdazDdxFkOVxHXBOCgQIP/RvAvq+8pqz+jNt/CS5RwBqP10maJI8ZHyzn4AQMCJCO94UPPGsBhsC6mqB65JTMr7MBcpajqMGu2uwQdioDHRI49+jRDRghc9sTanVrw1ebIYsVJtlMdZ23f2beSrlVbdWpk24q0SJpvWiuWB/FTbQt+EfUaPhBv0L63JHluCvtkUpFcUFRLk1gzaht5C4V/AtHt9KxyLbSFjzaXp1Xm1+fQ8P8iVrUN6kL3a20RmncT9s4FEn5UfUmd3YH0BsUh6diRtGMj2FZcUmz/mp9RWk7zk0lNgc5Zlf8i4O6Q6+QL4hAoos2bXkM1w/t9+2m67u7m5/cmuaGdoEa4n+GZqky0HaDPQiSw3+1Z1Xm4BGRiqbCxoIWGs3b1KI9zwds8zzjgkhk9KL2TQdNEA2wCF7WgrAYTgB9iGVGoflJ6KefewwUjBXTkBy4IMqVgqlOVj+vXTuD7JGfdthMV9yCLzLR+8prm+kQz2pc+LdlHL9YwMAXViAc9S61tntlD3AjyIeUsi3bHtKPyCm+uQSnBwZguHrQRXhYBUI97BizsifeGzQoIOAaxWek/0WzgFLWXAikPAGzZec/XceKgAMEwou4Sc/OurOJBy9OiKFPWRLP4xwYO+omTF+rqMbUEe9j1MCR/7K8Of9Bz2TOkw7v23e2kLzgIOS6Sd3U5GHHvv2Qry3Xd1FtVCHIk+mOcc5neiqxgg03bJtuBK0PvfIoQuW8rwT8680q8NRTVTcUzlBinkoBGsnwBVJ/xjctw2RCM9D1qakKAG73NWIDSmzRYGMHTEjA/uARrjZrSmjQbxF7VAUUPqqNOnWl7opXnPN2oivxZq4bkm2bkoPWrw96VOttD59sWws9pvmt+PhbN+fET59eUKDTHphzy3Kl+a/WwRPHHY5jxxzWZdWNjbViQcZSkEpxrrQQR85sBaBcMb5Db/BWXaNcsy6tGc6j/pFlCt9Hs9N66ww1TympP1mN15DbC8dbrUdB9kp1zgNorbcCnOeUK1BCWlM9dJor9l5ufUvs6k7bjPLKECV/BqIfba1EIZvng0JOhnho2WInZv/v2W/KmeacWaYVg0XyDBY3xQQo91f7GBVVjppymMq9Hrvwbe2YWtn4rx5icn/l0r8ygnL3frFZ6ieS540OTSlJFM/qe02Tja+OzBodqjU5Wyb2fcx8QVAODUDQH5HssssSbZT67BtrG7+iA1uezbSUbFx4sbw1eTkiCkRdtjkDosaeTwITS2NVBIFe96pG1a7S06K1LUtUGTVSKAjWxasIpXm1aK8REtSmZYWcYiEtQvv9VOFocQdB17VxH43oQe3K9KImgLh2RSeBsPFxHlauGxXosErXumqJVJYpmTdWwnSmFLmUqYK6yEnOR9mPJumTeplK0h5BJ7pqNHUgGlzbKPN4nwTPtsgkkuyxBz9VGgoYteSAzNuyoZb/cNuvvVkmfT0iwBUXDqsNHaiB6K8KC8/bUQBQuH8LW7Y1Kas7xuqoEH+83F7dXdWLN2hrcHVqVcYB/RGvI0i1SXTSAumPlRmKVGUKLwo/ougubndG7QV31vxF6MJGd+PhyiO+1lzSVMYmIDptQ7wLzL+Yv3Fa0kzgnCLq0OIql+S/v89F5BI2JqL+FnKOBZY1qUKJ55HrsmG3eO7C7yqdf99u08ETSFDxjIKxtcodJdtUmPLKyb7j3AihOqdTzene6qyn8oyl1RoTq7uZBnxMSPCWZcw3y4YoW76p0FBwwH+KapZzou1YUvNlbXmXlZD04Z/Wh2aq9uo+UCO+Vpu3mDrXNS3GKkIkZQwIcDpE8n0zhgnsRG6x1OGAbdnQs+o1p7p1J8EKcjhWbpzTcmmKJASXDblX6+eKQXety9ac0xqElgmcrQMQB9xR15mttbbT2x/eNq/+5uuaCNC+81rf6gh6fzXn+jV/gTtY8O4NTVY3P0jsNzgw7upHjPHHj1naa222FsyFZ1KElevd3vcYd7RVhaCUEbQ+NFar6gn89lllYoiNCvzcJFQ6yJDwYMwoUZk//WsSs3TrLFA2PtUtjeE/OHSYEOQyIUBz9x5zT42AI1UnAJ/ciCnlP+5Ozff37uxbtwJ9OgxnXAHNPLP8yM78vmLimh5VxSwk2NigwmYMng4OdfR9+Lz7kPeNE9zjCgRbeCTXYGKzid9cKoS5fohx/o197DsUWHZNEm/BQMI71KLBBvJMjGOy3u07ceYzF++ktd5SwjbwS/K2wGSPqJm9qP1ghMKN53uWDzwyXFyZIC41R22h+8Pmrxv9wiPFu10qkD3vIba3Tf+4gLdN9yZ47fZIgDilob7fWqq/vWv57LO77t26fev+toXitHmG4qZ/vROrXdifEwvIR3ZN/tcoHh1RSvppWtRr3JmYHZrDwUPeuaplxc8/coDK4qPGxUZcZvY4yLLz9yQbjxKZRXPn3HDDhUeOExp8LPE9b/vqK+n9yX9MfywK3jXTj35MNi+s3D8SuEPulk1giBk8POXO6UNe6KRQaTAP2J4Jf407hmMeOS4b9y6sVH+m/Ikn0z8F2m7LJDhrtsLkxjLot0ut5G9pv+kGRVS2WUSejlvjY5+cetFy251WoGx9Z3kakunvF55w+jUveOLVufM4L+egjzbqfz9bbQWCshvGIPdDmWN9hZIXkMfZSp7sfy/2e052aQa6KLlxeGRoSNveVvzxUaTSjjkp8bFhpy0fhPDUma4JjmBMwu4nSwfNd6HzlNdakXTaHiv3mhVzQ8G+Zy1vCHbXESMeO57W9jieKjc5OmE70XT928WkSwV/zxv4JGTz3i1Qzh4pDkkA2Ffs1kjyhM0iUFOloSEj1hpetG88PNjw6tx5lNdFi/DIcUEuIIjuwjCV21NnvXasLf9IgBgt4nbV0HYXHZI5Fcxk5pyOZMusbSUATsRVN3fg0RHI2Eemwf7m/L118/0H64zAwAmMq+DY8AwEYxfLD15mlzLIlOLkreX+4T0Lsh7vuX37uVb60ePnPO4FlYOuYfnhgaqtdLeTB2MlJEnR78YuNV/Ufu0SDJdqyTPc6YkdLuTaBz+wCUtDIDS7KPx1BLXeIpo77gBaz+miL2XUH119E/eCT81UJSq1OriJs7ffHBqjF5x+z9dvnP9FfzXSZqYd2Lt163azPdIQcts0b8lIfPzJExchUuvUOXoFly/HLV1QWFpfLJZrbd/V8b+zvFKdMnOFkhdKjTJztRIe2/TcR4rTbT3QlzOfKt5Wpdvc87Hi6NzLeUYLP1rUXdROYDAT99EQExiXkV680bA57yo6aoThmSczilKVyTQ+XoEzwBxZpjxSnbCuW3H0xVyYJLRoVHhrJOY1D4sL0hRZtAhtc0xBV46OEGNNvLWG5gAV/JCpR0wK5RwZU3wz5UkKeTdzU6AGmP3ZbinyNajhL46cUwEaRAWiUCCQL9P3MfH6zueQDtuzPuvUadLbZMuMqiV1TnZo2vLVoqPu1fWmTwM+8F8eEAKEqb92p80FQlmYIOG1BHr20+YSegTgClDwE+BfAdGTIWAWTs9UjCka8zEk8y7MPugZjbxkpiEfY2nsqkMWa30aN/HsOw65F4wPqwZ5obW4k952HrnTuhUxr2gsZ73I57zfr7jVI8dlr5tioBKdghVu45ogJtEhPiVwqvCzOoc5ycNMYG7fBm3Bmvtq6kJxUV4KiIiGTvhe+Ggk4wnxr55rKHqN2kimWqMsqenrMb1cU17aiudK+Wae4j2VjAtq9saxID0u6Hry8QEa5cJJRYKOuGcdIjYrCstKz5EwvmFdceH7SmdEmAnKCdijgHWUwp6VqpSOtgIumPgTAqVTHuLXknjrre7+PfXZS2Acad0fxSkiVM6CQpufOa4ZHJJoeDyJlMvTSgcBp2zVX/V938rmFkeG1WCnHeF5ibeGD6d9L5ndJl+vkaAtcjKHOYu6Ey0lTOTJF0WRhkA8F09o+CiYIW1r1Gql4ozYbDoYW1nVCdZifJih9htb4/VKpoEc4xknaNoFzDywudaJ9ovCh9cq1Mdcp33WxIyMOoy7PPWRIaZJ9DN/hpMqX/4JfCZZPyi4cvIVmCAS+EY9bMz6EcoOvgjURAFaHTRW5MBJyIFhHMt2cRo1Vf6CRcBIMJR8Z6QRm8+1Z4NDRsvRAFsmfX3e9eyRk/UHXIVuuI76onrtPoUiY6ePawYGJRo+XyLl8bXSAcCtumAgsgs5RdX/nu9MEyJbOA7mrqLavKotxU/iUTUJ/UKLXT0+2e+An8YMJaKU17k5mGyweFoNuaHcs8bt9qEoFzPfqAYYw/e3l7ajnzLqof6WYtn1Z2KZih4Ez+67XwOrHO0ZFHleOnPLcbWyGpP3sKhR4rKfrPiwvtskk8/9QL/uUgHuvw8PeEypZNCK1DbuKVXJGwkmWPGpIZQ/QzMqBWiXEb4ExXGv9a3+j5nMi84hKIf8Ya4lXozfBuGWMfSInCd+s0ykWVJ7oHB+X2hIhJkXqjBuN+7ZoapsbIBCsOPcVNSyYK2OuZBUD+xG7rBiRVWjoaSqXKi3kW6K8okRDY7dRzaEdEc46JGLYDDglI7bFn…"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": null,
              "countedAsBlock": false,
              "specific": false,
              "agent": "",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": null,
              "specific": false,
              "agent": "",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": null,
              "specific": false,
              "agent": "",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://gamma.app/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 4328,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 403,
            "error": "",
            "finalUrl": "https://gamma.app/sitemap.xml",
            "contentType": "text/html; charset=UTF-8",
            "bytes": 512000,
            "checkStatus": "warn",
            "pass": false,
            "looksLikeSitemap": false,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "beautiful",
      "name": "Beautiful.ai",
      "url": "https://www.beautiful.ai",
      "category": "Workspace",
      "notable": false,
      "checkedAt": "2026-10-14T01:27:00.549Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.beautiful.ai/",
        "finalUrl": "https://www.beautiful.ai/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 4391,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.beautiful.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.beautiful.ai/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1380 words in the raw HTML, ignoring script and style. H1: “A faster way to create professional presentations”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, ImageObject, Person, ContactPoint, Review, Rating, Service, AdministrativeArea, OfferCatalog, Offer, FAQPage, Question.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.beautiful.ai/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 1380,
          "h1": "A faster way to create professional presentations",
          "title": "AI Presentation Software for Teams",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Organization",
            "ImageObject",
            "Person",
            "ContactPoint",
            "Review",
            "Rating",
            "Service",
            "AdministrativeArea",
            "OfferCatalog",
            "Offer",
            "FAQPage",
            "Question"
          ],
          "ldParsed": 3,
          "ldBlocks": 3,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.beautiful.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.beautiful.ai/robots.txt",
            "contentType": "text/plain; charset=UTF-8",
            "bytes": 512,
            "sitemapUrls": [],
            "textLength": 512,
            "text": "# Presentation and app routes that should not be crawled.\nUser-agent: *\nDisallow: /player/\nDisallow: /deck/\nDisallow: /meeting/\nDisallow: /copydeck/\nDisallow: /library/\nDisallow: /theme/\nDisallow: /team-resources/\nDisallow: /create-presentation/\nDisallow: /account/\n# Presentation and resource ids are root-level Firebase-style ids (for example /-OS_H_UJ7EsDRAQxqXOB/1).\nDisallow: /-\n\n# Unblock LinkedIn to allow presentation previews in posts\nUser-agent: LinkedInBot\nDisallow:\n\nUser-agent: TwitterBot\nDisallow:\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://www.beautiful.ai/llms.txt",
            "contentType": "text/html; charset=utf-8",
            "bytes": 230358,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.beautiful.ai/sitemap.xml",
            "contentType": "application/xml; charset=utf-8",
            "bytes": 135131,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "cursor",
      "name": "Cursor",
      "url": "https://cursor.com",
      "category": "Coding",
      "notable": true,
      "checkedAt": "2026-10-14T01:27:05.949Z",
      "result": {
        "ok": true,
        "inputUrl": "https://cursor.com/",
        "finalUrl": "https://cursor.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1683,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://cursor.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://cursor.com/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "2869 words in the raw HTML, ignoring script and style. H1: “Cursor is your coding agent for building ambitious software.”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, ImageObject, ContactPoint, WebSite.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 24261 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://cursor.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 2869,
          "h1": "Cursor is your coding agent for building ambitious software.",
          "title": "AI Coding Agent for Building Ambitious Software | Cursor",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Organization",
            "ImageObject",
            "ContactPoint",
            "WebSite"
          ],
          "ldParsed": 2,
          "ldBlocks": 2,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://cursor.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://cursor.com/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 1047,
            "sitemapUrls": [
              "https://cursor.com/sitemap_index.xml",
              "https://forum.cursor.com/sitemap.xml"
            ],
            "textLength": 1047,
            "text": "# *\nUser-agent: *\nAllow: /\nAllow: /marketplace\nAllow: /*/marketplace\nDisallow: /api/\nDisallow: /dashboard\nDisallow: /*/dashboard\nDisallow: /agents\nDisallow: /*/agents\nDisallow: /settings/\nDisallow: /*/settings/\nDisallow: /marketplace/publish$\nDisallow: /*/marketplace/publish$\nDisallow: /team/accept-invite\nDisallow: /*/team/accept-invite\nDisallow: /team/free-trial\nDisallow: /team/new-team\nDisallow: /*/team/new-team\nDisallow: /failure\nDisallow: /*/failure\nDisallow: /loginDeepControl\nDisallow: /*/loginDeepControl\nDisallow: /loginDeepPage\nDisallow: /*/loginDeepPage\nDisallow: /referral\nDisallow: /*/referral\nDisallow: /pricing-history\nDisallow: /*/pricing-history\nDisallow: /artifacts/c/\nDisallow: /artifacts/v/\nDisallow: /link/prompt\nDisallow: /*/link/prompt\nDisallow: /*/docs\nDisallow: /*/docs/\nDisallow: /*/learn\nDisallow: /*/learn/\nDisallow: /*/help\nDisallow: /*/help/\nDisallow: /*/for\nDisallow: /*/for/\n\n# Host\nHost: https://cursor.com\n\n# Sitemaps\nSitemap: https://cursor.com/sitemap_index.xml\nSitemap: https://forum.cursor.com/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://cursor.com/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 24261,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://cursor.com/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 32006,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "replit",
      "name": "Replit",
      "url": "https://replit.com",
      "category": "Coding",
      "notable": true,
      "checkedAt": "2026-10-14T01:27:08.639Z",
      "result": {
        "ok": true,
        "inputUrl": "https://replit.com/",
        "finalUrl": "https://replit.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1700,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://replit.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://replit.com/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1339 words in the raw HTML, ignoring script and style. H1: “What will you build?”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $0, $20, $18, $120.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 20191 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://replit.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 1339,
          "h1": "What will you build?",
          "title": "AI App and Website Builder | Replit",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [
            "$0",
            "$20",
            "$18",
            "$120"
          ],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://replit.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://replit.com/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 432,
            "sitemapUrls": [
              "https://replit.com/sitemap.xml",
              "https://replit.com/marketing-sitemap/repls-on-replit-sitemap-index.xml",
              "https://replit.com/sitemaps/main.xml",
              "https://replit.com/marketing-sitemap/sitemap.xml",
              "https://replit.com/languages/sitemap.xml",
              "https://replit.com/sitemaps/templates.xml",
              "https://replit.com/blog/sitemap.xml"
            ],
            "textLength": 432,
            "text": "User-agent: *\nDisallow:\n\nUser-agent: FreshpingBot\nDisallow: /\n\nSitemap: https://replit.com/sitemap.xml\nSitemap: https://replit.com/marketing-sitemap/repls-on-replit-sitemap-index.xml\nSitemap: https://replit.com/sitemaps/main.xml\nSitemap: https://replit.com/marketing-sitemap/sitemap.xml\nSitemap: https://replit.com/languages/sitemap.xml\nSitemap: https://replit.com/sitemaps/templates.xml\nSitemap: https://replit.com/blog/sitemap.xml"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://replit.com/llms.txt",
            "contentType": "text/plain",
            "bytes": 20191,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://replit.com/sitemap.xml",
            "contentType": "text/xml; charset=utf-8",
            "bytes": 783,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "v0",
      "name": "v0",
      "url": "https://v0.dev",
      "category": "Coding",
      "notable": false,
      "checkedAt": "2026-10-14T01:27:11.344Z",
      "result": {
        "ok": true,
        "inputUrl": "https://v0.dev/",
        "finalUrl": "https://v0.app/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 2333,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://v0.app/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://v0.app/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "413 words in the raw HTML, ignoring script and style. H1: “What do you want to create?”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, WebApplication.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned an HTML page, not a text file.",
                "fix": "Serve a real plain-text file at /llms.txt. An HTML fallback does not count."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://v0.app/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 413,
          "h1": "What do you want to create?",
          "title": "v0 by Vercel - Build Full-Stack Web Apps with AI",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Organization",
            "WebApplication"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://v0.app/robots.txt.",
            "status": 200,
            "finalUrl": "https://v0.app/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 138,
            "sitemapUrls": [
              "https://v0.app/sitemap.xml"
            ],
            "textLength": 138,
            "text": "# If you would like to be added below, please send us an email at security@vercel.com.\n\nUser-agent: *\n\nSitemap: https://v0.app/sitemap.xml"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://v0.app/llms.txt",
            "contentType": "text/html; charset=utf-8",
            "bytes": 512000,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://v0.app/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 497,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "bolt",
      "name": "Bolt.new",
      "url": "https://bolt.new",
      "category": "Coding",
      "notable": false,
      "checkedAt": "2026-10-14T01:27:14.685Z",
      "result": {
        "ok": true,
        "inputUrl": "https://bolt.new/",
        "finalUrl": "https://bolt.new/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 2582,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://bolt.new/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://bolt.new/ · HTTP 200 · 138043 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "509 words in the raw HTML, ignoring script and style. H1: “What will you build today?”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $100.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: WebApplication, Organization, AggregateOffer.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned an HTML page, not a text file.",
                "fix": "Serve a real plain-text file at /llms.txt. An HTML fallback does not count."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://bolt.new/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html",
          "bytes": 138043,
          "words": 509,
          "h1": "What will you build today?",
          "title": "Bolt AI builder: Websites, apps & prototypes",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [
            "$100"
          ],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "WebApplication",
            "Organization",
            "AggregateOffer"
          ],
          "ldParsed": 2,
          "ldBlocks": 2,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://bolt.new/robots.txt.",
            "status": 200,
            "finalUrl": "https://bolt.new/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 180,
            "sitemapUrls": [
              "https://bolt.new/sitemap.xml",
              "https://bolt.new/cms/sitemap.xml",
              "https://support.bolt.new/sitemap.xml"
            ],
            "textLength": 180,
            "text": "User-agent: *\nAllow: /\nDisallow: /~\nDisallow: /hosting\nSitemap: https://bolt.new/sitemap.xml\nSitemap: https://bolt.new/cms/sitemap.xml\nSitemap: https://support.bolt.new/sitemap.xml"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://bolt.new/~/llms.txt",
            "contentType": "text/html",
            "bytes": 88271,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://bolt.new/sitemap.xml",
            "contentType": "application/xml; charset=utf-8",
            "bytes": 1142,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "lovable",
      "name": "Lovable",
      "url": "https://lovable.dev",
      "category": "Coding",
      "notable": false,
      "checkedAt": "2026-10-14T01:27:18.277Z",
      "result": {
        "ok": true,
        "inputUrl": "https://lovable.dev/",
        "finalUrl": "https://lovable.dev/",
        "checkedPath": "/",
        "pageStatus": 403,
        "truncated": false,
        "elapsedMs": 2072,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://lovable.dev/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: GPTBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: OAI-SearchBot.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: ChatGPT-User. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: ClaudeBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: PerplexityBot.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: Google-Extended. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: Applebot-Extended. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://lovable.dev/ · HTTP 403 · 5902 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "page-http",
                "name": "Page response",
                "hint": "HTTP status",
                "status": "warn",
                "detail": "The URL returned HTTP 403.",
                "fix": "Open the exact URL visitors and crawlers should read. This score is for the response this address returned."
              },
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "fail",
                "detail": "The URL returned HTTP 403 and only 9 visible words. This is not the page content.",
                "fix": "Check the exact public URL. A 4xx or 5xx response is what a crawler may keep."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 4747 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://lovable.dev/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 5902,
          "words": 9,
          "h1": "",
          "title": "Just a moment...",
          "challenge": true,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://lovable.dev/robots.txt.",
            "status": 200,
            "finalUrl": "https://lovable.dev/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 1668,
            "sitemapUrls": [
              "https://lovable.dev/sitemap.xml"
            ],
            "textLength": 1666,
            "text": "User-Agent: *\nAllow: /\nDisallow: /auth\nDisallow: /@*\nDisallow: /desktop-quick-chat\nDisallow: /landing\nDisallow: /landing/*\n# The `&`/`%26` refinement tails below come from buildTemplatesUrl.ts — change one, change both.\nDisallow: /templates&\nDisallow: /templates%26\nDisallow: /templates/*&\nDisallow: /templates/*%26\nDisallow: /*/templates&\nDisallow: /*/templates%26\nDisallow: /*/templates/*&\nDisallow: /*/templates/*%26\n\n# A named group replaces the `*` group outright, so its rules are repeated, not inherited.\nUser-Agent: Slackbot\nUser-Agent: Slackbot-LinkExpanding\nUser-Agent: Twitterbot\nUser-Agent: LinkedInBot\nUser-Agent: facebookexternalhit\nUser-Agent: Facebot\nUser-Agent: Discordbot\nUser-Agent: WhatsApp\nUser-Agent: TelegramBot\nAllow: /\nDisallow: /auth\nDisallow: /@*\nDisallow: /desktop-quick-chat\nDisallow: /landing\nDisallow: /landing/*\n\n# Split from the crawler group below: these open one pasted URL, so filter links must resolve.\nUser-Agent: ChatGPT-User\nUser-Agent: Claude-User\nUser-Agent: Claude-Web\nAllow: /\nDisallow: /auth\nDisallow: /desktop-quick-chat\nDisallow: /projects/\nDisallow: /@*\nDisallow: /landing\nDisallow: /landing/*\n\nUser-Agent: GPTBot\nUser-Agent: OAI-SearchBot\nUser-Agent: ClaudeBot\nUser-Agent: PerplexityBot\nUser-Agent: Google-Extended\nUser-Agent: Applebot-Extended\nAllow: /\nDisallow: /auth\nDisallow: /desktop-quick-chat\nDisallow: /projects/\nDisallow: /@*\nDisallow: /landing\nDisallow: /landing/*\nDisallow: /templates&\nDisallow: /templates%26\nDisallow: /templates/*&\nDisallow: /templates/*%26\nDisallow: /*/templates&\nDisallow: /*/templates%26\nDisallow: /*/templates/*&\nDisallow: /*/templates/*%26\n\nSitemap: https://lovable.dev/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "GPTBot",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "OAI-SearchBot",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ChatGPT-User",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ClaudeBot",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "PerplexityBot",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Google-Extended",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Applebot-Extended",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://lovable.dev/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 4747,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://lovable.dev/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 949,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "windsurf",
      "name": "Windsurf",
      "url": "https://windsurf.com",
      "category": "Coding",
      "notable": false,
      "checkedAt": "2026-10-14T01:27:21.355Z",
      "result": {
        "ok": true,
        "inputUrl": "https://windsurf.com/",
        "finalUrl": "https://devin.ai/desktop",
        "checkedPath": "/desktop",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1976,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /desktop. Fetched https://devin.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /desktop (Allow: /). Group: GPTBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /desktop (Allow: /). Group: OAI-SearchBot.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /desktop (Allow: /). Group: ChatGPT-User. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /desktop (Allow: /). Group: ClaudeBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /desktop (Allow: /). Group: PerplexityBot.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /desktop (Allow: /). Group: Google-Extended. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /desktop (Allow: /). Group: Applebot-Extended. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /desktop (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /desktop (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://devin.ai/desktop · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "2010 words in the raw HTML, ignoring script and style. H1: “Devin Desktop”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $0, $20, $200, $80.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: SoftwareApplication.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 2514 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://devin.ai/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 2010,
          "h1": "Devin Desktop",
          "title": "Devin Desktop | Devin",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [
            "$0",
            "$20",
            "$200",
            "$80"
          ],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "SoftwareApplication"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://devin.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://devin.ai/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 341,
            "sitemapUrls": [
              "https://devin.ai/sitemap-index.xml"
            ],
            "textLength": 341,
            "text": "User-Agent: GPTBot\nUser-Agent: OAI-SearchBot\nUser-Agent: ChatGPT-User\nUser-Agent: ClaudeBot\nUser-Agent: Claude-SearchBot\nUser-Agent: PerplexityBot\nUser-Agent: Google-Extended\nUser-Agent: Applebot-Extended\nUser-Agent: DeepSeekBot\nUser-Agent: ora-agent\nUser-Agent: *\nAllow: /\nDisallow: /top-secret\n\nSitemap: https://devin.ai/sitemap-index.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "GPTBot",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "OAI-SearchBot",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ChatGPT-User",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ClaudeBot",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "PerplexityBot",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Google-Extended",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Applebot-Extended",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://devin.ai/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 2514,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://devin.ai/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 42026,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "otter",
      "name": "Otter.ai",
      "url": "https://otter.ai",
      "category": "Meetings",
      "notable": false,
      "checkedAt": "2026-10-14T01:27:24.339Z",
      "result": {
        "ok": true,
        "inputUrl": "https://otter.ai/",
        "finalUrl": "https://otter.ai/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 2218,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://otter.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://otter.ai/ · HTTP 200 · 208575 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1334 words in the raw HTML, ignoring script and style. H1: “Your AI notetaker is now also your Conversational Knowledge Engine”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $19.99.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned an HTML page, not a text file.",
                "fix": "Serve a real plain-text file at /llms.txt. An HTML fallback does not count."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://otter.ai/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 208575,
          "words": 1334,
          "h1": "Your AI notetaker is now also your Conversational Knowledge Engine",
          "title": "Otter Meeting Agent - AI Notetaker, Transcription, Insights",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [
            "$19.99"
          ],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://otter.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://otter.ai/robots.txt",
            "contentType": "text/plain; charset=UTF-8",
            "bytes": 226,
            "sitemapUrls": [
              "https://otter.ai/sitemap.xml"
            ],
            "textLength": 226,
            "text": "User-agent: *\nAllow: /\nDisallow: /agent/\nDisallow: /press?*_page=*\nDisallow: /blog?*_page=*\nDisallow: /u/\nDisallow: /s/\nDisallow: /v/\nDisallow: /note/\nDisallow: /signin\nDisallow: /signup\n\nSitemap: https://otter.ai/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://otter.ai/llms.txt",
            "contentType": "text/html; charset=utf-8",
            "bytes": 512000,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://otter.ai/sitemap.xml",
            "contentType": "text/xml",
            "bytes": 46553,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "fireflies",
      "name": "Fireflies.ai",
      "url": "https://fireflies.ai",
      "category": "Meetings",
      "notable": false,
      "checkedAt": "2026-10-14T01:27:27.567Z",
      "result": {
        "ok": true,
        "inputUrl": "https://fireflies.ai/",
        "finalUrl": "https://fireflies.ai/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1839,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://fireflies.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://fireflies.ai/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1016 words in the raw HTML, ignoring script and style. H1: “The #1 AI Assistant For Your Meetings”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, ContactPoint, PostalAddress.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 12911 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://fireflies.ai/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 1016,
          "h1": "The #1 AI Assistant For Your Meetings",
          "title": "Fireflies.ai | #1 AI Teammate for Meetings, Email, Chat & CRM",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Organization",
            "ContactPoint",
            "PostalAddress"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://fireflies.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://fireflies.ai/robots.txt",
            "contentType": "text/plain",
            "bytes": 143,
            "sitemapUrls": [
              "https://fireflies.ai/sitemap.xml"
            ],
            "textLength": 143,
            "text": "User-Agent: *\nAllow: /\nDisallow: /design/\nDisallow: /cdn-cgi/\nDisallow: /security/bug-bounty-invite\n\nSitemap: https://fireflies.ai/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://fireflies.ai/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 12911,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://fireflies.ai/sitemap.xml",
            "contentType": "text/xml",
            "bytes": 779,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "krisp",
      "name": "Krisp",
      "url": "https://krisp.ai",
      "category": "Meetings",
      "notable": false,
      "checkedAt": "2026-10-14T01:27:30.416Z",
      "result": {
        "ok": true,
        "inputUrl": "https://krisp.ai/",
        "finalUrl": "https://krisp.ai/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 2151,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://krisp.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://krisp.ai/ · HTTP 200 · 244070 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1970 words in the raw HTML, ignoring script and style. H1: “Voice AI for meetings”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, Offer, WebSite, WebPage, SoftwareApplication, AggregateRating.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 11080 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://krisp.ai/sitemap_index.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 244070,
          "words": 1970,
          "h1": "Voice AI for meetings",
          "title": "Voice AI for Meetings: Noise Cancellation & AI Note Taker | Krisp",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Organization",
            "Offer",
            "WebSite",
            "WebPage",
            "SoftwareApplication",
            "AggregateRating"
          ],
          "ldParsed": 4,
          "ldBlocks": 4,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://krisp.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://krisp.ai/robots.txt",
            "contentType": "text/plain; charset=UTF-8",
            "bytes": 891,
            "sitemapUrls": [
              "https://krisp.ai/sitemap_index.xml",
              "https://krisp.ai/llms.txt"
            ],
            "textLength": 891,
            "text": "User-agent: *\nDisallow: /wp-admin/\nAllow: /wp-admin/admin-ajax.php\nDisallow: /?ref=\nDisallow: /?__hstc=\nDisallow: /?utm_term=\nDisallow: /?s=\nDisallow: /?PageSpeed=\nDisallow: /?utm_content=\nDisallow: /?utm_source=\nDisallow: /?utm_medium=\nDisallow: /?1fee388c_page=\nDisallow: /?12b6ea27_page=\nDisallow: /?contact=\nDisallow: /?3160c63a_page=\nDisallow: /?query=\nDisallow: /?gclid=\nDisallow: /?li_fat_id=\nDisallow: /?irclickid=\nDisallow: /?81ebbd39_page=\nDisallow: /?trk=\nDisallow: /?cr=\nDisallow: /?LinkSource=\nDisallow: /?01799404_page=\nDisallow: /?source=\nDisallow: /?s=MI&s=\nDisallow: /?73cdfb14_page=\nDisallow: /?87a3cc46_page=\nDisallow: /?4810b549_page=\nDisallow: /?5fa68c69_page=\nDisallow: /?57a6704f_page=\nDisallow: /?utm_campaign=\nDisallow: /?emulatemode=\nDisallow: /*?wordfence_\nDisallow: /*?wordfence_lh=\n\nSitemap: https://krisp.ai/sitemap_index.xml\nSitemap: https://krisp.ai/llms.txt\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://krisp.ai/llms.txt",
            "contentType": "text/plain; charset=UTF-8",
            "bytes": 11080,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://krisp.ai/sitemap_index.xml",
            "contentType": "text/xml; charset=UTF-8",
            "bytes": 472,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "character",
      "name": "Character.AI",
      "url": "https://character.ai",
      "category": "Assistant",
      "notable": true,
      "checkedAt": "2026-10-14T01:27:33.575Z",
      "result": {
        "ok": true,
        "inputUrl": "https://character.ai/",
        "finalUrl": "https://character.ai/",
        "checkedPath": "/",
        "pageStatus": 403,
        "truncated": false,
        "elapsedMs": 1700,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://character.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://character.ai/ · HTTP 403 · 5195 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "page-http",
                "name": "Page response",
                "hint": "HTTP status",
                "status": "warn",
                "detail": "The URL returned HTTP 403.",
                "fix": "Open the exact URL visitors and crawlers should read. This score is for the response this address returned."
              },
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "fail",
                "detail": "The URL returned HTTP 403 and only 127 visible words. This is not the page content.",
                "fix": "Check the exact public URL. A 4xx or 5xx response is what a crawler may keep."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://character.ai/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 5195,
          "words": 127,
          "h1": "Sorry, you have been blocked",
          "title": "Attention Required! | Cloudflare",
          "challenge": true,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://character.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://character.ai/robots.txt",
            "contentType": "text/plain",
            "bytes": 159,
            "sitemapUrls": [
              "https://character.ai/sitemap_index.xml"
            ],
            "textLength": 159,
            "text": "User-agent: *\nDisallow: /search\nDisallow: /search?\nDisallow: /__/auth/\nDisallow: /*?*\nDisallow: /user/settings\nSitemap: https://character.ai/sitemap_index.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://character.ai/llms.txt",
            "contentType": "text/html; charset=utf-8",
            "bytes": 7948,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://character.ai/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 551,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "poe",
      "name": "Poe",
      "url": "https://poe.com",
      "category": "Assistant",
      "notable": false,
      "checkedAt": "2026-10-14T01:27:36.280Z",
      "result": {
        "ok": true,
        "inputUrl": "https://poe.com/",
        "finalUrl": "https://poe.com/login?redirect_url=%2F",
        "checkedPath": "/login?redirect_url=%2F",
        "pageStatus": 403,
        "truncated": false,
        "elapsedMs": 1972,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /login?redirect_url=%2F. Fetched https://poe.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /login?redirect_url=%2F. No disallow matches. Group: GPTBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "fail",
                "detail": "Blocked for /login?redirect_url=%2F by User-agent: * (Disallow: /login).",
                "fix": "Remove the Disallow for OAI-SearchBot, or add a longer Allow for this path, so AI search can read the page."
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "warn",
                "detail": "Blocked for /login?redirect_url=%2F by User-agent: * (Disallow: /login).",
                "fix": "Allow ChatGPT-User if you want on-demand fetches to proceed. ChatGPT search is controlled by OAI-SearchBot."
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "warn",
                "detail": "Blocked for /login?redirect_url=%2F by User-agent: * (Disallow: /login).",
                "fix": "Leave the block if you don't want training use. To be cited in AI answers, allow the search crawlers (OAI-SearchBot, PerplexityBot)."
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "fail",
                "detail": "Blocked for /login?redirect_url=%2F by User-agent: * (Disallow: /login).",
                "fix": "Remove the Disallow for PerplexityBot, or add a longer Allow for this path, so AI search can read the page."
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /login?redirect_url=%2F. No disallow matches. Group: Google-Extended. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "warn",
                "detail": "Blocked for /login?redirect_url=%2F by User-agent: * (Disallow: /login).",
                "fix": "Leave this Disallow if you want to opt out of Apple Intelligence training. It does not block ordinary search crawling."
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "warn",
                "detail": "Blocked for /login?redirect_url=%2F by User-agent: * (Disallow: /login).",
                "fix": "Leave the block if you don't want training use. To be cited in AI answers, allow the search crawlers (OAI-SearchBot, PerplexityBot)."
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "warn",
                "detail": "Blocked for /login?redirect_url=%2F by User-agent: * (Disallow: /login).",
                "fix": "Leave the block if you don't want training use. To be cited in AI answers, allow the search crawlers (OAI-SearchBot, PerplexityBot)."
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is blocked only by the default rule; xAI-SearchBot is blocked only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://poe.com/login?redirect_url=%2F · HTTP 403 · 5937 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "page-http",
                "name": "Page response",
                "hint": "HTTP status",
                "status": "warn",
                "detail": "The URL returned HTTP 403.",
                "fix": "Open the exact URL visitors and crawlers should read. This score is for the response this address returned."
              },
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "fail",
                "detail": "The URL returned HTTP 403 and only 9 visible words. This is not the page content.",
                "fix": "Check the exact public URL. A 4xx or 5xx response is what a crawler may keep."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "fail",
                "detail": "No JSON-LD script in the HTML.",
                "fix": "Add a script type=\"application/ld+json\" with Organization and SoftwareApplication or Product, including the name and an Offer."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned an HTML page, not a text file.",
                "fix": "Serve a real plain-text file at /llms.txt. An HTML fallback does not count."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "warn",
                "detail": "/sitemap.xml returned HTML, not an XML urlset or sitemap index.",
                "fix": "Serve XML at /sitemap.xml (a urlset or sitemap index), not an HTML page."
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 5937,
          "words": 9,
          "h1": "",
          "title": "Just a moment...",
          "challenge": true,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [],
          "ldParsed": 0,
          "ldBlocks": 0,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://poe.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://poe.com/robots.txt",
            "contentType": "text/plain; charset=UTF-8",
            "bytes": 509,
            "sitemapUrls": [],
            "textLength": 509,
            "text": "User-agent: Googlebot\nAllow: /\n\nUser-agent: Bingbot\nAllow: /\n\nUser-agent: msnbot\nAllow: /\n\nUser-agent: DuckDuckBot\nAllow: /\n\nUser-Agent: GPTBot\nDisallow: /p/*\n\nUser-Agent: Google-Extended\nDisallow: /p/*\n\nUser-Agent: *\nAllow: /*/api\nDisallow: /_next/\nDisallow: /api/\nDisallow: /chat/\nDisallow: /s/\nDisallow: /apple_callback\nDisallow: /chats\nDisallow: /continue_chat\nDisallow: /desktop_app_open\nDisallow: /google_callback\nDisallow: /login\nDisallow: /search\nDisallow: /settings\nDisallow: /unsubscribe\nDisallow: /"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "GPTBot",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": false,
              "countedAsBlock": true,
              "specific": false,
              "agent": "*",
              "rule": "Disallow: /login"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": false,
              "countedAsBlock": true,
              "specific": false,
              "agent": "*",
              "rule": "Disallow: /login"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": false,
              "countedAsBlock": true,
              "specific": false,
              "agent": "*",
              "rule": "Disallow: /login"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": false,
              "countedAsBlock": true,
              "specific": false,
              "agent": "*",
              "rule": "Disallow: /login"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Google-Extended",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": false,
              "countedAsBlock": true,
              "specific": false,
              "agent": "*",
              "rule": "Disallow: /login"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": false,
              "countedAsBlock": true,
              "specific": false,
              "agent": "*",
              "rule": "Disallow: /login"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": false,
              "countedAsBlock": true,
              "specific": false,
              "agent": "*",
              "rule": "Disallow: /login"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": false,
              "specific": false,
              "agent": "*",
              "rule": "Disallow: /login"
            },
            "xAI-SearchBot": {
              "allowed": false,
              "specific": false,
              "agent": "*",
              "rule": "Disallow: /login"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://poe.com/llms.txt",
            "contentType": "text/html; charset=utf-8",
            "bytes": 88105,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://poe.com/sitemap.xml",
            "contentType": "text/html; charset=utf-8",
            "bytes": 88997,
            "checkStatus": "warn",
            "pass": false,
            "looksLikeSitemap": false,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "chatbase",
      "name": "Chatbase",
      "url": "https://www.chatbase.co",
      "category": "Agents",
      "notable": false,
      "checkedAt": "2026-10-14T01:27:39.259Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.chatbase.co/",
        "finalUrl": "https://www.chatbase.co/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1606,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.chatbase.co/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.chatbase.co/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1809 words in the raw HTML, ignoring script and style. H1: “Conversational agents for customer experience”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, Person, ContactPoint, WebSite, SoftwareApplication, Offer, AggregateRating, WebPage, SpeakableSpecification, HowTo, HowToStep.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 5534 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.chatbase.co/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 1809,
          "h1": "Conversational agents for customer experience",
          "title": "AI Agents for Customer Experience & Support | Chatbase",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Organization",
            "Person",
            "ContactPoint",
            "WebSite",
            "SoftwareApplication",
            "Offer",
            "AggregateRating",
            "WebPage",
            "SpeakableSpecification",
            "HowTo",
            "HowToStep"
          ],
          "ldParsed": 5,
          "ldBlocks": 5,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.chatbase.co/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.chatbase.co/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 824,
            "sitemapUrls": [
              "https://www.chatbase.co/sitemap.xml",
              "https://www.chatbase.co/docs/sitemap.xml"
            ],
            "textLength": 824,
            "text": "# chatbase.co robots.txt\n# Keep public marketing, docs, blog, and changelog crawlable.\n# Block private product, auth, API, internal, embed, and tokenized routes.\n\nUser-agent: *\nAllow: /\n\nDisallow: /account\nDisallow: /auth/\nDisallow: /dashboard\nDisallow: /help$\nDisallow: /help/\nDisallow: /help-desk\nDisallow: /onboarding\nDisallow: /api\nDisallow: /internal\nDisallow: /internal-support\nDisallow: /chatbot-iframe\nDisallow: /invitations/\nDisallow: /dashboard/invite/\nDisallow: /dashboard/join\nDisallow: /remix/\nDisallow: /callbacks/\nDisallow: /hubspot/select-chatbot\nDisallow: /embed.js\nDisallow: /embed.min.js\nDisallow: /shopify-embed.js\nDisallow: /shopify-embed.min.js\nDisallow: /_next/image\nDisallow: /*/help$\nDisallow: /*/help/\n\nSitemap: https://www.chatbase.co/sitemap.xml\nSitemap: https://www.chatbase.co/docs/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.chatbase.co/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 5534,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.chatbase.co/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 110503,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "intercom",
      "name": "Intercom",
      "url": "https://www.intercom.com",
      "category": "Agents",
      "notable": true,
      "checkedAt": "2026-10-14T01:27:41.874Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.intercom.com/",
        "finalUrl": "https://www.intercom.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 2001,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.intercom.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.intercom.com/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "218 words in the raw HTML, ignoring script and style. H1: “A complete system for AI and human customer service”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "A price is present in structured data (USD 29, USD 29, USD 0.99, USD 0.99) but not in the visible text.",
                "fix": "Put the price in the visible HTML as well. Some crawlers never read JSON-LD."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: WebSite, Organization, ImageObject, WebPage, Product, SoftwareApplication, Offer, UnitPriceSpecification, QuantitativeValue, ItemList, ListItem, BreadcrumbList.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 9133 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.intercom.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 218,
          "h1": "A complete system for AI and human customer service",
          "title": "Intercom | A complete system for human and AI customer service",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [
            "USD 29",
            "USD 29",
            "USD 0.99",
            "USD 0.99"
          ],
          "ldTypes": [
            "WebSite",
            "Organization",
            "ImageObject",
            "WebPage",
            "Product",
            "SoftwareApplication",
            "Offer",
            "UnitPriceSpecification",
            "QuantitativeValue",
            "ItemList",
            "ListItem",
            "BreadcrumbList"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.intercom.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.intercom.com/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 261,
            "sitemapUrls": [
              "https://www.intercom.com/sitemap.xml"
            ],
            "textLength": 261,
            "text": "User-agent: *\nDisallow: /api/\nDisallow: /assets/books\nDisallow: /early-stage/*\nDisallow: /blogtest\nDisallow: /beta/*\nDisallow: /roi/*\nDisallow: /legacy-drlp/*\nContent-Signal: ai-train=yes, ai-input=yes, search=yes\n\nSitemap: https://www.intercom.com/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.intercom.com/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 9133,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.intercom.com/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 722,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "glean",
      "name": "Glean",
      "url": "https://www.glean.com",
      "category": "Search",
      "notable": false,
      "checkedAt": "2026-10-14T01:27:44.885Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.glean.com/",
        "finalUrl": "https://www.glean.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1683,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.glean.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: GPTBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: ChatGPT-User. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: ClaudeBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: PerplexityBot.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: Bytespider. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.glean.com/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "891 words in the raw HTML, ignoring script and style. H1: “Complete context that makes AI work at enterprise scale.”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "warn",
                "detail": "JSON-LD types: Corporation, Person, PostalAddress.",
                "fix": "Add SoftwareApplication or Product JSON-LD with an Offer so the name, description and price are explicit."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.glean.com/sitemap.xml (HTTP 200, first 500 KB).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 891,
          "h1": "Complete context that makes AI work at enterprise scale.",
          "title": "Glean – Enterprise AI that Works | Agents, Assistant & Search",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Corporation",
            "Person",
            "PostalAddress"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.glean.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.glean.com/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 988,
            "sitemapUrls": [
              "https://www.glean.com/sitemap.xml"
            ],
            "textLength": 988,
            "text": "User-agent: *\nDisallow: /internal/\nDisallow: /new-pages/\nDisallow: /*?page=\nDisallow: /*&page=\nDisallow: /*?Page=\nDisallow: /*&Page=\nDisallow: /*?utm_source=\nDisallow: /*&utm_source=\n\n# Search engines: block llm-info + same rules\nUser-agent: Googlebot\nUser-agent: Bingbot\nUser-agent: Slurp\nUser-agent: DuckDuckBot\nUser-agent: Baiduspider\nUser-agent: YandexBot\nDisallow: /llm-info\nDisallow: /internal/\nDisallow: /new-pages/\nDisallow: /*?page=\nDisallow: /*&page=\nDisallow: /*?Page=\nDisallow: /*&Page=\nDisallow: /*?utm_source=\nDisallow: /*&utm_source=\n\n# AI / LLM crawlers: allow llm-info + same rules\nUser-agent: GPTBot\nUser-agent: ChatGPT-User\nUser-agent: ClaudeBot\nUser-agent: Claude-Web\nUser-agent: PerplexityBot\nUser-agent: Amazonbot\nUser-agent: Bytespider\nAllow: /llm-info\nDisallow: /internal/\nDisallow: /new-pages/\nDisallow: /*?page=\nDisallow: /*&page=\nDisallow: /*?Page=\nDisallow: /*&Page=\nDisallow: /*?utm_source=\nDisallow: /*&utm_source=\n\nSitemap: https://www.glean.com/sitemap.xml"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "GPTBot",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ChatGPT-User",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ClaudeBot",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "PerplexityBot",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Bytespider",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://www.glean.com/llms.txt",
            "contentType": "text/html; charset=utf-8",
            "bytes": 512000,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.glean.com/sitemap.xml",
            "contentType": "application/rss+xml; charset=utf-8",
            "bytes": 512000,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "writer",
      "name": "Writer",
      "url": "https://writer.com",
      "category": "Writing",
      "notable": false,
      "checkedAt": "2026-10-14T01:27:47.578Z",
      "result": {
        "ok": true,
        "inputUrl": "https://writer.com/",
        "finalUrl": "https://writer.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 1971,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://writer.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://writer.com/ · HTTP 200 · 323004 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "warn",
                "detail": "868 words in the raw HTML, ignoring script and style. No H1 heading.",
                "fix": "Add a text H1 in the HTML so crawlers have a main heading. The word count itself is fine."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "warn",
                "detail": "No price-like text on this URL.",
                "fix": "If prices live on another page, check that URL too, and keep the numbers in the HTML rather than loading them with JavaScript."
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: WebPage, ReadAction, ImageObject, BreadcrumbList, ListItem, WebSite, SearchAction, EntryPoint, PropertyValueSpecification, Organization, QuantitativeValue.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 4589 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://writer.com/sitemap_index.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=UTF-8",
          "bytes": 323004,
          "words": 868,
          "h1": "",
          "title": "WRITER - The enterprise AI platform for agentic work",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "WebPage",
            "ReadAction",
            "ImageObject",
            "BreadcrumbList",
            "ListItem",
            "WebSite",
            "SearchAction",
            "EntryPoint",
            "PropertyValueSpecification",
            "Organization",
            "QuantitativeValue"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://writer.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://writer.com/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 358,
            "sitemapUrls": [
              "https://writer.com/sitemap_index.xml"
            ],
            "textLength": 358,
            "text": "User-agent: *\nDisallow: /*?s=\nDisallow: /aint/\nDisallow: /book/\nDisallow: /downloads/\nDisallow: /feedback/\nDisallow: /hp/\nDisallow: /lp/\nDisallow: /wp-admin/\nAllow: /wp-admin/admin-ajax.php\n# START YOAST BLOCK\n# ---------------------------\nUser-agent: *\nDisallow:\n\nSitemap: https://writer.com/sitemap_index.xml\n# ---------------------------\n# END YOAST BLOCK"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://writer.com/llms.txt",
            "contentType": "text/plain;charset=utf-8",
            "bytes": 4589,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://writer.com/sitemap_index.xml",
            "contentType": "text/xml; charset=UTF-8",
            "bytes": 889,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "harvey",
      "name": "Harvey",
      "url": "https://www.harvey.ai",
      "category": "Assistant",
      "notable": false,
      "checkedAt": "2026-10-14T01:27:50.556Z",
      "result": {
        "ok": true,
        "inputUrl": "https://www.harvey.ai/",
        "finalUrl": "https://www.harvey.ai/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": true,
        "elapsedMs": 1910,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://www.harvey.ai/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://www.harvey.ai/ · HTTP 200 · 524288 bytes (cut off at 512 KB). JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1622 words in the raw HTML, ignoring script and style. H1: “Build a Frontier Legal Organization”. Counted from the first 512 KB.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $550, $15.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "warn",
                "detail": "JSON-LD types: Corporation, ImageObject, PostalAddress, WebSite, Certification, ContactPoint, WebPage, ItemList, ListItem.",
                "fix": "Add SoftwareApplication or Product JSON-LD with an Offer so the name, description and price are explicit."
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "warn",
                "detail": "/llms.txt returned HTTP 404.",
                "fix": "Publish a plain-text /llms.txt with a one-line summary and links to your pricing, docs and FAQ."
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://www.harvey.ai/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 524288,
          "words": 1622,
          "h1": "Build a Frontier Legal Organization",
          "title": "Harvey | AI software for legal and professional services",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": false,
          "visiblePrices": [
            "$550",
            "$15"
          ],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Corporation",
            "ImageObject",
            "PostalAddress",
            "WebSite",
            "Certification",
            "ContactPoint",
            "WebPage",
            "ItemList",
            "ListItem"
          ],
          "ldParsed": 3,
          "ldBlocks": 3,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://www.harvey.ai/robots.txt.",
            "status": 200,
            "finalUrl": "https://www.harvey.ai/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 67,
            "sitemapUrls": [
              "https://www.harvey.ai/sitemap.xml"
            ],
            "textLength": 67,
            "text": "User-Agent: *\nAllow: /\n\nSitemap: https://www.harvey.ai/sitemap.xml\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 404,
            "error": "",
            "finalUrl": "https://www.harvey.ai/llms.txt",
            "contentType": "text/html; charset=utf-8",
            "bytes": 213464,
            "checkStatus": "warn",
            "pass": false
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://www.harvey.ai/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 122194,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    },
    {
      "id": "zapier",
      "name": "Zapier",
      "url": "https://zapier.com",
      "category": "Automation",
      "notable": true,
      "checkedAt": "2026-10-14T01:27:53.472Z",
      "result": {
        "ok": true,
        "inputUrl": "https://zapier.com/",
        "finalUrl": "https://zapier.com/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 2616,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://zapier.com/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: GPTBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: OAI-SearchBot.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: ChatGPT-User. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: ClaudeBot. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: PerplexityBot.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: Google-Extended. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for / (Allow: /). Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://zapier.com/ · HTTP 200 · 398604 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "pass",
                "detail": "1830 words in the raw HTML, ignoring script and style. H1: “Welcome to automation in the agentic era”.",
                "fix": ""
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: $150,00, $150.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization, ImageObject, PostalAddress, Person, WebSite, WebPage, SoftwareApplication, CreativeWork.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 12654 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://zapier.com/sitemap.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 398604,
          "words": 1830,
          "h1": "Welcome to automation in the agentic era",
          "title": "Zapier: Automate AI Workflows, Agents, and Apps",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [
            "$150,00",
            "$150"
          ],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Organization",
            "ImageObject",
            "PostalAddress",
            "Person",
            "WebSite",
            "WebPage",
            "SoftwareApplication",
            "CreativeWork"
          ],
          "ldParsed": 2,
          "ldBlocks": 2,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://zapier.com/robots.txt.",
            "status": 200,
            "finalUrl": "https://zapier.com/robots.txt",
            "contentType": "text/plain",
            "bytes": 1840,
            "sitemapUrls": [
              "https://zapier.com/uag6x9zaeydnbfy75xsggcsb37h8cgzf-two-service-sitemap.xml",
              "https://zapier.com/uag6x9zaeydnbfy75xsggcsb37h8cgzf-one-service-sitemap.xml",
              "https://zapier.com/sitemaps/zap-templates/LZB2XiWzbJFggRYdnRGwcoAgEkTnHHEh",
              "https://zapier.com/blog/sitemap.xml",
              "https://zapier.com/uag6x9zaeydnbfy75xsggcsb37h8cgzf-sitemap.xml",
              "https://zapier.com/uag6x9zaeydnbfy75xsggcsb37h8cgzf-static-sitemap.xml",
              "https://zapier.com/agents/sitemap.xml",
              "https://zapier.com/automation/sitemap.xml",
              "https://zapier.com/marketing/sitemap.xml",
              "https://zapier.com/sitemaps/templates/Xf3Lk9YbRzQnmgP2eCJtA5Wxv0NdMu6T",
              "https://zapier.com/automations/sitemap-automations.xml"
            ],
            "textLength": 1840,
            "text": "User-agent: *\nAllow: /\nAllow: /shared/\nAllow: /app/login\nDisallow: /shared/*?wtime\nDisallow: /engine/hydrate/\nDisallow: /hooks/\nDisallow: /goto/\nDisallow: /developer/invite/\nDisallow: /developer/public-invite/\nDisallow: /editor/robots.txt\nDisallow: /app/\nDisallow: /engine/\nDisallow: /google-sso/\nDisallow: /home\nDisallow: /help-v1/\nDisallow: /help/search/\nDisallow: /apps/*/landing/\nDisallow: /apps/*/integrations/*/landing/\nDisallow: /apps/*/roles/*/\nDisallow: /app-directory/\nDisallow: /api/\nDisallow: /new-homepage/\nDisallow: /webintent/\nDisallow: /zapbook/\nDisallow: /sso/\nDisallow: */iframe/*\nDisallow: /*?\n\nSitemap: https://zapier.com/uag6x9zaeydnbfy75xsggcsb37h8cgzf-two-service-sitemap.xml\nSitemap: https://zapier.com/uag6x9zaeydnbfy75xsggcsb37h8cgzf-one-service-sitemap.xml\nSitemap: https://zapier.com/sitemaps/zap-templates/LZB2XiWzbJFggRYdnRGwcoAgEkTnHHEh\nSitemap: https://zapier.com/blog/sitemap.xml\nSitemap: https://zapier.com/uag6x9zaeydnbfy75xsggcsb37h8cgzf-sitemap.xml\nSitemap: https://zapier.com/uag6x9zaeydnbfy75xsggcsb37h8cgzf-static-sitemap.xml\nSitemap: https://zapier.com/agents/sitemap.xml\nSitemap: https://zapier.com/automation/sitemap.xml\nSitemap: https://zapier.com/marketing/sitemap.xml\nSitemap: https://zapier.com/sitemaps/templates/Xf3Lk9YbRzQnmgP2eCJtA5Wxv0NdMu6T\nSitemap: https://zapier.com/automations/sitemap-automations.xml\n\nAgentmap: https://zapier.com/.well-known/ai-catalog.json\n\nUser-agent: facebookexternalhit\nAllow: /engine/hydrate/\n\nUser-agent: Baiduspider\nDisallow: /api/\nDisallow: /engine/\nDisallow: /app/\n\nUser-agent: GPTBot\nUser-agent: OAI-SearchBot\nUser-agent: ChatGPT-User\nUser-agent: ClaudeBot\nUser-agent: Claude-User\nUser-agent: Claude-SearchBot\nUser-agent: Google-Extended\nUser-agent: PerplexityBot\nUser-agent: DuckAssistBot\nAllow: /\n\nContent-Signal: ai-train=yes, search=yes, ai-input=yes\n"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "GPTBot",
              "rule": "Allow: /"
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "OAI-SearchBot",
              "rule": "Allow: /"
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ChatGPT-User",
              "rule": "Allow: /"
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "ClaudeBot",
              "rule": "Allow: /"
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "PerplexityBot",
              "rule": "Allow: /"
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": true,
              "agent": "Google-Extended",
              "rule": "Allow: /"
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": "Allow: /"
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://zapier.com/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 12654,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://zapier.com/sitemap.xml",
            "contentType": "application/xml",
            "bytes": 4003,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": true
          }
        }
      }
    },
    {
      "id": "n8n",
      "name": "n8n",
      "url": "https://n8n.io",
      "category": "Automation",
      "notable": false,
      "checkedAt": "2026-10-14T01:27:57.098Z",
      "result": {
        "ok": true,
        "inputUrl": "https://n8n.io/",
        "finalUrl": "https://n8n.io/",
        "checkedPath": "/",
        "pageStatus": 200,
        "truncated": false,
        "elapsedMs": 1809,
        "sections": [
          {
            "id": "robots",
            "title": "AI crawlers in robots.txt",
            "note": "Rules for /. Fetched https://n8n.io/robots.txt.",
            "checks": [
              {
                "id": "gptbot",
                "name": "GPTBot",
                "hint": "OpenAI · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "oai-searchbot",
                "name": "OAI-SearchBot",
                "hint": "OpenAI · ChatGPT search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "chatgpt-user",
                "name": "ChatGPT-User",
                "hint": "OpenAI · user-triggered fetch",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. OpenAI says this user-triggered agent may ignore robots.txt.",
                "fix": ""
              },
              {
                "id": "claudebot",
                "name": "ClaudeBot",
                "hint": "Anthropic · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "perplexitybot",
                "name": "PerplexityBot",
                "hint": "Perplexity · search",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *.",
                "fix": ""
              },
              {
                "id": "google-extended",
                "name": "Google-Extended",
                "hint": "Google · Gemini training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Gemini training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "applebot-extended",
                "name": "Applebot-Extended",
                "hint": "Apple · Apple Intelligence training opt-out",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This token only opts out of Apple Intelligence training; it is not the search crawler.",
                "fix": ""
              },
              {
                "id": "ccbot",
                "name": "CCBot",
                "hint": "Common Crawl · training corpus",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "bytespider",
                "name": "Bytespider",
                "hint": "ByteDance · training",
                "status": "pass",
                "detail": "Allowed for /. No disallow matches. Group: *. This crawler is for training, not AI search.",
                "fix": ""
              },
              {
                "id": "xai-grok",
                "name": "xAI / Grok",
                "hint": "No official user-agent published",
                "status": "warn",
                "detail": "xAI has not published a crawler user-agent. Reported names in public registries are GrokBot and xAI-SearchBot; xAI has not confirmed either. On this file, GrokBot is allowed only by the default rule; xAI-SearchBot is allowed only by the default rule.",
                "fix": "robots.txt can't reliably invite Grok until xAI publishes a token. Put the facts you want repeated into the raw HTML."
              }
            ]
          },
          {
            "id": "html",
            "title": "Raw HTML, without JavaScript",
            "note": "Fetched https://n8n.io/ · HTTP 200 · 353362 bytes. JavaScript was not run.",
            "checks": [
              {
                "id": "visible-text",
                "name": "Visible text without JavaScript",
                "hint": "Script and style ignored",
                "status": "warn",
                "detail": "1274 words in the raw HTML, ignoring script and style. No H1 heading.",
                "fix": "Add a text H1 in the HTML so crawlers have a main heading. The word count itself is fine."
              },
              {
                "id": "pricing",
                "name": "Pricing in the raw HTML",
                "hint": "Visible text",
                "status": "pass",
                "detail": "Price-like text in the visible HTML: £2.",
                "fix": ""
              },
              {
                "id": "jsonld",
                "name": "JSON-LD",
                "hint": "Types in the raw HTML",
                "status": "pass",
                "detail": "JSON-LD types: Organization.",
                "fix": ""
              }
            ]
          },
          {
            "id": "files",
            "title": "llms.txt and sitemap.xml",
            "note": "",
            "checks": [
              {
                "id": "llms",
                "name": "llms.txt",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found /llms.txt (HTTP 200, 1160 bytes).",
                "fix": ""
              },
              {
                "id": "sitemap",
                "name": "sitemap.xml",
                "hint": "Same host",
                "status": "pass",
                "detail": "Found an XML sitemap at https://n8n.io/sitemap_index.xml (HTTP 200).",
                "fix": ""
              }
            ]
          }
        ],
        "facts": {
          "contentType": "text/html; charset=utf-8",
          "bytes": 353362,
          "words": 1274,
          "h1": "",
          "title": "AI Workflow Automation Platform - n8n",
          "challenge": false,
          "isHtml": true,
          "homepageLinksPricing": true,
          "visiblePrices": [
            "£2"
          ],
          "metaPrices": [],
          "ldPrices": [],
          "ldTypes": [
            "Organization"
          ],
          "ldParsed": 1,
          "ldBlocks": 1,
          "ldInvalid": 0,
          "robots": {
            "state": "parsed",
            "note": "Fetched https://n8n.io/robots.txt.",
            "status": 200,
            "finalUrl": "https://n8n.io/robots.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 76,
            "sitemapUrls": [
              "https://n8n.io/sitemap_index.xml"
            ],
            "textLength": 76,
            "text": "User-agent: *\nDisallow: /cdn-cgi/\n\nSitemap: https://n8n.io/sitemap_index.xml"
          },
          "crawlers": {
            "gptbot": {
              "token": "GPTBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "oai-searchbot": {
              "token": "OAI-SearchBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "chatgpt-user": {
              "token": "ChatGPT-User",
              "kind": "user",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "claudebot": {
              "token": "ClaudeBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "perplexitybot": {
              "token": "PerplexityBot",
              "kind": "search",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "google-extended": {
              "token": "Google-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "applebot-extended": {
              "token": "Applebot-Extended",
              "kind": "optout",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "ccbot": {
              "token": "CCBot",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "bytespider": {
              "token": "Bytespider",
              "kind": "training",
              "allowed": true,
              "countedAsBlock": false,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "xai": {
            "GrokBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            },
            "xAI-SearchBot": {
              "allowed": true,
              "specific": false,
              "agent": "*",
              "rule": ""
            }
          },
          "llms": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://n8n.io/llms.txt",
            "contentType": "text/plain; charset=utf-8",
            "bytes": 1160,
            "checkStatus": "pass",
            "pass": true
          },
          "sitemap": {
            "fetched": true,
            "http": 200,
            "error": "",
            "finalUrl": "https://n8n.io/sitemap_index.xml",
            "contentType": "text/xml; charset=UTF-8",
            "bytes": 1053,
            "checkStatus": "pass",
            "pass": true,
            "looksLikeSitemap": true,
            "mentionsPricing": false
          }
        }
      }
    }
  ],
  "aggregate": {
    "attempted": 60,
    "homepageFetched": 59,
    "homepageFailed": 1,
    "htmlUsable": 46,
    "challenged": 10,
    "nonHtml": 0,
    "httpErrorPage": 3,
    "robotsKnown": 56,
    "robotsUnavailable": 3,
    "crawlers": [
      {
        "id": "gptbot",
        "name": "GPTBot",
        "group": "training",
        "blocked": {
          "n": 1,
          "d": 56,
          "pct": 1.8,
          "label": "1 of 56 (1.8%)"
        }
      },
      {
        "id": "oai-searchbot",
        "name": "OAI-SearchBot",
        "group": "search",
        "blocked": {
          "n": 1,
          "d": 56,
          "pct": 1.8,
          "label": "1 of 56 (1.8%)"
        }
      },
      {
        "id": "chatgpt-user",
        "name": "ChatGPT-User",
        "group": "search",
        "blocked": {
          "n": 1,
          "d": 56,
          "pct": 1.8,
          "label": "1 of 56 (1.8%)"
        }
      },
      {
        "id": "claudebot",
        "name": "ClaudeBot",
        "group": "training",
        "blocked": {
          "n": 2,
          "d": 56,
          "pct": 3.6,
          "label": "2 of 56 (3.6%)"
        }
      },
      {
        "id": "perplexitybot",
        "name": "PerplexityBot",
        "group": "search",
        "blocked": {
          "n": 1,
          "d": 56,
          "pct": 1.8,
          "label": "1 of 56 (1.8%)"
        }
      },
      {
        "id": "google-extended",
        "name": "Google-Extended",
        "group": "training",
        "blocked": {
          "n": 0,
          "d": 56,
          "pct": 0,
          "label": "0 of 56 (0%)"
        }
      },
      {
        "id": "applebot-extended",
        "name": "Applebot-Extended",
        "group": "training",
        "blocked": {
          "n": 2,
          "d": 56,
          "pct": 3.6,
          "label": "2 of 56 (3.6%)"
        }
      },
      {
        "id": "ccbot",
        "name": "CCBot",
        "group": "training",
        "blocked": {
          "n": 2,
          "d": 56,
          "pct": 3.6,
          "label": "2 of 56 (3.6%)"
        }
      },
      {
        "id": "bytespider",
        "name": "Bytespider",
        "group": "training",
        "blocked": {
          "n": 4,
          "d": 56,
          "pct": 7.1,
          "label": "4 of 56 (7.1%)"
        }
      }
    ],
    "noVisiblePrice": {
      "n": 29,
      "d": 46,
      "pct": 63,
      "label": "29 of 46 (63%)"
    },
    "noPriceButHomepageLinksPricing": 23,
    "noPriceButSitemapMentionsPricing": 10,
    "structuredPriceOnly": {
      "n": 5,
      "d": 46,
      "pct": 10.9,
      "label": "5 of 46 (10.9%)"
    },
    "wordsUnder50": {
      "n": 1,
      "d": 46,
      "pct": 2.2,
      "label": "1 of 46 (2.2%)"
    },
    "wordsUnder150": {
      "n": 2,
      "d": 46,
      "pct": 4.3,
      "label": "2 of 46 (4.3%)"
    },
    "noH1": {
      "n": 5,
      "d": 46,
      "pct": 10.9,
      "label": "5 of 46 (10.9%)"
    },
    "anyJsonLd": {
      "n": 33,
      "d": 46,
      "pct": 71.7,
      "label": "33 of 46 (71.7%)"
    },
    "jsonLdOrganization": {
      "n": 27,
      "d": 46,
      "pct": 58.7,
      "label": "27 of 46 (58.7%)"
    },
    "jsonLdProduct": {
      "n": 1,
      "d": 46,
      "pct": 2.2,
      "label": "1 of 46 (2.2%)"
    },
    "jsonLdSoftwareApplication": {
      "n": 14,
      "d": 46,
      "pct": 30.4,
      "label": "14 of 46 (30.4%)"
    },
    "jsonLdOrgProductOrSoftware": {
      "n": 28,
      "d": 46,
      "pct": 60.9,
      "label": "28 of 46 (60.9%)"
    },
    "jsonLdStrong": {
      "n": 29,
      "d": 46,
      "pct": 63,
      "label": "29 of 46 (63%)"
    },
    "llmsTxt": {
      "n": 33,
      "d": 59,
      "pct": 55.9,
      "label": "33 of 59 (55.9%)"
    },
    "sitemapXml": {
      "n": 47,
      "d": 59,
      "pct": 79.7,
      "label": "47 of 59 (79.7%)"
    },
    "robotsListsSitemap": {
      "n": 52,
      "d": 56,
      "pct": 92.9,
      "label": "52 of 56 (92.9%)"
    },
    "findings": [
      "Poe was the only site where OAI-SearchBot or PerplexityBot was disallowed. The homepage request followed redirects to https://poe.com/login?redirect_url=%2F and returned HTTP 403. The winning rule for those tokens was * / Disallow: /login. On that same path the checker also counted a disallow for OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot, Applebot-Extended, CCBot, Bytespider. That robots.txt also contains a Disallow: / line. This run scored the redirected URL only.",
      "Canva disallowed GPTBot for / (GPTBot, Disallow: /). The same path was disallowed for ClaudeBot, CCBot, Bytespider, Applebot-Extended. OAI-SearchBot and PerplexityBot were allowed for that path. The homepage response was HTTP 403, so its HTML was not counted as usable page content.",
      "Google-Extended was disallowed on 0 of 56 checked paths.",
      "Meta AI (https://ai.meta.com/) returned HTTP 200 with 9 visible words. There was no H1. The HTML was cut off at the checker's 512 KB limit. JSON-LD types in that response: WebPage, Organization, Brand, Corporation, ImageObject, WebSite. Runway (https://runway.com/) returned HTTP 200 with 100 visible words. The H1 was “Building Real-World Intelligence”. The HTML was cut off at the checker's 512 KB limit. JSON-LD types in that response: Organization, Person, ContactPoint, SoftwareApplication, WebSite."
    ]
  }
}
