Der Occupation-Typ in Schema.org ist weit mächtiger als sein Grundaufbau andeutet. Wer nur name und description setzt, verschenkt die entscheidenden SEO-Signale: Gehaltsdaten, aggregierte Bewertungen, Qualifikationsanforderungen und Erfahrungsniveaus. Dieser Artikel zeigt, wie du Occupation Schema Markup auf Profi-Niveau implementierst und damit in den Rich Snippets der Google-Jobsuche sichtbar wirst.
Warum Occupation Schema so wichtig ist:
Google nutzt Occupation-Markup für die Job-Suchergebnisse, Gehaltsschätzungen und Karriere-Rich-Snippets. Jobbörsen und Karriereseiten, die dieses Markup vollständig implementieren, erhalten deutlich mehr qualifizierten Traffic als Seiten ohne strukturierte Daten.
Inhaltsverzeichnis
- 1. Die vollständige Occupation-Grundstruktur
- 2. OccupationAggregateRating: Berufe bewerten lassen
- 3. MonetaryAmountDistribution für Gehaltsschätzungen
- 4. Qualifikationen und Anforderungen strukturieren
- 5. Erfahrungsniveau und OccupationType
- 6. Occupation mit JobPosting kombinieren
- 7. Vollständige Branchenbeispiele
- 8. Häufige Fehler und wie du sie vermeidest
- 9. Testen und validieren
1. Die vollständige Occupation-Grundstruktur
Die meisten Websites implementieren Occupation in seiner einfachsten Form — nur Name und Beschreibung. Das reicht für Rich Snippets nicht aus. Google erwartet für eine vollständige Darstellung mindestens:
- name — Der Berufsname (z.B. "Softwareentwickler")
- description — Ausführliche Beschreibung des Berufs
- estimatedSalary — Gehaltsschätzung als
MonetaryAmountDistribution - occupationLocation — Geografische Angabe (wichtig für lokale Suchen)
- educationRequirements — Mindestausbildung
- experienceRequirements — Erfahrungsanforderungen
Vollständiges Occupation-Grundbeispiel
{
"@context": "https://schema.org",
"@type": "Occupation",
"name": "Softwareentwickler",
"alternateName": ["Programmierer", "Software Engineer", "Developer"],
"description": "Softwareentwickler planen, entwickeln, testen und pflegen Computerprogramme und Anwendungen. Sie arbeiten mit verschiedenen Programmiersprachen wie Python, Java oder JavaScript und setzen Anforderungen in funktionsfähige Software um.",
"occupationLocation": {
"@type": "City",
"name": "Deutschland"
},
"educationRequirements": {
"@type": "EducationalOccupationalCredential",
"credentialCategory": "bachelor degree",
"educationalLevel": "Bachelorabschluss in Informatik oder verwandtem Fach"
},
"experienceRequirements": {
"@type": "OccupationalExperienceRequirements",
"monthsOfExperience": 12
},
"skills": "JavaScript, Python, Java, Git, agile Entwicklungsmethoden",
"estimatedSalary": {
"@type": "MonetaryAmountDistribution",
"name": "base",
"currency": "EUR",
"duration": "P1Y",
"percentile10": 42000,
"percentile25": 52000,
"median": 62000,
"percentile75": 75000,
"percentile90": 90000
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://example.de/berufe/softwareentwickler"
}
}
Hinweis zum duration-Feld:
P1Y steht für "pro Jahr" (ISO 8601 Duration). Für monatliche Angaben nutze P1M, für stündliche PT1H. Google erwartet konsistente Zeitangaben bei Gehaltsschätzungen.
2. OccupationAggregateRating: Berufe bewerten lassen
OccupationAggregateRating ist ein Untertyp von AggregateRating und speziell für Berufe konzipiert. Er erlaubt es, aggregierte Bewertungsdaten zu einem Beruf strukturiert auszuzeichnen — etwa Zufriedenheit, Work-Life-Balance oder Karrierechancen. Für Jobbörsen ist das ein mächtiger Differentiator.
OccupationAggregateRating implementieren
{
"@context": "https://schema.org",
"@type": "Occupation",
"name": "Pflegefachkraft",
"description": "Pflegefachkräfte betreuen und pflegen Menschen in Krankenhäusern, Pflegeheimen und ambulanten Pflegediensten. Sie übernehmen medizinische Grundversorgung, psychosoziale Betreuung und Dokumentation.",
"occupationLocation": {
"@type": "Country",
"name": "Deutschland"
},
"aggregateRating": {
"@type": "OccupationAggregateRating",
"ratingCount": 1847,
"reviewCount": 523,
"ratingValue": 3.8,
"bestRating": 5,
"worstRating": 1,
"ratingExplanation": "Durchschnittliche Berufszufriedenheit basierend auf 1.847 Bewertungen von Pflegefachkräften in Deutschland."
},
"estimatedSalary": {
"@type": "MonetaryAmountDistribution",
"name": "base",
"currency": "EUR",
"duration": "P1Y",
"percentile10": 28000,
"percentile25": 33000,
"median": 38000,
"percentile75": 44000,
"percentile90": 52000
}
}
✅ Korrekte Felder
ratingCount— Gesamtzahl der BewertungenreviewCount— Nur schriftliche ReviewsratingValue— DurchschnittsbewertungbestRating— Maximaler Wert der SkalaratingExplanation— Erklärungstext
❌ Häufige Fehler
- Fiktive Bewertungszahlen erfinden
ratingValueohnebestRating- Zu wenige Bewertungen (Google empfiehlt ≥5)
- Falsche
@type— z.B. nurAggregateRating - Inkonsistente Datenquellen
Wichtig: Google prüft die Glaubwürdigkeit von Bewertungsdaten. Erfundene Zahlen führen zu Ranking-Einbußen und potenziellen manuellen Maßnahmen. Nutze nur echte, verifizierte Bewertungsdaten aus deiner Nutzerbasis.
3. MonetaryAmountDistribution für Gehaltsschätzungen
Google zeigt Gehaltsschätzungen direkt in den Suchergebnissen an — aber nur wenn du MonetaryAmountDistribution korrekt implementierst. Das ist eines der wertvollsten Features für Jobbörsen und Karriereseiten.
Gehaltsschätzung nach Erfahrungslevel
Für präzise Rich Snippets empfiehlt sich die Aufteilung nach Erfahrungsniveaus. Nutze dafür mehrere estimatedSalary-Einträge als Array:
{
"@context": "https://schema.org",
"@type": "Occupation",
"name": "UX Designer",
"occupationLocation": {
"@type": "City",
"name": "Berlin"
},
"estimatedSalary": [
{
"@type": "MonetaryAmountDistribution",
"name": "entry level",
"currency": "EUR",
"duration": "P1Y",
"percentile10": 30000,
"percentile25": 36000,
"median": 42000,
"percentile75": 48000,
"percentile90": 54000
},
{
"@type": "MonetaryAmountDistribution",
"name": "experienced",
"currency": "EUR",
"duration": "P1Y",
"percentile10": 50000,
"percentile25": 60000,
"median": 70000,
"percentile75": 82000,
"percentile90": 95000
}
]
}
Monatliche Gehaltsangaben
Statt jährlicher Angaben kannst du auch monatliche Gehaltsverteilungen angeben — besonders relevant für Berufe mit Stundenlohn oder projektbasierter Vergütung:
{
"@type": "MonetaryAmountDistribution",
"name": "base",
"currency": "EUR",
"duration": "P1M",
"percentile10": 2200,
"percentile25": 2800,
"median": 3400,
"percentile75": 4100,
"percentile90": 5200
}
Welche Datenquellen sind für Gehaltsangaben geeignet?
- ✅ Eigene Nutzer-Umfragen (wenn repräsentativ und aktuell)
- ✅ Aggregierte Daten aus Jobanzeigen auf der eigenen Plattform
- ✅ Lizenzierte Gehaltsdaten von spezialisierten Anbietern
- ✅ Öffentliche Statistiken (Bundesagentur für Arbeit, Destatis)
- ❌ Selbst geschätzte oder erfundene Zahlen
- ❌ Veraltete Daten (älter als 2 Jahre)
4. Qualifikationen und Anforderungen strukturieren
Google versteht strukturierte Qualifikationsangaben besonders gut, wenn du EducationalOccupationalCredential und OccupationalExperienceRequirements korrekt nutzt. Das hilft nicht nur beim Ranking, sondern auch bei der Darstellung in Suchergebnissen.
Ausbildungsanforderungen mit EducationalOccupationalCredential
{
"@context": "https://schema.org",
"@type": "Occupation",
"name": "Steuerberater",
"educationRequirements": [
{
"@type": "EducationalOccupationalCredential",
"credentialCategory": "degree",
"educationalLevel": {
"@type": "DefinedTerm",
"inDefinedTermSet": "https://schema.org/EducationalOccupationalCredential",
"name": "Bachelor oder Master"
},
"competencyRequired": "Betriebswirtschaftslehre, Steuerrecht, Rechnungswesen"
},
{
"@type": "EducationalOccupationalCredential",
"credentialCategory": "professional certificate",
"name": "Steuerberaterexamen",
"description": "Staatliches Examen zur Zulassung als Steuerberater, abgenommen von der Steuerberaterkammer"
}
],
"qualifications": "Zugelassener Steuerberater (StB), Mitgliedschaft in der Steuerberaterkammer",
"skills": "Steuerrecht, Buchführung, ELStEr, DATEV, Bilanzierung nach HGB und IFRS"
}
Werte für credentialCategory
| Wert | Bedeutung | Beispiel |
|---|---|---|
degree |
Akademischer Abschluss | Bachelor, Master, Diplom |
professional certificate |
Berufsqualifikation | Zertifizierungen, Lizenzen |
vocational |
Berufsausbildung | IHK-Ausbildung, Meistertitel |
highschool |
Schulabschluss | Abitur, Mittlere Reife |
postdoctoral |
Postdoktorat | Habilitation, Forschungsstipendium |
5. Erfahrungsniveau und OccupationType
OccupationalExperienceRequirements erlaubt es, Erfahrungsanforderungen in Monaten zu quantifizieren. Kombiniert mit occupationType entsteht ein präzises Bild für Google.
Erfahrungsanforderungen nach Level
{
"@context": "https://schema.org",
"@type": "Occupation",
"name": "Projektmanager",
"occupationType": "Senior",
"experienceRequirements": {
"@type": "OccupationalExperienceRequirements",
"monthsOfExperience": 60
},
"responsibilities": "Leitung von IT-Projekten mit Budget bis 2 Mio. Euro, Stakeholder-Kommunikation, Ressourcenplanung, Risikomanagement, Agile/Scrum-Zertifizierung erwünscht.",
"estimatedSalary": {
"@type": "MonetaryAmountDistribution",
"name": "senior level",
"currency": "EUR",
"duration": "P1Y",
"percentile10": 65000,
"percentile25": 75000,
"median": 88000,
"percentile75": 102000,
"percentile90": 125000
}
}
Typische monthsOfExperience-Werte
6. Occupation mit JobPosting kombinieren
Die mächtigste SEO-Wirkung entfaltet Occupation, wenn er mit JobPosting verknüpft wird. JobPosting nutzt das Property basedOnOccupation, um auf eine strukturierte Berufsbeschreibung zu verweisen. So verbindest du konkrete Stellenangebote mit aggregierten Berufsinformationen.
Ausführliche Informationen zur JobPosting-Implementierung findest du in unserem separaten Guide.
// Auf der Berufsinformationsseite:
{
"@context": "https://schema.org",
"@type": "Occupation",
"@id": "https://example.de/berufe/data-scientist",
"name": "Data Scientist",
"estimatedSalary": {
"@type": "MonetaryAmountDistribution",
"name": "base",
"currency": "EUR",
"duration": "P1Y",
"median": 75000
}
}
// Im JobPosting auf der Stellenanzeige:
{
"@context": "https://schema.org",
"@type": "JobPosting",
"title": "Senior Data Scientist (m/w/d)",
"basedOnOccupation": {
"@id": "https://example.de/berufe/data-scientist"
},
"hiringOrganization": {
"@type": "Organization",
"name": "Beispiel GmbH"
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "EUR",
"value": {
"@type": "QuantitativeValue",
"minValue": 75000,
"maxValue": 95000,
"unitText": "YEAR"
}
}
}
Durch die Verknüpfung über @id und basedOnOccupation versteht Google, dass deine Stellenanzeige einem klar definierten Berufsprofil entspricht — das verbessert die Relevanz und kann zu einer deutlich besseren Platzierung in der Google-Jobsuche führen.
7. Vollständige Branchenbeispiele
Handwerk: Elektriker
{
"@context": "https://schema.org",
"@type": "Occupation",
"name": "Elektriker",
"alternateName": ["Elektroinstallateur", "Elektrofachkraft", "Elektrotechniker"],
"description": "Elektriker installieren, warten und reparieren elektrische Anlagen in Gebäuden, Industrieanlagen und Verkehrsinfrastruktur. Sie arbeiten nach Schaltplänen und Sicherheitsvorschriften (VDE-Normen).",
"occupationLocation": {
"@type": "Country",
"name": "Deutschland"
},
"educationRequirements": {
"@type": "EducationalOccupationalCredential",
"credentialCategory": "vocational",
"name": "Ausbildung zum Elektroniker / Elektriker",
"educationalLevel": "3,5 Jahre Berufsausbildung"
},
"experienceRequirements": {
"@type": "OccupationalExperienceRequirements",
"monthsOfExperience": 0
},
"skills": "VDE-Normen, Schaltplanerstellung, SPS-Programmierung, Gefahrenschutz",
"estimatedSalary": {
"@type": "MonetaryAmountDistribution",
"name": "base",
"currency": "EUR",
"duration": "P1Y",
"percentile10": 26000,
"percentile25": 31000,
"median": 37000,
"percentile75": 44000,
"percentile90": 55000
}
}
Gesundheitswesen: Zahnarzt
{
"@context": "https://schema.org",
"@type": "Occupation",
"name": "Zahnarzt",
"alternateName": ["Zahnärztin", "Dentist", "Oralchirurg"],
"description": "Zahnärzte diagnostizieren und behandeln Erkrankungen der Zähne, des Zahnfleisches und des Kiefers. Sie führen Prophylaxe, Zahnersatz, Kieferorthopädie und chirurgische Eingriffe durch.",
"occupationLocation": {
"@type": "Country",
"name": "Deutschland"
},
"educationRequirements": [
{
"@type": "EducationalOccupationalCredential",
"credentialCategory": "degree",
"name": "Zahnmedizinstudium (Staatsexamen)",
"educationalLevel": "10-12 Semester Studium der Zahnmedizin"
},
{
"@type": "EducationalOccupationalCredential",
"credentialCategory": "professional certificate",
"name": "Approbation als Zahnarzt",
"description": "Staatliche Zulassung zur Ausübung der Zahnheilkunde"
}
],
"estimatedSalary": {
"@type": "MonetaryAmountDistribution",
"name": "base",
"currency": "EUR",
"duration": "P1Y",
"percentile10": 52000,
"percentile25": 68000,
"median": 85000,
"percentile75": 130000,
"percentile90": 200000
}
}
Für Dentalpraktiken, die ihr eigenes LocalBusiness-Schema mit spezifischen Berufsangaben kombinieren wollen, empfiehlt sich eine Verknüpfung des Occupation-Schemas mit dem MedicalOrganization-Typ.
8. Häufige Fehler und wie du sie vermeidest
Fehler 1: Fehlende occupationLocation
Ohne geografische Angabe kann Google das Occupation-Schema keinen lokalen Suchanfragen zuordnen. Immer occupationLocation setzen — mindestens auf Länderebene.
Fehler 2: Inkonsistente Gehaltsangaben
Wenn percentile10 höher als median oder percentile75 niedriger als median ist, wird das Schema von Google als ungültig eingestuft.
Fehler 3: Occupation auf Seiten ohne Berufsinhalte
Occupation-Markup auf Job-Listen-Seiten ohne begleitende Berufsbeschreibung zu setzen, wird von Google als irreführend eingestuft. Jedes Occupation-Schema braucht eine inhaltlich passende Seite.
Fehler 4: Veraltete Gehaltsdaten
Gehaltsdaten, die älter als 2 Jahre sind, verlieren ihren SEO-Wert und können das Vertrauen der Nutzer untergraben. Aktualisiere Gehaltsschätzungen mindestens jährlich.
9. Testen und validieren
Bevor du Occupation-Markup live schaltest, teste es gründlich mit diesen Tools:
Google Rich Results Test
Offizielles Google-Tool zur Validierung. Zeigt an, ob das Markup für Rich Snippets geeignet ist und welche Felder fehlen.
Schema.org Validator
Prüft die technische Korrektheit des JSON-LD gegen das Schema.org-Vokabular. Besonders nützlich für OccupationAggregateRating.
Google Search Console
Nach dem Launch: Überprüfe unter "Rich-Suchergebnisse" ob das Schema erkannt wird und ob es Fehler oder Warnungen gibt.
Schnell-Check: Ist dein Occupation-Schema vollständig?
- ☐
name— Berufsname gesetzt? - ☐
description— Mindestens 100 Zeichen? - ☐
occupationLocation— Geografische Angabe vorhanden? - ☐
estimatedSalary— MonetaryAmountDistribution mit allen Perzentilen? - ☐
educationRequirements— Bildungsanforderungen angegeben? - ☐
skills— Relevante Fähigkeiten gelistet? - ☐ Keine Widersprüche in Gehaltsangaben (percentile10 < median < percentile90)?
- ☐ Im Rich Results Test validiert?
Du willst wissen, wie gut deine gesamte Website strukturiert ist? Mit unserer kostenlosen SEO-Analyse auf shift07.ai prüfst du in Sekunden, ob Schema Markup, Meta-Tags und technische SEO-Faktoren korrekt implementiert sind.
Für verwandte Themen empfehlen wir außerdem unsere Artikel zur AggregateRating-Implementierung, zum EmployerAggregateRating Schema und zur Person Schema Markup.
Fazit: Occupation Schema Markup — mehr als nur ein Name
Occupation-Markup entfaltet seinen SEO-Wert erst in der vollständigen Implementierung: mit Gehaltsschätzungen, aggregierten Bewertungen, Qualifikationsanforderungen und der Verknüpfung zu JobPosting. Jobbörsen und Karriereseiten, die dieses Markup korrekt und vollständig einsetzen, haben einen messbaren Vorteil in der Google-Jobsuche.
Der wichtigste Grundsatz: Nur echte, aktuelle und konsistente Daten verwenden. Google prüft die Plausibilität von Gehaltsdaten und Bewertungen — erfundene Zahlen schaden mehr als sie nützen.