neues von openseodata, die Keywordbasis wurde aktualisiert

Etwas länger war es ruhig um „openseodata“. Um so mehr freue ich mich, dass dort ein Lebenszeichen her kommt.

Der Fabian hat die Keyworddatenbasis aktualisiert! Somit sind nun über 1 mio. Keywords in der Datenbank. Außerdem hat Fabian nun ein Deal mit meinem Werbepartner „SEOlytics“, der von nun an den openseodata Sichtbarkeitsindex berechnet… nähere gibt es hier zu lesen.

Zu gleich wurde an der API (ich nutzte nur die PHP API) auch ein wenig geschraubt und die Array’s, die zurückgeschmissen werden sind ein wenig verändert.
So funktioniert sein Beispiel auf der Webseite nicht wirklich mehr.

Um nun durch das Array zu arretieren muss folgendes geändert werden:

// includes und objekt
include ‚api/openseodata.php‘;
$api=new Openseodata();

// Verwandte Keywords fuer das Wort Regenschirm (suggests)
$keywords=$api->getKeywords(„regenschirm“);

// print_r($keywords[„items“]); // Hier ist die gravierende Änderung :-). Die Daten liegen nicht mehr direkt in $keywords, sondern in $keywords[„item“]

// Arretieren
foreach($keywords[„items“] as $keyword){

… // Code

}

 

 

 

openseodata [quick] API Doku – was liefert die API an Daten?

Wie man erfährt, wird sich die API wohl in naher Zukunft ändern. Dennoch möchte ich schnell ein paar Infos posten um mehr Licht in die jetzige API zu bringen.

Hier liste ich einmal auf, was die einzelnen Funktionen für Daten im Array zurückliefern.
Was man damit anfangen kann überlasse ich jedem selbst.

 


  • bei der Funktion Google-Rankings ($api->getRankings()):
Array
(
    [0] => Array
        (
            [id] => 11840222
            [keywordID] => 2748964
            [urlID] => 138118887
            [domainID] => 27073
            [position] => 1
            [url] => Array
                (
                    [id] => 138118887
                    [domainID] => 27073
                    [url] => de.wikipedia.org/wiki/Regenschirm
                    [anzahlRankendeKeywords] => 24
                    [wordpressBlog] =>
                )

            [domain] => Array
                (
                    [id] => 27073
                    [domain] => de.wikipedia.org
                    [linkPop] => 2795
                    [pagerank] => 8
                    [expired] =>
                    [subdomain] => 1
                    [anzahlRankendeKeywords] => 99171
                    [sichtbarkeit] => 0
                    [datumDenicPruefung] => Array
                        (
                            [@class] => sql-timestamp
                            [$] => 2010-11-15 22:19:01.0
                        )

                    [datumIpPruefung] => Array
                        (
                            [@class] => sql-timestamp
                            [$] => 2010-09-03 22:02:37.0
                        )

                    [ip] => 91.198.174.232
                    [domainID] => 67606
                    [prGespiegeltFormatiert] => Nein
                    [datumDenicPruefungFormatiert] => 15.11.2010 22:19:01
                    [anzahlIpPruefungen] => 0
                    [anzahlDenicPruefungen] => 0
                    [wordpressBlog] =>
                    [datumPagerankErmittlung] => Array
                        (
                            [@class] => sql-timestamp
                            [$] => 2010-09-17 20:20:18.0
                        )

                    [datumWordpressPosting] => Array
                        (
                            [@class] => sql-timestamp
                            [$] => 2010-11-15 21:12:28.0
                        )

                    [datumWordpressPingback] => Array
                        (
                            [@class] => sql-timestamp
                            [$] => 2010-11-15 21:12:28.0
                        )

                    [followBlog] =>
                )

            [datum] => Array
                (
                    [@class] => sql-timestamp
                    [$] => 2010-12-16 19:49:37.0
                )

            [maps] =>
            [seite] => 1
        )
)
  • Bei der Funktion Backlinkquellen finden ($api->getBacklinkQuellen()):
Array
(
    [0] => Array
        (
            [position] => 3
            [url] => Array
                (
                    [url] => board.pennergame.de/showthread.php?t=40458
                    [anzahlRankendeKeywords] => 0
                    [typ] => PHPbb Forum
                    [wordpressBlog] =>
                )

            [datum] => 2011-06-23 13:53:59.528 CEST
            [keyword] => Array
                (
                    [keyword] => regenschirm b
                    [googleSuggestAbfrage] =>
                    [produkt] =>
                    [datumGefunden] => 2011-06-23 13:53:59.528 CEST
                    [projektKeyword] =>
                )

            [maps] =>
        )
)
  • Bei der Funktion Keyword-Recherche ($api->getKeywords()):
Array
(
    [0] => Array
        (
            [id] => 2748964
            [keyword] => regenschirm
            [googleTreffer] => 587000
            [lokalesSuchvolumen] => 5400
            [globalesSuchvolumen] => 6600
            [cpc] => 0.64
            [mitbewerberdichte] => 42
            [staerksterMonat] => 5
            [datumRankingErmittlung] => Array
                (
                    [@class] => sql-timestamp
                    [$] => 2010-12-16 19:54:08.0
                )

            [datumAdwordsdatenErmittlung] => Array
                (
                    [@class] => sql-timestamp
                    [$] => 2010-12-17 05:19:19.0
                )

            [datumAdwordsdatenErmittlungVersuch] => Array
                (
                    [@class] => sql-timestamp
                    [$] => 2010-12-17 05:18:38.0
                )

            [anzahlLeerzeichen] => 0
            [googleSuggestAbfrage] => 1
            [produkt] => 1
            [datumGefunden] => Array
                (
                    [@class] => sql-timestamp
                    [$] => 2010-09-24 23:49:42.0
                )

            [projektKeyword] =>
        )
)

Ich bleibe dabei. Die API liefert wirklich gute und nützliche Daten. Einziges Manko bleibt, dass es noch zu wenig Daten für meine SEO-Gebiete sind… aber scheinbar sind das nur Nieschen :-).

Weiter so Fabian und hoffentlich nimmst du es mir nicht übel, dass ich das hier detailliert aufliste.

Erste Erfahrung mit openseodata

Schon im letzten Jahr viel mein Augenmerk auf „openseodata“, nur leider hatte ich es zeitlich nicht geschafft mir die API einmal genauer anzuschauen. Nachdem der Entwickler (Fabian Rossbacher) mich mal über XING kontaktierte (Taktisch natürlich sehr klug, indem er mir erst einmal Honig um den Mund schmierte :-)) kam mir die API wieder in Erinnerung und ich überlegte, was man damit anfangen könnte.

Nach ein paar Tagen herumspielen mit der API habe ich auch ein paar gute Ideen für SEO Tools entwickelt, die die API anzapfen. Das ein oder andere Tool hat schon einen guten Status und dürfte vielen (kleinen) SEO’s helfen ihr tägliches Leben auch ohne teure Softwareaccounts gut über die Bühne zu bekommen. Ein komplettes ersetzten der großen Tools ist im Moment aber auf Grund von „zu wenig Daten über die API“ nicht wirklich ratsam oder möglich.

Weiteres zu den Tools möchte ich jetzt nicht weiter verraten, da ich die neuen Tools eigentlich erst nach dem Relaunch (der schon ewig überfällig ist 🙁 ) von www.seo-ranking-tools.de anpreisen möchte.

Ist jemand aber besonders interessiert an den Tools, so kann er mich gerne über Tobias Glomb kontaktieren… dann reden wir mal über einen Gastzugang :-).

Also, zurück zur API:

Die API von (openseodata) ist recht einfach und übersichtlich aufgebaut. Es gibt zwar noch nicht sonderlich viele Funktionen aber die Daten die zurückgeliefert werden sind brauchbar und logisch aufgeteilt. Zurück kommt meist ein Array, welches man gut mit „print_r()“ analysieren kann, denn eine API Dokumentation fehlt leider(… hint to Fabian 🙂 ).

Leider ist die Datenbank noch nicht mit allzu vielen Keywords und URL’s gefüllt, so dass viele Anfragen ohne Ergebnis zurückkommen. Der Fabian will dies mit einem „Community Sammler“ zeitnahe nachbesser, so dass schnell Daten nachfließen.

Ich persönlich hoffe, dass das Projekt nicht einschläft und der „Sammler“ jetzt schnell folgt. Ich werde sicherlich noch das ein oder andere Tool um die Datenbank herum bauen.

Schaut euch die API doch einmal an und wer ne Idee für ein Tool hat, kann mich auch kontaktieren :-).

 

Euer Tw!tch

SEO-freundliche URL’s version 2

vor einigen Monaten habe ich eine Version gepostet, die für die ersten Zwecke ganz gut war, nun hier die zweite Version, die noch ein paar Sonderzeichen mehr umsetzt und auch ein wenig schneller ist.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/** 
 * Wandelt einen String in einen SEO-freundlichen String um 
 * 
 * @copyright 2008 
 * @version 0.2 
 * 
 * @param string $string 
 * @return string 
 */ 
function SEOfriendlyURL($string){ 
    $string = str_replace("ä", "ae", $string); 
    $string = str_replace("ö", "oe", $string); 
    $string = str_replace("ü", "ue", $string); 
    $string = str_replace("ß", "ss", $string); 
    $string = preg_replace("`[.*]`U","",$string); 
    $string = preg_replace('`&(amp;)?#?[a-z0-9]+;`i','-',$string); 
    $string = htmlentities($string, ENT_COMPAT, 'utf-8'); 
    $string = preg_replace( "`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig|quot|rsquo);`i","1", $string ); 
    $string = preg_replace( array("`[^a-z0-9]`i","`[-]+`") , "-", $string);     
 
    return strtolower(trim($string, '-'));  
 
}

Datumsvergleich in PHP superschnell und superkurz

Man lernt nie aus…

Ich habe es mir zur Angewohnheit gemacht, dass wenn ich ein Datum vergleichen muss, dass ich dieses in das UNIXTIME-Format umwandle. Vorteil des Ganzen ist, dass man schön den Integer-Wert mit „>|<|=“ (und Kombinationen daraus) vergleichen kann.
Ich habe es über Jahre recht umständlich gemacht indem ich mktime u.ä. dafür benutzt habe. Heute habe ich durch Zufall die Funktion „strtotime“ ergooglet :-).

Fazit: Toll 🙂 damit erspare ich mir zwar bloß 2-3 Zeilen Code ist aber bedeutend schneller das Ganze.

Link: http://de2.php.net/manual/de/function.strtotime.php

Beschreibung:
(PHP 4, PHP 5)

strtotime — Wandelt ein beliebiges Datum (englisches Format) in einen UNIX-Zeitstempel (Timestamp) um.
int strtotime ( string $time [, int $now ] )

Diese Funktion erwartet einen String mit einem Datum im englischen Format und versucht diesen in einen Unix-Timestamp umzuwandeln. Versucht wird dies relativ zu dem Timestamp, den Sie mit now angeben. Fehlt diese Angabe, wird die aktuelle Zeit angenommen. Schlägt die Umwandlung fehl, wird -1 zurückgegeben.

Die Funktion strtotime() verhält sich gemäß der Syntax von GNU Date. Daher sollten Sie einen Blick in die GNU Manual Seite » Date Input Formats werfen. Dort wird die gültige Syntax für time beschrieben.