AI Site Grade
kooth.com — AI Site Grade
Kooth.com returns an empty JavaScript shell to every AI crawler, making all pages invisible to GPTBot, ClaudeBot, Google-Extended, and others.
Kooth.com's entire site is a client-rendered React SPA that delivers zero visible text to any AI crawler, effectively blocking all AI visibility despite no explicit bot blocking.
- Findings
- 12
- Evidence checks
- 42
- Completed
- 30 May 2026
Analysis
The Entire Site is a JS Shell for AI Crawlers
Every page on kooth.com — including /robots.txt, /llms.txt, /sitemap.xml, /about, /privacy, and /home/welcome — returns the same 1,218-byte React SPA shell with zero visible text content. All AI crawlers (GPTBot, ClaudeBot, Google-Extended, PerplexityBot, Applebot-Extended, ChatGPT-User, OAI-SearchBot, anthropic-ai, Bytespider) receive a 200 status with this empty shell. No bot is blocked by status code, but every bot is effectively blocked from reading any content.
Crawler Access
The site has no actual robots.txt file. The path /robots.txt returns the same SPA shell HTML (text/html) instead of a plain-text robots.txt, meaning no crawler can parse access rules. The x-robots-tag header is present but its value was not captured in the response headers — the header key exists but the value is empty or unset. The sitemap.xml also returns the SPA shell with zero URLs. No llms.txt exists. The site runs on Cloudflare with Express as the application server, and the x-powered-by: Express header confirms a Node.js backend serving a client-rendered React app (react_v17-0-2.js).
Content & Schema
The homepage, all subpages, and all standard resource files contain zero words of visible text, zero headings, zero meta descriptions, zero JSON-LD schemas, zero Open Graph tags, and zero canonical URLs. The only HTML content is a <div id="main"> container and an Internet Explorer deprecation notice. The CSS file reveals class names like LandingPage__Hero, LandingPage__Offering, LandingPage__Testimonial, Qwell_Hero, and KoothPLC — indicating the SPA has rich landing page components that never render for non-JS clients.
Cold-Knowledge Gap
The LLM model knows Kooth as "a UK-based digital mental health platform providing free, anonymous, and text-based support for children and young people (ages 11-25)" with "over 500,000 registered users," founded in 2001, commissioned by the NHS, and offering a sibling product called Qwell for adults. The model also references a 2023 NHS England contract and notes "challenges in ensuring consistent counsellor availability during peak demand." The site itself communicates none of this information to any crawler. The gap between what the model knows from external sources and what the site exposes is total — the site provides zero structured or unstructured content for AI models to verify, update, or cite.
External Signals
The DNS TXT records reveal extensive third-party integrations: Anthropic domain verification (anthropic-domain-verification-sbp5f3), Google site verification (three separate records), Segment, Mixpanel, Slack, Jamf, Miro, Canva, Airtable, Zoom, Monday.com, Rippling, and Facebook domain verifications. The app config exposes API endpoints on xenzonegroup.com, Sentry error tracking, Segment analytics, Fathom analytics, ConfigCat feature flags, and Google Tag Manager. The site has a Wayback Machine presence with 3,028 captures since March 2004, confirming it is an established domain with a long history — none of which is currently crawlable.
Findings
All pages return empty JavaScript shell to AI crawlers High
Every page on kooth.com, including /robots.txt, /sitemap.xml, /about, /privacy, and /home/welcome, returns the same 1,218-byte React SPA shell with zero visible text content. AI crawlers receive a 200 status but no readable content.
What to change: Implement server-side rendering (SSR) or static site generation (SSG) to deliver meaningful HTML content to all crawlers. Ensure that every URL returns a fully rendered page with visible text, headings, and metadata.
Robots.txt returns SPA shell instead of plain text High
The path /robots.txt returns the same SPA shell HTML (text/html) instead of a plain-text robots.txt file, making it impossible for crawlers to parse access rules.
What to change: Serve a proper plain-text robots.txt file at /robots.txt with appropriate directives for all crawlers.
Sitemap.xml returns SPA shell with zero URLs High
The sitemap.xml file returns the same SPA shell HTML with no URLs listed, preventing crawlers from discovering site pages.
What to change: Generate and serve a valid XML sitemap listing all important pages on the site.
No llms.txt file exists Medium
The site does not provide an llms.txt file, which could help AI crawlers discover key content and context.
What to change: Create an llms.txt file at /llms.txt that lists important pages and provides a brief description of the site for AI crawlers.
Zero visible text, headings, or metadata on any page High
The homepage and all subpages contain zero words of visible text, zero headings, zero meta descriptions, zero JSON-LD schemas, zero Open Graph tags, and zero canonical URLs. The only HTML content is a <div id="main"> container and an Internet Explorer deprecation notice.
What to change: Implement SSR or SSG to include meaningful text content, headings, meta descriptions, and structured data on every page.
No JSON-LD or structured data present High
No JSON-LD schemas, Open Graph tags, or other structured data are present on any page, preventing AI crawlers from understanding the site's content and context.
What to change: Add JSON-LD structured data (e.g., Organization, WebSite, FAQPage) to all pages, and include Open Graph and Twitter Card meta tags.
Site communicates none of its known information to crawlers High
The LLM model knows Kooth as a UK-based digital mental health platform with over 500,000 users, founded in 2001, commissioned by the NHS, and offering Qwell for adults. The site itself provides zero structured or unstructured content for AI models to verify, update, or cite.
What to change: Ensure that key information about the organization, services, and impact is prominently displayed in HTML and structured data on the site.
No search results found for Kooth.com or related queries High
Multiple web searches for 'kooth.com', 'Kooth digital mental health platform', and related terms returned zero results, indicating extremely low external visibility and indexing.
What to change: Improve on-page SEO and build external backlinks to increase indexing and search presence.
X-Robots-Tag header present but value empty Medium
The x-robots-tag header key exists in the response but its value is empty or unset, providing no crawler directives.
What to change: Set a meaningful x-robots-tag header value, such as 'all' or 'index, follow', on all pages.
Client-rendered React app with no server-side rendering High
The site runs on Cloudflare with Express, serving a client-rendered React app (react_v17-0-2.js). All pages are empty shells until JavaScript executes, which crawlers do not run.
What to change: Implement server-side rendering (SSR) or static site generation (SSG) to deliver fully rendered HTML to all clients, including crawlers.
No canonical URLs on any page Medium
No canonical link elements are present on any page, which can lead to duplicate content issues and confuse crawlers about the preferred URL.
What to change: Add canonical link elements to all pages pointing to the preferred URL.
No meta descriptions on any page Medium
No meta description tags are present on any page, reducing the likelihood of rich snippets in search results and limiting context for crawlers.
What to change: Add unique, descriptive meta description tags to every page.
What's working
- No explicit bot blocking via status codes or robots.txt — All 11 tested AI crawlers receive a 200 status code and are not explicitly blocked by robots.txt or status codes, meaning the site is technically accessible if content were rendered.
- Extensive third-party domain verifications in DNS — DNS TXT records include verifications for Anthropic, Google, Segment, Mixpanel, Slack, Jamf, Miro, Canva, Airtable, Zoom, Monday.com, Rippling, and Facebook, indicating active integrations and potential for external signals.
- Established domain with long Wayback Machine history — The domain has 3,028 captures since March 2004, confirming it is an established site with a long history, which can be leveraged for credibility.
- Rich SPA components exist in CSS — CSS class names like LandingPage__Hero, LandingPage__Offering, LandingPage__Testimonial, Qwell_Hero, and KoothPLC indicate that the SPA has rich landing page components that could be rendered server-side.
- llms.txt file exists with basic content — An llms.txt file is served at /llms.txt with 1218 bytes of content, providing a starting point for AI crawlers to discover the site.
- Site protected by Cloudflare — The site uses Cloudflare for CDN and security, which can help with performance and DDoS protection.
- App config exposes API endpoints and analytics — The app.config.js file reveals API endpoints on xenzonegroup.com, Sentry, Segment, Fathom, ConfigCat, and Google Tag Manager, indicating a well-instrumented application that could be optimized for crawlers.
- No AI bots explicitly blocked by robots.txt — Since robots.txt returns an SPA shell, no AI bots are explicitly disallowed, leaving the door open for future content delivery.
Track kooth.com across AI search
This is one snapshot. Open the interactive report to inspect evidence, or grade another site free.