Schema Markup for Law Firms: What Actually Matters

Schema markup is one of the most over-sold and under-delivered services in the legal SEO industry. Agencies charge thousands of dollars to “implement comprehensive schema” — meaning they install a plugin that auto-generates 30 schema types per page, half of which Google doesn’t use for anything, several of which violate Google’s structured data guidelines, and exactly three or four of which actually matter. This page is the honest version: what schema is, which types move the needle for law firms, which ones are theater, and the specific Google policy on review schema that most firms are quietly breaking without realizing it.

I’ll say something upfront that most schema vendors won’t: schema markup is mostly not a ranking factor. It’s a rich-result eligibility signal. Google uses schema to understand the structure of a page and to decide whether the page is eligible to appear with enhanced features in search results — sitelinks, FAQ accordions, breadcrumbs, ratings, knowledge panels. Getting schema right makes a page eligible for those features. It does not, by itself, rank a page that wasn’t going to rank for its content. Most schema gets sold to firms with the implicit promise that it will move rankings. That promise is wrong. For the broader picture on practice pages, see the practice pages guide.

Schema markup for law firms — what matters, what’s theater Two columns of schema types for law firm websites. Worth implementing: LegalService for the main practice page, Person for each attorney bio, FAQPage for FAQ sections, BreadcrumbList for the page hierarchy. Schema theater to skip: aggregateRating that you publish yourself, generic Service for non-legal categories, Review schema sourced from your own site, deeply-nested Organization markup with thirty optional fields. PHX SEARCH CO. · PRACTICE PAGES Schema that matters, and schema that’s theater. IMPLEMENT THESE LegalService Primary schema on each practice page. Person (Attorney) On every attorney bio page. FAQPage On FAQ sections and answer pages. BreadcrumbList On any nested page. SCHEMA THEATER — SKIP Self-published aggregateRating Google won’t show it — requires verified review platform. Generic Service for non-legal LegalService is the right type. Don’t add both. Review schema from your own site Google ignores self-served review markup. “Complete” 30-field Organization More fields ≠ more ranking. Most go unused. Schema doesn’t make a bad page rank. It makes a good page rank a little more confidently. seoinphx.com
Schema that matters vs. schema theater — detailed below.

What schema markup actually is

Schema.org is a shared vocabulary that search engines, browsers, and other services use to understand what’s on a web page. When you add schema markup, you’re telling Google “this page is about a law firm at this address with these practice areas, and the office hours are X, Y, Z.” Without schema, Google has to figure all that out from the page content. With schema, you’re giving it a clean, structured version.

Schema is implemented one of three ways: JSON-LD (a script block in the page head — Google’s preferred format), microdata (inline HTML attributes), or RDFa (similar to microdata). All modern SEO uses JSON-LD. If your current setup uses microdata or RDFa, it’s probably also out of date in other ways — but the markup itself isn’t a problem.

Most WordPress sites get schema from one of three sources: Yoast SEO, Rank Math, or Schema Pro. All three produce technically valid markup. The differences are in what types they generate, how customizable they are, and whether they include types that Google has explicitly stopped using for rich results. Yoast and Rank Math both default to a sensible baseline. Schema Pro and similar specialized plugins tend to default to “everything” — which is the schema theater problem in a nutshell.

The schemas that actually matter for law firms

There are seven schema types worth understanding for a law firm site. Some are essential. Some are useful where they apply. Most other schema types you’ll be pitched are noise.

1. LegalService (the primary)

LegalService is the schema.org type that specifically describes a law firm. It’s an extension of LocalBusiness and inherits LocalBusiness’s properties. The fields that matter:

  • name — your legally registered firm name, matching your Google Business Profile and citations.
  • address — full PostalAddress, with the same suite-number formatting you use everywhere else (NAP consistency matters).
  • telephone — the main firm number, not a call-tracking number.
  • url — the canonical firm URL.
  • areaServed — the city or cities the firm serves.
  • priceRange — the broad bracket ($$ or $$$ usually). Some firms skip this; including it costs nothing.
  • openingHours — the firm’s actual hours, matching GBP.
  • sameAs — array of URLs pointing to the firm’s authoritative profiles elsewhere (GBP, LinkedIn, state bar listing, key directory entries).

LegalService goes on the homepage and the contact page. It identifies the firm to Google as a single entity. The information has to match exactly across your GBP, your citations, and this schema — if it doesn’t, you’re sending contradictory signals about who you are.

2. LocalBusiness (the variant)

LocalBusiness is the parent type LegalService inherits from. For a single-location firm, LegalService is preferable because it’s more specific. For multi-location firms, you have a choice: implement LegalService on the homepage with the headquarters address, plus separate LocalBusiness schema on each location page with that location’s address — or implement LegalService on each location page with the location-specific data. Either works. The key is consistency: one entity, identified the same way everywhere, with location-specific addresses correctly assigned.

For the deeper local picture, see our local SEO guide and our coverage of multi-location SEO for law firms.

3. Attorney / Person (for bio pages)

Schema.org has an Attorney type. It’s an extension of Person. Each attorney bio page should have Attorney schema (or, if your plugin doesn’t support Attorney specifically, Person schema with jobTitle set to “Attorney”). The fields that matter:

  • name — the attorney’s full legal name.
  • jobTitle — Attorney, Partner, Of Counsel, etc.
  • worksFor — referencing the firm’s LegalService entity (this is how you connect the attorney to the firm in structured data).
  • alumniOf — law school and undergraduate institution.
  • memberOf — bar associations and professional organizations.
  • image — a real headshot URL.
  • sameAs — the attorney’s profiles on Avvo, Martindale, state bar, LinkedIn.

Attorney schema is one of the schemas most directly tied to E-E-A-T signals. Google wants to know who’s behind the content on a law firm site. A properly-marked-up bio page that ties the attorney to the firm and to verifiable external profiles is one of the cleanest expertise signals you can send. For the deeper picture, see our piece on lawyer bio page SEO.

4. Article (for substantive content)

Article schema goes on substantive content pages — blog posts, guides, practice page deep-dives, individual case writeups. The required fields are headline, image, datePublished, dateModified, and author. The author should be a Person entity (ideally the same attorney whose bio page also exists on the site, creating the entity graph Google likes).

Article schema doesn’t earn special rich results by itself, but it makes the content eligible for the “Top Stories” and certain news-related features (rarely relevant for a law firm), and more importantly, it helps Google understand the page as authored content rather than commercial copy. For E-E-A-T signal purposes — Experience, Expertise, Authoritativeness, Trust — having Article schema with a real author on substantive content pages reinforces that the page was written by someone with credentials, not generated by an LLM at 3am.

5. FAQPage (for the answer-pattern content)

FAQPage schema is for pages structured as question-and-answer content. Each Q&A pair is marked up as a Question and Answer entity. Google occasionally surfaces FAQPage content as expanded accordions in search results, though they’ve pulled back on this surface significantly since 2023 — many of the FAQ rich results that used to appear are gone, and FAQPage is now mostly relevant for site-specific search and for the (rare) FAQ rich result that still appears.

FAQPage schema only belongs on pages that ARE actually structured as FAQs. The schema theater move is to mark up every page as FAQPage by stuffing a few questions at the bottom and adding schema. Google has flagged this pattern. Use FAQPage only when the page’s primary purpose IS the Q&A — your answer pages, your “frequently asked questions” page, the FAQ section of a practice page (but the page itself isn’t FAQPage; just the section).

6. BreadcrumbList (for the hierarchy)

BreadcrumbList schema describes the page’s place in the site hierarchy: Home → Practice Areas → Personal Injury → Car Accidents. Google uses this both for understanding site structure and for occasionally displaying breadcrumbs in search results (instead of the raw URL). It’s cheap to implement, supports every page, and helps the rest of the schema make more sense.

BreadcrumbList should match your actual site hierarchy and the breadcrumb component you display visually. If your visual breadcrumb says “Home › Personal Injury › Car Accident Settlements,” the schema should describe the same chain. Mismatches between visual breadcrumbs and schema breadcrumbs trigger Google’s structured data warnings.

7. Service (for practice area pages)

Service schema describes a specific service the firm offers. It’s appropriate on practice area pages — a “Personal Injury” practice page can be marked up as a Service, with serviceType set to the practice area, provider referencing the firm’s LegalService entity, and areaServed describing the geographic coverage. This is most useful for firms targeting practice-area-plus-city queries, where the Service schema connects the practice page to the geography.

Service schema doesn’t trigger a specific rich result. It’s part of the structured data that helps Google understand the relationship between the firm, its practice areas, and the geographies it serves. Worth including. Not worth obsessing over.

The Review schema problem

This is the section where most firms — and most agencies — are quietly breaking Google’s policy without realizing it.

For years, sites self-published Review and AggregateRating schema to make star ratings appear in their organic search snippets. You’d see “★★★★★ 4.9 (87 reviews)” in the search result for a law firm — generated by the firm’s own Review schema, not by any third-party verification. The five stars were impressive. They were also self-attested.

In 2019, Google updated its guidance to clarify that self-serving Review schema — markup on a business’s own page about itself — would not earn rich results. They’ve enforced this with increasing strictness. The current state: a law firm putting Review schema on its own homepage to display its own star rating will not get rich results from it. The schema is valid, technically; it just doesn’t trigger the feature it used to trigger.

Worse, Google’s structured data guidelines for the legal vertical specifically warn against Review schema for “self-serving reviews about a business.” If you push it — if you mark up reviews you’ve collected on your own site as Review schema with an AggregateRating — you can trigger a manual action against the page. The manual action is rare but real, and the resulting penalty (the snippet getting downgraded, the rich result eligibility revoked across the site) is painful.

If your “comprehensive schema package” includes self-published Review and AggregateRating markup on your homepage, you’re paying for a service that’s been against Google’s guidelines for over five years and will eventually backfire.

The right move is to leave Review schema OFF self-published content. The star ratings that appear in search results for law firms come from Google Business Profile reviews — that’s the verified source. The firm’s own site shouldn’t be claiming aggregate ratings via schema. For testimonials on the firm’s site, display them as content, but don’t mark them up as Review with AggregateRating. The exception: if your testimonials come from a verified third-party platform that allows you to embed their markup (Birdeye, BrightLocal, etc.), the third-party-attested version is treated differently. Confirm with the platform that their embed is Google-compliant before relying on it.

For the deeper picture on this, see our piece on review schema and rich results in the reviews guide, and our coverage of reviews vs testimonials on your site.

Common schema mistakes

The patterns I see repeatedly in firm audits:

  • Inconsistent NAP data across schema blocks. The homepage LegalService says “Smith & Jones Law” with one address. The contact page LocalBusiness says “Smith and Jones Law” with the suite formatted differently. The attorney bio’s worksFor references neither correctly. Google reads this as three different businesses.
  • Stale dateModified values. Some plugins update dateModified on every page load. Some never do. Some only update when content actually changes. Pick a plugin that updates on real content changes; the dateModified is a signal Google uses to assess freshness.
  • FAQPage schema on pages that aren’t FAQs. A practice page with a small FAQ section at the bottom shouldn’t be marked up as FAQPage — the page’s primary type is something else, with an embedded FAQ. Marking the whole page as FAQPage misrepresents it.
  • Author schema that points to no author. Article schema with author set to “Smith & Jones Law” or “Admin” or no author at all. The author should be a Person entity tied to an actual attorney’s bio page. Generic or missing authors hurt E-E-A-T signals.
  • Self-serving Review and AggregateRating on the firm’s own pages. Covered above — this is the single biggest schema mistake in legal SEO.
  • Marking up content that isn’t on the page. Including FAQ items in the schema that don’t appear in the visible page content. Google detects this and treats it as a manipulation pattern.
  • Schema that contradicts other on-site signals. Schema says the firm is in Phoenix; the page content says “serving all of Arizona from our Tucson office.” Pick one and be consistent.

The schema types you can safely skip

Most “comprehensive schema” packages include types that produce no measurable benefit for a law firm. The ones you can skip:

  • WebSite and WebPage — these are auto-generated by most plugins and rarely matter beyond the SearchAction subtype (which can enable a sitelinks search box, but this is a small surface).
  • Organization in addition to LegalService — redundant. LegalService inherits from Organization.
  • LegalCaseDocument on case result pages — covered in our piece on case result pages and SEO. Real schema type, but Google doesn’t use it for rich results in this context.
  • Course or EducationalOccupationalProgram — sometimes pitched for CLE content. Almost always overreach for a firm site.
  • VideoObject on every page that includes a video — useful if you have substantial video content with transcripts. Theater if you have one homepage video.
  • PriceSpecification with dollar ranges for legal services — most firms can’t and shouldn’t quote specific prices in schema. Bar rules complicate this; case-by-case pricing makes it inaccurate; skip it.

How to audit your existing schema

Two free tools handle 90% of what you need. Google’s Rich Results Test (search.google.com/test/rich-results) checks individual URLs against current eligibility for rich results — it’ll tell you exactly which features each page is eligible for, and which schema errors are preventing eligibility. Schema.org’s validator (validator.schema.org) checks raw markup for spec compliance.

For site-wide visibility, Google Search Console has an Enhancements section that breaks down structured data issues across your indexed pages — Articles, Breadcrumbs, FAQs, etc. Most firms have never opened this section. It shows the exact errors and the URLs where they occur. It’s the most useful starting point for any schema audit.

Run the Rich Results Test on the homepage, the contact page, two practice pages, an attorney bio, and any FAQ or answer pages. The patterns of what passes and what fails will tell you most of what you need to know. If a practice page is throwing FAQPage errors because the markup includes questions that aren’t in the page content, that’s an action item. If the homepage LegalService is missing telephone or address fields, that’s an action item. Most schema audits produce a small list of real fixes, not a sprawling 50-item remediation plan.

The contrarian take, plainly

Schema theater is rampant in legal SEO. The agencies pitching “comprehensive schema implementation” as a major deliverable, charging four or five figures for it, and reporting on the number of schema types installed as if they were rankings — they’re billing on a service whose marginal value past about four well-chosen schema types is essentially zero. The right LegalService, the right Attorney schema on bio pages, the right Article schema on substantive content, and the right BreadcrumbList on hierarchical pages will cover most of what schema can actually do for a law firm. Everything else is either filling a feature you don’t need or trying to game a rich result Google has already disabled.

If your current agency is charging you for “schema optimization” as a recurring monthly line item, ask them three questions. Which schema types are deployed on which pages. Which Google rich results those schemas are eligible for. And how many of those rich results have actually appeared in your Search Console performance data in the last 90 days. The answers will tell you whether you’re paying for real work or for a checkbox the agency uses to fill the deck.

If you want a second set of eyes

The free audit I do for firms includes a schema check — what’s deployed, what’s broken, what’s wasting effort, and whether the self-serving Review schema problem is silently set up on the homepage. Most firms have at least one fixable schema issue. A few are sitting on the Review schema problem and didn’t know. Yours to keep whether you hire us or not.

For the broader practice page picture, see the practice pages guide, the anatomy of a ranking practice page, E-E-A-T signals for law firm pages, and auditing existing practice pages. For the local schema picture, our piece on Google Business Profile for law firms. For the reviews-schema-specifically picture, review schema and rich results. For the philosophy, our approach.

— The owner, PHX Search Co.

The 30-day test

Start with a free 1-page audit.

A real strategist reviews your site — no contract, no pitch deck. If we’re not earning the retainer, you stop paying.

Get your free audit