Générateur de (très) longue traîne
Ecrit par 512banque le Vendredi 28 mai 2010 à 14:40 - Catégorie Génération de contenu,Google,Scraping,Scripts PHP
Tenter de se positionner sur des expressions fortement concurrentielles n’est pas forcément un choix judicieux. En effet, certains mots-clés demandent énormément d’efforts et génèrent finalement assez peu de trafic. Le retour sur investissement n’est donc pas au rendez-vous.
Parfois, il vaut mieux tenter de cibler un ensemble de petites requêtes faciles à atteindre, ces requêtes mises bout à bout représentant un trafic non négligeable et dépassant bien souvent les requêtes « star ».
Choisir des expressions de « longue traîne » consiste donc à faire varier l’expression clé principale en utilisant des synonymes et en y ajoutant d’autres mots, tels que la localisation ou d’autres spécificités. Au lieu de chercher à se positionner sur « plombier », on va préférer « plombier dijon » ou « plombier bourgogne » et ainsi de suite pour toutes les grosses villes de france et tous les départements.
Pour trouver des expressions de longue traîne, on peut utiliser notre imagination, mais également les suggestions de google (google suggest) ou la fameuse « roue magique »… Ou bien les deux en même temps !
J’ai ainsi couplé le script de la wonder wheel à celui de google suggest, les deux se trouvant sur Seoblackout
J’ai donc cherché le mot clé « referencement », et en dédoublonné ça m’a donné 650 expressions. Evidemment, il faut faire le tri car on trouvera des expressions aussi peu ciblées que « chiffre d affaires restauration rapide » ou « taux de transformation chimie » mais rien ne vaut une review manuelle pour un travail propre.
Au niveau du script, je sais qu’il existe de nombreuses pistes d’amélioration, mais franchement entre nous… Ca marche et ça me va bien comme ça
Voici la bête :
<?php header('Content-Type: text/html; charset=UTF-8'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Long tail</title> <meta http-equiv="content-style-type" content="text/css" /> </head> <body> <?php // Auteurs du script : Beunwa http://divioseo.fr/ & Tiger http://www.seoblackout.com // Modifications par 512banque http://www.deliciouscadaver.com // Url article du script pour bugs, commentaires... : http://www.seoblackout.com/2010/05/28/generateur-de-tres-longue-traine/ //Site Web : http://www.seoblackout.com $etape = strip_tags($_GET['etape']); switch($etape) { case '1': ?> <form action="?etape=2" method="post"> <table><tr><td> Keyword : <textarea name="kw" rows="10"> <?php if ((isset($_POST['kw'])) && $_POST['kw']!='') { $q=strip_tags($_POST['kw']); foreach (google_wheel($q) as $kws) { echo $kws."\n"; } flush(); } else { echo 'Veuillez saisir un mot-clé !'; } ?></textarea> </td><td> et <textarea name="mix2" rows="10"><?php echo strip_tags($_POST['mix2'])?></textarea> </td><td> <br /> Langue : <select name="lang"> <option value="fr">FR</option> <option value="en">EN</option> </select> <br /> Profondeur : <select name="depth"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <br /> Alphabet :<input type="checkbox" name="alph" /> </td></tr></table> <br /> <input type="submit" value="Go" /> </form> <?php break; case '2': ?> <form action="?etape=3" method="post"> <h3>Dédoublonner et faire le ménage</h3> <form action="?etape=3" method="post"> <textarea rows="20" cols="60" name="kw"> <?php if(isset($_POST['kw'])){ $lang = strip_tags($_POST["lang"]); if($lang == '') $lang = "fr"; $depth = strip_tags($_POST["depth"]); if($depth == '') $depth = "1"; $kwsd = array(); $kwsd=explode("\n",trim(strip_tags($_POST["kw"]))); foreach ($kwsd as $lst) { if($lst != "\n"){ //mots cles simple ggSuggest($lst, $lang, $depth); //mots cles avec compléments $kws2 = array(); $kws2=explode("\n",strip_tags($_POST["mix2"])); foreach ($kws2 as $mix2) { ggSuggest($lst.$mix2, $lang, $depth); } //alphabet if(strip_tags($_POST["alph"]) == "on"){ $alpha = "a"; while($alpha != "z"){ ggSuggest($lst.' '.$alpha, $lang, $depth); $alpha = ++$alpha; } } } } } ?> </textarea> <br /> <input type="submit" value="Go" /> </form> <?php break; case '3': $keywords = explode("\r\n", $_POST['kw']); foreach($keywords as $k=>$v) { if(preg_match('#^(.*) [\w]$#',$v)) { unset($keywords[$k]); } } $keywords = array_unique($keywords); ?> <h3><?php echo count($keywords); ?> expressions uniques générées</h3> <p>Pensez à faire le tri ;)</p> <?php foreach($keywords as $k=>$v) { echo $v.'<br />'; } break; default: ?> <form action="?etape=1" method="POST"> Saisir un mot-clé : <input id="kw" name="kw" type="text" size="" /><br /> <button id="submit" name="submit" type="submit" value="submit">submit</button> </form> <?php } function google_wheel($q) { $res_final = array(); $q=urlencode($q); $search_url="http://www.google.com/search?q=$q&hl=fr&tbo=1&tbs=ww:1"; $ch = curl_init(); curl_setopt($ch, CURLOPT_USERAGENT, 'Opera/9.63 (Windows NT 5.1; U; fr) Presto/2.1.1'); curl_setopt($ch, CURLOPT_URL,$search_url); curl_setopt($ch, CURLOPT_FAILONERROR, true); curl_setopt($ch, CURLOPT_REFERER, $search_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); $res= curl_exec($ch); curl_close($ch); if ($res) { if (preg_match('/"r":\[(.*?)\]}\)/',$res,$matches)) { $response=str_replace('"','',$matches[1]); $response2=explode(',',$response); $response3=''; foreach ($response2 as $key => $value) { $value2=urlencode($value); $search_url2="http://www.google.com/search?q=$value2&hl=fr&tbo=1&tbs=ww:1"; $ch2 = curl_init(); curl_setopt($ch2, CURLOPT_USERAGENT, 'Opera/9.63 (Windows NT 5.1; U; fr) Presto/2.1.1'); curl_setopt($ch2, CURLOPT_URL,$search_url2); curl_setopt($ch2, CURLOPT_FAILONERROR, true); curl_setopt($ch2, CURLOPT_REFERER, $search_url2); curl_setopt($ch2, CURLOPT_RETURNTRANSFER,true); $res2= curl_exec($ch2); curl_close($ch2); if ($res2) { if (preg_match('/"r":\[(.*?)\]}\)/',$res2,$matches2)) { $response.=','.str_replace('"','',$matches2[1]); } } } $response3=array_unique(explode(',',$response)); asort($response3); foreach ($response3 as $key => $value) { $res_final[]=str_replace(array('r2:','[',']'),'',$value); flush(); } } } return array_unique($res_final); } function ggSuggest($kw, $lang, $depth = 1, $inc = 1){ global $tabKw; $tabKw[] = $kw; $url = 'http://www.google.com/complete/search?hl='.$lang.'&js=true&qu='. urlencode($kw); if (function_exists('curl_init')) { $header = array( "Accept: text/xml,application/xml,application/xhtml+xml, text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", "Accept-Language: fr-fr,fr;q=0.7,en-us;q=0.5,en;q=0.3", "Accept-Charset: utf-8;q=0.7,*;q=0.7", "Keep-Alive: 300"); $ch = curl_init(); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com/'); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)' ); curl_setopt($ch, CURLOPT_HTTPHEADER, $header ); curl_setopt($ch, CURLOPT_URL, $url); $result=curl_exec ($ch); curl_close ($ch); } else { $result= file_get_contents($url); } preg_match_all('/\["(.*?)",/si', $result, $kwgoogle, PREG_SET_ORDER);//mot preg_match_all('/\,"(.*?)résultats",/si', $result, $nbresult, PREG_SET_ORDER);//nb resultats if ($kwgoogle=='' || $inc > $depth) { return $tabKw; }else { $ii = 0; foreach($kwgoogle as $v){ $tk = strip_tags($v[1]); if(!in_array($tk, $tabKw)){ $tk = str_replace ('\r',"", $tk); $kwr = $nbresult[$ii][1]; if($kwr == "") $kwr = 0; //echo $kwr.' ; '.$tk.'<br />'; je ne veux pas du nombre de résultats echo $tk."\n"; $ii++; flush(); ggSuggest($tk, $lang, $depth, $inc+1); } } } return $tabKw; } ?>
Pour utiliser cette liste, il vous suffit créer des pages uniques suffisament différentes les unes des autres, une pour chaque mot-clé. Le meilleur moyen de faire ça, c’est d’utiliser un script de spin de votre fabrication ou bien d’acheter un script de content spinning.
Et puisque Tiger m’offre un deuxième lien, j’en profite pour vous présenter le futur site de mon agence de référencement à Chambéry.
Bonne longue traîne à tous
Commentaires (27)
Catégorie: Génération de contenu,Google,Scraping,Scripts PHP
- Ajouter cet article à :
- Del.icio.us -
- Digg


