LegalService vs Attorney Schema: A JSON-LD Walkthrough

LegalService vs Attorney Schema: A JSON-LD Walkthrough

Legalservice vs attorney schema

For a law firm, the schema question has a clear answer: mark up the firm itself with the LegalService type and mark up each individual attorney with the Person type. Skip the old Attorney type entirely, because it is deprecated and search engines no longer act on it. This walkthrough shows both blocks and how they connect.

Getting the types right matters because schema is how an engine identifies who you are with certainty. It supports rich results and a clean entity, and it is the foundation the rest of your markup builds on, which we cover in our complete schema guide. Use the wrong type and the engine either ignores your markup or reads your firm as a generic business.

Q Short Answer

Use LegalService for your firm and Person for each attorney, connect them with the worksFor property, and skip the deprecated Attorney type entirely.

This walkthrough gives you both copy-paste blocks and the one property that links them into a single, legible entity.

Why the Attorney Type Is Out

Schema.org deprecated the Attorney type in favor of LegalService, which it treats as clearer and less ambiguous, and Google no longer honors Attorney for rich results. Markup that still uses it validates as legitimate code, but it triggers no enhancement and sends signals built on a vocabulary engines have moved past. If your current pages use Attorney, replacing it is the first fix. The good news is that the swap is mechanical: the firm becomes LegalService, and the people become Person.

Mark Up the Firm With LegalService

LegalService is a subtype of LocalBusiness built for businesses that provide legal services, so it accepts every property a firm needs: name, address, phone, hours, area served, and the services offered. Put it on the homepage or the main contact page, and give the node an @id you can reference later.

{
“@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 so the engine can match the two without doubt.

Mark Up Each Attorney With Person

Each attorney gets a Person block with a job title and a worksFor property that points back to the firm. This is what lets an engine connect a named, credentialed attorney to the practice, which is a genuine trust signal in a Your Money or Your Life field.

{
“@context”: “<https://schema.org>”,
“@type”: “Person”,
“name”: “Jane Attorney”,
“jobTitle”: “Personal Injury Attorney”,
“url”: “<https://www.example-lawfirm.com/attorneys/jane-attorney/>”,
“worksFor”: {
“@type”: “LegalService”,
“@id”: “<https://www.example-lawfirm.com/#firm>”
}
}

Place this on the attorney’s own bio page, and reuse the firm’s @id in the worksFor value so the two nodes join up.

How the Two Connect

The link between them is the worksFor property on Person and the matching @id on LegalService. Give the firm’s LegalService node an @id once, then reference that same @id from every attorney’s worksFor. Done this way, an engine reads one firm with several named attorneys, not a pile of disconnected entities. That single relationship does more for clarity than any extra property you could add.

Common Mistakes to Avoid

A few errors show up again and again. The most common is repeating a full LegalService block on every page instead of defining it once and referencing its @id, which clutters the markup and blurs which node is canonical. Close behind is reaching for Organization or a bare LocalBusiness when LegalService is the precise type for a firm.

Two more are worth a check before you publish. Letting the address or phone in your schema drift from your Google Business Profile quietly tells engines your data is unreliable, so keep them in sync. And leaving a deprecated Attorney block in place next to a new Person block makes the page carry old and new vocabulary at once, so delete the old markup as you add the new.

What Proper Types Will Not Do

Correct types make your firm legible, but they are not a citation lever. A controlled Ahrefs study found that adding structured data produced no measurable lift in AI citations, and Google states that no special schema is required to appear in AI Overviews. Use LegalService and Person for accuracy and rich-result eligibility, and earn AI citations through the content itself.

Frequently Asked Questions

Should a law firm use Attorney or LegalService schema?

Use LegalService for the firm and Person for each attorney. The Attorney type is deprecated, so engines no longer act on it, and LegalService is the current, clearer type for a business that provides legal services.

Where do I put the Person schema for an attorney?

Place the Person block on that attorney’s bio page, with a jobTitle and a worksFor property pointing to the firm’s LegalService node. Keep the identifier consistent so the engine links the attorney to the firm.

Is the Attorney schema type completely gone?

No, schema.org still lists it, so it validates as legitimate code. Google simply no longer honors it for rich results, so it earns no enhancement, which is why Person plus LegalService is the current best practice.

Do I need separate markup on every attorney page?

Yes. Give each attorney their own Person block on their own bio page, and point each one back to the single LegalService node with the worksFor property so the firm and its people stay linked.

Key Takeaways
1The Attorney type is deprecated, and Google no longer honors it for rich results.
2Mark up the firm as LegalService, the subtype built for legal-service businesses.
3Mark up each attorney as Person, linked to the firm with the worksFor property.
4Define the firm once with an @id, then reference it from every attorney block so the pieces connect.

Where Lexicon Comes In

The markup on this page is straightforward to copy, but the content it describes is the harder part, and that is what we handle. At Lexicon Legal Content, our JD-trained writers produce attorney-reviewed, answer-first pages and attorney bios that give your LegalService and Person markup something real and accurate to point to. Every piece is screened against ABA Model Rule 7.1 before it reaches you, so your copy stays as clean as your code.

If you want the words on your pages to match the structure around them, see our law firm content writing or contact us to talk it through. You can reach our team any time at 877-486-8123.


David Arato, JDs headshot

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.