Schema markup generator for lawyers and law firms
Law firms should use the LegalService type, a LocalBusiness subtype made for legal practices. Fill in the form and I’ll build valid JSON-LD you can paste into your site’s head.
LegalService JSON-LD
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LegalService",
"@id": "https://beltlinefamilylaw.example/#business",
"name": "Beltline Family Law",
"description": "A Calgary law firm focused on family law, wills and estates, and residential real estate.",
"url": "https://beltlinefamilylaw.example/",
"telephone": "+1-403-555-0142",
"email": "hello@beltlinefamilylaw.example",
"image": "https://beltlinefamilylaw.example/images/photo.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Example Street SW",
"addressLocality": "Calgary",
"addressRegion": "AB",
"postalCode": "T2P 1J9",
"addressCountry": "CA"
},
"openingHours": [
"Mo-Fr 09:00-17:00"
],
"priceRange": "$",
"areaServed": [
"Calgary",
"Airdrie",
"Cochrane",
"Okotoks"
],
"knowsAbout": [
"Family law",
"Divorce and separation",
"Wills and estates",
"Real estate law",
"Mediation"
],
"knowsLanguage": [
"English",
"French"
],
"naics": "541110",
"sameAs": [
"https://www.instagram.com/beltlinefamilylaw",
"https://www.linkedin.com/company/beltlinefamilylaw"
]
}
</script>Paste this into your page’s head, then test it with Google’s Rich Results Test and validator.schema.org. The example values are made up: replace every one.
Want this added to your firm’s website?
Send me your site and I’ll check your current structured data and send back corrected JSON-LD for it. Free.
The properties that matter for lawyers and law firms
Type: LegalService. Every property below is a real schema.org property.
| Property | Why it matters |
|---|---|
knowsAbout | People search by problem: divorce, a will, a closing. Practice areas in knowsAbout help search tools match your firm to those questions. |
areaServed | Law is jurisdictional. Say Alberta, or the cities you serve, so search tools don’t surface you for the wrong province. |
priceRange | This one is risky for a law firm. A $$ can read as a promise. I usually leave it out unless you publish flat fees. |
address | Match the address on your Law Society listing and Google profile. Consistency across sources is part of how search tools trust you. |
description | Lead with practice areas and location, not a slogan. It’s what AI tools quote back. |
Common mistakes
Using the Attorney type. It still exists in schema.org but is discouraged. LegalService is the current choice.
Marking up client testimonials as reviews. Self-serving review markup isn’t eligible for review stars on LocalBusiness or Organization in Google.
Listing every lawyer as a separate LegalService. The firm is the business. Lawyers go on bio pages as Person.
Adding a priceRange that doesn’t match how you bill. It can create the wrong expectation.
How to add it to your site
- Replace every example value in the form with your own details. They should match your Google Business Profile exactly.
- Copy the code and paste it into your page’s
<head>. Most site builders have a custom code field. On a hand-built site, it goes in the template. - Test the live page with Google’s Rich Results Test and validator.schema.org, and fix anything they flag.
- Add the same facts to the visible page. Structured data should describe what visitors can see. My website checklist for lawyers and law firms covers the rest.
Schema for lawyers and law firms: questions
LegalService. schema.org keeps Attorney for older markup but recommends LegalService. It’s a LocalBusiness subtype, so address, hours and phone all work.
Yes, on their own bio pages, as Person with jobTitle and knowsAbout. Link them to the firm with worksFor if you add markup by hand.
It helps search engines and AI tools understand your practice areas and location. It doesn’t guarantee a mention. Clear practice area pages do most of the work.
Keep reading
- nick@tavro.ca
- 587-439-9994
- Calgary, Alberta