{"version":"2026-09-19.1","api":{"base":"https:\/\/crawlcheck.io","auth":{"header":"x-crawlcheck-key","alt":"Authorization: Bearer","keyPattern":"^cc_[0-9a-f]{32}$"},"signin":"POST \/api\/app\/signin","account":"GET \/api\/app\/account","portfolio":"GET|POST \/api\/app\/portfolio","record":"GET \/api\/app\/record?domain=","push":"GET|POST|DELETE \/api\/app\/push","field":"GET|POST \/api\/app\/field","scan":"POST \/api\/scan\/licensed","scanFree":"POST \/api\/scan","cors":true},"sections":[{"key":"agentview","name":"What each crawler gets","stage":"Reach","desc":"Each named crawler fetched the page; this is whether they all got the same thing.","scored":true},{"key":"agents","name":"Crawler permissions","stage":"Reach","desc":"What robots.txt actually tells each named AI and search crawler it may do.","scored":true},{"key":"trust","name":"Machine-file chain","stage":"Reach","desc":"robots.txt names the sitemap, llms.txt points onward, the entity graph points home: the chain a crawler follows.","scored":true},{"key":"vitals","name":"Speed","stage":"Reach","desc":"How fast the page answered our fetch, plus real-visitor field data where it exists.","scored":true},{"key":"payload","name":"Page weight & text","stage":"Read","desc":"How many of the delivered bytes are readable words, and how much is markup, scripts and styling.","scored":true},{"key":"machine","name":"Machine files","stage":"Read","desc":"robots.txt, llms.txt, sitemap and the entity graph: present, readable and served as the right type.","scored":true},{"key":"sitemap","name":"Sitemap","stage":"Read","desc":"A sitemap exists, resolves, and declares the pages the homepage links to.","scored":true},{"key":"schema","name":"Structured data","stage":"Quote","desc":"The JSON-LD entity graph: stable @ids, connected nodes, credentials and locations declared.","scored":true},{"key":"local","name":"Local presence & NAP","stage":"Quote","desc":"Street address, coordinates, hours, phone, and the directory listings the site itself declares.","scored":true},{"key":"claims","name":"Claim consistency","stage":"Quote","desc":"Name, phone, city and years-in-business match between the structured data and the visible page.","scored":true},{"key":"eeat","name":"Authors & trust signals","stage":"Quote","desc":"Named people, dated articles, an organisation with contact details: the proxies an engine uses for trust.","scored":true},{"key":"rdf","name":"Linked data","stage":"Quote","desc":"Whether the structured data parses as proper RDF and nothing dangles.","scored":true},{"key":"quotable","name":"Quotable content","stage":"Quote","desc":"Whether the sentences an answer engine would lift are on the page in a form it can take.","scored":true},{"key":"hosting","name":"Server & hosting","stage":"Foundations","desc":"What the edge and origin told us: cache state, compression, the software behind the page.","scored":true},{"key":"a11y","name":"Accessibility structure","stage":"Foundations","desc":"Language, alt text, labelled controls and one main landmark, read from the delivered HTML.","scored":true},{"key":"entparity","name":"Entity map parity","stage":"Not scored","desc":"The JSON entity map and the HTML version agree with each other.","scored":false},{"key":"instr","name":"Instructions for agents","stage":"Foundations","desc":"Text aimed at AI agents rather than people: present, visible, and not hidden.","scored":true},{"key":"mobile","name":"Mobile","stage":"Foundations","desc":"Viewport, zoom, icons and manifest: whether a phone gets a page it can use.","scored":true},{"key":"commerce","name":"Commerce surface","stage":"Foundations","desc":"Product, offer and checkout signals an agent could act on.","scored":true},{"key":"links","name":"Internal links","stage":"Foundations","desc":"Anchors carry words, targets resolve, and the link graph is not mostly repeats.","scored":true},{"key":"naming","name":"URL naming","stage":"Foundations","desc":"Lowercase hosts and paths, no case-only duplicates, machine files spelt correctly.","scored":true},{"key":"surfaces","name":"Agent surfaces","stage":"Not scored","desc":"Emerging standards (agents.md, API catalog, MCP card). Measured for information only.","scored":false},{"key":"entcorr","name":"Entity corroboration","stage":"Quote","desc":"Whether the entities the site declares can be confirmed elsewhere.","scored":true},{"key":"contentent","name":"Content entities","stage":"Not scored","desc":"Named things in the page text that a knowledge graph recognises.","scored":false},{"key":"cftraffic","name":"Verified crawler traffic","stage":"Not scored","desc":"What verified AI and search crawlers fetched from this zone in the last seven days, counted at the edge.","scored":false},{"key":"origin","name":"Crawlers on your server","stage":"Not scored","desc":"Which AI and search crawlers reached the origin, from the site\u2019s own access log, each address verified.","scored":false},{"key":"servicearea","name":"Service area map","stage":"Not scored","desc":"Every place the schema declares, placed around the declared centre and radius.","scored":false},{"key":"site","name":"Whole site","stage":"Not scored","desc":"Up to 60 declared pages read once a day: not-200s, thin pages, missing JSON-LD, orphans. Counts free, page lists with Watch.","scored":false},{"key":"freshness","name":"Freshness","stage":"Not scored","desc":"Every date the site publishes about itself - sitemap lastmod, Last-Modified, dateModified, dated elements - and where they disagree.","scored":false},{"key":"crawlwaste","name":"Crawl waste","stage":"Read","desc":"Fetches that produce no new page: parameter and case variants, http links, redirecting or gone declared URLs, canonical-elsewhere and noindex pages.","scored":true},{"key":"topicality","name":"Page subject","stage":"Quote","desc":"Which business entity the page is about, how every other business entity on it is related (chain, subsidiary, department), and whether the title and h1 name it.","scored":true},{"key":"intents","name":"Local intents","stage":"Not scored","desc":"Which Google Maps intent types the site names about itself (business types, Service nodes, title, headings), and which of those have a page the homepage links to. Measured, not scored.","scored":false},{"key":"reputation","name":"Trust and reputation","stage":"Not scored","desc":"Red flags an agent should check before it cites or calls a business: the phone number in FTC unwanted-call complaints, malware or phishing listing, domain age and registration, parked or for-sale pages and redirects to another organisation. Measured, not scored.","scored":false},{"key":"claimev","name":"Claims and their evidence","stage":"Not scored","desc":"Each fact the site states about itself (name, phone, location, founding, profiles, people) beside every source outside the page that confirms or contradicts it: the Business Profile, directory listings, profile links back, FTC complaints, the domain registration. Measured, not scored.","scored":false},{"key":"sitesafety","name":"Site safety","stage":"Not scored","desc":"Malware or phishing listing, HTTPS and certificate, security headers, insecure resources, exposed versions, outdated jQuery, email forgery protection (DMARC, SPF), CAA, DNSSEC and domain registration. Measured, not scored.","scored":false},{"key":"revint","name":"Review integrity","stage":"Not scored","desc":"Whether the rating, review count and reviews a page declares in its markup are the ones a visitor sees: the declared rating against the page text, the declared count against any visible review count, each marked-up review against the page, and the markup's own arithmetic. Measured, not scored.","scored":false},{"key":"indexing","name":"Indexability","stage":"Read","desc":"Whether search engines can index the pages the sitemap declares: which are marked noindex in the page or in the X-Robots-Tag header, which robots.txt closes to Googlebot or Bingbot, which name a different page or the other scheme or host as canonical, and whether a named canonical target can itself be indexed. Read on the daily whole-site pass, so a first scan has no score for it.","scored":true},{"key":"rights","name":"AI rights and consent","stage":"Not scored","desc":"What the site declares AI may do with its pages, one answer per use (training, grounding an answer, summaries and snippets, citation, acting for a user), merged from robots.txt read per agent, Content-Signal, ai.txt, TDM-Rep, robots meta, X-Robots-Tag and the terms page; which signal decided each answer, and every place two signals disagree. The answer is the owner's choice; what is measured is whether one was declared and whether the signals agree. Measured, not scored.","scored":false},{"key":"pricing","name":"Price transparency","stage":"Not scored","desc":"Whether the page states what the work costs: prices and ranges in the text, a link to a pricing or cost page, a cost question answered with a figure, prices in the markup (Offer, AggregateOffer, priceRange) and whether those marked-up prices are the ones shown. Measured, not scored.","scored":false},{"key":"deps","name":"Third-party dependencies","stage":"Not scored","desc":"Every outside host the page loads, grouped (tracking, forms and widgets, chat, fonts, code libraries, video and maps, consent), the outside files that hold the page until they answer, the trackers present. Measured, not scored.","scored":false},{"key":"tracking","name":"Tracking and privacy","stage":"Not scored","desc":"What a real browser visit shows: the outside companies the page contacts and how soon, cookies set by other domains before any consent choice, ad pixels, session recording, and whether text typed into a form leaves the page before it is submitted. Measured, not scored.","scored":false},{"key":"listings","name":"Listings consistency","stage":"Not scored","desc":"Every directory listing the site declares, read once each and set beside the Google Business Profile: whether each one shows the same business name, phone number and street address as the site, and whether it links back to the site. Names that differ are shown as the listing writes them. Measured, not scored.","scored":false},{"key":"aicite","name":"Where AI already cites this site","stage":"Not scored","desc":"From the answers CrawlCheck has collected across Perplexity, Gemini, Google AI Overviews and ChatGPT: how many cited the site and by which engines, which of its pages were cited and for which prompts, and the site's own last answer test split by whether the prompt carried its name. Measured, not scored.","scored":false},{"key":"lang","name":"Language and region","stage":"Not scored","desc":"Whether the page names its language and the words match it, whether the Content-Language header agrees, whether its hreflang versions use valid codes, list the page itself, set a default and point back, and whether the countries named by the domain, og:locale, address, phone prefix and currency agree. Measured, not scored.","scored":false},{"key":"errpages","name":"Error pages","stage":"Read","desc":"What the site answers for an address that does not exist: a real 404 or a soft 404 (200) or a redirect to the homepage, whether the 404 page gives a way back, whether a missing file answers 404 or an HTML page, and whether error pages print server versions, PHP warnings or stack traces.","scored":true},{"key":"exposure","name":"Exposed files and secrets","stage":"Reach","desc":"Files a site should never serve and keys it should never publish: a readable .git or .svn folder, a .env file, a config backup, a public server-status page, published source maps, and live API keys or private keys written into the page or its own scripts (shown masked).","scored":true},{"key":"aifit","name":"What AI looks for","stage":"Not scored","desc":"The facts an AI model weighs when it picks a business (hours, licence, insurance, reviews, rating, years, area, phone, prices, emergency service, reply time), ordered by how far each moved the model's ranking in CrawlCheck's tests, and whether the homepage shows each one.","scored":false},{"key":"conversion","name":"Conversion path","stage":"Not scored","desc":"Phone link, form and call-to-action on the page, and whether they sit before the fold.","scored":false},{"key":"indexcov","name":"Index coverage","stage":"Not scored","desc":"Which pages Google has indexed and its own reason for each one it has not, from a weekly URL Inspection run through the owner\u2019s Search Console link. The numbers are shown to the owner only. Measured, not scored.","scored":false},{"key":"engagement","name":"Engagement","stage":"Not scored","desc":"First-party views, active time, scroll depth and taps from the site\u2019s own beacon.","scored":false},{"key":"images","name":"Image signals","stage":"Foundations","desc":"Alt text, declared dimensions, lazy-loading, modern formats, hero priority and the entity image in JSON-LD.","scored":true}],"stageQuestions":{"Reach":"Can a named answer-engine crawler get your pages at all?","Read":"Once it has the bytes, can it find the words?","Quote":"Is there a specific fact it can state and attribute?"},"tiers":[{"name":"Watch","price":"$29\/mo","scope":"3 domains \u00b7 1 channel","who":"A business owner or a solo consultant with a few sites.","detail":"The lists behind every count \u2014 which pages, which directories, who links to you \u2014 the 300-page walk with the link graph, finding age and change receipts, a webhook the moment a result moves, the lead form on every domain, and one YouTube channel checked whole."},{"name":"Agency","price":"$249\/mo","scope":"40 domains \u00b7 10 channels","who":"An agency answering for a portfolio.","detail":"Forty domains, the portfolio view, regression alerts across all of them, the licensed API lane (60 scans per ten minutes) and the CI workflow that fails a pull request, and ten channels with a dated change record per video."},{"name":"Network","price":"quoted","scope":"150+ domains","who":"An estate, on a cadence you set.","detail":"Cohort reporting across your own estate and bulk receipts. Quoted per estate, not priced. Your numbers are never published, named or pooled."}],"limits":{"Trial":1,"Watch":3,"Studio":10,"Agency":40,"Network":150},"checkout":{"Watch":"https:\/\/buy.stripe.com\/fZu14nd8D0VH8rk66p2VG00","Studio":"https:\/\/buy.stripe.com\/6oU14n6KfcEpazsgL32VG01","Agency":"https:\/\/crawlcheck.io\/pricing#request","Network":"https:\/\/crawlcheck.io\/pricing#request","Day7":"https:\/\/buy.stripe.com\/bJe28r2tZbAl0YSfGZ2VG08","Fix":"https:\/\/buy.stripe.com\/aFabJ16Kf6g1gXQ0M52VG09"}}