PhpWebGallery optimisation référencement
By titou on mercredi, 26 octobre 2005, 10:00 - PhpMyGallery - Permalink
Le principe tout d’abord :
Pour qu’une galerie soit convenablement parcourue par les robots d’indexation il faut limiter le nombre de paramètre passés en même temps que l’appel des scripts, les deux scripts qui m’intéressent ici sur PhPWebGallery sont galery.php et picture.php j’ai donc basé mes efforts sur ces deux scripts uniquement.
Une petite partie gênante est aussi le départ de la galerie qui commence avec un appel a index.php suivi par une redirection sur category.php pour cela j’ai simplement lié la page d’accueil de mon site directement sur category.php.
A j’oubliais le principe donc :
J’ai utilisé le principe de rewritting en français dans le texte la réécriture d’adresse et bien sur une modification aussi des scripts, cette partie étant elle aussi indispensable pour éviter le duplicat content ( Contenu dupliqué) qui n’est pas aimé par les moteurs de recherches.
Je vais donc commencer par le rewritting :
Ce que j’ai actuellement pour visualiser ma galerie exemple de l’image ci-contre :Une adresse navigateur qui est :
http://www.passion-tarn-et-garonne.info/galerie/category.php?cat=82
L’adresse des images qui sont :
http://www.passion-tarn-et-garonne.info/galerie/picture.php?cat=82&image_id=288
http://www.passion-tarn-et-garonne.info/galerie/picture.php?cat=82&image_id=283
…
Au niveau de la première adresse (category) pour l’instant je n’ai rien touché mais je pense le faire prochainement au niveau de l’adresse des images voici ce que j’obtiens maintenant.
http://www.passion-tarn-et-garonne.info/galerie/photo-82-288-moulin+des+bordes.htmlEn voyant ce lien vous comprendrez que pour le moteur de recherche il y a la déjà de l’info, par contre une remarque pourquoi ai-je utilisé le signe + pour les espaces dans le titre de mon image ?
C’est simple j’ai lu sur toujours le forum WebRankInfo je ne sais plus où exactement que le moteur MSN n’aime pas trop quand il y a trop de – (tiret) dans l’adresse l’ayant déjà utilisé pour le passage des paramètres [catégories] et [numéro] de l’image j’ai donc opté pour le +, le _ sur google ne permettant pas de séparer les mots.
Au niveau contenu maintenant quand j’affiche l’image ce qui est le rôle de picture.php j’ai revu 3 choses primordiales :
1- modification des liens des imagettes [suivantes] [précédente] sur le même principe car sinon il y aurait du duplicate content en effet il ne faut pas que l’affichage se fasse une fois avec l’adresse
http://www.passion-tarn-et-garonne.info/galerie/photo-82-288-moulin+des+bordes.htmlet une autre fois avec
http://www.passion-tarn-et-garonne.info/galerie/picture.php?cat=82&image_id=288
2- Le meta description maintenant pour mon image est la légende de mon image qui y figure il faudrait là aussi je l’ai lu sur WebRankInfo limiter celle-ci à 195 caractères.
Mon nouveau meta est maintenant :
lt;meta name="description" content="Le moulin des Bordes dans
les Gorges de l'Aveyron entre Bruniquel et Montricoux" />
L’ancien meta en comparaison pour la même adresse sur l’ancienne galerie (de surcroit identique sur toute les pages) :
<meta name="description" content="Galerie d'un Fan du Tarn-Et-Garonne..." />
3- La balise ALT et la balise TITLE de l’image en elle-même, j’ai détourné l’usage des mots-clefs pour le ALT qui est le plus important pour l’indexation et le titre de l’image pour la balise TITLE (cette dernière n’étant pas prise en compte par GOOGLE mais pour les autres robots ?) mais agréable pour l'internaute car apparition d'une bulle contenant le titre lors du survol de l'image.
Voici dans la nouvelle page :
<img class="image" src="./galleries/Tarn-et-garonne/CRW_1064_RJ.jpg"
alt="Tarn-Et-Garonne,Moulin,Gorges,Aveyron,Chaussée" title="Moulin
des Bordes" />
Voici dans l’ancienne page :
<img class="image" src="./galleries/Tarn-et-garonne/CRW_1064_RJ.jpg"
alt="CRW_1064_RJ.jpg"/>
d’ailleurs s’agit-il d’un petit bug de la 1.4.0 mais la balise ALT avant modif contient seulement le nom du fichier (comme pour ne pas me mélanger les pinceaux je ne renomme pas mes fichiers cela n’est pas parlant toujours pour ces maudits moteurs).
Au final voici un comparatif entre les deux versions sur l’affichage de la même image :
Ancienne galerie | Nouvelle galerie | ||||
Garonne | 5 | 5.15% | Moulin | 7 | 6.25% |
Moulin | 4 | 5.15% | Garonne | 6 | 5.36% |
Du | 4 | 4.12% | Des | 6 | 5.36% |
Des | 3 | 4.12% | Bordes | 4 | 3.57% |
Fan | 3 | 3.09% | Aveyron | 4 | 3.57% |
Galerie | 3 | 3.09% | Gorges | 4 | 3.57% |
D'un | 3 | 3.09% | Tarn | 4 | 3.57% |
Bordes | 3 | 3.09% | Du | 3 | 2.68% |
Tarn | 3 | 3.09% | Le | 3 | 2.68% |
Crw | 2 | 2.06% | Montricoux | 2 | 1.79 |
Voilà c’était le devoir d’un soir en espérant ne pas vous avoir trop cassé les pieds. J'en profite pour remercier ici la fabuleuses équipe de PhpWebGallery et les participant des forums respectifs de PhpWebGalley et WebRankInfo
La technique maintenant:
Mise en place d'un fichier .htacces pour faire le rewritting mis au même niveau que picture.php et galery.php (attention de bien lire les conditions chez votre hébergeur car certain hébergeur cache ce fichier ce qui fait qu'il peut être difficile ensuite de l'enlever)RewriteEngine on
RewriteRule ^categorie-.*-([0-9]+)\.html$ /category.php?cat=$1
RewriteRule ^photo-([0-9]+)-([0-9]+)-(.*)\.html$ /galerie/picture.php?cat=$1&image_id=$2 [L]
Modification du fichier include/category_default.inc.php
Ajout de la fonction (trouvée sur le forum WebRankInfo) en début de fichier :function retireAccents($txt) {
// Ici je supprimer l' ou d' ...
$masque = "(.')";
$txt = eregi_replace($masque, "", $txt);
$masque = "[?!]";
$txt = eregi_replace($masque, "", $txt);
$masque = "[àâä@]";
$txt = eregi_replace($masque, "a", $txt);
$masque = "[éèêë€]";
$txt = eregi_replace($masque, "e", $txt);
$masque = "[ïì]";
$txt = eregi_replace($masque, "i", $txt);
$masque = "[ôö]";
$txt = eregi_replace($masque, "o", $txt);
$masque = "[ùûü]";
$txt = eregi_replace($masque, "u", $txt);v
$masque = "[ç]";
$txt = eregi_replace($masque, "c", $txt);
$masque = "[&]";
$txt = eregi_replace($masque, "et", $txt);
$masque = " +";
$txt = eregi_replace($masque, ".", $txt);
return(strtolower($txt));
}
Un plus plus loin modifier comme suivant tojours dans fichier category_default.inc.php:
// url link on picture.php page
//$url_link = PHPWG_ROOT_PATH.'picture.php?cat='.$page['cat'];
$url_link = PHPWG_ROOT_PATH.'photo-'.$page['cat'];
//$url_link.= '&image_id='.$row['id'];
$url_link.= '-'.$row['id'].'-'.retireAccents(html_entity_decode($row['name'])).'.html';
if ($page['cat'] == 'search')
{
$url_link = PHPWG_ROOT_PATH.'picture.php?cat='.$page['cat'];
$url_link.= '&image_id='.$row['id'];
$url_link.= '&search='.$_GET['search'];
}
else if ($page['cat'] == 'list')
{
$url_link = PHPWG_ROOT_PATH.'picture.php?cat='.$page['cat'];
$url_link.= '&image_id='.$row['id'];
$url_link.= '&list='.$_GET['list'];
}
$template->assign_block_vars('thumbnails.line.thumbnail', array(
'IMAGE' => $thumbnail_url,
//'IMAGE_ALT' => $row['file'],
'IMAGE_ALT' => $row['keywords'],
//'IMAGE_TITLE' => $thumbnail_title,
'IMAGE_TITLE' => $row['name'],
Modification du fichier include/page_header.php:
if ($ftpicture=="vrai"){
$template->set_filenames(array('header'=>'header-picture.tpl'));
} else {
$template->set_filenames(array('header'=>'header.tpl'));
}
Modification du fichier picture.php :
Ajout de la fonction (trouvée sur le forum WebRankInfo) en début de fichier attention petite modif par rapport a précedement pour faire sauter ?cat= de l'url:
**************************
function retireAccents($txt) {
// Pour picture je supprime cat= qui est ajotué par la funtion get_query_string_diff(
$masque = "(cat=)";
$txt = eregi_replace($masque, "", $txt);
// Ici je supprimer l' ou d' ...
$masque = "(.')";
$txt = eregi_replace($masque, "", $txt);
$masque = "[?!]";
$txt = eregi_replace($masque, "", $txt);
$masque = "[àâä@]";
$txt = eregi_replace($masque, "a", $txt);
$masque = "[éèêë€]";
$txt = eregi_replace($masque, "e", $txt);
$masque = "[ïì]";
$txt = eregi_replace($masque, "i", $txt);
$masque = "[ôö]";
$txt = eregi_replace($masque, "o", $txt);
$masque = "[ùûü]";
$txt = eregi_replace($masque, "u", $txt);
$masque = "[ç]";
$txt = eregi_replace($masque, "c", $txt);
$masque = "[&]";
$txt = eregi_replace($masque, "et", $txt);
$masque = " +";
$txt = eregi_replace($masque, ".", $txt);
return(strtolower($txt));
}
**************************
// Ajouter pour les vignettes de navigation precedent suivant
if ($_GET['cat']=="search"){
// Code original
$picture[$i]['url'] = PHPWG_ROOT_PATH.'picture.php';
$picture[$i]['url'].= get_query_string_diff(array('image_id','add_fav',
'slideshow','rate'));
$picture[$i]['url'].= '&image_id='.$row['id'];
} else {
$picture[$i]['url'] = PHPWG_ROOT_PATH.'photo-';
$picture[$i]['url'].= get_query_string_diff(array('image_id','add_fav',
'slideshow','rate'));
$picture[$i]['url'].= '-'.$row['id'].'-'.$row['name'].'.html';
$picture[$i]['url'] = retireAccents(html_entity_decode($picture[$i]['url']));
}
// Plus loin pour passage des keywords dans le ALT de l'image principale
'PHOTO' => $title_nb,
'TITLE' => $picture['current']['name'],
'TITLE_ALT' => $picture['current']['keywords'], // Attention je crois qu'il faut ajouter keywords dans la requete
'SRC_IMG' => $picture['current']['src'],
Modification du template picture.tpl:
//Petite modif pour modifier le meta description avec la legendeEn fin de fichier
$ftpicture="vrai";
include(PHPWG_ROOT_PATH.'include/page_header.php');
$template->set_filenames(array('picture'=>'picture.tpl'));
$template->parse('header');
$template->parse('picture');
include(PHPWG_ROOT_PATH.'include/page_tail.php');
Ajout du template picture_header.tpl:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{LANG}"
lang="{LANG}" dir="{DIR}"> <head>
<meta http-equiv="Content-Type" content="text/html; charset={CONTENT_ENCODING}" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<!-- BEGIN legend -->
<meta name="description" content="{legend.COMMENT_IMG_HEADER}" />
<!-- END legend -->
<!-- BEGIN refresh -->
<meta http-equiv="refresh" content="{REFRESH_TIME};url={U_REFRESH}">
<!-- END refresh -->
<title>Galerie Photo d'un fan du Tarn-et-garonne: {PAGE_TITLE}</title>
<link rel="stylesheet" href="{T_STYLE}" type="text/css" />
<script type="text/javascript" src="include/scripts.js"></script>
</head>
<body>
En conclusion se lancer que si de bonne connaissance en PHP sont là, toujours faire une sauvegarde, ici j'ai détourné la function des mots clefs idéalement il faudrait deux nouveaux champs dédiés dans la base, un pour le meta description, et un pour la balise alt, le keyword existant pouvant servir au meta mots clefs.
Autre lien: Blog du fondateur de PhpWebGallery
Attention suite à la lecture de ce billet j'ai modifié les deux fonctions retireAccents pour que le caractère séparateur ne soit plus le + mais maintenant le .
Commentaires
Bonjour,
pourriez vous me fournir les 3/4 fichier modifiés ou créés. J'ai en effet essayé vos modifs mais ca ne marche pas comme pour votre tres beau site.
Merci d'avance
PAtrice.
e suis impardonnable, c'est seulement aujourd'hui que je vois ce commentaire, en effet suite à du spam de trackback je me suis décidé à installer SpamPlemousse et en faisant le tour je tombe sur ce commentaire et cette demande auquel je m'empresse d'accéder.
Je viens de mettre la totalité des scripts y compris les fichiers .htacces ICI, il y a aussi le système d'exif inclu
Encore milles excuses pour ce méga méga retard