Law Firm Schema: Copy-Paste JSON-LD Example
Someone looking for legal help needs to see your practice area, office location and how to contact you. LegalService markup identifies the firm and its public details.
Choose the right business type
LegalService is a safe fit for a law firm. Attorney describes an individual lawyer; use it on an attorney profile if that page actually identifies that person. See the schema.org LegalService definition for the type and its inherited fields.
Copy-paste LegalService JSON-LD
Copy the complete block into your homepage’s <head>. Change every example value, including the service and hours. Remove fields that do not apply.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LegalService",
"name": "Example Street Legal",
"url": "https://example.com/law-firm-schema-example/",
"telephone": "+1-217-555-0104",
"description": "Local legal services by appointment.",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "Springfield",
"addressRegion": "IL",
"postalCode": "62701",
"addressCountry": "US"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"https://schema.org/Monday",
"https://schema.org/Tuesday",
"https://schema.org/Wednesday",
"https://schema.org/Thursday",
"https://schema.org/Friday"
],
"opens": "09:00",
"closes": "17:00"
}
],
"makesOffer": {
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Legal consultation"
}
}
}
</script>
What each field does
@contexttells readers that the property names come from schema.org.@typesays this is aLegalService, a specific kind of local business.nameis the business name customers see.urlis its official website page.telephoneis the public number, including country and area code.descriptionbriefly names what the business really does. Keep it consistent with visible page copy.addressgroups the street, city, state, ZIP and country underPostalAddress. Use a real customer-facing location, not a mailing address that people cannot visit.openingHoursSpecificationgives local opening and closing times for the listed days. Closed days are left out. Change the schedule to your actual regular hours.makesOffernames one example service customers can ask about. Replace it with a service you actually provide, or remove the whole field.
One detail to check for LegalService
Use the description and service pages for your real practice areas. Do not imply a specialty, certification, outcome or free consultation that you do not offer.
If consultations are by appointment, keep reception hours separate from appointment availability. Schema hours should match the hours shown on the location page.
How to add it to your site
Add the code once on the homepage or the matching location page. Put it in the page’s head section when the platform allows it. Keep your visible name, contact details and hours in sync with the code.
- WordPress: Use a trusted header code plugin or your theme’s head-code setting. Paste the entire script into the homepage head. If an SEO plugin already outputs LegalService data, edit that data instead of creating a conflicting duplicate.
- Squarespace: Open Settings → Advanced → Code Injection and paste the block in Header. If you have multiple locations, use page-level injection where available so this location’s details appear on its own page.
- Wix: Open Settings → Custom Code, add the block to Head, and set it to the relevant page. Publish the site after saving.
- Shopify: In Online Store → Themes → Edit code, add the block to
theme.liquidinside<head>. For a single physical location, restrict it to the homepage so product pages do not all claim to be the location page. - GoDaddy Website Builder: Use its custom HTML or head-code setting if your plan exposes one. Some versions only offer a body HTML section; check the published source to make sure the JSON-LD script is present. If your plan does not allow custom code, ask support or your site editor about head injection.
Test the published page
- Paste the live page URL into Schema Markup Validator. Confirm it detects
LegalServiceand that each property contains your real details. - Run the same URL through Google Rich Results Test. It checks Google-supported rich result features; a valid schema type may show no eligible rich result. That does not mean the JSON-LD is invalid.
- View page source and search for
application/ld+json. Make sure the script appears once for this location, without leftover fictional values or mismatched hours.
Valid markup helps machines read facts on a page. It does not guarantee a Google feature or a recommendation from an AI assistant.
Want a second set of eyes?
Run the free site check to see whether your homepage exposes its business details. If you want us to write the schema and customer FAQ, check your listings, and compare AI answers before and after, the AI Visibility Kit is $149.
Run the free checkAsk about the Kit