Je naviguais encore hier soir sur le blog d’un expert en prog. quand je me suis rappelé que je devais revoir une de mes fonctions SEO pour récupérer des choses intéressantes sur mes positionnements.
Retrouver les mots clés tapés sur les moteurs de recherche permet bien des choses, comme faire des nuages de tags optimisés par exemple.
Mais tout récupérer est encore mieux…Avec une liste des mots clés, le moteur de recherche utilisé, la page ou le visiteur vous a trouvé, etc…Autant de bonnes choses qui vous permettent d’orienter votre contenu pour booster un peu tout celà.
J’avais déjà une petite fonction PHP qui permettait de récupérer ses mots clés, moteur & page. Mais quelque peu buggé car comme vous le verrez dans les commentaires, si le visiteur demande 100 affichages par page comment on peut le faire sur Google ou Yahoo, la fonction perd vite les pédales et vous laissera penser que vous êtes sur la première page alors que le type a affiché 100 résultat…Résultat faussé, vous pouvez très bien être 99ème sur la requête.
C’est donc en vadrouillant sur le Blog de Jay (Vous auriez tord de ne pas allez y jeter un oeil) pour des recherches pour mon nouvel engin de guerre ( sur lequel tourne actuellement ce blog ) que j’ai repensé à cette fonction à modifier.
Le code PHP
function analyse($ref) { $refe = parse_url($ref); parse_str($refe['query'], $query); $host = $refe['host']; switch ($host) { //GOOGLE case (strpos($host, '.google.') !== false): $result = array( 'moteur' => 'google', 'search' => $query['q'], 'words' => explode(' ', trim($query['q'])), 'page' => (isset($query['start']))? ($query['start'] / 10) + 1 : 1, 'result/page' => (isset($query['num']))? $query['num']:10 ); break; //Yahoo case (strpos($host, '.yahoo.') !== false): $result = array( 'moteur' => 'yahoo', 'search' => $query['p'], 'words' => explode(' ', trim($query['p'])), 'page' => (isset($query['b']))? (($query['b'] - 1) / 10) + 1 : 1, 'result/page' => (isset($query['n']))? $query['n']:10 ); break; //Bing case (strpos($host, '.bing.') !== false): $result = array( 'moteur' => 'bing', 'search' => $query['q'], 'words' => explode(' ', trim($query['q'])), 'page' => (isset($query['first']))? (($query['first'] - 1) / 10) + 1 : 1, 'result/page' => 10 ); break; } return $result; } echo ' <pre>'; print_r (analyse('http://www.google.fr/search?aq=f&sourceid=chrome&ie=UTF-8&q=code+seo')); print_r (analyse('http://www.google.fr/search?start=30&aq=f&sourceid=chrome&ie=UTF-8&q=black+hat')); print_r (analyse('http://www.google.fr/search?aq=f&num=50&sourceid=chrome&ie=UTF-8&q=code+seo')); print_r (analyse('http://fr.search.yahoo.com/search;_ylt=A7x9QXu2ymRNwn4AWwhjAQx.?p=seo&ei=UTF-8&fr=yfp-t-703&pstart=1&b=31')); print_r (analyse('http://www.bing.com/search?q=seo&go=&filt=all&qs=n&sk=&sc=8-3&first=31&FORM=PERE2')); print_r(analyse('http://fr.search.yahoo.com/search?n=40&ei=UTF-8&va_vt=any&vo_vt=any&ve_vt=any&vp_vt=any&vd=all&vst=0&vf=all&vm=p&fl=0&fr=yfp-t-703&p=seo&vs=')); echo '</pre> ';
Qui vous donnera un résulat de ce type:
Array ( [moteur] => google [search] => black hat [words] => Array ( [0] => black [1] => hat ) [page] => 4 [result/page] => 10 ) Array ( [moteur] => google [search] => code seo [words] => Array ( [0] => code [1] => seo ) [page] => 1 [result/page] => 50 ) Array ( [moteur] => yahoo [search] => seo [words] => Array ( [0] => seo ) [page] => 4 [result/page] => 10 )
Vous récupérez ainsi tout ce qu’il faut pour faire des statistiques correctes sur votre site Web. Et si vous avez de la ressource serveur à dépenser, vous avez déjà de quoi lancer un belle requête Curl pour trouver votre position exacte sur les moteurs.
Voili voilou, amusez-vous bien.
(2034 lectures)