Structured data for professionals: the hidden labels search engines and AI read

· 8 min read

Structured data is a block of code on your page, invisible to visitors, that states the facts about you in a form machines read exactly: your name, profession, address, phone number, opening hours and services. Search engines use it to understand who you are and where you work, and it gives AI tools clean facts to repeat. It does not guarantee a ranking or a mention, but it removes guesswork. This guide explains it in plain words, shows copy-paste examples for professionals, and lists the rules Google asks you to follow.

The short answer

  • Structured data (often called schema markup) states the facts on your page in a machine-readable form. Google recommends the JSON-LD format and says the markup must reflect what is visible on the page.
  • It helps search engines and AI tools understand your page; it does not by itself raise your ranking, and most professional-specific types do not produce special features in Google’s results.
  • Use the most specific type that fits your work, such as Physician, Dentist, LegalService, AccountingService or RealEstateAgent, with Person for you as an individual. If none fits, LocalBusiness is a sound fallback. Check schema.org for the current status of a type.
  • Do not mark up anything that isn’t on the page, and do not mark up reviews you wrote about yourself. Google excludes self-serving reviews from review stars for local businesses.
  • FAQ markup no longer produces expandable FAQ results in Google for most sites (since August 2023), but it can stay and is harmless.
  • Test it with the free Rich Results Test and the Schema Markup Validator, and keep it in step with your page whenever your details change.

What structured data is, in plain words

When a person reads your page, they understand “Open Monday to Friday, 9 to 5” at once. A machine has to guess that those words are opening hours. Structured data removes the guess. It is a short piece of code that says, in a fixed vocabulary, “this is a legal service; its name is X; its phone number is Y; it is open on these days”. The vocabulary is shared by the big search engines and is maintained at schema.org.

Google supports several ways of writing it and recommends one: JSON-LD, a block of text inside a script tag in the page. It sits apart from your visible content, so it is easy to add and change without touching the design.

What it does, and what it doesn’t

  • It helps search engines connect your page to a person or business: your name, profession, address and the other places you appear online.
  • It gives AI tools clean, unambiguous facts to quote, such as your phone number or hours.
  • For a few types, such as some local business details, it can help Google show richer information. Google documents which types it uses for special features.
  • It does not guarantee a higher ranking, a rich result or a mention in an AI answer.
  • Most professional-specific types (Physician, LegalService and so on) do not produce special features in Google; they help machines understand you.

Which type to use

Schema.org has hundreds of types. Pick the most specific one that truly describes your work. If you are an individual professional, use two things together: a Person for you, and a business type for the practice or service you run. Types are occasionally retired or superseded, so check the type’s page on schema.org if you are unsure; for example, schema.org notes that LegalService is a more inclusive grouping than Attorney.

Schema.org types that suit common professions
If you are a…Good type for the practiceAlso add
Doctor or specialistPhysician (or MedicalClinic for a clinic)Person
DentistDentistPerson
Lawyer or law firmLegalServicePerson
Accountant or tax adviserAccountingServicePerson
Estate agent or realtorRealEstateAgentPerson
Consultant, designer, coach or other adviserProfessionalService or LocalBusinessPerson
A business or firmOrganization or the closest LocalBusiness typePerson for each key person

Example: a lawyer’s practice

This is a complete example for an invented solo lawyer in the United States. Replace every value with your own, and only include facts that are also on your visible page.

JSON-LD for a legal practice (invented details)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LegalService",
  "@id": "https://example.com/#practice",
  "name": "Whitfield Family Law",
  "url": "https://example.com/",
  "telephone": "+1-512-555-0142",
  "email": "hello@example.com",
  "image": "https://example.com/photo.jpg",
  "description": "Daniel Whitfield is a family lawyer in Austin, Texas, handling divorce, custody and adoption since 2012.",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "100 Congress Avenue, Suite 400",
    "addressLocality": "Austin",
    "addressRegion": "TX",
    "postalCode": "78701",
    "addressCountry": "US"
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "closes": "17:00"
    }
  ],
  "areaServed": { "@type": "City", "name": "Austin" },
  "knowsAbout": ["Divorce", "Child custody", "Adoption"],
  "founder": { "@id": "https://example.com/#daniel" },
  "sameAs": ["https://www.linkedin.com/in/example-daniel-whitfield"]
}
</script>

Example: you as a person

A Person entry says who you are. It links to your practice, so a machine can tell the two belong together. This is the person behind the practice above: the practice points to him with its founder property, and he points back with worksFor.

JSON-LD for the person behind the practice (invented details)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Person",
  "@id": "https://example.com/#daniel",
  "name": "Daniel Whitfield",
  "jobTitle": "Family lawyer",
  "url": "https://example.com/",
  "image": "https://example.com/daniel.jpg",
  "description": "Daniel Whitfield is a family lawyer in Austin, Texas, handling divorce, custody and adoption since 2012.",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Austin",
    "addressRegion": "TX",
    "addressCountry": "US"
  },
  "knowsLanguage": ["en", "es"],
  "worksFor": { "@id": "https://example.com/#practice" },
  "sameAs": ["https://www.linkedin.com/in/example-daniel-whitfield"]
}
</script>

What each part means

The main properties and what they do
PropertyWhat it saysTips
@typeWhat kind of thing this isUse the most specific type that fits
@idA label for this entry so others can refer to itA web address with a # and a short name works well
nameYour name, or your practice’s nameUse the name clients know; match your page and listings
urlThe address of your pageUse the exact address people should land on
telephone, emailHow to contact youIdentical to your page, listing and profiles
addressWhere you areInclude street, town, region, postcode and country if clients visit you
openingHoursSpecificationWhen you are openOne entry per pattern of days and times
areaServedWhere you workName the real places you serve, and no others
knowsAboutYour topicsA short list that matches your services
sameAsYour other official profilesLinkedIn, your professional body’s listing, your Google profile
founder, worksForLinks a person and a practiceUse @id to point to the other entry

The rules to follow

  • Mark up only what is visible on the page. Google asks that structured data reflect the page’s visible content. Do not add hours, prices or awards that visitors cannot see.
  • Keep it identical to your other listings. The same name, address and phone number as your Google listing and profiles.
  • Do not mark up reviews you wrote or collected on your own site and use them as star ratings. Google excludes “self-serving” reviews, where a business reviews itself on its own page, from review stars for local businesses and organisations. Reviews also have their own rules; see your profession’s guidance.
  • Do not mark up content that is not about the page, or that misleads.
  • Keep it up to date. Old hours or a former phone number in the code are as harmful as on the page.
  • Use one clean set of data. If a theme and a plugin both add markup, you can end up with duplicates that disagree.

What about FAQ markup?

FAQPage markup states questions and their answers. In August 2023, Google announced that FAQ rich results, the expandable questions that used to appear under a search result, would only be shown for well-known, authoritative government and health websites. For other sites they no longer appear regularly. Google said you do not need to remove the markup. It can stay on the page, and it is harmless, but do not expect it to change how your result looks. The questions and answers still belong on the page, because visitors and AI tools read them there.

How to add it

  1. Check first whether your website tool adds it for you. Many do, and a second copy can cause conflicts.
  2. If you need to add it yourself, copy an example above, replace every value with your own, and check the commas and quotation marks.
  3. Paste it into your page, in the head or the body, inside a script tag of type application/ld+json. Many builders have a place for custom code.
  4. Publish the page, then test it.

How to test it

  • Rich Results Test (search.google.com/test/rich-results): shows what Google can read from your page and any problems.
  • Schema Markup Validator (validator.schema.org): checks that the markup is valid schema.org, whatever Google does with it.
  • Google Search Console: once your site is added, its reports flag markup errors that Google finds over time.

A missing comma or an unclosed bracket is the most common error, and it makes the whole block unreadable. Test every time you edit it.

Common mistakes

  • Copying the example without changing every value, including the example web addresses.
  • Marking up a service area or address you do not have.
  • Adding a rating or review count that is not on the page.
  • Leaving old markup after a move, a rebrand or a new phone number.
  • Using an exotic type when a simple one fits. A clear LocalBusiness is better than a wrong specialised type.

What BeVisible adds for you

Every BeVisible page includes structured data made from the details you enter: a Person entry for you, a business type that matches your profession (such as Physician, a legal or accounting service, a real estate agent or a professional service), linked to each other, plus your address, hours and area served, a services list, a profile page entry, a breadcrumb and your questions and answers as FAQ markup. It is generated from the same facts as the visible page, so the two cannot disagree. You can build and preview free, and publish free for 7 days with no card needed; after that one yearly plan keeps a website online, and one plan covers one website. Start from a photo or type your details.

Frequently asked questions

What is structured data?

A block of code on a page, invisible to visitors, that states facts such as a name, address, phone number and opening hours in a fixed vocabulary that search engines and AI tools can read exactly. The vocabulary is maintained at schema.org, and Google recommends writing it in JSON-LD.

Does structured data improve my ranking?

Not by itself. It helps search engines understand your page and can make some information eligible for richer displays, but it is not a ranking boost, and most professional-specific types do not change how your result looks.

Which schema type should a doctor or lawyer use?

Use the most specific type that fits your practice, such as Physician or MedicalClinic for medicine, and LegalService for law, together with a Person entry for you. Types are occasionally retired or superseded, so check the type’s page on schema.org.

Do I need FAQ markup?

No. Since August 2023 Google shows FAQ rich results only for well-known, authoritative government and health websites. The markup can stay and is harmless, but the questions and answers matter most as visible text on your page.

Can I put reviews in my structured data?

Only if they are genuine and visible on the page, and be aware that Google excludes self-serving reviews, where a business reviews itself on its own website, from review stars for local businesses. Never write or buy reviews.

How do I check that my structured data works?

Use Google’s Rich Results Test and the Schema Markup Validator. Both are free and show errors. Test every time you change the markup or your page.

Do I need to write this by hand?

Usually not. Many website tools add structured data for you. If yours does not, you can paste in a JSON-LD block like the examples here, or ask a developer to add it. Check first that two sources are not adding conflicting copies.

Sources and further reading

Read next