Einfache Fluktuationsrate | Online Marketing Basics
Die Fluktuationsrate gibt die relative Änderung an, wie viele Ergebnisse der Seite 1 für ein bestimmtes Keyword für zwei verschiedene Zeitpunkte identisch sind, d.h. wie stark Google die Rankings hier durcheinander wirbelt.
Berechnung der Fluktuationsrate
Sie wird folgendermaßen gebildet:
,
seien zwei Mengen der Mächtigkeit
.
= {x | x repräsentiert den Byte-Code für eine Web-Adresse für ein Keyword i zum Zeitpunkt t}
= {y | y repräsentiert den Byte-Code für eine Web-Adresse für ein Keyword i zum Zeitpunkt t-1}
(1) Intersection: =
(2) (
) =
– |
|
(3) =
(in %)
Nutzen an der Fluktuationsrate
Geht man im Zuge der Web-Analyse auf Ursachenforschung für fallenden Traffic, so kann die Fluktuationsrate bei grober (>0.7) Wertannahme für ökonomisch wichtige Keywords ein erster Hinweis auf einen SERP-Wirbel sein.
Kritik an der Fluktuationsrate
Sie gibt zwar die relative Änderung an, nur gibt sie keine Auskunft über Positionsverschiebung auf der ersten Seite. Das lässt die Fluktuation auf den Positionen lediglich erahnen.
Weitere Hinweise
Die Metrik “Fluktuationsrate” kann die Ursachenanalyse im Zuge eines SEO-Reportings unterstützen. Sollte es Einbrüche auf wichtigen Keywords geben, so stehen viele mögliche Ursachen im Raum. Die Fluktuationsrate ist keine bahnbrechende Metrik, aber sie kann ein erstes Indiz für fallende Klickzahlen sein. Wie man die nötigen Daten sammelt, die Metrik berechnet und in sein Reporting integrieren kann, wird in diesem Artikel illustriert.
Ursache für die Erhebung der Fluktuationsrate
Oftmals kommt es zu einer veränderten SERP-Gestaltung, da Google zum Suchbegriff andere Dokumente ausspielt. Das kann z.B. bei sehr generischen Suchbegriffen passieren.
Datenerhebung für die Fluktuationsrate
Wir brauchen zur Berechnung der Fluktuationsrate lediglich einen Data-Endpoint: Sistrix. Über die Sistrix API kann man sich sehr bequem die Daten des Dashboards besorgen. Alternativ könnte man Tools wie die ScrapeBox verwenden. Für den Komfort verwenden wir Methode Keyword.SEO, die für ein übergebenes Keyword die sich aktuell in den Suchergebnissen befindlichen URLs ausliefert. Wir benötigen für einen 7-Tage-Vergleich lediglich zwei API-Abfragen. Im nächsten Abschnitt gehen wir darauf genauer ein.
Berechnung der Fluktuationsrate
Es ist weniger eine pure Berechnung und mehr ein einfacher Algorithmus. Die Fluktuationsrate ist eine Prozentzahl, die die SERP-Dynamik für ein Keyword festhält. Sie wird folgendermaßen gebildet:
- Speichere in Liste 1 die jetzigen zehn Ergebnisse, die zum Keyword ausgespielt werden (Parameter: now)
- Speichere in Liste 2 die vorherigen zehn Ergebnisse, die zum Keyword ausgespielt werden (Parameter: last week)
- Wende eine Intersection-Operation an, um eine Liste zu erhalten, die ausschließlich URLs beinhaltet, die in beiden Listen vorhanden war
- Berechne den Fluktuationsscore: 10 – Größe des Arrays
- Berechne die Fluktuationsrate: (Fluktuationsscore / 10)
Die Fluktationsrate bewegt sich zwischen 0% und 100%. Bei 0% hat Google die SERPs nicht durchgemischt. Bei 100% werden komplett neue Ergebnisse ausgespielt.
Wieso soll ich diese KPI erheben?
Sie ist eine einfache Metrik, um verlorene Klickzahlen schneller begründen zu können. Sie ersetzt keine Ursachenforschung, aber sie ist vor allem auch eine interessante Metrik, die über Wochen hin die SERP-Fluktuation auf Top-Keywords zeigt und mittelfristig Einfluss auf die strategische Keywordwahl haben kann.
Integration in das Reporting: Fertiges Python-Skript
Die Fluktuationsrate(n) können mithilfe dieses Python-Skripts berechnet werden. Der Algorithmus exportiert eine .csv-Datei mit einer Spalte für die Keywords und für die jeweilige Fluktuationsrate.
import csv from bs4 import BeautifulSoup import urllib.request """ onlinemarketingscience.com: Skript für die Fluktuationsraten von Top-Keywords von Marvin Jörs """ # Bitte den Sistrix API Key einfügen SISTRIX_API_KEY = "KEY_EINGEBEN" # Keywords eintragen keywords = ["zeiterfassung"] def calculateFlu(keyword): aktuelle_urls = [] vergangene_urls = [] # String zusammenkleben xml_output_now = "https://api.sistrix.com/keyword.seo?api_key=" + SISTRIX_API_KEY + "&kw=" + keyword + "&date=now&num=10'" # XML-auslesen und URLs in Liste speichern with urllib.request.urlopen(xml_output_now) as response: xml = response.read() soup_of_now = BeautifulSoup(xml, 'lxml') soup_of_now.prettify() for element in soup_of_now.find_all("answer"): for stat in element.find_all("result"): aktuelle_urls.append(stat['url']) # String zusammenkleben soup_of_last_week = xml_output_last_week = "https://api.sistrix.com/keyword.seo?api_key=" + SISTRIX_API_KEY + "&kw=" + keyword + "&date=last+week&num=10'" with urllib.request.urlopen(xml_output_last_week) as response: xml = response.read() soup_of_last_week = BeautifulSoup(xml, 'lxml') soup_of_last_week.prettify() for element in soup_of_last_week.find_all("answer"): for stat in element.find_all("result"): vergangene_urls.append(stat['url']) # UND-Operator auf beide Listen schnittmenge = set(aktuelle_urls).intersection(vergangene_urls) # Größe des Arrays berechnen groeße = len(schnittmenge) # Fluktuationsscore = 10 - Größe des Arrays fluktuationsscore = 10 - groeße # Fluktuationsrate = Fluktuationsscore / 10 fluktuationsrate = (fluktuationsscore / 10) return fluktuationsrate # Schleife und Funktionsaufruf # Für jedes Keyword in keywords for keyword in keywords: tempFlu = calculateFlu(keyword) with open('fluktuationsraten.csv', 'a', newline='') as csvfile: sciencewriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL) sciencewriter.writerow([keyword,",", tempFlu])

Bereits mit 14 Jahren absolvierte Jörs sein erstes Schulpraktikum bei der Deutschen Telekom mit Aspekten aus der Suchmaschinenoptimierung. Seitdem erfolgten mehrere berufliche Stationen sowie Aktivitäten als freiberuflicher Webdesigner. Er hat an der Technischen Universität in Darmstadt einen B.Sc. in Wirtschaftsinformatik abgeschlossen. Seit 2019 ist Jörs Lehrbeauftragter für Online-Marketing an der Hochschule Darmstadt sowie Honorardozent für Marketing Automation & Datenintegration an der Hochschule Fresenius. Marvin Jörs ist Gründer und geschäftsführender Gesellschafter der Skyscraper Marketing GmbH.