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.
| If you are a… | Good type for the practice | Also add |
|---|---|---|
| Doctor or specialist | Physician (or MedicalClinic for a clinic) | Person |
| Dentist | Dentist | Person |
| Lawyer or law firm | LegalService | Person |
| Accountant or tax adviser | AccountingService | Person |
| Estate agent or realtor | RealEstateAgent | Person |
| Consultant, designer, coach or other adviser | ProfessionalService or LocalBusiness | Person |
| A business or firm | Organization or the closest LocalBusiness type | Person 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.
<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.
<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
| Property | What it says | Tips |
|---|---|---|
| @type | What kind of thing this is | Use the most specific type that fits |
| @id | A label for this entry so others can refer to it | A web address with a # and a short name works well |
| name | Your name, or your practice’s name | Use the name clients know; match your page and listings |
| url | The address of your page | Use the exact address people should land on |
| telephone, email | How to contact you | Identical to your page, listing and profiles |
| address | Where you are | Include street, town, region, postcode and country if clients visit you |
| openingHoursSpecification | When you are open | One entry per pattern of days and times |
| areaServed | Where you work | Name the real places you serve, and no others |
| knowsAbout | Your topics | A short list that matches your services |
| sameAs | Your other official profiles | LinkedIn, your professional body’s listing, your Google profile |
| founder, worksFor | Links a person and a practice | Use @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
- Check first whether your website tool adds it for you. Many do, and a second copy can cause conflicts.
- If you need to add it yourself, copy an example above, replace every value with your own, and check the commas and quotation marks.
- 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.
- 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
- Google Search Central: Introduction to structured data markupWhat structured data is and the formats Google supports.
- Google Search Central: Local business structured dataThe properties Google documents for local businesses.
- Google Search Central: General structured data guidelinesRules including that markup must reflect visible content.
- Google Search Central: Changes to HowTo and FAQ rich resultsThe August 2023 announcement.
- Schema.org: Full hierarchy of typesThe vocabulary, with the current status of each type.
- Rich Results TestGoogle’s free test for structured data.
- Schema Markup ValidatorChecks that markup is valid schema.org.