ForeCheck – Das Interview
ForeCheck – Das Interview 06.10.2009 | Kategorie: Hauptartikel, SEONach der Vorstellung des SEO-Analyse-Tools ForeCheck, soll im Interview mit dem federführenden Software-Ingenieur Mirsad Hadzikadunic auf die Herausforderungen bei der Entwicklung eingegangen werden.
Mirsad, wie lässt sich Forecheck in einem Satz für die Leute beschreiben, die von diesem Softwareprodukt zuvor noch nie gehört haben?
ForeCheck lässt sich in einem einzigen Satz kaum beschreiben. Im weiterem Sinne ist ForeCheck ein WebCrawler der für Verwaltung von Websites und gleichzeitig auch für SEO gedacht ist. Im engerem Sinne ist ForeCheck eine Software die die Verfügbarkeit der veröffentlichten Dokumente prüft, und gleichzeitig den Zusammenhang, den Inhalt und die Verlinkung zwischen den selben Dokumenten ermittelt.
Was war der ausschlaggebende Grund für die Entwicklung von Forecheck?
ForeCheck ist nicht der erste Linkchecker am Markt. Es gibt einige Programme auf die man zurückgreifen könnte. Genau das haben auch wir vor ForeCheck getan. Problem bei diesen Programmen war allerdings, dass sie bei weitem nicht unseren spezialisierten Anforderungen genügen konnten, denn
- sie waren allesamt zu langsam
- es wurden nicht genug Informationen gewonnen (ob eine URL einen 200er, 301er oder 404er Responsecode liefert, reicht für einen Suchmaschienenoptimierer nicht aus)
- verbrauchten zu viel Speicher und andere Ressourcen
Die meisten Programme dieser Art belasten den lokalen Rechner so stark, dass parallel laufende Software nicht mehr bedienbar ist. Für uns war das inakzeptabel. Wir wollten ein Produkt haben, dass alles erledigt, was ein normaler Linkchecker kann, ohne das Rechnersystem lahmzulegen. Darüber hinaus sollten aber auch noch weitere, SEO-relevante Parameter ermittelt werden. ForeCheck sollte also mehr können, gleichzeitig aber weniger
Systemressourcen benötigen. Außerdem sollte der Nutzer den Verlauf der Prüfung individuell konfigurieren und nach seinen Wünschen anpassen können (Threadmanagement, Geschwindigkeitsanpassung, u.v.m.).
Was ist das besondere an Forecheck?
Man stelle sich die Situation vor, die eigene Domain beinhaltet nach einigen Jahren mehrere Hunderttausend Dokumente. Einige unserer Kunden haben sogar über eine Million Dokumente auf ihrem Webserver. Nach einer gewissen Zeit hat keiner mehr den richtigen Überblick, was da alles auf dem Webserver gespeichert ist und veröffentlicht wurde – und erst recht nicht, ob diese Dokumente für die Besucher einer Webseite auch zu erreichen sind.
Für den Betreiber eines Onlineshops kann dies mit Ranking-, und damit auch mit monetären Verlusten verbunden sein. Warum? Hier ein Beispiel, wie ForeCheck für Webentwickler und SEO eingesetzt werden kann:
Nehmen wir an, ein Onlineshop hat ein paar tolle Produkte im Angebot. Der Betreiber weiß, dass sie im Shop existieren. Er weiß auch, dass diese nachgefragt werden, schließlich wird im Netz oft nach ihnen gesucht.
Trotzdem bleiben die Bestellungen aus. Der Absatz ist doch nicht so wie erwartet. Der Betreiber schaut sich stichprobenartig seine Dokumente an:
- tragen sie die passenden Inhalte?
- wird dort auch das richtige angeboten?
Ja, scheint alles korrekt zu sein. Was aber niemand weiß: Sind diese HTML-Dokumente auch alle von der Startseite aus erreichbar? Die manuelle Überprüfung gestaltet sich jedoch als zu aufwändig. Hier kommt die LinkCheck-Funktion von ForeCheck zum Einsatz.
Es wir nur die Domain in das Adressfeld eingegeben und auf “Start” geklickt. Was passiert dann?
- ForeCheck öffnet die Startseite
- parst diese
- holt alle URLs die dort gefunden wurden, und prüft alle auf Verfügbarkeit
Ist ein verlinktes Dokument nicht erreichbar, wird dies sofort mit dem Titel der Seite und weiteren Informationen angezeigt. Jetzt kann der Administrator der Seite reagieren und diesen Fehler beheben. Mit ForeCheck geht es aber eben noch einen Schritt weiter:
- ForeCheck berücksichtigt diverse SEO-Faktoren und macht diese analysierbar.
- Es werden nicht nur fehlerhafte Links entdeckt, sondern auch Dokumente mit identischem Inhalt. Doppelte Inhalte führen erfahrungsgemäß immer wieder zu Indexierungsproblemen.
- ForeCheck beherrscht unterschiedlichste Sprachen-, bzw. Zeichensätze. Die Prüfung von chinesischen, japanischen oder arabischem Websites ist also kein Problem.
- ForeCheck erstellt auf Knopfdruck valide Sitemap-Dateien.
- Außerdem sind Plausibilitätsprüfungen der robots.txt mit visuellem Feedback zu gesperrten Dokumenten möglich. ForeCheck kann so konfiguriert werden, dass über die robots.txt gesperrte Seiten auch von ForeCheck nicht geprüft werden.
Über Reiter werden verschiedene Ansichten ermöglicht, über die die Ergebnisse gefiltert dargestellt werden können. So kann die Ausgabe bspw. ausschließlich auf Fehler, HTML–Dateien, CSS-Dateien, JavaScript-Dateien oder Bilder begrenzt werden.
Es steht also eine breite Auswahl an Optionen zur Verfügung, um nach Dokumenttyp oder nach erhaltener Serverantwort zu filtern. Alle Daten – ob gefiltert oder ungefiltert - können zudem exportiert werden.
Was war das schwierigste bei der Entwicklung?
Das ist eine gute Frage. Ich nenne hier nur die wichtigsten Aufgaben die wir unter einen Hut bringen mussten:
- Informationen: So viel Informationen wie möglich auslesen und speichern
- Sprichermanagement: So wenig Speicher wie möglich verwenden
- Geschwindigkeit: So schnell wie möglich alle URLs parsen
- Multithreading: Gleichzeitiges parsen von mehreren URLS
- Stabilität: Stabiler, sicherer Betrieb, ohne Blockierung anderer Ressourcen und Programme
- Host: Lauffähig auf unterschiedlichsten Hardwarekonfigurationen, z.B. Multicore CPUs, 32bit oder 64bit System
- Kompatibilität: Lauffähig auf den unterschiedlichen Windows-Versionen
Das Speichermanagement stellte also die größte Herausforderung dar.
Wie genau wurde das Speichermanagement realisiert?
Ich habe bereits erwähnt, dass hier ein sehr wichtiges Ziel die korrekte Umsetzung des Speichermanagement war. Die vorrangige Frage war also, welche Informationen wie gespeichert werden sollten, bzw. wie verwalten wir diese zur Laufzeit. Schließlich kann es sich hier ja um enorme Datengrößen handeln. Zu Beginn der Entwicklung sind wir von Klassen aus der MFC(Microsoft Fundation Class) wie CMapStringToOb ausgegangen. Diese haben allerdings zwei Nachteile und einen Vorteil:
Der Nachteil ist, das diese mit der Zeit langsam werden, das heißt, dass das suchen in dieser Klasse mit der Zeit immer langsamer wird. Und das kollidiert mit unserem Ziel der Schnelligkeit. Vor jeder Aufnahme von neu gefundenen URLs, muss ja geprüft werden, ob diese URL nicht schon vorher gefunden wurde, damit wir keine doppelten Einträge sammeln. Und dafür muss die ganze Mappe komplett durchgesucht werden – JEDES mal, wenn ein neuer Link gefunden wurde.
Zweiter Nachteil ist der, dass diese Mappe viel Speicherplatz benötigt. Das kollidiert wieder mit dem Ziel, so wenig Speicher wie möglich zu nutzen. Einziger Vorteil war der, dass die CMapStringToOb “threadsave” sind. Aber da wir auch selber etwas von Programmierung verstehen und wissen, wie wir die Threads voreinander schützen können, hat uns dieser Vorteil dieser Klasse nicht wirklich viel gebracht.
Wir waren also gezwungen, eine neue Lösung zu entwickeln, die wesentlich performanter und ”threadsave” sein sollte. Wenn ForeCheck also mit einem Thread speichern möchte, müssen die selben Mappen vor anderen Threads geschützt werden. Und genau das passiert während der gesamten Laufzeit von ForeCheck ständig. Solange nur lesend auf die Mappen zugegriffen wird, gibt es auch mit der Standardlösung keine Probleme. Schwierigkeiten treten erst auf, wenn Lese- und Schreibvorgänge gleichzeitig zugreifen. In einem solchen Fall muss es eine “Vorfahrtsregelung” geben. Dazu wurde von mir ein entsprechender Mechanismus entwickelt. Zwar wurde das System durch diese Einrichtung etwas langsamer, trotzdem hatten wir gegenüber anderen Klassen immer noch einen deutlichen Geschwindigkeitsvorteil.
Außerdem mussten für ForeCheck neue Funktionen, wie bspw. die Sortierfunktionalität, neu entwickelt werden.

Wie sieht die Zukunft von Forecheck aus?
Es mangelt nicht an Ideen – die Wunschliste ist lang. Sehr wahrscheinlich sind aber die folgenden Features für eine der kommenden Versionen:
- Fernsteuerung
- Mehrprojektverwaltung (automatische Abarbeitung einer Domainliste)
Man darf also festhalten, dass ForeCheck eigentlich kaum etwas mit bekannten SEO-Analyse-Tools gemein hat, da es bei der Konzeptionierung vor allem darauf ankam, extrem große Datenmengen zu verwalten und schnell zugänglich zu machen. Die Bemühungen bei der Entwicklung sind nun nach dreijähriger Entwicklungsarbeit am Live-Produkt zu testen. Mirsad, vielen Dank für diesen technischen Einblick.


[...] Zum Interview mit dem ForeCheck Chef-Entwickler [...]