For law firms · schema markup

Schema markup for law firms, stated truthfully.

The markup tells search and AI systems exactly who the firm is, who its attorneys are, and what they practice. Most law firm websites get it wrong in ways a validator never flags. Here is what to use, what to skip, and how to keep it honest.

What is schema markup for a law firm?

Schema markup for a law firm is structured data — JSON-LD using the Schema.org vocabulary — embedded in each page to state explicitly what the page describes: the firm, an attorney, a practice area, an office, or an article. Search engines and AI systems use it to interpret the firm precisely instead of inferring it from prose.

The same thing goes by several names — schema markup for lawyers, attorney schema markup, legal schema markup, law firm structured data — and they all mean this: a small set of Schema.org nodes, kept true, that let a machine resolve one firm, its attorneys, and its practice areas without guessing.

It is not a ranking lever, and anyone selling it as one is selling eligibility you may already have. What correct markup buys a firm is interpretation: one unambiguous identity, attorneys whose credentials machines can verify against the visible page, and practice areas that resolve to real services in real places. Wrong markup buys the opposite — and wrong is common, because most of it is pasted once into a plugin and never read again.

The schema types a law firm actually needs

Schema.org types for a law firm website, and what each must state
CriterionWhere it livesWhat it must state
LegalService (or Attorney)The firm, sitewide graphLegal name, address per real office, telephone, areas served, sameAs to verified profiles. One node, one identity, referenced everywhere.
PersonEach attorney profile pageName as licensed, role, bar admissions, education, practice focus, and a link to the profile page it describes. No inflated titles.
ServiceEach practice-area pageThe practice area as the firm actually offers it, the audience, the area served, and the firm as provider by reference.
Article / BlogPostingCommentary and insightsHeadline, dates that match the visible page, and a named author whose Person node exists.
BreadcrumbListEvery interior pageThe real navigation path, so machines learn the site’s structure.
WebSite + WebPageSitewide graphStable identifiers tying every node into one connected graph instead of orphaned snippets.

A correct example

A minimal, truthful firm node. Each attorney and practice area gets its own node on its own page, referencing this one. It ships inside a script tag of type application/ld+json.

{
  "@context": "https://schema.org",
  "@type": "LegalService",
  "@id": "https://examplefirm.com/#firm",
  "name": "Example Law Firm LLP",
  "url": "https://examplefirm.com/",
  "telephone": "+1-217-555-0100",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "100 N Main St, Suite 400",
    "addressLocality": "Champaign",
    "addressRegion": "IL",
    "postalCode": "61820",
    "addressCountry": "US"
  },
  "areaServed": { "@type": "State", "name": "Illinois" },
  "sameAs": ["https://www.linkedin.com/company/example-law-firm"],
  "employee": { "@id": "https://examplefirm.com/attorneys/jane-example/#person" }
}

Notice what is absent: no ratings, no awards, no ten invented “locations.” Every property above is checkable against the visible site, which is the standard machines — and opposing counsel — hold a firm to. These mistakes are the norm, not the exception: in Hyrizen’s 50-city study of top-ranking injury firms, 63% still shipped markup deprecated since 2024 and only 39% marked up a single attorney as a person.

The mistakes law firm websites actually make

  1. Markup that drifts from the page. The plugin says five attorneys; the team page says seven. Machines notice disagreement and trust neither.
  2. Several identities for one firm. Different names, phone formats, or duplicate Organization nodes across pages — the firm dissolves into entities machines cannot resolve.
  3. Dead or ineligible types. FAQPage markup that earns nothing, star ratings the firm gave itself, “speakable” experiments no platform reads.
  4. Attorney pages with no Person node — or one Person node stamped identically on every profile.
  5. Practice areas as prose only. The firm’s actual services exist nowhere in the graph, so the answer to “does this firm handle X in Y” is left to inference.

Does schema markup improve law firm rankings?

Not directly — Google is explicit that structured data is not a ranking factor, and a firm should walk away from anyone who guarantees otherwise. What it changes is eligibility for supported result features and, increasingly important, how accurately search and AI systems describe the firm when they answer a prospective client’s question. A firm whose markup, pages, and profiles state the same facts is easier to retrieve, harder to misdescribe, and safer to cite. That is the honest case, and it is sufficient.

How implementation works

  1. STEP 01

    Inventory

    Every public fact about the firm — name, offices, attorneys, admissions, practice areas — verified and recorded once, in an entity register.

  2. STEP 02

    Generate

    JSON-LD produced from the same source as the visible content, one connected graph per page, so markup and page cannot disagree.

  3. STEP 03

    Validate

    Rich Results Test for eligibility, Schema.org validation for vocabulary, and a truth pass: every claim checked against what a visitor sees.

  4. STEP 04

    Keep it true

    Attorneys join, offices move. The markup follows the content automatically, and the profiles that reference it are reconciled.

Questions about law firm schema markup

Next step

Find out what the firm’s markup says today.

The AI Visibility Audit reads every page the way machines do and lists the schema errors specifically: the page, the node, the claim, and the fix. Implementation is quoted from the evidence, or included in a full law firm build.