In diesem Artikel sammeln wir ein Dashboard für die SEO-Verkehrsanalyse. Wir werden die Daten über Python-Skripte und über CSV-Dateien entladen.
Was werden wir entladen?
Um die Dynamik der Positionen von
Suchphrasen zu analysieren, müssen Sie sie von
Yandex.Webmaster und der
Google Search Console entladen. Um die "Nützlichkeit" des Pumpens der Position der Suchphrase zu beurteilen, sind Frequenzdaten nützlich. Sie sind bei
Yandex.Direct und
Google Ads erhältlich . Um das Verhalten der technischen Seite der Website zu analysieren, verwenden wir
Page Speed Insider .
SEO VerkehrsdynamikGoogle-Suchkonsole
Um mit der API zu interagieren, verwenden wir die
Searchconsole- Bibliothek. Der Github beschreibt ausführlich, wie Sie die erforderlichen Token für die Anmeldung erhalten. Das Verfahren zum Hochladen und Laden von Daten in die MS SQL-Datenbank lautet wie folgt:
def google_reports():
Yandex.Webmaster
Leider kann der Webmaster nur 500 Suchphrasen hochladen. Laden Sie Schnitte nach Land, Gerätetyp usw. hoch. er kann auch nicht. Aufgrund dieser Einschränkungen werden zusätzlich zum Hochladen von Positionen für 500 Wörter vom Webmaster Daten von Yandex.Metrica auf Zielseiten hochgeladen. Für diejenigen, die nicht viele Suchbegriffe haben, reichen 500 Wörter aus. Wenn Ihr semantischer Kern nach Yandex breit genug ist, müssen Sie Positionen aus anderen Quellen entladen oder Ihren Positionsparser schreiben.
def yandex_reports(): token = "..."
Page Speed Insider
Ermöglicht die Bewertung der Download-Geschwindigkeit von Website-Inhalten. Wenn die Site langsamer geladen wird, kann dies die Position der Site in den Suchergebnissen erheblich verringern.
Google Ads und Yandex Direct
Um die Häufigkeit von Suchanfragen abzuschätzen, entladen wir die Häufigkeit unseres SEO-Kerns.
Yandex-Budgetprognose
Google Keyword PlannerYandex Metric
Laden Sie Daten zu Ansichten und Besuchen von Anmeldeseiten aus dem SEO-Verkehr hoch.
token = token headers = {"Authorization": "OAuth " + token} now = datetime.now() fr = (now - timedelta(days = 9)).strftime("%Y-%m-%d") to = (now - timedelta(days = 3)).strftime("%Y-%m-%d") res = requests.get("https://api-metrika.yandex.net/stat/v1/data/?ids=ids&metrics=ym:s:pageviews,ym:s:visits&dimensions=ym:s:startURL,ym:s:lastsignSearchEngine,ym:s:regionCountry,ym:s:deviceCategory&date1={0}&date2={1}&group=all&filters=ym:s:lastsignTrafficSource=='organic'&limit=50000".format(fr,to), headers=headers) a = json.loads(res.text) re = pd.DataFrame(columns=['page', 'device', 'view', 'dt_from', 'dt_to', 'engine', 'visits', 'country', 'pageviews']) for i in a['data']: temp={} temp['page'] = i['dimensions'][0]['name'] temp['engine'] = i['dimensions'][1]['name'] temp['country'] = i['dimensions'][2]['name'] temp['device'] = i['dimensions'][3]['name'] temp['view'] = i['metrics'][0] temp['visits'] = i['metrics'][1] temp['pageviews'] = i['metrics'][0] temp['dt_from'] = fr temp['dt_to'] = to re=re.append(temp, ignore_index=True) to_sql_server(re, 'yandex_pages')
Datenerfassung in Power BI
Mal sehen, was wir entladen haben:
- google_positions und yandex_positions
- google_frequency und yandex_frequency
- google_speed und yandex_speed
- yandex_metrika
Aus diesen Daten können wir Dynamik nach Woche, nach Segment, allgemeine Daten nach Segmenten und Anforderungen, Dynamik und allgemeine Daten nach Seiten und Geschwindigkeit beim Laden von Inhalten erfassen. So könnte der Abschlussbericht aussehen:

Einerseits gibt es viele verschiedene Anzeichen und es ist schwer zu verstehen, was die allgemeinen Trends sind. Auf der anderen Seite zeigt jede Platte wichtige Daten zu Positionen, Impressionen, Klicks, Klickrate und Seitenladegeschwindigkeit an.
Artikel aus dem Zyklus: