HomeGuides › Schema markup for financial firms

Guide

Schema markup for financial firms

Schema markup is a block of structured data in your page's <head> that states, unambiguously, what your firm is: its type, services, location, and credentials. It won't get you cited on its own — but it removes the guesswork at the grounding step, so when an engine does find you, it reads you correctly. Here's the right type and a block you can paste.

Pick the right type

schema.org has specific subtypes for professional firms. Using the precise one tells a retrieval system exactly what category you belong to — which is the whole point.

Firmschema.org @typeNote
RIA / financial advisor / wealth managerFinancialServiceThe general financial-services type; use for planning and investment firms
Accounting / CPA firmAccountingServiceA subtype of FinancialService; more specific is better
Law firm / estate planningLegalService or AttorneyUse Attorney for a solo/named practitioner
InsuranceInsuranceAgencySubtype of FinancialService
Any local office generallyProfessionalServiceThe safe fallback if none fit cleanly

Prefer the most specific type that's accurate. AccountingService beats FinancialService for a CPA firm; both beat the generic LocalBusiness.

A validated FinancialService block

Paste this inside a <script type="application/ld+json"> tag in your homepage <head>, and replace the values with your firm's real details. This exact structure parses cleanly — the diagnostic's fix pack refuses to ship JSON-LD that doesn't JSON.parse(), and you should hold yourself to the same bar.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FinancialService",
  "name": "Bluff Creek Advisors",
  "url": "https://bluffcreek.com",
  "description": "Fee-only registered investment advisor providing flat-fee financial planning for physicians and dental practice owners.",
  "areaServed": { "@type": "City", "name": "Austin" },
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "500 W 2nd St, Suite 1900",
    "addressLocality": "Austin",
    "addressRegion": "TX",
    "postalCode": "78701",
    "addressCountry": "US"
  },
  "telephone": "+1-512-555-0100",
  "priceRange": "$$$",
  "knowsAbout": [
    "fee-only financial planning",
    "physician wealth management",
    "flat-fee fiduciary advice"
  ],
  "hasCredential": "SEC-registered investment adviser"
}
</script>

The fields that actually earn their place

Most of the ambiguity a model has about a firm is resolved by four fields. Prioritize getting these exactly right over adding a dozen optional ones:

Keep it compliant

Structured data is factual metadata, which is exactly why it's safe for regulated firms — but two rules still apply:

Validate before it ships

Two checks, both quick:

  1. Does it parse? Paste the JSON (without the script tags) into any JSON validator. If it doesn't parse, an engine won't read it. This is non-negotiable — invalid JSON-LD is worse than none, because it can poison the whole block.
  2. Does it match reality? Run it through Google's Rich Results Test or the schema.org validator to confirm the type resolves and the fields are recognized, then read it back against your actual firm details.

Schema is a grounding aid, not a citation source. It helps a model that already found you describe you correctly — necessary, not sufficient. The citations themselves come from third-party surfaces, and whether any of this moved your number is a question only re-measuring answers.

Get schema built and validated for your firm — inside the diagnostic.

The paid report generates a typed, QC-checked JSON-LD block from your real positioning (it won't ship if it doesn't parse), alongside your llms.txt and the third-party action plan. Run the free scan first to see whether you need it.

Get my free scan Full diagnostic — $490

Related: llms.txt for professional firms → · How assistants ground on your firm →