Your law firm's website probably has a "Practice Areas" page. It lists your specialties. Maybe each specialty has its own page with a few paragraphs of text. This is the standard approach, and it's leaving a significant amount of search visibility on the table.
Practice area schema — using structured data to tell AI systems and search engines exactly what legal services you provide, in what jurisdiction, and to whom — is one of the most consistently overlooked elements of legal SEO. Firms that implement it properly build a layer of entity authority that generic text simply can't achieve.
The LegalService Schema Type
schema.org/LegalService is a subtype of LocalBusiness specifically designed for law firm markup. It communicates that your firm is a legal service provider in a way that generic business schema doesn't. Here's a complete implementation for a personal injury practice area page:
{{
"@context": "https://schema.org",
"@type": "LegalService",
"name": "Personal Injury Attorney — Smith Law Firm",
"description": "Smith Law Firm handles personal injury cases including car accidents, slip and fall, medical malpractice, and wrongful death in Ontario and surrounding areas.",
"url": "https://smithlawfirm.com/personal-injury",
"telephone": "+1-555-000-0000",
"areaServed": {{
"@type": "GeoCircle",
"geoMidpoint": {{
"@type": "GeoCoordinates",
"latitude": 43.7315,
"longitude": -79.7624
}},
"geoRadius": "80000"
}},
"hasOfferCatalog": {{
"@type": "OfferCatalog",
"name": "Personal Injury Legal Services",
"itemListElement": [
{{"@type": "Offer", "itemOffered": {{"@type": "Service", "name": "Car Accident Claims"}}}},
{{"@type": "Offer", "itemOffered": {{"@type": "Service", "name": "Slip and Fall Cases"}}}},
{{"@type": "Offer", "itemOffered": {{"@type": "Service", "name": "Medical Malpractice"}}}},
{{"@type": "Offer", "itemOffered": {{"@type": "Service", "name": "Wrongful Death Claims"}}}}
]
}},
"priceRange": "Contingency Fee — No Win, No Fee"
}}
One Schema Per Practice Area Page
Don't put all your practice areas into a single schema block on your homepage. Each practice area deserves its own page and its own LegalService schema block. This is how you build individual topical authority for personal injury, family law, criminal defense, estate planning, and every other area your firm handles.
The architecture matters for AI citation: when Gemini answers a query about "best personal injury lawyers in Ontario," it's pulling from entities with specific personal injury authority signals — not from generic "law firm" entity signals. Your personal injury page with LegalService schema targeting that practice area is what gets you into that consideration set.
The areaServed Property: Be Specific
The areaServed property is where most implementations fall short. Generic values like "Ontario" or "GTA" are better than nothing, but the most effective implementation uses either a GeoCircle with actual coordinates and radius, or an array of specific City or AdministrativeArea objects for each jurisdiction you serve.
"areaServed": [
{{"@type": "City", "name": "Mississauga", "containedIn": {{"@type": "Province", "name": "Ontario"}}}},
{{"@type": "City", "name": "Brampton", "containedIn": {{"@type": "Province", "name": "Ontario"}}}},
{{"@type": "City", "name": "Toronto", "containedIn": {{"@type": "Province", "name": "Ontario"}}}}
]
Connecting Practice Area Schema to Attorney Profiles
The most powerful entity structure connects your LegalService schema to the attorney Person entities who handle those cases. If your personal injury page has LegalService schema, and your attorney profile pages have Person schema with knowsAbout and hasOccupation properties referencing personal injury law, the two entities become semantically connected in Google's Knowledge Graph.
This connection is how AI systems understand that your firm doesn't just claim to handle personal injury — you have named attorneys with documented expertise in that specific area. That's the entity authority that drives AI citations.
Validating and Testing Your Schema
Use Google's Rich Results Test to validate each practice area page after implementing schema. It will tell you whether the markup is valid, what rich results it's eligible for, and whether there are any errors or warnings. Fix every warning — they often indicate missing required properties that prevent eligibility for specific rich result types.
Schema.org's validator at validator.schema.org catches structural errors that the Rich Results Test might not flag. Run both tools on every practice area page before considering the implementation complete.
Related: AI SEO for Law Firms · Entity Building Strategy · Attorney E-E-A-T Signals · AI Website Design · About LexScale.ai