SEO Freundlich

kontakt@seo-freundlich.de

Strukturierte Daten für Local SEO

Als SEO Freelancer hat man mehr Zeit für die spannenden Themen: Ich habe einige Branchenverzeichnisse als Datenquelle genutzt und für den Start eine Liste lokaler Unternehmen und Dienstleister in Deutschland erstellt. Technisch ist sehr viel mehr möglich und ich werde diese Case Study immer mal wieder erweitern.

Diese Adressen von lokalen Unternehmen habe ich hinsichtlich der Verwendung von Strukturierten Daten für Local SEO technisch analysiert. Dabei ich Code-Schnipsel von schema.org als Marker für eine Custom Search mit dem Screaming Frog verwendet.

Case Study mit mehr als 100k lokalen Unternehmen

TLDR, Top3 To-Dos & Grafiken zu Strukturierten Daten

Too long, didn’t read

Nur wenige lokale Dienstleister und Unternehmen nutzen die Möglichkeiten von Strukturierten Daten weitgehend oder gar vollständig aus. Besonders verbreitet sind persönliche beziehungsweise organisationale Bezeichnungen sowie Telefon-Nummern und Mail-Adressen. Ich gehe davon aus, dass das durch die Einrichtungspfade von SEO-Plugins wie beispielsweise Yoast getrieben wird.

Für SEOs bieten sich große Potentiale bei Lokalisierungs-, Produkt-, Preis- sowie branchenspezifischen Auszeichnungen und Öffnungszeiten. Außerdem haben nur etwa 5 bis 10 % der Videos ein Markup.

Strukturierte Daten für Local SEO Auswertung Grafik
Grafik zur Nutzung von Strukturierten Daten für Local SEO in einem Segment (Ärzte)
Yoast SEO Plugin Strukturierte Daten
Erstmalige Konfiguration von Yoast SEO Plugin

Top3-Handlungsempfehlungen

Zur kompetitiven Abgrenzung von Mitbewerbern empfehlen sich aktuell vor allem diese Maßnahmen soweit sinnvoll für den jeweiligen Einzelfall:

  • Lokalisierung: Nur ein geringer Teil der ausgewerteten Websites verfügen über eine hinterlegte Lokalisierung durch GEO-Daten oder wahlweise einer Adresse. Das sollte man als SEO unbedingt auszunutzen. Dazu auch noch der kleine Tipp, dass man vor Ort im lokalen Unternehmen erstellte Fotos ebenfalls mit GEO-Daten versehen kann. Das macht pro JPG etwa 2 Kb aus und lässt sich mMn problemlos mit der Performance vereinbaren. Man muss nur aufpassen, dass man Bilder nicht erst tagged und komprimiert, sondern umgekehrt.
  • Video-Markup: Ich habe auf knapp 20 % der Websites so kurze Image-Videos gefunden. Die Dunkelziffer liegt vermutlich höher, weil ich nur Einbettungen via YouTube gecheckt habe. Von den erfassten Videos waren jedoch wiederum nur knapp 10 % als VideoObject ausgewiesen. Wenn man schon das Video hat, sollte man sich diese kleine Mühe unbedingt machen und beispielsweise ein Transkript hinterlegen.
  • ProfessionalService: Bei kleinen Visitenkarten-Websites beispielsweise für Anwälte lohnt sich sehr häufig die Auszeichnung der Leistungsseiten mit dem Schema ProfessionalService. Der Hintergrund ist, dass sich solche Unterseiten meist sehr ähneln und deshalb von Google gerne mal als Near Duplicate Content komplett aus dem Index fliegen. Mit einem entsprechenden Markup konnte ich selber in solchen Situationen schon mehrfach gut gegenhalten ohne den sichtbaren Content zu ändern. Das Schema Product funktioniert auch, aber kann mit dem weit verbreiteten ProvenExpert-Siegel in Konflikt geraten. Die nutzen nämlich dieses Schema ebenfalls und generieren dann mit AggregateRating die Sternchen.

Generierung der Datenbasis & statistische Auswertung

Extraktion oder: Wie funktioniert Scraping?

Ein grundsätzlicher Ansatz zur Extraktion von bestimmten Werten aus Websites ist die Verwendung eines XPath. Besonders einfach ist es, wenn das gefragte Element nur dargestellt wird, wenn auch tatsächlich ein Wert hinterlegt ist. Hier ist der Link für die zugehörige Anleitung von Screaming Frog zu Web Scraping.

Beispiel Domain lokales Unternehmen
Beispiel für eine öffentliche Verlinkung lokaler Unternehmen

Beispielsweise erscheint in den Profilen einiger Branchenverzeichnissen ein Button mit „Webseite öffnen“ oder ähnlichen Bezeichnern, wenn eine Domain angegeben wurden. Zur Extraktion solcher Domains lokaler Unternehmen verwende ich eine Konfiguration, die vor allem aus drei Elementen besteht: Include-Funktion (alternativ Custom Search), Exclude-Funktion und die Custom Extraction.

Darüber hinaus sollte der Screaming Frog vom grundsätzlichen Setup auf große Websites eingestellt sein. Hier ein Link zu einer Anleitung von Screaming Frog für weitere Tipps und Tricks: How To Crawl Large Websites. Als User Agent nutze ich Google Bot Mobile.

  • Den ersten Crawl nutze ich zur Identifikation von relevanten Unterseiten in einem konkreten Segment wie beispielsweise Autohäusern. Als Startpunkt verwende ich eine Kategorie-Seite.
    • Als Marker zur Identifikation relevanter Unternehmensprofile nutze ich nach Möglichkeit die URL-Struktur via Include-Funktion mit Regex (.*autohaus.*) Das geht am schnellsten, weil dann nur entsprechende URLs gecrawlt werden.
    • Man kann für diesen Schritt im Prinzip auch eine Custom Search für Text im Frontend nutzen. Dafür muss die jeweilige Website aber komplett durchlaufen, was seeehr lange dauert und lokale Endgeräte leicht ans Limit bringt. Für den Weg braucht man in der Regel die Exclude-Funktion beispielsweise für Widget-URLs. Ich verfeinere dann immer erstmal in einigen Iterationen die Liste auszuschließender URLs für die jeweilige Website. Erst dann starte ich den vollständigen Crawl. Das spart häufig mehrere Millionen URLs, was die Sache spürbar beschleunigt.
  • Im zweiten Crawl verwende ich weiterhin die Include- bzw. Exclude-Funktion, aber nutze als Startpunkte nun die im ersten Schritt ermittelten URLs als Liste im Upload-Modus. In der Praxis finde ich dadurch im zweiten Durchgang nochmal deutlich mehr lokale Unternehmen in dem jeweiligen Branchenverzeichnis. Zusätzlich arbeite ich im zweiten Schritt mit einer Custom Extraction der gesuchten Elemente mit Hilfe eines XPath: Das sieht dann beispielsweise so aus: //a[@class=“inline-flex items-center“].

Bereinigung von extrahierten Daten

Ein weiterer meist notwendiger Schritt ist die nachträgliche Bereinigung der extrahierten Daten. Mit dem XPath wird nämlich jeweils gleich das ganze Element gezogen. Hier meine Zwischenschritte:

  • Die Menge an Daten in einem solchen Crawl kann leicht zu groß für Excel oder Google Sheets werden. Ein größeres Problem als die Zahl der Zeilen ist gerne die Zahl der Zellen, weil der Screaming Frog für jede Custom Search und jede Custom Extraction jeweils eine neue Spalte anlegt. Entsprechend ist man sehr schnell bei hunderttausenden Zellen. Mit einer passenden Konfiguration kann man aber auch schon innerhalb des Screaming Frog viel filtern. Wenn durch die Export-Funktion immer noch zu viele Daten ausgespuckt werden, kann man zur Not die zu exportierenden Daten noch händisch portionieren. Mit gedrückter Shift-Taste kann man beispielsweise die Zeilen 1 bis 10.000 markieren und dann Copy+Paste übertragen. Das wiederholt man bis alle relevanten Daten wahlweise in Excel oder Google Sheets sind.
  • Der unerwünschte Beifang ist ein weiteres Thema bei einer Extraktion mit XPath. Es wird gleich der ganze Inhalt des jeweiligen Elements gezogen. Dazu gehören beispielsweise Link-Attribute und CSS-Klassen. Das kann man aber sehr entspannt beispielsweise in Google Sheets mit „Suchen & Ersetzen“ in Kombination mit etwas Regex bereinigen. Dabei sollte man auch Themen wie Trailing Slash-Probleme beachten und auch solche Duplikate mit einer Logik entfernen.

Sobald man eine bereinigte Liste von Domains hat, kann man diese als CSV exportieren. Dieses Dateiformat kann man im Screaming Frog unter „Modus“ >> „Liste“ hochladen. Dann geht es an die eigentliche Analyse der Strukturierten Daten für Local SEO.

Analyse der Strukturierten Daten für Local SEO

Für die Auswertung der Nutzung von Strukturierten Daten durch lokale Unternehmen habe ich für jedes einzelne Segment jeweils mit einem dritten Crawl gearbeitet. Dieser Crawl basiert dann auf der Liste durch die ersten beiden Schritte gewonnenen Domain-Adressen.

Startseiten lokaler Unternehmen

Zur Bewältigung der Datenmenge habe ich im jeweils dritten Crawl nur die Startseiten gecheckt. Das halte ich methodisch für vertretbar, weil Strukturierte Daten für Local SEO auf der Startseite eines lokalen Unternehmens zu finden sein sollten.

Dieser jeweils dritte Crawl basiert im Kern auf einer einheitlichen Konfiguration der Custom Search. Dazu gehört eine Kategorie, mit der ich jeweils individuelle Markups für Branchen gecheckt habe. Die einzelnen Suchwerte in dieser Kategorie habe ich zur Reduktion der notwendigen Zellen mit einem „Oder“ versehen. Das sieht dann beispielsweise so aus:

„AutomotiveBusiness“|“AutoBodyShop“|“AutoDealer“|“AutoPartsStore“|“AutoRental“|“AutoRepair“

Komplette Liste der Custom Search-Werte

Man darf die Custom Search nicht überfrachten, weil sonst zu viele Berechnungen für die Auswertung notwendig werden. Spätestens wenn das eigene Endgerät crasht, hat man es mit der Zahl und/oder Kombination von Suchwerten übertrieben.

Um möglichst flächendeckend die Nutzung von Strukturierten Daten durch lokale Unternehmen zu beleuchten, habe ich mehrere Kategorien gebildet. Aus der praktischen Erfahrung heraus habe ich in dem Zug auch Videos gesucht. Die Verwendung eines Videos ist ein starkes Indiz für die Investitionsbereitschaft in Online Marketing. Die Einbettung ist in sehr vielen Fällen aber nicht ideal.


BrancheSummeLocalProductOfferPreisPersonBusinessSpezifischMail/Tel.ZeitenVideo
Agenturen42422707234017696945118772749
Anwälte66424507256122311651891782229502
Apotheken66282984819301286225027533811934364
Architekten713026511350109930111296114481
Ärzte711669251413340168311023183341314
Autohäuser17362443100263109967790445
Bars/Kneipen2378123331362905056193203
Bioläden7294921202875301621189
Buchhandlungen18361815423512915275234190
Cafés565732312144967341361334203523
Consultants175464145063317n.a.44627270
Eisdielen14956825128139253208099
Ernährungsberater422425203012101591377
Ferienwohnung17056614153541703234034126
Fitnessstudios2161194165290487117846139745
Friseure17691064140442593845095199
Heilpraktiker2979178131521385042368366282
Immobilienmakler146821551116834176644109416
Juweliere165684983362172440140138
Notare1512101321037257344234875
Optiker14911602550473118057398217
Restaurants94195871845717411355822422417696
Spielwaren657256331296123011103
Steuerberater280512711270654123372386220
Umzugsunternehmen10181371513054294551375134
Auswertung der Analyse von Strukturierten Daten für Local SEO


Hier die Liste der Fußnoten zur Analyse der Verwendung von Strukturierten Daten für Local SEO in Deutschland:

Key-Take Aways aus der Analyse

  • Praktisch keine Website von lokalen Unternehmen oder Dienstleistern ist flächendeckend optimiert.
  • Treibende Kräfte für die relative hohe Zahl an organisationalen Markups sowie an Mail- & Telephone-Markups dürften Plugins sein. Beispielsweise hat das Yoast-Plugin für WordPress im Einrichtungspfad entsprechende Freifelder, die auch ohne entsprechende Fachkenntnisse ausgefüllt werden können. Dies dürfte einen wesentlichen Beitrag zum relativ hohen Sockel an Strukturierten Daten in diesen Kategorien beitragen.
  • Tendenziell besser aufgestellt sind Websites von Filialen großer Ketten: Beispielsweise generieren bei den Optikern die einzelnen Standorte von Apollo weit mehr als die Hälfte aller Offer/Audience-Markups. Der Löwenanteil der hinterlegten Öffnungszeiten hingegen stammt von Fielmann-Standorten.

Strukturierte Daten für lokale Unternehmen selbst verwenden

Bereinigung & Kombination Strukturierter Daten

Die Optimierung von Strukturierten Daten für Local SEO beginnt natürlich mit der Sichtung des aktuellen Bestandes. Ein Problem vor dem SEOs dabei stehen ist der Aktionismus einiger Anbieter von Plugins und Themes.

Beispielsweise hat das auf dieser Website hier verwendete Astra-Theme für WordPress standardmäßige Auszeichnungen wie für den Footer. Mit Verlaub… das ist Datenmüll und auch entgegen der Äußerungen von John Mueller zu dem Thema.

Aber das Astra-Theme ist insgesamt sehr gut und man kann mit einem kleinen PHP-Schnipsel die jeweiligen Strukturierten Daten einzeln oder gesamt ausschalten. So sieht das aus und gehört in die functions.php:

add_filter( ‚astra_schema_enabled‘, ‚__return_false‘ );

Nach der Entfernung von spamigen Schemata kann man die Ausspielung quasi auf einem weißen Blatt angehen. Dabei gibt es mindestens zwei Aspekte zu beachten:

  • Doppelte Auszeichnungen beispielsweise durch die zweimalige Verwendung von Schema Product kann zu einem Ignorieren von beiden Markups durch Suchmaschinen führen. Das kann auch unabsichtlich beispielsweise durch die Auszeichnung von Dienstleistungen als „Produkt“ in Kombination mit dem ProvenExpert-Siegel passieren.
  • Kombinationen von verschiedenen Schemata in einem Markup sind laut einer Äußerung von John Mueller auf Twitter empfehlenswert. Beispielsweise kann man Person & ProfessionalService gut zusammenfassen und bietet sich enorm für lokale Dienstleister an. Technisch valide ist dabei sowohl die parallele wie auch die serielle Kombination. Ich selber verwende in entsprechenden Anwendungsfällen eher die parallele Kombination, weil die serielle Variante beim Schreiben der Skripte aufwendiger ist. Hier noch ein Link zu einer interessanten Anleitung auf Stackoverflow.
SEO für Eisdielen Strukturierte Daten Beispiel
Beispiel für die Verwendung von Strukturierten Daten für SEO






Termin anfragen

  1. Kontakt aufnehmen: Du kannst mich gerne telefonisch, per Mail oder über das Formular kontaktieren.
  2. Projekt besprechen: Ich werfe einen ersten Blick auf das Projekt und wir besprechen ausführlich deine Situation sowie die Ziele.
  3. Beratung & Betreuung: Im Rahmen einer Zusammenarbeit berate ich dich sehr detailliert für deinen dauerhaften Erfolg in den SERPs. Gerne und zuverlässig stehe ich dir auch bei der Umsetzung von Maßnahmen zur Seite.
Contact Us
Datenschutzerklärung

Google Search Console Logo
Screaming Frog Logo
SemRush Logo
Google Analytics Logo
Nach oben scrollen