Free Attorney Schema Generator

Fill in the facts visible on your page, copy the Attorney JSON-LD, and validate it before you publish. The guide, examples, and FAQs are below the tool. Generate this schema with AI

Type to filter 121 supported schema types.

Schema workflow

Use only facts a visitor can verify on the page, then validate the JSON-LD before publishing.

Business identity

Describe the same business, page, and public contact details that a customer can see.

Location and contact

Use one address or service-area location per schema block. Coordinates are optional.

Opening hours

Add one Schema.org opening-hours specification per schedule, such as Mo-Fr 09:00-17:00.

Opening-hours specification

Use day ranges and 24-hour times.

Ratings and profiles
Ratings and profiles

Only add an aggregate rating that visitors can see on this page. Profile URLs should represent the same business.

Profile URL

Add official social or business-directory profiles.

Required

  • Visible Attorney content
  • Canonical page URL
  • Clear page owner/publisher
  • Fields that match the visible page

Recommended

  • A representative image when the schema supports it
  • SameAs or related links when visible
  • Validation before publishing

Avoid

  • Adding properties that are not visible
  • Copying example URLs into production
  • Skipping Google and Schema.org validation

Schema stacks

Use Attorney schema in a stack

Complete JSON-LD bundles that combine Attorney with the other types a real page needs. Browse all stacks

  • Legal Services Stack

    Practice-area pages with Attorney + Service + LocalBusiness, reviews, FAQs, and breadcrumb context.

Next step

Validate, repair, and publish clean structured data.

Check the generated JSON-LD against the visible page, then run both SwiftSchema and external validators before publishing.

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.

Try the Attorney Generator

Why many law firm pages underperform

  • 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

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

  1. 01

    Choose Attorney in the generator below.

  2. 02

    Enter firm/office name and full address (street, city, region, postal code, country).

  3. 03

    Add telephone and opening hours using the recommended format.

  4. 04

    List practice areas in page content; optionally include AggregateRating only if compliant.

  5. 05

    Copy JSON or Script, paste on each office page, and validate in the Rich Results Test.

Ready to build the markup?

Use once per office. Validate. Ship.

Generate Attorney JSON‑LD

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

  1. name — match your Google Business Profile and signage; note whether you operate as “Law Offices of…” or use a partner’s last name.
  2. address (PostalAddress) — include suite numbers, floor information, and addressCountry using ISO codes. Add geo coordinates if you’re in a dense downtown with similar addresses.
  3. telephone — use a local number that routes clients directly to the office or intake team. Avoid tracking numbers you rotate frequently.
  4. openingHoursSpecification — specify lobby hours and after-hours availability. If you offer 24/7 phone intake, call that out.
  5. areaServed / makesOffer / knowsAbout — list practice areas (e.g., personal injury, immigration, estate planning) and jurisdictions covered.
  6. image / logo — reference professional headshots, office exteriors, or team photos to humanize the listing.
  7. aggregateRating / review — only when you have first-party reviews gathered under Google’s guidelines.
  8. 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 areaServed isn’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 openingHoursSpecification entries that show “Open 24 hours” or “By appointment” to set expectations.

Implementation checklist

  1. Create a separate URL per office. Even if multiple attorneys rotate between locations, each office deserves a unique landing page.
  2. Generate Attorney JSON‑LD using the tool below for each office page. Double-check the street address formatting (Suite vs Ste., Unit, Floor).
  3. Link to attorney profiles. Use Person schema on bio pages and reference them from the office page via employee or member.
  4. Embed Organization schema globally. Your firm-level Organization block should reference each office via department or hasOfferCatalog.
  5. Add ItemList for location hubs. If you have a “Locations” page, mark it up with ItemList referencing each office page.
  6. Validate and deploy. Run the Rich Results Test after every update, then request indexing through Search Console.
  7. 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 each office’s makesOffer and knowsAbout stay specific.
  • 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 knowsLanguage (languages the firm works in) and translated copy so clients see culturally relevant info.

For virtual consultations, keep the physical office address but add areaServed for the states where attorneys are licensed. Include disclaimers about remote consultations to comply with bar advertising rules.

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 sameAs links as supporting evidence: link to bar profiles, community organizations, or notable cases (when public) to show authenticity.

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 telephone and openingHours with 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

  • name
  • address.streetAddress
  • address.addressLocality
  • address.addressRegion
  • address.postalCode
  • address.addressCountry

Recommended properties

  • telephone
  • openingHours
  • aggregateRating.ratingValue
  • aggregateRating.ratingCount
Minimal JSON-LD
Validate
{
  "@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"
  }
}

FAQs

Should I list practice areas?Show

Yes, include in content and description for clarity.

Multiple offices?Show

Create separate Place pages and markup for each location.

Related types

Browse all schema types

References