AI Site Grade

aprio.com — AI Site Grade

Aprio's contradictory AI posture: llms.txt invites LLMs while Cloudflare rate-limits GPTBot and ClaudeBot to 429.

Aprio has an llms.txt file and rich schema but blocks GPTBot and ClaudeBot with HTTP 429, has a cold-knowledge gap about its own history and size, and lacks LocalBusiness schema for its 30+ locations.

Findings
9
Evidence checks
28
Completed
30 May 2026

Analysis

Aprio has an llms.txt file — a rare and forward-leaning signal — yet simultaneously blocks GPTBot and ClaudeBot with HTTP 429 at the Cloudflare edge, creating a contradictory AI posture where the site invites LLM consumption on one hand and throttles the two most prominent training crawlers on the other.

Crawler Access

The robots.txt is a bare Yoast default with no AI-bot rules — no Disallow for any crawler. However, Cloudflare enforces a rate-limit layer that returns HTTP 429 Too Many Requests for GPTBot and ClaudeBot while serving full 200-byte content (228KB) to OAI-SearchBot, ChatGPT-User, Google-Extended, PerplexityBot, Perplexity-User, anthropic-ai, and Applebot-Extended. Bytespider gets a hard 403. This means OpenAI's training crawler and Anthropic's training crawler cannot read the site, but their search/chat bots can. The llms.txt at /llms.txt (generated by Yoast SEO v27.5) publishes a curated content map with pages, posts, locations, and people — a strong signal that the site wants LLM visibility — but the 429 wall on GPTBot and ClaudeBot undermines that intent for training-data inclusion.

Cold-Knowledge Gap

The LLM prior knows Aprio as a top-40 U.S. accounting firm formed in 2019 from the merger of Harbor, Johnson & Co. and Windham Brannon, serving privately held businesses with a proprietary "Aprio Growth" platform. The actual site tells a different story: Aprio claims since 1952 (not 2019), describes itself as a Top 25 firm (not top 40), with 2,800+ team members (not the ~1,500 the model estimates), and makes no mention of the "Aprio Growth" platform at all. The site's tagline is "Account for Anything" — a brand phrase absent from the model's prior. The model also knows nothing about Aprio's legal practice (Aprio Legal), its wealth management arm, or its Aprio Alliance network, all of which are prominent on the site.

Schema Posture

Every page carries rich Yoast-generated JSON-LD with WebPage, BreadcrumbList, WebSite, and Organization schemas. The Organization block includes sameAs links to Facebook, X, and LinkedIn. However, no LocalBusiness or CPA schema is used anywhere — surprising for a firm with 30+ physical locations. The person pages (e.g., /people/dave-little/) use ProfilePage but lack Person schema with knowsAbout or worksFor properties. The homepage has no FAQPage or HowTo schema despite offering comparison-oriented content. No Product or Service schema marks up the nine solution categories.

Content & Structure

The homepage delivers 1,025 words of visible text with a clear H1 ("Account for Anything"), nine H2 solution sections, and 14 industry verticals. The site runs on WordPress (Yoast, evident from schema generator) behind Cloudflare with minimal security headers (no HSTS, no CSP). The sitemap index reveals 2,100+ URLs across post, page, location, and person sitemaps — a substantial content footprint. The all-solutions page is a thin shell (~267 words) with a filter UI that likely relies on JavaScript, meaning AI crawlers see only the wrapper text. The "About Us" page claims 2,500+ team members while the press release about the CPO hire claims 2,800+ — a discrepancy of 300 people across two pages on the same domain.

Findings

  1. GPTBot and ClaudeBot blocked by Cloudflare rate-limit (HTTP 429) High

    Cloudflare returns HTTP 429 for GPTBot and ClaudeBot while allowing other AI crawlers. This contradicts the llms.txt file that invites LLM consumption.

    What to change: Remove the rate-limit rule that blocks GPTBot and ClaudeBot, or adjust it to allow reasonable crawling.

  2. LLM prior knowledge of Aprio is outdated and inaccurate High

    The LLM believes Aprio was formed in 2019 from a merger and is a top-40 firm, but the site claims since 1952 and top-25. The model knows nothing about Aprio Legal, wealth management, or the Aprio Alliance network.

    What to change: Ensure key facts (founding year, size, services) are consistently stated across the site and in structured data to correct the model's knowledge.

  3. No LocalBusiness or CPA schema for 30+ locations High

    Despite having 30+ physical locations, the site uses only Organization schema. No LocalBusiness or CPA schema is present, which limits local AI visibility.

    What to change: Add LocalBusiness schema with address, phone, and opening hours for each location, and CPA schema for accounting services.

  4. Person pages lack Person schema with knowsAbout and worksFor Medium

    People pages use ProfilePage schema but omit Person schema, missing opportunities to link expertise and employment.

    What to change: Add Person schema to people pages with properties like knowsAbout, worksFor, and jobTitle.

  5. Team member count differs across pages (2,500 vs 2,800) Medium

    The About page states 2,500+ team members, while a press release states 2,800+. This inconsistency can confuse AI crawlers.

    What to change: Reconcile the team count to a single consistent number across all pages.

  6. All Solutions page is a thin JavaScript shell Medium

    The /all-solutions/ page has only 267 words and relies on JavaScript for its filter UI, making most content invisible to AI crawlers.

    What to change: Server-render the solution listings or provide a static fallback for crawlers.

  7. No FAQPage or HowTo schema on comparison content Low

    The homepage and other pages offer comparison-oriented content but lack FAQPage or HowTo schema, missing rich snippet opportunities.

    What to change: Add FAQPage schema to pages with Q&A content and HowTo schema for step-by-step guides.

  8. No Product or Service schema for solution categories Low

    The nine solution categories are not marked up with Product or Service schema, reducing visibility for service-based queries.

    What to change: Add Service schema to each solution category page with description and provider.

  9. Bytespider receives HTTP 403 Low

    Bytespider is blocked with a hard 403, which may limit visibility on Baidu's ecosystem.

    What to change: Allow Bytespider if the site targets Chinese markets, or keep blocked if not relevant.

What's working

  • llms.txt file published with curated content map — Aprio has an llms.txt file (generated by Yoast) that lists pages, posts, locations, and people, signaling intent for LLM visibility.
  • Rich JSON-LD schema on every page — Every page includes WebPage, BreadcrumbList, WebSite, and Organization schemas with sameAs links, providing strong structured data foundation.
  • 2,100+ URLs in sitemap with diverse content types — The sitemap index contains over 2,100 URLs across posts, pages, locations, and people, indicating substantial content for AI crawlers.
  • Homepage has clear H1 and structured content — The homepage has a clear H1 ('Account for Anything'), nine H2 solution sections, and 14 industry verticals with 1,025 words of text.
  • Most AI crawlers allowed through Cloudflare — OAI-SearchBot, ChatGPT-User, Google-Extended, PerplexityBot, Perplexity-User, anthropic-ai, and Applebot-Extended all receive 200 responses.
  • robots.txt has no disallow rules for any crawler — The robots.txt is a bare Yoast default with no disallow rules, meaning no crawler is explicitly blocked at the robots level.

Track aprio.com across AI search

This is one snapshot. Open the interactive report to inspect evidence, or grade another site free.

Open this AI Site Grade Grade another site Track your brand