The checks, vertical-tailored
What the audit checks for CPA firms.
Every audit, on every plan, scores Foundational SEO, Technical SEO, Local SEO and AI Visibility at equal weight. Local SEO always applies here, because a missing address or Maps link is itself a finding. The check definitions are constant; the severity, the recommended fix, the competitor set, and the example code shift per vertical via the adapter.
Foundational pillar
Foundational
Keyword universe, content depth, on-page structure, internal link graph.
- title-quality
Your firm-name title should follow the pattern "[Firm Name], CPAs in [City] | [Service Specialty]". Generic "Welcome to [Firm]" titles surrender the local-intent click to whoever wrote a better title above you in the SERP.
- topical-authority
A CPA firm with three pages on sales tax (nexus overview, marketplace-facilitator rules, economic-threshold tracker) and twenty pages on personal income tax has inverted topical authority for SaaS / e-commerce clients. The audit maps your cluster depth against the service mix you actually want to win.
- paragraph-length
Tax-strategy posts are easy to write in 200-word paragraphs (it is dense material). LLMs prefer the 134 to 167 word range for citation lift. Breaking the posts up into question-shaped H2 + 150-word answer blocks roughly doubles passage extractability without losing depth.
Technical pillar
Technical
Crawl, render, schema validation, Core Web Vitals, render-parity diff.
- schema-validation
AccountingService JSON-LD must include serviceType (e.g., "Tax Preparation", "Bookkeeping", "Advisory"), areaServed (city + state), and priceRange. Do not add aggregateRating or Review markup about your own firm: Google treats reviews a business controls about itself as self-serving, so LocalBusiness and Organization pages with that markup are ineligible for review stars. Earn reviews on your Google Business Profile and third-party directories instead. Validate against the schema.org spec, not a 2020 snapshot.
- js-render-parity
Many CPA firms run their site on a Squarespace or Webflow theme that renders service tiles via JS. AI crawlers see the empty version. The audit flags the gap and recommends the static-HTML fix (or a server-rendered alternative).
- canonical-correctness
Service-area pages ("CPA Baltimore", "CPA Annapolis", "CPA Towson") frequently end up with canonicals pointing back to the homepage by mistake. The audit catches the misconfiguration and reports each duplicate-canonical case.
Local pillar
Local
On-site local signals: LocalBusiness schema, Maps link, phone and address, service-area pages.
- local-business-schema
The audit checks that a LocalBusiness-class type such as AccountingService is declared in your JSON-LD. It does not validate the fields. We recommend adding geoCoordinates, openingHoursSpecification, and priceRange so the block is complete.
- nap-consistency
The audit reads this page for a complete phone, street address, and ZIP code fingerprint. It does not compare your listings on Google, Yelp, the AICPA member directory, your state-society directory, or the BBB; check those by hand so they match your site exactly.
- gbp-link-presence
The audit looks for an outbound Google Maps link on each page. Most CPA firms link only from the homepage footer; a link on every service-area page is the stronger pattern.
AI Visibility pillar
AI Visibility
AI crawler readability, schema for AI, passage extractability, entity graph.
- schema-completeness-for-ai
The accounting AI graph (AccountingService + LocalBusiness + Organization + Person + FAQPage) is one of the heaviest-payoff schema sets in any vertical. AI engines triangulate "best CPA firm for [niche]" answers against this graph.
- passage-extractability
Question-shaped H2 ("How does sales-tax nexus work for a SaaS company selling into California?") followed by a 134-167 word answer is the format ChatGPT and Perplexity lift verbatim. Tax-strategy posts are dense; restructuring them this way takes 30 minutes per post and roughly doubles citation rate.
- entity-graph
Organization sameAs to your AICPA member listing, state-society directory page, Crunchbase, LinkedIn, and (for the principal) a personal Person sameAs to LinkedIn + the state-board license verification page. AI engines treat the second-degree entity graph as a primary trust signal for professional services.