Machine Learning für SEO: Ranking-Vorhersage mit Machine Learning

SEO

Detailaufnahme von Zahnrädern und Ketten in Schwarz-Weiß

Um Positionsveränderungen nach möglichen Onpage-Maßnahmen vorhersagen zu können, haben wir ein Machine-Learning-Modell mit Keyword-Daten und Onpage-Faktoren trainiert. Mit diesem Modell können wir nun automatisch tausende von potentiellen Keywords analysieren und die Keywords auswählen, bei denen wir mit ein paar simplen Onpage-Optimierungen gute Chancen auf Ranking-Verbesserungen haben.

Am Ende dieses Artikels stellen wir Euch den gesamten Quellcode dieses Machine-Learning-SEO-Experiments zur Verfügung, damit Ihr es selbst ausprobieren könnt!

Eine englischsprachige Version dieses Artikels gibt es hier: Machine learning for SEO – How to predict rankings with machine learning

Der Aufstieg von Machine Learning in der Suchmaschinenoptimierung

Google arbeitet bereits eine ganze Weile daran, Machine Learning in seine Produkte und Services zu integrieren. Mit der Hilfe von Machine Learning kann Google Herausforderungen bewältigen, die ohne Machine Learning nur sehr schwer oder gar nicht zu schaffen wären.

Als SEOs beobachten wir diese Entwicklung eventuell mit einer Portion Angst. Wenn Machine Learning für Suchalgorithmen verwendet wird, werden diese Algorithmen immer komplexer, was unseren Job immer schwerer macht.

Aber warum sollten wir nicht einfach selbst Machine Learning für SEO benutzen, um mit Google mitzuhalten? Wenn SEO komplizierter wird, weil Google Machine Learning einsetzt, dann wäre es eine gute Lösung selbst Machine Learning einzusetzen, oder?

In diesem Artikel zeigen wir Euch anhand eines Experiments, wie Ihr mit Hilfe von Machine Learning Eure SEO-Maßnahmen verbessern könnt.

Der Fall – Keywords mit hohem Ranking-Potential identifizieren durch Positions-Vorhersage nach der Durchführung von Optimierungen

Wenn wir als SEOs Keyword-Daten benötigen, stehen uns viele großartige Tools zur Verfügung. Die Herausforderung ist dabei nicht das Finden von Keywords, sondern die Analyse und Priorisierung. Lasst uns anfangen, indem wir uns anschauen, welche Daten SEMrush uns für unsere Beispiel-Website www.barf-alarm.de ausgibt. Wir suchen nach Keywords mit hohem Suchvolumen, für die wir bereits ranken.

Liste der organischen Suchergebnisse mit Keyword-Positionen und Suchvolumen

Wie Ihr im Screenshot sehen könnt, liefert uns SEMrush bereits eine große Anzahl an Kewyords (mehr als 1100) für das relativ nischige Thema dieser Website.

Indem wir nun noch Keywords hinzufügen, für die unsere Wettbewerber ranken, aber wir nicht, können wir diese Liste ganz einfach auf über 3600 Keywords wachsen lassen:

Im Vergleich zu größeren Websites oder breiter gefächerten Themen ist das natürlich noch eine relativ geringe Anzahl an Keywords. Eine manuelle Analyse wäre bei dieser Menge von Keywords allerdings bereits problematisch. Dennoch müssen wir diese Keywords filtern, um herauszufinden, welche davon relevant sind, und mit welchen wir eine gute Chance haben, ein Top-10-Ranking zu erreichen.

Lasst es uns mit Machine Learning tun! Unser Ziel ist es, herauszufinden, für welche der 3600 Keywords, die wir gesammelt haben, eine Top-10-Platzierung realistisch ist.

Machine Learning einsetzten, um Ranking-Potential zu identifizieren – Schritt für Schritt

Schritt 1: Wie würden wir normalerweise manuell vorgehen?

Wenn wir unsere 3600 Keywords manuell auf eine Handvoll von Keywords herunter filtern wollten, für die wir ohne großen Aufwand gut ranken können, würden wir uns wahrscheinlich Kennzahlen wie den CPC oder das Suchvolumen anschauen, um ein Gefühl dafür zu bekommen, wie umkämpft die einzelnen Keywords sind. Hohe Suchvolumina und hohe CPCs deuten oft auf eine schwierige Wettbewerbssituation hin, in der gute Rankings nicht einfach zu erreichen sind.

Wir können zudem auch unsere Wettbewerber analysieren. Wenn ein sehr ähnlicher Wettbewerber bereits für ein Keyword rankt, dann ist es wahrscheinlich, dass wir ein solches Ranking ebenfalls erreichen können.

Zuletzt können wir noch die existierenden Onpage-Optimierungs-Faktoren untersuchen. Wenn eine unserer Seiten bereits sehr gut für ein bestimmten Keyword optimiert ist, aber nur auf Seite 2 oder 3 rankt, dann wird es schwer sein, mit reinen Onpage-Maßnahmen das Ranking noch weiter zu verbessern. Wenn wir allerdings noch keine optimierte Seite für ein Keyword haben, dann sind unsere Chancen, ein Top-10-Ranking zu erreichen, deutlich höher.

Dieselben Daten, die wir normalerweise manuell analysieren würden, können wir verwenden, um unseren Machine-Learning-Algorithmus zu trainieren. Schauen wir uns doch den nächsten Schritt an, um zu lernen, wie das funktioniert.

Schritt 2: Daten sammeln und anpassen

Jetzt müssen wir die Daten sammeln, die wir normalerweise für die oben beschriebene manuelle Analyse benötigen würden. Für dieses Experiment nutzen wir die SEMrush-API, um uns alle Daten über die Keywords zu ziehen, für die unsere Beispielseite und ihre direkten Wettbewerber ranken:

Python-Code zur Definition von Domain-Optimierung und Wettbewerbern

Python-Code mit Keyword-Analyse und Darstellung von Suchvolumen für verschiedene Begriffe

Nachdem wir diese Daten gesammelt haben, crawlen wir alle rankenden Seiten unserer Beispiel-Website und die unserer Wettbewerber. Dabei untersuchen wir, ob das Keyword, für das die Seite rankt, im Title Tag, im Inhalt, im URL-Pfad oder in der Domain der Seite enthalten ist. Wir speichern diese Informationen als Zahlen ab, weil der Machine-Learning-Algorithmus, den wir einsetzen, nur Zahlen als Input akzeptiert. Wenn also zum Beispiel alle Wörter der Phrase „barfen fleisch“, für die eine Seite rankt, im Title Tag vorhanden sind, dann speichern wir den Wert „1“ in „title_found“. Wenn nur eines der Wörter (50 % aller Wörter) gefunden wird, speichern wir den Wert „0.5“, und wenn keine Wörter gefunden werden, den Wert „0“.

Tabelle mit Positionen, Keywords und URLs von gecrawlten SEO-Daten

Nun schreiben wir noch alle Domains und Keywords in Zahlen um, die sie repräsentieren, damit wir auch diese in unseren Machine-Learning-Algorithmus einspeisen können. Wenn wir dies alles zusammenfügen, haben wir eine Liste von Seiten, die zu bestimmten Keywords ranken, Wettbewerbs-Kennzahlen zu den Keywords und Onpage-Optimierungs-Faktoren:

Tabelle mit SEO-Analyse für die Keyword-Position und URL-Leistung von Websites, die sich auf "barf fleisch hund" beziehen

Schritt 3: Das Machine-Learning-Modell trainieren

Als Nächstes unterteilen wir die gesammelten Daten in Tranings- (80 %) und Test-Daten (20%). Die Trainings-Daten werden verwendet, um den Algorithmus zu trainieren. Die Test-Daten dienen dazu, die vom Algorithmus errechneten Ergebnisse zu überprüfen. Dann wählen wir einen Algorithmus, in diesem Fall einen MLPClassifier, und trainieren ihn. Nach mehreren Test sind wir zu dem Schluss gekommen, dass ein Algorithmus, der auf einem künstlichen neuronalen Netz basiert, für dieses Experiment am besten funktioniert.

An dieser Stelle muss Eurer Rechner viel harte Arbeit leisten und Ihr müsst ein paar Minuten (oder Stunden) Geduld haben.


Du willst mehr zum Thema SEO erfahren? Dann findest du hier unsere SEO-Tipps!


Schritt 4: Positionsänderungen für optimierte Seiten vorhersagen

Mit dem Modell, das wir generiert haben, können wir nun Vorhersagen treffen. In unserem Beispiel sagen wir das Ranking unserer Website www.barf-alarm.de für die Suchphrase “barf fleisch kaufen” vorher, indem wir die Daten nutzen, die wir vorher gesammelt haben: CPC, Suchvolumen und Optimierungswerte (Phrase nicht im im Titel oder der URL gefunden und nur teilweise im Inhalt und Domainnamen vorhanden). Unser trainierter Algorithmus sagt, basierend auf den Informationen, die wir gerade eingespeist haben, Position 20 für diese Seite hervor:

Keyword-Ranking Vorhersage auf Platz 20 mit einem Machine Learning Modell

Wenn wir dieses Ergebnis nun mit unseren Test-Daten vergleichen, sehen wir, dass die Seite tatsächlich auf Position 18 rankt. Das bedeutet, dass unser Algorithmus noch nicht 100%ig akkurat ist, für den Start aber gar nicht so schlecht:

Datenvergleich von Keyword-Positionen und Testdaten in Python-Analyse

Lasst uns nun einmal schauen, welche Position unser Algorithmus für eine optimierte Version dieser Seite vorhersagt, also eine, auf der die Phrase im Title Tag und im Seiteninhalt vorkommt. Wir möchten herausfinden, ob es Sinn machen würde, diese Seite zu optimieren, also fragen wir unseren Algorithmus, auf welcher Position eine optimierte Version dieser Seite ranken würde. Wir füttern den Algorithmus mit denselben Daten wie zuvor, außer dass die exakte Phrase dieses Mal im Content und im Titel vorhanden ist:

SEO-Analyse: vorhergesagte Position für optimierte Seite

Wow, unser Modell sagt für eine optimierte Version unserer Seite Position 1 voraus! Wir wissen bereits, dass unser Algorithmus noch nicht komplett akkurat ist, und die Vorhersage eventuell etwas zu optimistisch ausfällt, aber sie erfüllt ihren Zweck: Keywords mit einem hohen Ranking-Potential zu identifizieren. Lasst uns sehen, ob die Vorhersagen für die anderen Keywords ähnlich nützlich sind!

Schritt 5: Ein vollständiges Ergebnis für alle potentiellen Keywords

Also machen wir nun das, was wir für ein Keyword ausprobiert haben, für alle 3600 Keywords, die wir eingangs gesammelt haben. Unser Modell generiert eine Liste von Keywords mit aktuellen und vorhergesagten Positionen:

Sortierte Liste von Keywords mit Suchvolumen und Wettbewerb

Wir Ihr in dem oben abgebildeten Ausschnitt erkennen könnt, sagt das Modell keine Rankings für irrelevante Keywords wie „kreuzberg“, „durchfall“ oder „ziege“ voraus. Dies ist ein Qualitätsmerkmal: Wir würden nicht davon ausgehen, dass wir für Keywords ranken können, die für unser Business nicht wirklich relevant sind.

Lasst uns die Liste ein bisschen filtern, um ein besseres Ergebnis zu erzielen. Wenn wir einen Filter für vorhergesagte Positionen unter 10 anwenden, erhalten wir eine Liste von Keywords, für die unser Algorithmus einschätzt, dass wir auf Seite 1 ranken können:

Tabelle mit Keyword-Daten, CPC und Suchvolumen für barf-Keyword-Optimierung

Das ist ein tolles Ergebnis! Wir haben jetzt eine Liste von ca. 600 Keywords, bei denen wir mit Hilfe einiger simpler Onpage-Maßnahmen (Phrasen in Title-Tags und Seiteinhalten einschließen) Top-Rankings erzielen können. Wir müssen 3600 potentielle Keywords nicht manuell analysieren, sondern können damit anfangen, optimierte Seiten für 600 Keywords zu erstellen, die unser Algorithmus ausgewählt hat. Wahrscheinlich gibt es ein paar Ausreißer und einige Vorhersagen sind eventuell zu zuversichtlich, doch dies ist allemal ein guter Ausgangspunkt für ordentliche Onpage-Maßnahmen mit Erfolgsaussichten.

Ein paar Überlegungen zum Abschluss

Wir haben einige sehr einfache Daten für dieses Experiment verwendet, besonders im Bereich Onpage-Optimierungs-Faktoren. Wir haben nur einige wenige Aspekte berücksichtigt, wie z.B. Keyword-Platzierungen im Title Tag oder in der URL. Es würde mit Sicherheit Sinn machen, weitere Faktoren hinzuzufügen, wie z.B. externe Links oder WDF*IDF-Analysen. Unser Beispiel ist nur eine generelle Einführung in die Möglichkeiten von Machine Learning in der Suchmaschinenoptmierung.

Außerdem können die Ergebnisse noch verbessert werden, indem mehr Ranking-Daten und mehr Wettbewerber analysiert werden. Zu guter Letzt können auch die Parameter des Machine-Learning-Algorithmus noch weiter optimiert werden.

Interessierst Du Dich für weitere Experimente dieser Art?

Geh einfach zu labs.searchviu.com, melde Dich an, und wir werden Dir Bescheid geben, wenn wir über weitere Experimente schreiben oder Ergebnisse auf Konferenzen vorstellen.

Willst Du das hier selber ausprobieren?

Wir haben den kompletten Quellcode dieses Experiments (Python, Jupyter Notebook) auf unserem öffentlichen searchVIU Labs Github-Repository bereitgestellt. So kannst Du dieses Experiment für Deine eigene Website und mit Deinen eigenen Daten ausprobieren.

In unserem Repository findest Du auch ein einfaches Experiment zur Vorhersage von Klickraten auf Basis von Search-Console-Daten, das Dir eventuell als guter Einstieg in die Thematik dienen kann.

Vielen Dank!

Zum Abschluss möchten wir unseren Freunden bei SEMrush danken, die uns die Daten, die wir für dieses Experiment brauchten, zur Verfügung gestellt haben. Wenn Du einen Zugriff zur SEMrush-API brauchst, um dieses Experiment durchzuführen, kannst Du Dich bei Evgeni Sereda von SEMrush melden.

Außerdem danken wir den Veranstaltern vom SEO-Day, der größten SEO-Konferenz in Deutschland dafür, dass wir auf der diesjährigen Konferenz dieses Experiment zum ersten Mal vorstellen durften.

Hat Dir dieser Artikel gefallen?

Vielen Dank für Deine Bewertung!

Von morefire empfohlene Artikel