Attorney Schema Generator — Earn Local Trust and Visibility
Generate clean JSON‑LD for law firms in minutes. Clarify address, phone, opening hours, practice areas, and ratings to improve discovery and client confidence.
Why many law firm pages underperform
Pain points we solve
- Generic snippets: competitors show hours, phone, and practice areas while yours looks bare.
- Inconsistent NAP (name, address, phone) or outdated hours reduce trust and visibility.
- Multiple offices and attorneys make consistent markup hard to maintain.
- Validator warnings for address fields or `openingHours` slow down releases.
How SwiftSchema helps
Solution
Our generator ensures essentials are present and correctly formatted — full address, telephone, and opening hours — and produces copy‑ready JSON‑LD you can paste once per office page.
Highlight practice areas in visible content; for multiple offices, create a dedicated page per location and apply markup accordingly. Profile attorneys with Person + ProfilePage and link from the office page.
AggregateRating is supported when you have genuine, policy‑compliant reviews; otherwise, omit it to avoid issues.
How it works
How it works
- Choose Attorney in the generator below.
- Enter firm/office name and full address (street, city, region, postal code, country).
- Add telephone and opening hours using the recommended format.
- List practice areas in page content; optionally include AggregateRating only if compliant.
- Copy JSON or Script, paste on each office page, and validate in the Rich Results Test.
Use once per office. Validate. Ship.
What is Attorney structured data?
Attorney is a LocalBusiness subtype for legal practices. Marking up each office location with accurate address, phone, hours, and service context helps search engines understand your presence and present more useful details to potential clients.
Eligibility & Status
Attorney (a LocalBusiness subtype) acts as a foundational local signal. It’s “limited” for direct rich results; eligibility depends on content quality, policy compliance, and specific Google surfaces.
Key properties every firm should include
- name— match your Google Business Profile and signage; note whether you operate as “Law Offices of…” or use a partner’s last name.
- address(PostalAddress) — include suite numbers, floor information, andaddressCountryusing ISO codes. Addgeocoordinates if you’re in a dense downtown with similar addresses.
- telephone— use a local number that routes clients directly to the office or intake team. Avoid tracking numbers you rotate frequently.
- openingHoursSpecification— specify lobby hours and after-hours availability. If you offer 24/7 phone intake, call that out.
- areaServed/serviceType— list practice areas (e.g., personal injury, immigration, estate planning) and jurisdictions covered.
- image/logo— reference professional headshots, office exteriors, or team photos to humanize the listing.
- aggregateRating/review— only when you have first-party reviews gathered under Google’s guidelines.
- sameAs— link to authoritative profiles (state bar listing, Avvo, professional associations) to support expertise signals.
Content prep before adding schema
Schema should reflect what’s visible on the page. Before copying JSON‑LD:
- Finalize the on-page copy describing practice areas, case results, and intake process.
- Confirm NAP data (name, address, phone) matches your footer, contact page, and bar listings.
- Publish service-area statements (counties, courts, or states served) so areaServedisn’t a surprise to readers.
- Include biographies or at least mention lead attorneys for that office; plan to link to dedicated ProfilePage entries later.
- Gather high-resolution photos (minimum 1200px wide) of the office or attorneys; host them on your domain.
If you handle time-sensitive matters (criminal defense, emergency restraining orders), note responsiveness in the content and consider
Implementation checklist
- Create a separate URL per office. Even if multiple attorneys rotate between locations, each office deserves a unique landing page.
- Generate Attorney JSON‑LD using the tool below for each office page. Double-check the street address formatting (Suite vs Ste., Unit, Floor).
- Link to attorney profiles. Use Person schema on bio pages and reference them from the office page via employeeormember.
- Embed Organization schema globally. Your firm-level Organization block should reference each office via departmentorhasOfferCatalog.
- Add ItemList for location hubs. If you have a “Locations” page, mark it up with ItemList referencing each office page.
- Validate and deploy. Run the Rich Results Test after every update, then request indexing through Search Console.
- Document change history. Keep a simple spreadsheet noting when hours, phone numbers, or services change; update both page copy and schema simultaneously.
Multi-office and multi-attorney considerations
Law firms expand quickly through satellite offices or of-counsel partnerships. Keep data clean by:
- Assigning one owner per office page responsible for schema accuracy.
- Differentiating practice areas per office (e.g., Portland handles family law, Salem handles personal injury) so serviceTypedoesn’t get diluted.
- Linking attorneys to the office where they primarily practice. If an attorney floats, mention that in the copy and use hasPOS(Place of Service) references.
- Creating Spanish or other language variants for bilingual offices; add inLanguageand translated copy so clients see culturally relevant info.
For virtual consultations, keep the physical office address but add
Compliance and review guidance
Legal marketing is heavily regulated. Be mindful of:
- Testimonials — confirm your state bar allows public client reviews. When in doubt, omit AggregateRating.
- Specialization claims — only use terms like “specialist” if your jurisdiction certifies it; otherwise describe practice areas factually.
- No-fee statements — if you mention “No recovery, no fee,” ensure the policy is explained on-page and consistent with local laws.
- Attorney advertising disclaimers — add required statements (“Attorney Advertising,” “Past results do not guarantee future outcomes”) and ensure schema doesn’t contradict them.
Treat
Troubleshooting checklist
- Run Rich Results Test for each office page after content or schema changes.
- Use Search Console’s “Enhancements” panel to check for LocalBusiness/Attorney warnings.
- Inspect your live HTML (View Source) to ensure only one Attorney JSON‑LD block exists per page.
- Compare the schema telephoneandopeningHourswith your Google Business Profile weekly, especially if intake schedules shift.
- Keep an eye on call-tracking swaps—if a dynamic number script overwrites the phone in the DOM, make sure schema stays consistent.
Common Errors & Fixes
- Missing hours: add realistic opening hours or specify “By appointment” using openingHoursSpecification.
- P.O. boxes: prefer a physical office address. If you must use a mailing address, note it in the content but still provide a client-facing meeting location.
- Incomplete address: include city, region, postal code, and country to avoid validator warnings and map confusion.
- Self‑serving reviews: include ratings only when you own the review data and meet your jurisdiction’s advertising rules.
- Duplicate schema blocks: many CMS plugins inject LocalBusiness markup automatically. Disable duplicates so your handcrafted Attorney block is the only one indexed.
Required properties
nameaddress.streetAddressaddress.addressLocalityaddress.addressRegionaddress.postalCodeaddress.addressCountry
Recommended properties
telephoneopeningHoursaggregateRating.ratingValueaggregateRating.ratingCount
{
"@context": "https://schema.org",
"@type": "Attorney",
"name": "Law Offices of Example",
"address": {
"@type": "PostalAddress",
"streetAddress": "400 Elm St",
"addressLocality": "Chicago",
"addressRegion": "IL",
"postalCode": "60601",
"addressCountry": "US"
}
}