Script Google Suggest: détecter les nouvelles suggestions de suggestions

écrit par Aymeric

J'ai crée un petit script PHP dernièrement qui permet d'être alerté par mail dès qu'une nouvelle suggestion fait son apparation par rapport à un mot-clé dans Google suggest (je vous recommande d'y jeter un oeil pour mieux comprendre cet article et son intérêt). Je me suis dit après réflexion qu'il était trop bête de s'en arrêter là, du coup j'ai rajouté une boucle pour découvrir les nouvelles suggestions de suggestions, sur un niveau de profondeur (aussi un peu inspiré par le script Google Suggest de @seoblackout). Si je veux surveiller les nouvelles requêtes similaires à "poulet roti" (site de recette de cuisine du dimanche), je vais aussi surveiller les suggestions de "poulet roti recette", "poulet roti au citron", "poulet roti cuisson" ... ce qui élargit le champ de mots-clés. Un schéma sera peut-être plus clair:

Comme je trouvais dommage que les suggestions de suggestions restent "juste" dans un fichier texte sur le serveur, j'ai rajouté une fonction pour qu'un email soit envoyé lors du premier lancement du script avec l'ensemble des mots proposés par Google Suggest, voici un exemple du mail reçu (non je ne fais pas de keyword stuffing sur poulet roti !):

Les 58 termes suivants correspondent aux recherches fréquentes des internautes relatives à l'expression "poulet roti":


"poulet roti", "poulet roti au four", "poulet roti four", "poulet rotie" "poulet roti recette", "poulet roti a la broche" ,, "poulet roti au citron", "poulet roti en cocotte", "poulet roti citron", "poulet roti cuisson", "poulet roti au four marmiton", "poulet roti au four recette", "poulet roti au four temps de cuisson", "poulet roti au four ricardo", "poulet roti au four marocain", "poulet roti au four a la broche", "poulet roti au four facile", "poulet roti au four combien de temps", "poulet roti au four au miel", "poulet roti four recette", "poulet roti four temperature", "poulet roti four chaleur tournante", "poulet roti four broche", "poulet roti four electrique", "poulet roti four froid ou chaud", "poulet roti four marmiton", "poulet roti four temps de cuisson", "poulet roti four pomme de terre", "poulet rotie au four", "poulet rotie recette", "poulet rotie pomme de terre", "poulet rotie a la marocaine", "poulet rotie a la broche", "poulet rotie four", "poulet rotie facon basquaise", "poulet rotie au citron", "poulet rotie broche", "poulet roti recette facile", "poulet roti recette marmiton", "poulet roti recette four", "poulet roti recette au four", "poulet roti recette tunisienne", "poulet roti recette simple", "poulet roti recette marocaine", "poulet roti recette originale", "poulet roti a la broche au four", "poulet roti au citron confit", "poulet roti au citron marocain", "poulet roti au citron et romarin", "poulet roti en cocotte minute", "poulet roti en cocotte au four", "poulet roti en cocotte en fonte", "poulet roti citron confit", "poulet roti citron miel", "poulet roti citronnelle", "poulet roti citron vert", "poulet roti cuisson four", "poulet roti cuisson lente"
(enfin selon Google Suggest!)

Afin d'être informé dès qu'une nouvelle suggestion est disponible via l'API de Suggest, on pourra le lancer avec lynx dans un cronjob quotidien:

#lynx -dump "http://www.monsite.com/script-suggest/suggest.php?keyword=poulet roti&email=monemail@domain.com&lg=fr"

Si une ou plusieurs suggestions relatives à votre mot-clé apparaîssent dans Google Suggest, vous en serez informé par mail afin de vous positionner dessus le plus rapidement possible [Mode WhiteHat=on]encore faut-il qu'ils soient pertinents par rapport à vos pages de destination[/Mode WhiteHat=off]. Voici le script, vos remarques pour l'améliorer sont les bienvenues ! (je ne suis pas développeur donc il y avait peut être plus simple...)

<?php

/*
######################################
###### Veilleur Google Suggest #######
###### ----------------------- #######
###   Script provenant du site:    ###
###   http://www.yapasdequoi.com   ###
###           @aymerictwit         ###
###                                ###
###      **  Version 2.0  **       ###
###                                ###
######################################

1) Il faut appeler le script de cette manière:
http://www.monsite.com/script-suggest/suggest.php?keyword=poulet roti&email=monemail@domain.com&lg=fr

2) Concernant le choix de la langue, la liste des valeurs dispo est ici:
http://www.google.com/cse/docs/resultsxml.html#interfaceLanguages
*/

//Adresse du destinataire
$monemail=$_GET["email"];
//Signature du mail
$sign='(selon Google Suggest)';
//Langue de l'interface Google
$lg=$_GET["lg"];

//DEBUT DU SCRIPT, ENFIN!

//récupérer les suggestions via CURL
function curlsuggest ($suggest,$lg='fr') {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'http://www.google.com/complete/search?output=toolbar&oe=utf8&hl='.$lg.'&q='.$suggest);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$resultat=curl_exec ($ch);
curl_close ($ch);
//on transforme le résultat XML en objet
return simplexml_load_string($resultat);
}

//Envoyer un email en cas de nouvelles suggestions
function email($i,$originalkeyword,$pourlemail,$monemail,$sign) {
//Variables pour l'envoi du mail
$headers ='From: "Veilleur de Google Suggest"<'.$monemail.'>'."\n";
$headers .='Content-Type: text/html; charset="utf-8"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

if (!file_exists($originalkeyword.'.txt') && $i!="0") mail($monemail,'Recherches relatives à "'.$originalkeyword.'" dans Google Suggest','Première exécution du script Google Suggest<br /><br />Les '.$i.' termes suivants correspondent aux recherches fréquentes des internautes relatives à l\'expression "'.$originalkeyword.'": '.$pourlemail.$sign,$headers);

elseif ($i=="1") mail($monemail,'Nouvelle recherche relative à "'.$originalkeyword.'" dans Google Suggest','Le terme suivant: '.$pourlemail.'correspond à une nouvelle recherche fréquente des internautes '.$sign,$headers);

elseif ($i>"1") mail($monemail,'Nouvelles recherches relatives à "'.$originalkeyword.'" dans Google Suggest','Les '.$i.' termes suivants: '.$pourlemail.'<br />'.'correspondent à de nouvelles recherches fréquentes des internautes '.$sign,$headers);

elseif ($i=="0") mail($monemail,'Recherches relatives à "'.$originalkeyword.'" dans Google Suggest','Il n\'y a aucune suggestion relative à l\'expression "'.$originalkeyword.'": '.$pourlemail,$headers);
}

//On vérifie la présence du mot-clé en GET dans l'URL
if (isset($_GET["keyword"]) && isset($_GET["email"]) && isset($_GET["lg"])){
$keyword=stripslashes(str_replace(array('%20',' '),array('+','+'),$_GET["keyword"]));
$keyword_filename=str_replace(array('+','\\'),array('_',''),$_GET["keyword"]);

//si le mot-clé a déjà été recherché dans Suggest
//on charge ses déclinaisons dans une variable
if (file_exists($keyword_filename.'.txt')) {
$filecontent=file_get_contents($keyword_filename.'.txt');
}

//on cherche les suggestions de notre mot-clé
$xmlsuggest = curlsuggest($keyword,$lg);
$i=0;

//On fait une boucle pour appeler les "suggestions de suggestions"
foreach ($xmlsuggest->CompleteSuggestion as $CompleteSuggestion) {
$keywordforloop=stripslashes(str_replace(array('%20',' '),array('+','+'),$CompleteSuggestion->suggestion['data']));

//on récupère les suggestions relatives aux suggestions de notre mot-clé
$xml = curlsuggest($keywordforloop,$lg);
foreach ($xml->CompleteSuggestion as $CompleteSuggestionloop) {
$suggestion=$CompleteSuggestionloop->suggestion['data'];
if (eregi($suggestion.';', $filecontent))
{
//si le mot-clé proposé était déjà présent lors de notre
//précédente reherche, on ne fait rien
}
else{
//si de nouveaux mots-clés sont suggérés par Suggest,
//on les ajoute au fichier crée précédemment pour ne plus
//le détecter à nouveau
$i++;
$filecontent.= $suggestion.';'."\n";
$pourlemail.= '<br />'.'"'.$suggestion.'" ';
}
}
}

//on s'envoie un mail avec avec le(s) nouveau(x) mot(s)-clé(s) à travailler
if ($i>=1 && file_exists($keyword_filename.'.txt'))  email($i,$keyword_filename,$pourlemail,$monemail,$sign);
//on envoie la liste des suggestion pour la première exécution
elseif (!file_exists($keyword_filename.'.txt')) email($i,$keyword_filename,$pourlemail,$monemail,$sign);

//On écrit les mots clés de Suggest dans un fichier pour le prochain traitement
file_put_contents($keyword_filename.'.txt', $filecontent);
}
else {

//problème de paramètres pour une bonne exécution du script
if (!isset($_GET["keyword"])) {print '- Aucun mot n\'a été renseigné<br />'; $keyword='<b>poulet roti</b>';}
if (!isset($_GET["email"])) {print '- Aucune adresse mail n\'a été renseigné<br />';$email='<b>monemail@domain.com</b>';}
if (!isset($_GET["lg"]))  {print '- Aucune langue d\'interface n\'a été renseigné<br />';$lg='<b>fr</b>';}
print '<br />Vous devez appeler le script avec les paramètres sous cette forme:<br />';
print 'http://'.$_SERVER["SERVER_NAME"].$_SERVER["PHP_SELF"].'?keyword='.$keyword.'&email='.$email.'&lg='.$lg;

}
?>

écrit dans Scripts SEO par Aymeric | 16 commentaires

16 commentaires "Script Google Suggest: détecter les nouvelles suggestions de suggestions"

  • Zizounnette dit:
  • Referencement Ex dit:
  • Fred dit:
  • Referencement Ex dit:
  • brissa dit:
  • Jerome dit:
  • Mikaël dit:
  • Jérôme dit:
  • Google Suggest, drôle de comportement dit:
  • Antoine dit:
  • Deleter23 dit:
  • Jerome dit:
  • vincent dit:
  • Surfanna dit:
Ajoutez un nouveau commentaire