SEO-Projekt: Eigener Keyword-Tracker mit PHP, MYSQL und PERL

Geschrieben am 13.09.2014 um 14:12 von
Das Tool ist mittlerweile fertig und wird verkauft:
Wer Interesse am Kauf des fertigen SEO Keyword Trackers hat, der findet hier die spezielle Themenseite.

Vor einiger Zeit habe ich ein kleines Projekt im Rahmen von tech-preis.de gestartet. Da man nicht einfach so und günstig an ordentliche Keyword-Tracker mit guter Auswertung kommt, habe ich beschlossen selbst einen eigenen Keyword-Tracker zu programmieren. Den Versuch habe ich vor einigen Jahren bereits unternommen, bin aber an Limits von Google gescheitert.

Was soll der Keyword-Tracker können?

Ich habe einige Anforderungen an meinen Keyword-Tracker, die bereits vor dem Programmieren aufgestellt wurden. So weiß ich, wohin der Weg führt und kann zusehen, was davon wie zu realisieren ist.

  1. Ca 200-250 Keywords sollen getrackt werde
  2. Die ersten 100 Positionen sollen analysiert werden
  3. Positionen sollen täglich aufgezeichnet werden
  4. Keywords sollen sich einfach verwalten lassen
  5. Verlauf mit Positionen für ein Keyword soll als Diagramm darstellbar sein
  6. Index über alle Positionen soll als Diagramm darstellbar sein
  7. Diagramme sollen dynamisch sein
  8. die letzten 8 Tage als Tabelle
  9. Änderungen zum Vortag in Prozent
  10. Beste Position überhaupt soll angezeigt werden
  11. Zu jedem Keyword soll ein Kommentar hinterlassen werden können
  12. Google soll den Tracker/die IP nicht blockieren

So schaut also die Liste meiner Anforderungen aus, um mit einem Keyword-Tracker arbeiten zu können.

Welche Programmiersprache setze ich hierzu ein?

Da war die Entscheidung sehr schnell gefallen. Das komplette Backend wurde mit PHP programmiert, hierzu habe ich meine eigene DB-Klasse sowie weitere Klassen verwendet und den Rest eher funktional programmiert. HTML, Javascript und CSS dienen zur halbwegs ordentlichen Darstellung der Daten. Für die Diagramme wurde beispielsweise jqPlot verwendet, da ich damit gute Erfahrungen gemacht habe! In diversen anderen Projekten habe ich jqPlot bereits einsetzen können.

Das Aufzeichnen der Keywordpositionen täglich habe nicht mit PHP gemacht. PHP eignet sich dazu schlecht. Stattdessen verwende ich PERL, eine sehr leichte Programmiersprache, die den Vorteil hat nicht nach einer gewissen Zeit (max_execution_time) abgebrochen zu werden. Die Daten werden in einer mySQL-Datenbank abgespeichert und auch von dort ausgelesen.

Den Programmiercode zum gesamten Keyword-Tracker werde ich natürlich nicht veröffentlichen. Hierzu steckt mittlerweile viel Arbeit im Programm. Jeder der programmieren kann, wird sich so etwas allerdings recht schnell selbst zulegen können.

Umsetzung des SEO-Trackers

Nach einigen Stunden programmieren und Aufbauen der Datenbank (bestehend aus im Grunde nur 2 Tabellen), war die komplette Verwaltung, Darstellung mit jqPlot etc. pp. fertig. Auf den folgenden Bildern sieht man das Ergebnis. Ich bin kein Designer, das sieht man – bei mir zählt, dass es einfach funktionieren muss! Auf Design usw. lege ich wenig wert.

Grundlegendes Design und PHP-Programmierung geht schnell von der Hand. Interessant sind andere Punkte:
1. Wie kann man die Keyword-Positionen aufzeichnen, ohne von Google als Bot erkannt und gesperrt zu werden?
2. Welche Darstellung macht wirklich Sinn?

Zum ersten Punkt: Wie bereits erwähnt, wir das nur mit Hilfe von PERL gemacht. Hierzu verwende ich die folgenden Module, damit kommt man problemlos aus:
use DBI;
use DBD::mysql;
use LWP::Simple;
use LWP::UserAgent;

Die erste Erkenntnis: Requests

auf die Anzahl von Requests kommt es an. Standardmäßig kann pro Keyword auf der ersten Google-Seite 10 Positionen sammeln. Um die ersten 100 abzugreifen, braucht man also 10 Requests, was sehr langsam ist. Google selbst macht es da einem einfach! Man muss an die URL „num=100“ (GET) anhängen und schon sieht man die ersten 100 Positionen für ein Keyword auf EINER Seite. Damit kann man mit einem Request die ersten 100 Positionen für ein Keyword bestimmen.

Die zweite Erkenntnis: Useragent

Der User Agent sollte nicht „BOT“ sein oder ähnliches. Es empfiehlt sich eine Kennung eines bekannten aktuellen Browsers zu verwenden. Einfach mal schauen, wie der aktuelle Browser sich so im Internet zu erkennen gibt. Meiner ist zum Beispiel:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36

Die dritte Erkenntnis: Wartezeit

PERL ist schnell. Wenn man will, könnte man die 200 Keywords, deren Positionen man bestimmen will, in 200 Sekunden abgreifen – vorausgesetzt Google liefert das Ergebnis in 1 Sekunde aus. Wenn man mit einer IP-Adresse arbeitet, sollte man das allerdings nicht machen. Die einzelnen Request sollten eine Weile Abstand zu einander haben.

Die vierte Erkenntnis: Server

Man sollte den Tracker nicht unbedingt auf dem Server laufen lassen, auf dem die wichtigen Projekte sind. Im Internet bekommt man teilweise für unter 5€/Monat kleine V-Server. Google hilft weiter.

Die fünfte Erkenntnis: Proxies

Da bei mir die Anzahl der Requests (250) begrenzt ist, muss ich nicht auf Proxies setzen. Wer mehrere 1000 Keywords am Tag scannen will, sollte sich zu dem Punkt sicherlich Gedanken machen!

Zuletzt:
Mit ein wenig „Regular Expressions“ kann man so die wichtigen Daten aus dem heruntergeladenen HTML-Quellcode von Google extrahieren und anschließend in der Datenbank abspeichern. Zwischen jedem Request lasse ich zufällig 1-2 Minuten vergehen. Für 60 Keywords brauche ich also 1-2 Stunden. Das ist langsam, reicht mir allerdings vollkommen. Google hat pro Stunde etwa ein Limit von 70 Abfragen. Man sollte da also drunter sein, ansonsten wird die eigene IP schnell gesperrt. Mittels Cronjob lasse ich die PERL-Scripte jeweils vier Mal am Tag (1 Uhr, 8 Uhr, 15 Uhr, 20 Uhr) starten. In der Datenbank ist natürlich hinterlegt, welche Keywords schon erledigt sind.

Das Ergebnis

Das Ergebnis lässt sich sehen und kostet mich nichts. Außerdem liefert es nachvollziehbare und reproduzierbare Ergebnisse. So kann ich meine Domains im Auge behalten und z.B. auf bestimmte Keywords optimieren. Wozu ich das ganze verwende? Ich schreibe Texte und schaue dann, wie sich die Seiten mit dem neuen Content entwickeln.

kwtrcker-index
Berechnung und Darstellung aller Keywords als Index
kw-verwaltung
Verwaltung des SEO Keyword-Trackers
one-keywordtracker
Datum/Position-Diagramm für ein Keyword
frontend
Tabellarische Darstellung aller wichtigen Keywords mit Änderung, Positionen, Kommentarfunktion, Charts,…

Kommerzielle Alternativen in allen Preisklassen

Solche Tracker sind nichts besonderes. Es gibt viele Anbieter im SEO-Bereich, die so etwas anbieten. Wer einen simplen Keyword-Tracker sucht, der sollte sich mal seorch.eu anschauen. Für 10 $ im Monat, kann man 50 Keywords tracken lassen. Hier und da habe ich geholfen einige kleinere „Fehler“ in seorch.eu zu finden und kann allgemein dafür eine Empfehlung aussprechen. An der Stelle einen kleinen Dank an den Matthias, den Betreiber, der mir den Tipp mit „num=100“ gegeben hat. Sein Programm/Dienst ist natürlich um Meilen professioneller,als mein persönlicher Keyword-Tracker.

Wem Keyword-Rankings zu wenig sind, der sucht vermutlich nach professionellen SEO Analyse-Tools. Bei z.B. Xovi, Sistrix oder Seolytics wird man fündig. Der Spaß kostet dann aber auch nicht grade wenig.

Interessantes Tool – ich würde es gerne kaufen

Da ich bereitss gefragt wurde, ob ich den Quellcode verkaufen wollen würde. Ja, so etwas ist in Planung. Allerdings will ich hierzu noch einige kleinere Funktionen implementieren, den Quellcode modularisieren. Bisher war das ganze eher ein persönliches Projekt. Wie oben beschrieben gibt es diverse günstige Anbieter auf dem Markt. Ich würde an der Stelle den gesamten Quellcode verkaufen. Bis dahin dauert es allerdings noch eine Weile, Interessenten können sich in den folgenden Newsletter eintragen und bekommen – wenn es soweit ist – eine E-Mail.

Das Tool ist mittlerweile fertig und wird verkauft:
Wer Interesse am Kauf des fertigen SEO Keyword Trackers hat, der findet hier die spezielle Themenseite.

"SEO-Projekt: Eigener Keyword-Tracker mit PHP, MYSQL und PERL" bewerten

Der Artikel ist schlecht!Der Artikel ist verbesserungswürdig!Der Artikel ist ganz gut.Der Artikel ist richtig gut!Der Artikel ist perfekt! Danke! (5 Bewertungen mit durchschnittlich 5,00 von 5 Sternen)
Loading...

4 Antworten zu SEO-Projekt: Eigener Keyword-Tracker mit PHP, MYSQL und PERL

  1. Dein Tool schaut echt gut aus! Hast Du für die Darstellung ein Framework benutzt oder auch alles selber gemacht? Ich frage, weil, wenn ich etwas nur für mich mache, ich dann keinen Wert auf Optik lege…

    PS: Hattest Du, bevor Du es angefangen hast selbst zu programmieren, das Tool keywordmonitor.de gekannt?

  2. Hi Viktor,

    nein ich hab keine speziellen Frameworks genutzt. Alles ist von Hand. Das einzige, was ich als Framework bezeichnen würde, wäre jqPlot (hab es jetzt oben verlinkt).

    Zum PS: Nein, den Dienst kannte ich bisher nicht. Schaut aber auf den ersten Blick auch schon sehr gut aus, wobei es offenbar seit einer Weile recht inaktiv ist (siehe Blog). Da scheint es auch noch mehr als nur Keyword-Monitoring zu geben.

    Grüße

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

© 2016 » Die Seite rennt auf PHP 7 und HTTP 2.0 ♥

Konnten wir Ihnen mit dieser Seite behilflich sein?

Danke für die Bewertung!

Könnten wir noch etwas verbessern, damit Sie zufriedener sind?