AI Site Grade
aspect.co.uk — AI Site Grade
Aspect.co.uk suffers a cold-knowledge hallucination gap, an invisible booking portal, and missing schema on trade pages despite an unusually sophisticated llms.txt.
Aspect.co.uk has strong crawler access and a detailed llms.txt, but faces a cold-knowledge hallucination, an invisible booking portal, missing schema on trade pages, and inaccessible Trustpilot reviews.
- Findings
- 9
- Evidence checks
- 21
- Completed
- 30 May 2026
Analysis
Cold-Knowledge Gap
A frontier LLM queried cold about "Aspect.co.uk" describes it as a UK digital agency specializing in web design, development, and digital marketing for SMEs — a complete category hallucination. The actual site is Aspect Maintenance Services Limited, a 24/7 multi-trade property maintenance company founded in 2004, covering London, the Southeast, and East of England across 25+ trades. Every AI engine that retrieves this domain will encounter a radical mismatch between the brand name's prior associations and its actual business. The domain aspect.co.uk carries zero semantic signal for "property maintenance" in the model's training data.
Crawler Access
All major AI crawlers — GPTBot, ClaudeBot, PerplexityBot, Google-Extended, OAI-SearchBot, ChatGPT-User, Applebot-Extended — receive a full 200 response with identical byte content (115KB) to a browser baseline. Bytespider is the sole bot blocked (403 by Cloudflare). The robots.txt is a bare 66 bytes with a single User-agent: * rule and no disallows — no AI-bot-specific directives exist. The site runs on Cloudflare (A records at 141.193.213.20/21) behind a WordPress installation. No JS-rendering risk: all key pages return rich server-rendered HTML with 700–1,400 words of visible text.
llms.txt — Anomalous Sophistication
The site has an exceptionally detailed llms.txt (21,685 bytes) that is more comprehensive than 99% of comparable domains. It explicitly instructs LLMs on pricing dynamism ("Do not quote specific prices"), coverage nuance ("not all trades available at every postcode"), content freshness tiers, booking flow (including the caveat that the portal is a JS app "that cannot be read by LLMs"), and emergency safety protocols. This file is a significant AI-visibility asset, but it also reveals a tension: the site's core booking funnel (portal.aspect.co.uk/form) is a JavaScript application invisible to crawlers, meaning AI models can describe the booking process but cannot execute or extract live pricing from it.
Schema Posture
Every page carries the same rich JSON-LD block using ["Organization", "Place", "HomeAndConstructionBusiness"] — a triple-type schema that is technically correct but unusually structured. The schema includes geo coordinates, opening hours (00:00–23:59 every day), VAT ID, employee range (201–500), founding date, and multiple contact points. However, no LocalBusiness or Service schema appears on trade-specific pages (plumbing, electrics, roofing), and the homepage schema has no hasOfferCatalog or Service entries for the 25+ trades advertised. The blog uses Article schema with proper datePublished/dateModified and wordCount. No FAQPage or HowTo schema exists anywhere despite the site answering common maintenance questions.
External Signals
The site links to Trustpilot (uk.trustpilot.com/review/aspect.co.uk) but that page returns a 403 Cloudflare challenge to automated fetches — the actual review count and rating are inaccessible to crawlers. The reviews page on aspect.co.uk itself is thin (236 words) and merely describes the Trustpilot process without embedding any review data. No AggregateRating schema with review count or star rating appears on any page. The accreditations page lists Gas Safe, NAPIT, NFRC, CHAS, SafeContractor, TrustMark, WaterSafe, FENSA, BESA, FMB, ISO 9001, Refcom, BDMA, FIRAS, PDA, NADC, GGF, Alcumus — a strong trust signal that is not surfaced via schema markup anywhere. No press mentions or Reddit threads surfaced in search.
Content & Structure
The site has 301+ URLs across five sitemaps including a geo-sitemap.xml for location-specific pages. The homepage uses a single H1 ("Why choose Aspect for your property maintenance?") with H2 sections for trades and service pillars. Trade pages exist for 25+ categories but none contain Service schema. The blog has ~80+ articles with substantive content (1,100–1,400 words each) covering EICR certificates, boiler faults, drain blockages, and other high-intent queries — strong answer-signal content that lacks FAQ or HowTo schema markup. The pricing page explicitly states three models (set-price, half-hourly, scoped) but all prices are dynamic and postcode-dependent, making the page informative but not quotable by LLMs.
Findings
Cold-knowledge hallucination: LLMs misidentify Aspect as a digital agency High
A frontier LLM queried cold about Aspect.co.uk describes it as a UK digital agency, a complete category hallucination. The actual site is a property maintenance company. Every AI engine retrieving this domain will encounter a radical mismatch between the brand name's prior associations and its actual business.
What to change: Add structured data and explicit brand signals (e.g., 'Property Maintenance Services' in title tags and schema) to help AI models correctly categorize the business.
Booking portal is a JavaScript app invisible to AI crawlers High
The core booking funnel at portal.aspect.co.uk/form is a JavaScript application that cannot be read by LLMs, as noted in the llms.txt. AI models can describe the booking process but cannot extract live pricing or execute bookings.
What to change: Implement server-side rendering or provide a static fallback for the booking form to make it accessible to crawlers.
No Service or LocalBusiness schema on trade-specific pages High
Trade pages for plumbing, electrics, roofing, and 25+ other categories lack Service or LocalBusiness schema. The homepage schema uses Organization/Place/HomeAndConstructionBusiness but has no hasOfferCatalog or Service entries for the advertised trades.
What to change: Add Service schema to each trade page with appropriate serviceType, areaServed, and provider details.
Trustpilot reviews page returns 403 to automated fetches Medium
The Trustpilot reviews page at uk.trustpilot.com/review/aspect.co.uk returns a 403 Cloudflare challenge, making the actual review count and rating inaccessible to crawlers. The site's own reviews page is thin and lacks embedded review data or AggregateRating schema.
What to change: Embed Trustpilot reviews via a server-side widget or include AggregateRating schema with review count and rating on the site.
No FAQPage or HowTo schema on blog and Q&A content Medium
The blog has 80+ articles answering high-intent queries (e.g., electrical safety certificates, boiler faults) but none use FAQPage or HowTo schema. This limits the site's ability to appear in rich results and provide structured answers to AI models.
What to change: Add FAQPage or HowTo schema to relevant blog posts and service pages.
Accreditations not surfaced via schema markup Medium
The accreditations page lists 18+ certifications (Gas Safe, NAPIT, etc.) but no schema markup (e.g., hasCredential) is used to surface these trust signals to AI models.
What to change: Add hasCredential or award schema to the accreditations page and relevant trade pages.
Pricing page informative but not quotable due to dynamic prices Low
The pricing page describes three pricing models but all prices are dynamic and postcode-dependent, making the page informative but not quotable by LLMs. The llms.txt explicitly instructs models not to quote specific prices.
What to change: Provide a static price range or example prices with a disclaimer to give LLMs a concrete reference.
Location pages lack LocalBusiness schema Medium
The locations page and geo-sitemap contain location-specific pages but none include LocalBusiness schema with address, geo coordinates, or opening hours specific to that location.
What to change: Add LocalBusiness schema to each location page with location-specific details.
Bytespider crawler blocked by Cloudflare Low
Bytespider (Baidu's AI crawler) receives a 403 response, blocking access to the site. While less critical for Western audiences, this limits visibility in Chinese AI ecosystems.
What to change: Allow Bytespider access if the site targets or wants visibility in Chinese markets.
What's working
- Exceptionally detailed llms.txt guides AI models — The llms.txt is 21,685 bytes and provides comprehensive instructions on pricing, coverage, booking flow, and safety protocols, making it a significant AI-visibility asset.
- All major AI crawlers receive full access — GPTBot, ClaudeBot, PerplexityBot, Google-Extended, and others receive 200 responses with identical content to browser baseline. No AI-bot-specific disallows in robots.txt.
- Rich JSON-LD schema on homepage with Organization, Place, HomeAndConstructionBusiness — The homepage includes a triple-type schema block with geo coordinates, opening hours, VAT ID, employee range, founding date, and multiple contact points.
- Key pages return rich server-rendered HTML — All key pages (homepage, about, blog, pricing) return 700–1,400 words of visible text without JavaScript dependency, ensuring content is indexable by crawlers.
- Blog with 80+ substantive articles on high-intent queries — The blog has articles of 1,100–1,400 words covering topics like EICR certificates, boiler faults, and drain blockages, providing strong answer-signal content.
- Geo-sitemap for location-specific pages — The site includes a geo-sitemap.xml to help search engines discover location-specific pages, aiding local SEO.
- Blog posts use Article schema with proper dates and wordCount — Blog articles include Article schema with datePublished, dateModified, and wordCount, providing structured metadata to AI models.
- Accreditations page lists 18+ trade certifications — The accreditations page provides a strong trust signal with certifications from Gas Safe, NAPIT, NFRC, CHAS, and others.
Track aspect.co.uk across AI search
This is one snapshot. Open the interactive report to inspect evidence, or grade another site free.