AI Site Grade
switalskis.com — AI Site Grade
Switalskis.com's /llms.txt returns a 404 HTML shell, and key listing pages render near-empty to AI crawlers due to client-side hydration.
Switalskis.com has strong content depth on individual pages but critical AI visibility gaps: /llms.txt is broken, listing pages are JS-dependent thin shells, FAQ schema is missing, and the model's prior knowledge contains factual errors.
- Findings
- 8
- Evidence checks
- 21
- Completed
- 30 May 2026
Analysis
Switalskis.com — AI-Visibility Audit
The /llms.txt URL returns a 181KB Next.js HTML shell with <meta name="robots" content="noindex"/> and a NEXT_NOT_FOUND error — it is not a text file but a 404 page rendered as a full React application, meaning AI crawlers hitting this convention get zero structured content and a client-side error state.
Crawler Access
All major AI bots (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, OAI-SearchBot, Bytespider, Applebot-Extended) receive 200 OK with identical 572KB payloads from Vercel's edge — no UA-based blocking exists. However, the homepage delivers only 47 words of visible text from a plain GET. The site is a Next.js application on Vercel (hosted at 76.76.21.21) that relies heavily on client-side rendering. The robots.txt is a bare User-agent: * Disallow: with zero AI-specific directives — no GPTBot, no ClaudeBot, no Google-Extended rules at all. The sitemap.xml lists 1,824 URLs, confirming a large content surface that crawlers can discover but may struggle to render.
Cold-Knowledge Gap
The LLM prior knows Switalskis as a Yorkshire-based firm founded in 1993 by John Switalski, with offices in Sheffield, Wakefield, Leeds, and London, specializing in personal injury, clinical negligence, family law, and housing disrepair. It mentions the 2018 Graysons merger and Legal 500 recognition. The actual site reveals a much broader practice than the model knows: child abuse compensation, criminal defence, mental health law, motoring offences, new-build conveyancing, commercial property, and a dedicated Polish-language claims service (/services/kancelaria-prawna). The model also omits the firm's 11 offices (including Barnsley, Bradford, Doncaster, Grimsby, Huddersfield, Knaresborough, Pontefract, York) and its 380+ staff count. The founder is named Stephen Switalski on the site, not "John" — a factual error in the model's prior.
Schema Posture
The homepage carries a single LocalBusiness schema with correct name, telephone, and sameAs links. Service pages use minimal Service schema (name + URL only). Blog posts use BlogPosting with author Person schema including email and job title — well-structured. However, no FAQ schema is present even on pages with FAQ content (the medical negligence page has a full FAQ section with H1 headings like "What is a medical negligence claim?" but no FAQPage markup). The case studies listing page is marked noindex, hiding valuable outcome evidence from AI crawlers. No BreadcrumbList, Review, or AggregateRating schema exists despite Trustpilot integration.
Content Quality & Answer Signals
Deep content pages (blog posts, case studies, service pages) are text-rich and well-written — the serious injury blog post runs ~1,300 words with clear H2/H3 structure, definition patterns, and comparison language. The medical negligence page contains ~4,800 words with a FAQ section, client testimonials, and case outcome summaries. However, listing/index pages (blog, case studies, homepage) are thin — the blog listing extracts only 97 words, the case studies listing 40 words, and the homepage 47 words — all relying on JS hydration to populate content. This creates a rendering risk: AI crawlers that do not execute JavaScript see near-empty pages at key entry points.
External Signals
The site links to Trustpilot but the Trustpilot page blocks automated access (403 with JS challenge). No external press or review pages surfaced in searches. The DNS TXT records reveal integrations with Zoom, Atlassian, DocuSign, Remarkable, Mailchimp, Mailjet, Freshservice, and Exclaimer — a complex martech stack that may slow page performance. The copyright footer reads 2026, indicating content is being published with future dates (the blog shows posts dated May 29, 2026), which may confuse temporal signals for AI models evaluating freshness.
Findings
/llms.txt returns a 404 HTML shell with noindex, not a text file High
The /llms.txt URL returns a 181KB Next.js HTML shell with a noindex meta tag and a NEXT_NOT_FOUND error, providing zero structured content to AI crawlers.
What to change: Replace the /llms.txt endpoint with a plain text file listing key URLs and a brief description of the site's content, as per the llms.txt convention.
Key listing pages render near-empty to non-JS crawlers High
The homepage, blog listing, and case studies listing deliver only 47, 97, and 40 words of visible text respectively, relying on client-side JavaScript hydration to populate content. AI crawlers that do not execute JavaScript see near-empty pages.
What to change: Implement server-side rendering or static generation for listing pages to ensure meaningful content is available in the initial HTML response.
FAQ content on service pages lacks FAQPage schema markup Medium
The medical negligence page contains a full FAQ section with H1 headings but no FAQPage structured data, missing an opportunity to appear in AI-generated answer snippets.
What to change: Add FAQPage schema markup to all pages with FAQ content, using Question and Answer properties for each item.
Case studies listing page is marked noindex Medium
The case studies listing page has a noindex directive, preventing AI crawlers from indexing valuable outcome evidence that could enhance the site's authority signals.
What to change: Remove the noindex directive from the case studies listing page to allow indexing of case study summaries.
LLM prior knowledge contains factual errors about the firm Medium
The model's prior knowledge incorrectly names the founder as 'John Switalski' (actual: Stephen Switalski) and omits several practice areas and office locations, reducing the accuracy of AI-generated answers about the firm.
What to change: Publish a structured 'about' page with accurate founder name, office list, and practice areas, and consider adding an llms.txt or entity schema to correct the model's knowledge.
Copyright footer and blog posts use future dates (2026) Low
The copyright footer reads 2026 and blog posts are dated May 29, 2026, which may confuse AI models evaluating content freshness and temporal signals.
What to change: Update the copyright year to the current year and ensure blog post dates reflect actual publication dates.
Robots.txt lacks AI-specific directives Low
The robots.txt file contains only a generic allow-all rule with no specific directives for AI crawlers like GPTBot or ClaudeBot, missing an opportunity to guide AI bot behavior.
What to change: Add explicit directives for AI crawlers (e.g., GPTBot, ClaudeBot) to allow or disallow specific paths as needed.
Trustpilot review page blocks automated access with JS challenge Low
The Trustpilot review page returns a 403 with a JavaScript challenge, preventing AI crawlers from accessing review content that could serve as external authority signals.
What to change: Consider embedding Trustpilot reviews directly on the site with structured data (AggregateRating) so that review signals are available to crawlers without relying on the Trustpilot page.
What's working
- Service pages contain rich, well-structured content — Service pages like medical negligence (4,800 words) and claims solicitors (2,300 words) are text-rich with clear headings, FAQs, and case outcome summaries, providing strong answer signals for AI models.
- Blog posts use BlogPosting schema with author Person markup — Blog posts include BlogPosting schema with detailed author Person markup (including email and job title), which helps AI models attribute content to credible authors.
- Homepage carries LocalBusiness schema with correct details — The homepage has a LocalBusiness schema with accurate name, telephone, and sameAs links, providing a solid foundation for local AI visibility.
- All major AI bots receive 200 OK with full payload — No user-agent-based blocking exists for any major AI crawler (GPTBot, ClaudeBot, etc.), ensuring all bots can access the site's content.
- Sitemap lists 1,824 URLs, indicating extensive content surface — The sitemap.xml contains 1,824 URLs, showing a large content surface that crawlers can discover and index.
- Individual case study pages are text-rich and well-structured — Case study pages like the ovarian torsion case contain over 1,000 words with detailed narrative, providing strong evidence of expertise.
Track switalskis.com across AI search
This is one snapshot. Open the interactive report to inspect evidence, or grade another site free.