Générer les keywords à la volée
5 messages • Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
Générer les keywords à la volée
Avec la bufferisation des sorties, PHP permet de faire un prétraitement de la page avant l'envoi au navigateur. On peut par exemple généré à la volée les paramètres alt et title de tous les tags <img> dans la page.
Ici je vous propose mon script que j'utilise pour générer les mots clefs d'une page.
Dans la page PHP qui génère le HTML, dans l'entete HTML on mettra
<meta name="keywords" value="--KEYWORDS--">
--KEYWORDS-- sera remplacé par les mots clefs.
Cette méthode n'est pas forcément la meilleur mais elle marche pour moi.
Ici je vous propose mon script que j'utilise pour générer les mots clefs d'une page.
- Code: Tout sélectionner
setlocale(LC_CTYPE, 'fr_FR');
// bufferization des sorties text afin de pouvoir faire un prétraitement
// avant d'envoyer au navigateur
ob_start("my_ob_handler");
function unaccent($text) {
$trans = get_html_translation_table(HTML_ENTITIES); //Get the entities table into an array
foreach ($trans as $literal => $entity) { // Create two arrays, for accented and unaccented forms
if (ord($literal) >= 192) { // Don't contemplate other characters such as fractions, quotes etc
$replace[] = substr($entity, 1, 1); //Get 'E' from string '&Eaccute' etc.
$search[] = $literal;
}
} //Get accented form of the letter
return str_replace($search, $replace, $text);
}
// Extrait du corps de la page HTML générée tous les mots et couple de mots distinct
// puis trie la list en mettant en haut les mots et couple de mots les plus fréquents
function getWords($string, $weight=3) {
// Petite astuce pour extraire les mots clefs des paramètres alt et title
$noTag = preg_replace("/alt=\"(.*?)\"/", "> \\1 <", $string);
$noTag = preg_replace("/title=\"(.*?)\"/", "> \\1 <", $noTag);
// Il faut rajouter un espace avant les < et > afin qu'une fois one élémine les
// tag les mots ne soient pas collés les uns aux autres la où il y avait le tag
$noTag = preg_replace('/</', ' <', $noTag);
$noTag = preg_replace('/>/', '> ', $noTag);
// On élimine les tags
$noTag = html_entity_decode(strip_tags($noTag));
// On vire les retours chariot, retours à la ligne et tabulation
$noTag = preg_replace('/[\n\r\t]/', ' ', $noTag);
$noTag = preg_replace('/ /', ' ', $noTag);
// On enlève les accents à toutes les lettres
$noTag = unaccent($noTag);
// On remplace tous les caractères non alphanumériques en espace
$noTag = eregi_replace("[^a-z0-9]", " ", $noTag);
// Minuscules
$noTag = strtolower($noTag);
// Mise en tableau de tous les mots de la page
$words = array();
$words = explode(" ", $noTag);
$uniqWords = array();
// Détection des mots distinct avec leur poids selon la fréquence
// d'apparition dans la page
foreach($words as $word) {
if(!empty($word)) $uniqWords[$word]++;
}
reset($words);
// Détection de couples de mots distincts avec poids
for($i = 0; $i < count($words); $i++) {
if(!empty($words[$i]) && !empty($words[$i + 1])) {
$coupleOfWords = $words[$i] . " " . $words[$i + 1];
$uniqWords[$coupleOfWords]++;
}
}
// Tri selon le poids
ksort($uniqWords);
// Génération des mots clefs selon leur poids
// On ne garde que les mots dont le poids et de minimum $weight
while(list($key, $val) = each($uniqWords)) {
if(strlen($key) > 2 && $val > $weight) {
$keywords .= $key . ", ";
}
}
return $keywords;
}
// Fonction callback pour la bufferisation
function my_ob_handler(&$buffer) {
// Génération des mots clefs
$keywords = getWords($buffer, 2);
// Remplacement de la chaine --KEYWORDS-- présente dans le template par les
// mots clefs générés.
$buffer = preg_replace("/--KEYWORDS--/", "$keywords", $buffer);
// Compression GZip
return ob_gzhandler($buffer, 5);
}
Dans la page PHP qui génère le HTML, dans l'entete HTML on mettra
<meta name="keywords" value="--KEYWORDS--">
--KEYWORDS-- sera remplacé par les mots clefs.
Cette méthode n'est pas forcément la meilleur mais elle marche pour moi.
Je ne sais pas si c'est bon dans le sens où les moteurs tiennent déjà compte de ces mots-clés dans le corps de la page.
Si tu met des mots-clés (avec éventuellement des fautes de frappes), dans ta meta, je pense que c'est juste un plus par rapport à ta méthode.
Je passe beaucoup de temps à générer mes mots-clés et description sur mes page, et je me sers de plusieurs site :
http://inventory.overture.com/d/searchi ... uggestion/
https://account.fr.miva.com/advertiser/ ... Login=true
https://adwords.google.com/select/KeywordSandbox
Si tu met des mots-clés (avec éventuellement des fautes de frappes), dans ta meta, je pense que c'est juste un plus par rapport à ta méthode.
Je passe beaucoup de temps à générer mes mots-clés et description sur mes page, et je me sers de plusieurs site :
- Code: Tout sélectionner
setlocale(LC_CTYPE, 'fr_FR');
// bufferization des sorties text afin de pouvoir faire un prétraitement
// avant d'envoyer au navigateur
ob_start("my_ob_handler");
function unaccent($text) {
$trans = get_html_translation_table(HTML_ENTITIES); //Get the entities table into an array
foreach ($trans as $literal => $entity) { // Create two arrays, for accented and unaccented forms
if (ord($literal) >= 192) { // Don't contemplate other characters such as fractions, quotes etc
$replace[] = substr($entity, 1, 1); //Get 'E' from string '&Eaccute' etc.
$search[] = $literal;
}
} //Get accented form of the letter
return str_replace($search, $replace, $text);
}
// Extrait du corps de la page HTML générée tous les mots et couple de mots distinct
// puis trie la list en mettant en haut les mots et couple de mots les plus fréquents
function getWords($string, $weight=3,$maxwords=1000) {
// Petite astuce pour extraire les mots clefs des paramètres alt et title
$noTag = preg_replace("/alt=\"(.*?)\"/", "> \\1 <", $string);
$noTag = preg_replace("/title=\"(.*?)\"/", "> \\1 <", $noTag);
// Il faut rajouter un espace avant les < et > afin qu'une fois one élémine les
// tag les mots ne soient pas collés les uns aux autres la où il y avait le tag
$noTag = preg_replace('/</', ' <', $noTag);
$noTag = preg_replace('/>/', '> ', $noTag);
// On élimine les tags
$noTag = html_entity_decode(strip_tags($noTag));
// On vire les retours chariot, retours à la ligne et tabulation
$noTag = preg_replace('/[\n\r\t]/', ' ', $noTag);
$noTag = preg_replace('/ /', ' ', $noTag);
// On enlève les accents à toutes les lettres
$noTag = unaccent($noTag);
// On remplace tous les caractères non alphanumériques en espace
$noTag = eregi_replace("[^a-z0-9]", " ", $noTag);
// Minuscules
$noTag = strtolower($noTag);
// Mise en tableau de tous les mots de la page
$words = array();
$words = explode(" ", $noTag);
$uniqWords = array();
// Détection des mots distinct avec leur poids selon la fréquence
// d'apparition dans la page
foreach($words as $word) {
if(!empty($word)) $uniqWords[$word]++;
}
reset($words);
// Détection de couples de mots distincts avec poids
for($i = 0; $i < count($words); $i++) {
if(!empty($words[$i]) && !empty($words[$i + 1])) {
$coupleOfWords = $words[$i] . " " . $words[$i + 1];
$uniqWords[$coupleOfWords]++;
}
}
// Tri selon le poids
ksort($uniqWords);
// Génération des mots clefs selon leur poids
// On ne garde que les mots dont le poids et de minimum $weight
$count = 0;
while((list($key, $val) = each($uniqWords)) && ($count<$maxwords)) {
if(strlen($key) > 2 && $val > $weight) {
$keywords .= $key . ", ";
$count++;
}
}
return $keywords;
}
// Fonction callback pour la bufferisation
function my_ob_handler(&$buffer) {
// Génération des mots clefs
$keywords = getWords($buffer, 2);
// Remplacement de la chaine --KEYWORDS-- présente dans le template par les
// mots clefs générés.
$buffer = preg_replace("/--KEYWORDS--/", "$keywords", $buffer);
// Compression GZip
return ob_gzhandler($buffer, 5);
}
ceci sinon pour générer des mots-clés sémantiquement proches:
http://www.metys.net/blog/semantics-related-tags/
(en anglais)
http://www.metys.net/blog/semantics-related-tags/
(en anglais)
5 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Mort du META tag "keywords"
- Comment éviter de se faire voler son nom de domaine...
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- Google signe avec Lycos Europe un accord sur la publicité ciblée
- Balises meta et référencement : les bases à savoir
- La grogne contre AutoLink (Google Toolbar)
- L'affaire du nom de domaine webrankinfo.com
- Spam Report Google : explications en français...
- Référencement vidéo sur Exalead
- Référencement : faut-il abandonner les balises META ?
- les keywords
- option Keywords
- Keywords inutiles?
- script keywords
- [Meta] Keywords
- Keywords IPB
- poison keywords
- Keywords Marketing
- Keywords
- keywords et dilemne
- Meta keywords
- Pb Keywords avec robots
- Keywords et nom de compétiteur
- keywords ... combien exactement ?
- Keywords, title, description ... etc ...
Consultez la description détaillée des produits ou services de Google suivants : Google Website Optimizer
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités









le forum