Back to Resources
Technical SEO18 min read

Schema Markup for CPAs: Structured Data for Rich Results

A comprehensive guide to implementing schema markup for accounting firms. Learn how to use structured data to enhance your search visibility, earn rich results, and help Google better understand your services.

Published December 16, 2025

Schema markup is one of the most powerful yet underutilized SEO tools available to CPA firms. By adding structured data to your website, you help search engines understand your content more accurately, which can result in enhanced search listings known as rich results[1]. These eye-catching results often include additional information like ratings, service details, and business hours—all of which can significantly improve your click-through rates.

This comprehensive guide covers everything accounting professionals need to know about implementing schema markup, from basic concepts to advanced implementation strategies. Whether you're managing your own website or working with a developer, you'll gain the knowledge needed to leverage structured data effectively for your practice.

What Is Schema Markup?

Schema markup, also known as structured data, is a standardized vocabulary of tags that you add to your website's HTML to help search engines understand your content better. Think of it as providing a translation that makes it easier for search engines to categorize and display your information[3].

Schema.org, launched in 2011 through a collaborative effort between Google, Microsoft, Yahoo, and Yandex, provides a universal set of schemas—structured data types—that webmasters can use to mark up their pages[1]. For CPA firms, this means you can explicitly tell search engines that you're a professional service, specify your service areas, highlight client reviews, and much more.

Why Schema Matters for CPA Firms

While schema markup is not a direct ranking factor according to Google[2], it provides several significant advantages:

  • Enhanced Search Listings: Rich results with star ratings, service information, and business details stand out in search results, increasing click-through rates by up to 30%.
  • Better Understanding: Search engines can more accurately understand what services you offer, your location, and your areas of expertise.
  • Voice Search Optimization: Structured data helps voice assistants pull accurate information about your firm for spoken queries.
  • Knowledge Graph Inclusion: Proper markup increases the likelihood of appearing in Google's Knowledge Graph panels.
  • Competitive Advantage: Most CPA firms don't implement structured data, giving early adopters a significant edge.

Types of Schema Formats

Schema markup can be implemented in three formats, though one is strongly preferred:

JSON-LD (JavaScript Object Notation for Linked Data): Google's recommended format[3]. JSON-LD is implemented as a script tag in your HTML and doesn't interfere with your visible content. It's easier to implement, maintain, and troubleshoot than other formats.

Microdata: An older format that embeds structured data directly into HTML tags. While still supported, it's more complex to implement and maintain.

RDFa (Resource Description Framework in Attributes): Another HTML-based format that's primarily used in specific contexts. Rarely recommended for new implementations.

For CPA firms, JSON-LD is the clear choice due to its simplicity and Google's preference[13]. All examples in this guide will use JSON-LD format.

LocalBusiness Schema for CPA Firms

LocalBusiness schema is essential for any CPA firm serving a specific geographic area. This schema type tells search engines about your physical location, contact information, hours of operation, and other key business details[5].

Core LocalBusiness Properties

A comprehensive LocalBusiness schema for a CPA firm should include these critical properties:

  • @type: Set to "ProfessionalService" or "AccountingService" (more specific than generic LocalBusiness)
  • name: Your official business name
  • address: Complete street address, city, state, and ZIP code
  • telephone: Primary business phone number
  • url: Your website homepage URL
  • geo: Latitude and longitude coordinates for precise location
  • openingHours: When your office is open for clients
  • priceRange: General price indicator (e.g., "$$")

Example LocalBusiness Implementation

Here's a complete example of LocalBusiness schema for a CPA firm:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ProfessionalService",
  "name": "Smith & Associates CPA",
  "image": "https://example.com/logo.jpg",
  "@id": "https://example.com",
  "url": "https://example.com",
  "telephone": "+1-555-123-4567",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main Street, Suite 200",
    "addressLocality": "Chicago",
    "addressRegion": "IL",
    "postalCode": "60601",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 41.8781,
    "longitude": -87.6298
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "closes": "17:00"
    }
  ],
  "sameAs": [
    "https://www.facebook.com/smithcpa",
    "https://www.linkedin.com/company/smithcpa",
    "https://twitter.com/smithcpa"
  ]
}
</script>

Place this script in the <head> section of your homepage. The "sameAs" property is particularly valuable as it helps search engines connect your various online profiles, reinforcing your business identity across the web[5].

ProfessionalService Schema

While LocalBusiness is important for your homepage, ProfessionalService schema should be used on individual service pages. This schema type is specifically designed for professional service providers like CPAs, attorneys, and consultants[6].

Service-Specific Schema Properties

For each service page—such as tax preparation, audit services, or business consulting—implement ProfessionalService schema with these properties:

  • serviceType: The specific service being offered (e.g., "Tax Preparation", "Business Tax Planning")
  • provider: Reference to your main organization
  • areaServed: Geographic areas where you provide this service
  • hasOfferCatalog: List of specific service offerings
  • serviceOutput: What clients receive from the service

Service Page Schema Example

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Service",
  "serviceType": "Tax Preparation Services",
  "provider": {
    "@type": "ProfessionalService",
    "name": "Smith & Associates CPA",
    "telephone": "+1-555-123-4567",
    "address": {
      "@type": "PostalAddress",
      "addressLocality": "Chicago",
      "addressRegion": "IL"
    }
  },
  "areaServed": {
    "@type": "City",
    "name": "Chicago"
  },
  "description": "Comprehensive tax preparation services for individuals and businesses, including federal and state tax returns, quarterly estimates, and tax planning.",
  "offers": {
    "@type": "Offer",
    "availability": "https://schema.org/InStock"
  }
}
</script>

This markup helps search engines understand exactly what service you're offering on each page, which can help your pages appear for more specific, high-intent searches[6].

FAQPage Schema

FAQPage schema is one of the most valuable types for CPA firms because it can generate rich results showing your questions and answers directly in search results. This expanded visibility can dramatically increase click-through rates[7].

FAQ Schema Best Practices

Google has specific guidelines for FAQPage schema[7]:

  • Include only questions that users might actually search for
  • Provide complete, helpful answers (not just one-word responses)
  • Don't use FAQPage for advertising purposes
  • Avoid repetitive questions with only slight variations
  • Don't include questions that could be interpreted as harmful or inappropriate
  • The FAQ content must be visible on the page (not hidden or in accordions that require interaction)

Implementing FAQPage Schema

Here's an example of properly structured FAQPage schema for a CPA firm's service page:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How much does it cost to hire a CPA for tax preparation?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "CPA fees for tax preparation typically range from $200 to $500 for individual returns and $500 to $2,500 for business returns, depending on complexity. Factors affecting cost include the number of forms required, business structure, income sources, and deductions claimed."
      }
    },
    {
      "@type": "Question",
      "name": "What documents do I need to bring to my CPA?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "For tax preparation, bring W-2s, 1099 forms, receipts for deductible expenses, prior year returns, mortgage interest statements, investment income statements, and documentation for any major life changes like marriage, home purchase, or business formation."
      }
    },
    {
      "@type": "Question",
      "name": "When should I hire a CPA versus using tax software?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Consider hiring a CPA if you own a business, have multiple income streams, experienced major life changes, have complex investments, need audit support, or want strategic tax planning advice. DIY software works well for simple W-2 income with standard deductions."
      }
    }
  ]
}
</script>

You can include multiple questions on a single page. For best results, choose questions that address common client concerns and search queries related to your services. Monitor Google Search Console to see which questions are generating impressions and clicks[11].

Review and AggregateRating Schema

Review schema allows you to display star ratings in search results, which can significantly improve click-through rates. However, Google has strict policies about review markup to prevent abuse[8].

Review Schema Guidelines

When implementing review schema, you must follow these rules:

  • Reviews must be genuine and from actual clients
  • You cannot write your own reviews
  • Reviews should come from third-party review platforms or your own verified review system
  • Self-serving reviews can result in manual penalties
  • Reviews must be visible on the page where the schema is implemented

AggregateRating Implementation

If you have multiple reviews, use AggregateRating schema to display an overall rating:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ProfessionalService",
  "name": "Smith & Associates CPA",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "127",
    "bestRating": "5",
    "worstRating": "1"
  }
}
</script>

Individual Review Schema

For displaying individual client reviews with schema:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Review",
  "itemReviewed": {
    "@type": "ProfessionalService",
    "name": "Smith & Associates CPA"
  },
  "reviewRating": {
    "@type": "Rating",
    "ratingValue": "5",
    "bestRating": "5"
  },
  "author": {
    "@type": "Person",
    "name": "John D."
  },
  "reviewBody": "Excellent tax preparation service. They saved my business thousands in taxes through strategic planning. Highly responsive and professional.",
  "datePublished": "2025-03-15"
}
</script>

Remember that review schema requires the actual review content to be visible on your page. You can't just add schema without displaying the reviews themselves[8].

BreadcrumbList Schema

Breadcrumb navigation helps users understand where they are on your website, and BreadcrumbList schema can display this navigation path directly in search results. This improved display can help users understand your site structure before clicking[9].

Breadcrumb Benefits for CPA Sites

Implementing breadcrumb schema provides several advantages:

  • Replaces the plain URL in search results with a navigable path
  • Helps users understand your site organization
  • Improves click-through rates by showing page context
  • Works particularly well for sites with clear hierarchical structure (Services > Tax Preparation > Business Tax)

BreadcrumbList Implementation

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://example.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Services",
      "item": "https://example.com/services"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Tax Preparation",
      "item": "https://example.com/services/tax-preparation"
    }
  ]
}
</script>

Each page should have its own BreadcrumbList schema showing the path from your homepage to that specific page. The "position" property indicates the item's order in the sequence, starting with 1 for the homepage[9].

Organization Schema

Organization schema is foundational markup that defines your business entity, its relationship to other entities, and key identifying information. This schema type is particularly important for helping search engines build your Knowledge Graph entry[10].

Comprehensive Organization Schema

A complete Organization schema for a CPA firm should include:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ProfessionalService",
  "name": "Smith & Associates CPA",
  "alternateName": "Smith CPA",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "image": "https://example.com/office-photo.jpg",
  "description": "Full-service CPA firm providing tax preparation, audit services, and business advisory to Chicago businesses and individuals since 1995.",
  "telephone": "+1-555-123-4567",
  "email": "info@example.com",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main Street, Suite 200",
    "addressLocality": "Chicago",
    "addressRegion": "IL",
    "postalCode": "60601",
    "addressCountry": "US"
  },
  "founder": {
    "@type": "Person",
    "name": "Robert Smith",
    "jobTitle": "Managing Partner, CPA"
  },
  "foundingDate": "1995",
  "numberOfEmployees": {
    "@type": "QuantitativeValue",
    "value": "12"
  },
  "areaServed": {
    "@type": "State",
    "name": "Illinois"
  },
  "sameAs": [
    "https://www.facebook.com/smithcpa",
    "https://www.linkedin.com/company/smithcpa",
    "https://twitter.com/smithcpa"
  ]
}
</script>

Place this schema on your homepage. The more complete and accurate your Organization schema, the better search engines can understand and represent your business[10].

Implementation Methods

There are several ways to add schema markup to your CPA firm's website, each with different advantages depending on your technical comfort level and website platform.

Manual HTML Implementation

If you have access to your website's HTML, you can add JSON-LD scripts directly:

  • Add the schema script within the <head> or <body> section of your HTML
  • JSON-LD can be placed anywhere on the page, though <head> is conventional
  • Each page can have multiple schema blocks for different schema types
  • Schema scripts don't affect page loading or rendering

WordPress Implementation

For WordPress sites, you have several options:

Schema Plugins: Plugins like Schema Pro, Rank Math, or Yoast SEO Premium can automatically generate schema markup based on your content. These plugins provide user-friendly interfaces where you can fill in your business information, and they'll create the proper schema code.

Theme Functions: Add schema code to your theme's functions.php file or use a child theme to ensure updates don't overwrite your markup. This approach gives you complete control over the implementation.

Custom Fields: Advanced Custom Fields or similar plugins can be used to create fields for schema data, then output that data as JSON-LD through template files.

Google Tag Manager Implementation

Google Tag Manager (GTM) offers a flexible way to add schema without touching your HTML:

  • Create a Custom HTML tag containing your JSON-LD schema
  • Set triggers to fire the schema on specific pages
  • Update schema without deploying code changes
  • Version control and rollback capabilities
  • Test changes in preview mode before publishing

This method is particularly useful if you don't have direct access to your website's code or want the flexibility to update schema independently[12].

Platform-Specific Solutions

Many website platforms offer built-in schema support or dedicated apps:

  • Wix: Includes automatic LocalBusiness schema; additional schema can be added via the Wix SEO panel
  • Squarespace: Automatically generates basic Organization schema; custom schema requires code injection
  • Shopify: Built-in product schema; additional schema added via theme code or apps
  • Webflow: Add custom code blocks to embed JSON-LD schema

Testing and Validation Tools

After implementing schema markup, it's crucial to test and validate your code to ensure it's error-free and eligible for rich results. Google provides several free tools for this purpose[4].

Google Rich Results Test

The Rich Results Test is your primary tool for validating schema implementation[4]:

  • Enter your page URL or paste your HTML/schema code directly
  • See which rich result types your page is eligible for
  • Identify errors and warnings in your schema
  • Preview how your rich result might appear in search
  • Test both live pages and staged/unpublished content

The tool will categorize issues as either errors (must fix) or warnings (recommended to fix). Errors will prevent your rich results from appearing, while warnings indicate potential improvements.

Google Search Console

Google Search Console provides ongoing monitoring of your schema implementation[11]:

  • Navigate to Enhancements section to see rich result reports
  • View which pages have valid schema and which have errors
  • Monitor impressions and clicks for pages with rich results
  • Receive alerts when Google detects schema issues
  • Request re-indexing after fixing errors

Schema Markup Validator

Schema.org provides a general-purpose validator at validator.schema.org that checks your markup against the official Schema.org specifications. While Google's tools are more important for SEO purposes, the Schema.org validator can catch technical issues that might not affect Google but could impact other search engines[1].

Bing Markup Validator

Don't forget about Bing. The Bing Markup Validator in Bing Webmaster Tools validates your schema for Microsoft's search engine, which powers a significant portion of searches[15].

Testing Checklist

Before finalizing your schema implementation, verify:

  • No critical errors in Rich Results Test
  • All required properties are present for each schema type
  • URLs are absolute (not relative) and use HTTPS
  • Phone numbers are in international format (+1-555-123-4567)
  • Dates follow ISO 8601 format (YYYY-MM-DD)
  • Images meet Google's size and format requirements
  • All information matches what's visible on the page

Common Schema Mistakes to Avoid

Many CPA firms make preventable errors when implementing schema markup. Avoiding these common mistakes will save you time and help you achieve results faster.

Markup-Content Mismatch

One of the most serious violations is including schema markup for content that isn't visible on the page[2]. If your schema says you offer audit services but that information isn't mentioned anywhere on the page, Google may ignore the markup or apply a manual penalty. Always ensure your structured data accurately reflects your visible content.

Using Wrong Schema Types

Using an inappropriate schema type can prevent you from earning rich results. For example:

  • Don't use Product schema for services (use Service or ProfessionalService)
  • Don't use Article schema for service pages (use WebPage or Service)
  • Don't use LocalBusiness for individual practitioners without a physical office

Duplicate Schema

Having multiple conflicting schemas on the same page confuses search engines. This often happens when a plugin generates schema and you've also manually added it. Audit your pages to ensure you're not duplicating schema markup.

Incorrect Review Implementation

Review schema violations are among the most common reasons for manual penalties[14]:

  • Never create fake or self-written reviews
  • Don't mark up third-party reviews as if they're on your site
  • Ensure review dates are accurate
  • Display the actual review content on the page

Syntax Errors

JSON-LD is strict about syntax. Common errors include:

  • Missing or extra commas
  • Unclosed brackets or braces
  • Using single quotes instead of double quotes
  • Incorrectly nested properties

Always validate your JSON-LD through a JSON validator before implementing it on your site[13].

Advanced Schema Strategies

Once you've implemented basic schema types, consider these advanced strategies to maximize your structured data's impact.

Nested Schema Types

You can nest different schema types to provide richer information. For example, combine Organization schema with hasOfferCatalog to list all your services:

{
  "@context": "https://schema.org",
  "@type": "ProfessionalService",
  "name": "Smith & Associates CPA",
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "Accounting Services",
    "itemListElement": [
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Tax Preparation"
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Audit Services"
        }
      }
    ]
  }
}

Multiple Schema Types Per Page

A single page can have multiple schema types. Your homepage might include Organization, LocalBusiness, and WebSite schema all working together to provide comprehensive information.

Dynamic Schema Generation

For larger sites, manually maintaining schema on every page becomes impractical. Consider implementing dynamic schema generation where your CMS or templates automatically create appropriate schema based on page type and content. This ensures consistency and reduces maintenance burden.

Monitoring and Maintaining Schema

Schema markup isn't a set-it-and-forget-it task. Regular monitoring and maintenance ensure your structured data continues to work effectively.

Monthly Schema Audits

Set a monthly reminder to:

  • Check Google Search Console for schema errors
  • Review rich result performance (impressions and clicks)
  • Test new or modified pages with Rich Results Test
  • Update business information if anything has changed
  • Add schema to new pages or content

Keeping Schema Current

Update your schema markup whenever you:

  • Change business hours or contact information
  • Add new services or discontinue old ones
  • Relocate or open new offices
  • Receive new reviews or update aggregate ratings
  • Modify your service areas

Outdated schema can harm trust and potentially violate Google's guidelines if the information becomes significantly inaccurate[2].

Getting Started with Schema Markup

If you're new to schema markup, start with these high-priority implementations:

  1. Week 1: Organization and LocalBusiness Schema - Add comprehensive business schema to your homepage using the examples provided earlier. This establishes your fundamental business identity with search engines.
  2. Week 2: Service Pages - Implement ProfessionalService or Service schema on your main service pages (tax preparation, audit, consulting, etc.).
  3. Week 3: FAQPage Schema - Identify your top 3-5 pages with FAQ content and add FAQPage schema. This often generates the quickest visible results.
  4. Week 4: Breadcrumbs - Add BreadcrumbList schema across your site to improve navigation display in search results.
  5. Week 5+: Reviews and Advanced Schema - If you have client reviews, implement review schema. Consider more advanced implementations like nested schema types.

After each implementation, test with Google's Rich Results Test and monitor Google Search Console for any errors. Rich results typically begin appearing within 2-4 weeks after Google recrawls and reindexes your pages[11].

Schema markup represents one of the best opportunities for CPA firms to enhance their search presence. While implementation requires some technical knowledge, the potential benefits—improved visibility, higher click-through rates, and better communication with search engines—make it a worthwhile investment. Start with the basics, test thoroughly, and expand your implementation over time to maximize results.

Need Help Implementing Schema Markup?

Let's discuss how we can optimize your CPA firm's website with proper schema markup and other technical SEO improvements to increase your search visibility.

Get Your Free Consultation