Adding JSON-LD schema to a WordPress law firm site takes one block of code in the page head and about ten minutes, whether you use a plugin or paste it by hand. The harder part is picking the right schema types and keeping the markup honest enough to pass both Google and your state bar. This walkthrough covers each part: the types a firm actually needs, four ways to add them in WordPress, and how to check your work before you rely on it.
Settle one thing first. Schema does not lift your rankings on its own. Google treats JSON-LD as its recommended format because it is the easiest to maintain, and structured data makes a page eligible for rich results and easier for engines to read. The payoff is accuracy and eligibility, not a ranking switch.
Mark up your firm as LegalService and each attorney as Person, add the JSON-LD through a plugin like Rank Math or a code snippet, then validate it with Google’s Rich Results Test.
Skip the deprecated Attorney type, keep the marked-up facts identical to your live page, and treat the code as attorney advertising under Rule 7.1.
The Schema Types Worth Marking Up
For a law firm, two types carry most of the weight. Mark up the firm itself as LegalService, the subtype built for businesses that provide legal services, and mark up each attorney as Person. The old Attorney type is out: schema.org has deprecated it, and Google no longer honors it for rich results. If your pages still carry it, our complete schema guide has the full type list, and the LegalService and Person walkthrough shows how the firm and attorney blocks join through the worksFor property.
Start with a LegalService block on your homepage or contact page. Swap in your real details, and give the node an @id so each attorney block can point back to the same firm.
{
“@context”: “<https://schema.org>”,
“@type”: “LegalService”,
“@id”: “<https://www.example-lawfirm.com/#firm>”,
“name”: “Example Law Firm”,
“url”: “<https://www.example-lawfirm.com/>”,
“telephone”: “+1-555-123-4567”,
“address”: {
“@type”: “PostalAddress”,
“streetAddress”: “123 Main Street, Suite 400”,
“addressLocality”: “Austin”,
“addressRegion”: “TX”,
“postalCode”: “78701”,
“addressCountry”: “US”
},
“areaServed”: “Texas”,
“priceRange”: “Free consultation”
}
Keep the name, address, and phone identical to your Google Business Profile, because any mismatch tells the engine your data cannot be trusted.
Four Ways to Add It in WordPress
You do not need a developer for most of this. The simplest route is a schema plugin. Rank Math ships a Schema Generator with a Local Business type and a legal subtype you select and fill in through a form, with no code at all. It produces solid baseline markup, though it stays generic, so a firm that wants per-service detail or linked attorney entities still adds a custom block on top.
If you run Yoast instead, pair it with a code-snippet plugin such as WPCode and paste your own JSON-LD there. Yoast already outputs its own WebSite and WebPage nodes, so let your block cover LegalService and Person rather than repeating what Yoast emits. For full control, add the JSON-LD directly through WPCode or your child theme’s functions.php with a wp_head hook, wrapped in a page condition so each block loads only where it belongs. Firms with many practice-area pages can wire the fields once with Advanced Custom Fields and let every new page fill in its own markup.
Whichever route you pick, place the code in the page head or body rather than in visible content, and make sure the marked-up facts match what a visitor actually reads on the page. Schema that describes something the page does not show reads as manipulation, and Google can act on it.

Validate the Code and Keep It Compliant
After you publish, confirm the markup works. Run each page through Google’s Rich Results Test to check feature eligibility, then validate the raw syntax with the schema.org validator. Purge your cache afterward, since WordPress often serves an older cached head that hides your change. Broken or mismatched schema can do more harm than none, so check it before you count on it.
Two honest notes on what to expect. FAQPage markup no longer produces the old question dropdowns, because Google removed FAQ rich results for nearly all sites as of May 7, 2026, so add it for machine readability rather than a search feature.
The second note is compliance. Because schema is attorney advertising, it falls under ABA Model Rule 7.1 the same as any other marketing you publish. Do not mark up a rating you cannot verify, a result you cannot promise, or a credential you do not hold. Mark up what is true, keep your disclaimers in place, and give your structured data the same review you give your visible copy
Frequently Asked Questions
Do I need a developer to add schema in WordPress?
Usually not. A schema plugin like Rank Math builds LegalService markup through a form, and a code-snippet plugin lets you paste custom JSON-LD without editing theme files. A developer helps mainly with large multi-location setups or custom fields spread across many pages.
Is the Attorney schema type still valid?
Schema.org still lists it, so it validates as code, but Google no longer honors the Attorney type for rich results. Use Person for each attorney and LegalService for the firm, connected by the worksFor property.
Will FAQ schema get me those dropdowns in Google?
No. Google removed FAQ rich results for nearly all sites in May 2026. FAQPage markup still helps search engines and AI tools read your answers cleanly, so it keeps a purpose beyond the retired SERP feature.
Make Sure the Page Under the Code Earns It
A flawless LegalService block wrapped around a thin practice-area page still sends an engine to thin content. Markup labels what exists; it cannot make a weak page worth citing. That is the gap we work in. Lexicon Legal Content is attorney-owned, and our JD-trained writers research from Westlaw and Lexis rather than a Google search…
Two ways in: send a page you have already marked up and we will tell you whether the content earns it, or hand us a practice area and we will write it to fit. You can start with law firm content writing, reach our team at 877-486-8123, or send us the details.

David Arato, JD is the founder of Lexicon Legal Content, an attorney-owned legal content marketing agency serving law firms since 2012. He built Lexicon’s diagnostic approach to AI visibility around the same attorney credibility signals that answer engines actually check, and pushes every audit past surface fixes to the content and authorship gaps that keep firms unseen. David is a frequent contributor to Attorney at Law Magazine and Attorney at Work and a recurring guest on legal marketing podcasts.
