{
  "generatedAt": "2026-07-06",
  "canonicalUrl": "https://labelloop.app/crawl-qa.json",
  "purpose": "Machine-readable QA expectations for Labelloop public crawlability, structured data and discovery resources.",
  "expectedCounts": {
    "publicPages": 258,
    "languageHubs": 10,
    "topicPages": 240,
    "pressKit": 1,
    "resourceIndex": 1,
    "resourceArticles": 5,
    "sitemapUrls": 258,
    "sitemapHreflangLinks": 2651,
    "localizedHreflangGroups": 25,
    "jsonLdBlocksPerGeneratedPage": 2,
    "rootJsonLdBlocks": 1,
    "machineReadableResources": 46,
    "crawlerAgents": 12
  },
  "requiredHeadLinks": [
    "canonical",
    "alternate hreflang",
    "opensearch",
    "search-index.json",
    "brand-facts.json",
    "citation-policy.json",
    "trust-signals.json",
    "locale-coverage.json",
    "crawl-qa.json",
    "query-clusters.json",
    "answer-cards.json",
    "regional-intent-map.json",
    "llms.txt through discovery resources"
  ],
  "requiredFiles": [
    "https://labelloop.app/sitemap-index.xml",
    "https://labelloop.app/sitemap.xml",
    "https://labelloop.app/llms.txt",
    "https://labelloop.app/llms-full.txt",
    "https://labelloop.app/brand-facts.json",
    "https://labelloop.app/entity-map.json",
    "https://labelloop.app/citation-policy.json",
    "https://labelloop.app/markets.json",
    "https://labelloop.app/faq-index.json",
    "https://labelloop.app/crawler-policy.json",
    "https://labelloop.app/knowledge-graph.json",
    "https://labelloop.app/use-case-matrix.json",
    "https://labelloop.app/comparison-map.json",
    "https://labelloop.app/claims-register.json",
    "https://labelloop.app/intent-router.json",
    "https://labelloop.app/schema-catalog.json",
    "https://labelloop.app/freshness-policy.json",
    "https://labelloop.app/submission-checklist.json",
    "https://labelloop.app/monitoring-prompts.json",
    "https://labelloop.app/page-inventory.json",
    "https://labelloop.app/hreflang-map.json",
    "https://labelloop.app/keyword-coverage.json",
    "https://labelloop.app/trust-signals.json",
    "https://labelloop.app/locale-coverage.json",
    "https://labelloop.app/crawl-qa.json",
    "https://labelloop.app/audience-intent-map.json",
    "https://labelloop.app/citation-graph.json",
    "https://labelloop.app/serp-snippets.json",
    "https://labelloop.app/query-clusters.json",
    "https://labelloop.app/answer-cards.json",
    "https://labelloop.app/regional-intent-map.json",
    "https://labelloop.app/answer-engine-prompts.json",
    "https://labelloop.app/crawl-manifest.json",
    "https://labelloop.app/google-search-console-action-board.json",
    "https://labelloop.app/bing-webmaster-action-board.json",
    "https://labelloop.app/external-citation-submission-kit.json",
    "https://labelloop.app/trust-proof-publishing-kit.json",
    "https://labelloop.app/case-study-templates.json",
    "https://labelloop.app/backlink-pipeline-tracker.json",
    "https://labelloop.app/editorial-briefs.json",
    "https://labelloop.app/search-visibility-scorecard.json",
    "https://labelloop.app/chatbot-visibility-test-suite.json",
    "https://labelloop.app/conversion-readiness-plan.json",
    "https://labelloop.app/search-index.json",
    "https://labelloop.app/indexnow-urls.json",
    "https://labelloop.app/ai.txt"
  ],
  "validationRecipe": [
    "Regenerate with node scripts/build-seo-pages.mjs.",
    "Parse every application/ld+json block on root, language hubs and topic pages.",
    "Confirm sitemap URL count equals publicPages and every URL has hreflang alternates.",
    "Confirm page-inventory.json, hreflang-map.json, keyword-coverage.json, trust-signals.json, locale-coverage.json and crawl-qa.json agree on locale/topic counts.",
    "Confirm crawl-manifest.json and schema-catalog.json list every public machine-readable resource.",
    "Submit sitemap-index.xml and sitemap.xml after deployment; submit indexnow-urls.json through IndexNow."
  ],
  "failIf": [
    "A public page is missing canonical or hreflang alternates.",
    "JSON-LD fails to parse.",
    "A topic exists in one locale but not another.",
    "A machine-readable resource is linked in head but absent from crawl-manifest.json or schema-catalog.json.",
    "A public claim appears without a matching claims-register.json entry or visible citation URL."
  ]
}