Schema markup is code, usually JSON-LD, that labels the facts on a page in schema.org vocabulary: this business is a law firm, this is its address, this lawyer wrote this article. For a law firm the useful set is small: LegalService for the firm, Person for each lawyer and Article for posts, all matching what the page shows.
Search engines already read your pages, but they still guess. Markup removes some of the guessing: which of several similar firm names is yours, which office a phone number belongs to, which attorney wrote a post. Google's general structured data guidelines say markup helps Google understand a page, and they are clear that correct markup makes a rich result possible, never guaranteed.
For a firm of 1 to 20 lawyers, schema is a short technical job with light upkeep. It will not win rankings on its own, and a few common mistakes can cost you rich result eligibility, so getting the basics right beats adding every type available.
What does schema markup do for a law firm website?
Schema markup restates, in a fixed vocabulary, what your pages already say: the firm's name, address and phone, who your lawyers are, and who wrote each article. Google uses it to understand pages and to decide which ones qualify for rich results. It does not move rankings by itself, and it never guarantees a special listing.
Google's guidelines list why valid markup may still not show: the algorithm may prefer a plain result, the markup may not represent the main content, or it may describe content hidden from users. They also limit the downside: a structured data manual action removes a page's rich result eligibility, and Google says it "doesn't affect how the page ranks in Google web search."
So the honest case for a law firm is narrow. Markup helps search engines treat your firm as one entity, which matters when your name resembles another firm's, when you have several offices, or when lawyers change firms. It also feeds features still open to firm sites: business details such as hours in Google's knowledge panel, as Google's local business documentation describes, plus breadcrumb trails and accurate author and date details on articles.
It does not replace your Google Business Profile, fix thin practice area pages or rescue a site Google cannot crawl. Those are bigger levers in law firm SEO; markup works on top of them.
Which schema types does a law firm website need?
Most firm sites need five things: LegalService markup for the firm and each office, Person markup on each attorney bio, Article or BlogPosting markup on posts, BreadcrumbList on inner pages, and one consistent ID tying them together. FAQPage is optional now, and review markup about your own firm should be left out entirely.
| Page | Schema type | What it tells search engines | Priority |
|---|---|---|---|
| Home page | LegalService | Firm name, main address and phone, logo, practice areas, profiles on other sites | High |
| Each office page | LegalService for that office | That office's address, phone and hours, plus a link to the parent firm | High if you have more than one office |
| Attorney bio pages | Person | Name, title, firm, law school, bar memberships, practice focus | High |
| Blog posts and legal guides | Article or BlogPosting | Headline, author (linked to the Person), publish and update dates | Medium |
| Practice area and other inner pages | BreadcrumbList | Where the page sits in your site structure | Medium |
| FAQ page | FAQPage | The questions and answers on the page | Low: no Google rich result anymore |
| Reviews or testimonials page | None for your own firm | Not applicable | Skip |
The consistent ID is the piece most easily skipped. Give the firm an @id, a stable identifier such as your home page address followed by #firm, and reference it from every other block: the attorney's worksFor, the article's publisher, each office's parentOrganization. Google's general guidelines describe using @id to tell it which items belong together.
LegalService, Attorney or LocalBusiness: which type should your firm use?
Use LegalService. Schema.org now marks the narrower Attorney type as deprecated, noting that LegalService "is more inclusive and less ambiguous." LegalService is a kind of LocalBusiness, which is a kind of Organization, so it carries every property those types have and fits Google's advice to use the most specific type that applies.
Two details trip firms up. First, Attorney on schema.org was never a person. It sits under LocalBusiness, so putting it on a lawyer's bio page describes that lawyer as a business location. A person is a Person. Second, markup a theme or plugin added years ago may still say Attorney or a generic Organization, so check what your site outputs before adding anything.
Google's local business guidance adds the practical rules:
- One block per office. Google says to define each business location as its own LocalBusiness. Two offices means two LegalService blocks, each on its own office page with that office's address and phone. Copying the main office block onto every location page makes each office claim the same address.
- Place it where the business is described. Google allows the markup on any page but suggests a page about the business: for most firms, the home, contact or office page.
- Name and address are required for local business features. If your firm has no public office, do not invent one. Describe the areas you serve, leave out the street address, and accept that the firm will not qualify for local business features.
What should go in your firm's LegalService markup?
Include the facts a client would use to find, call or visit you, and nothing the page does not show: the exact firm name, street address, main phone number, office hours, the office page URL, logo, the places you serve, your practice areas, and links to the firm's profiles on other sites.
| Property | What to enter | Watch for |
|---|---|---|
| name | The firm's name exactly as on your signage and Business Profile | No keywords bolted onto the name |
| address | Street, suite, city, state, ZIP and country | Required by Google for local features |
| telephone | Main intake number, with country and area code | The same number the page shows |
| url | The page for this specific office | Must be a working link |
| openingHoursSpecification | Real office hours, by day | No 24/7 claim because an answering service picks up |
| geo | Latitude and longitude of the office | Google asks for at least 5 decimal places |
| areaServed | The states, counties or cities you serve | Only places where your lawyers can take the matter |
| knowsAbout | Practice areas, in plain words | No "specialist" or "expert" unless your state's rules allow it |
| sameAs | URLs of the firm's profiles elsewhere | Only profiles that clearly describe this firm |
| logo and image | Your logo and a photo of the office or team | Image URLs must be crawlable |
| employee or founder | References to each attorney's Person @id | Remove lawyers who have left |
Leave out aggregateRating and review: Google's local business documentation recommends them only for sites that capture reviews about other businesses. The priceRange property is optional, and "free consultation" is not a price range.
Consistency matters more than completeness. The name, address and phone in your markup should match your Google Business Profile and your listings on lawyer directories exactly. That consistency is a core part of local SEO for lawyers, and markup that disagrees with your profile only adds noise.
How should you mark up each attorney?
Add Person markup to each lawyer's bio page, describing that lawyer only: name, job title, the firm they work for, law school, bar admissions and memberships, practice focus, a headshot, and links to their profiles elsewhere. Every fact in the markup should also appear in the visible bio, because Google's guidelines say not to mark up content readers cannot see.
- name: the lawyer's name only. Schema.org has separate honorificSuffix and jobTitle properties for "Esq." and "Partner."
- jobTitle and worksFor: the role, and a reference to the firm's @id.
- alumniOf: law school and undergraduate institution.
- memberOf and hasCredential: bar associations and bar admissions. Google does not document a search feature built on these, so add them for clarity, not for a visible payoff.
- knowsAbout: the lawyer's practice areas.
- sameAs: the lawyer's state bar profile, LinkedIn page and directory profiles, which tie the lawyer on your site to records you do not control.
On articles, set the author to the attorney's Person and point its URL at the bio page, so the byline, the bio and the markup agree on who wrote the piece.
One ethics point: words in markup are published claims about your lawyers, just like the bio. Terms such as "specialist," "expert" or "certified," and award names in the award property, fall under the same state advertising rules as the visible page. Rules differ by state, so check your state bar's guidance. The overview of lawyer advertising rules on this site is a starting point, not legal advice.
Do FAQ schema and review stars still work for law firms?
No. Google limited FAQ rich results to well-known government and health sites in August 2023, then stopped showing the FAQ rich result in Google Search on May 7, 2026. Review stars about your own firm are out too: Google treats reviews a business controls about itself as ineligible for star results, even when they arrive through an embedded widget.
Google's August 2023 announcement limited FAQ rich results to "well-known, authoritative government and health websites" and said there was no need to remove the markup, since unused structured data "does not cause problems for Search." Its documentation changelog recorded the deprecation in May 2026 and removed the FAQ documentation in June 2026. Keep a visible FAQ if clients find it useful, with FAQPage markup that mirrors it, but do not pay for FAQ markup across every practice area page.
Review markup is stricter. Google's review snippet guidelines say that when the entity being reviewed controls the reviews about itself, its pages using LocalBusiness or any other Organization markup are ineligible for star results, including reviews shown through a third-party widget such as a Google reviews embed. The same guidelines prohibit fake reviews and incentivized reviews that are not clearly disclosed. Marking up your own testimonials gets you nothing; marking up reviews that are not genuine risks a manual action.
Testimonials on a law firm site also carry ethics rules that vary by state. The stars people see next to your firm in Google Maps come from your Business Profile reviews, and the Google Business Profile guide covers how to earn those properly.
Does schema markup help with ChatGPT, AI Overviews and Copilot?
Somewhat, and less than many sales pitches claim. Google says AI Overviews and AI Mode need no special schema, only markup that matches the visible text. Microsoft has said schema helps the models behind Copilot understand content. Independent tests found no sign that AI chatbots fetching a page live read JSON-LD as structured data; what reliably reaches them is the visible text.
- Google: its page on AI features and your website says there are no additional requirements for AI Overviews or AI Mode and "no special schema.org structured data that you need to add." Its best practices include making sure structured data matches the visible text on the page.
- Microsoft: Fabrice Canel of Bing said on stage at SMX Munich in March 2025 that schema markup helps Microsoft's large language models understand content, as Search Engine Roundtable reported. Copilot draws on Bing's own index; the statement says nothing about other AI tools.
- searchVIU test: in October 2025, searchVIU placed one product price only inside JSON-LD on a test page. None of the five systems tested (ChatGPT, Claude, Gemini, Perplexity and Google AI Mode) returned it. The authors note that markup could still be used at the indexing stage by systems such as AI Overviews and Bing Copilot.
- Williams-Cook test: in early 2026, Mark Williams-Cook put a fake company's address only inside invalid, made-up JSON-LD. ChatGPT and Perplexity still returned it, which he read as both tools treating the markup like any other text on the page. His summary: "Schema, good. Repackaging the basics as some magical new GEO formula, bad."
The two tests disagree on whether text inside JSON-LD gets picked up at all, but agree on what matters: neither found these tools reading markup as structured data during a live fetch.
The practical rule: every fact you want an AI tool to repeat about your firm (practice areas, cities, languages spoken, who handles what) must be in the visible text. Markup reinforces that text for engines that parse it; it does not replace it. How these tools pick which firms to cite is covered in AI search optimization for law firms.
How do you check whether your site already has schema markup?
Test a live page in Google's Rich Results Test (search.google.com/test/rich-results), which shows the structured data Google can read and flags errors for the features Google supports. Then run the same URL through the Schema Markup Validator at validator.schema.org, which checks markup against the full schema.org vocabulary, including types Google does not use for any feature.
- Test the live URL, not pasted code. Plugins and tag managers often add markup with JavaScript, and testing the URL shows what Google actually renders.
- Count the firm entities. A LegalService from your theme, an Organization from your SEO plugin and a LocalBusiness from a reviews widget are three competing descriptions of one firm. Keep one.
- Compare every value with the page. Address, phone, hours, attorney names and titles must match what visitors see, and must be current.
- Check a lawyer bio and a blog post, not just the home page. Template problems show up there.
- Watch Search Console after launch. Use URL Inspection on a few pages and watch the rich result and unparsable structured data reports, which catch errors from later template or plugin changes.
A passing result is not a promise. Google says markup that passes the Rich Results Test may still not produce a rich result, and its quality rules, such as never describing hidden content or misrepresenting who owns the site, are not easily testable by any automated tool. For a whole-site check, markup is one line item in a law firm SEO audit.
Should you add schema yourself or hand it off?
For most firms a split works best. Let your theme or SEO plugin handle breadcrumbs and article markup, and have a developer hand-write the LegalService and Person blocks, because those carry the facts specific to your firm. After that, upkeep is a check whenever lawyers, offices, phone numbers or hours change.
Ask whoever maintains your site three questions. Which markup does the site output today, and from which tool? Does the firm have one @id that every page references? Is every value in the markup visible on the page? If the answers are vague, treat markup as part of your technical SEO work, and if you are rebuilding anyway, put it in the law firm website design brief so it is built into the templates.
If you want a second opinion, Emir works with each firm directly and can go through what your markup says and whether it matches your Business Profile and directory listings. You can book a 30-minute visibility review to look at it together. No promises about rankings, just a straight read of where your site stands.