Optimiser les URLS pour google actus

Les sites publiant de l’information de type « nouvelles » peuvent prétendre à être indexés par le site google actualités. Pour cela il faut qu’ils répondent à quelques caractéristiques précises qui sont énoncées ici par google. L’une de ces caractéristiques est que l’url de l’article doit comporter un nombre unique composé d’au moins 3 caractères.

Un article traitant du même sujet avait été publié par James il y a quelques années. Le présent article en propose une réactualisation utilisant les pipelines de SPIP.

Le résultat recherché

Avec les url arborescentes de SPIP, on a presque le type d’url qu’il faudrait pour que l’indexation par google actus soit effective :

http://www.regards.fr/environnement/il-y-a-du-gaz-dans-l-eau

Il manquerait seulement une terminaison en « ,123 » au titre de l’article, comme ceci :
http://www.regards.fr/environnement/il-y-a-du-gaz-dans-l-eau,123

L’objectif est donc :
1. calculer un nombre unique de 3 chiffres minimum pour chaque article du site
2. repérer où et comment l’url arborescente d’un article est calculée
3. ajouter à l’url d’un article le nombre précédemment calculé

1. Calculer un nombre unique d’au moins 3 chiffres

On se base bien évidemment sur le numéro de l’article. Pour les sites ayant déjà un peu vécu, le nombre d’articles publié est supérieur à 100, on peut donc afficher le id_article à la suite du titre de tous les articles nouveaux et le tour est joué. Mais pour les sites plus jeunes, et dans tous les cas pour les articles dont l’id_article est inférieur à 100, il faut ajouter une série de zéros avant le id_article.

Pour cela c’est la fonction php str_pad qui va être utilisée de la manière suivante dans notre fonction SPIP :

str_pad($objet['id_objet'], 3, "0", STR_PAD_LEFT)

Ce qui signifie : « prend l’id (de l’article), et jusqu’à arriver à 3 chiffres, complète-le avec des 0, sur sa gauche ».

2. Le pipeline utilisé pour la construction des url

Pour le cas des url arborescentes, il s’agit du pipeline arbo_creer_chaine_url qui permet de créer une chaine texte correspondant à une url.

On va donc se brancher sur ce pipeline SPIP pour ajouter le nombre à 3 chiffres minimum précédemment obtenu.

3. La fonction qui ajoute le nombre à l’url

Sur le site programmer.spip.org il est rappelé que l’on peut utiliser les pipelines aussi bien dans un plugin que hors plugin (dans les options du site).

Bien qu’il soit souvent préférable, pour des questions d’organisation, de rangement et de maintenance, de déclarer ses pipelines dans un plugin, il est plus rapide d’ajouter quelques lignes dans le fichier mes_options.php du site.

Tout d’abord le branchement du pipeline vers notre nouvelle fonction :

$GLOBALS['spip_pipeline']['arbo_creer_chaine_url'] .= "||googlenews_arbo_creer_chaine_url";

Puis la fonction elle-même :

function googlenews_arbo_creer_chaine_url($x) {
    $objet = $x['objet'];
    if ($objet['type'] == 'article') {
        $x['data'] .= "," . str_pad($objet['id_objet'], 3, "0", STR_PAD_LEFT);
    }
    return $x;
}

Ce qui pourrait donner le fichier mes_options suivant :

<?php
/***
 * Ajoute une virgule et un nombre de 3 chiffres
 * a la suite d'une url
 * @param $x
 * @return string
 */
$GLOBALS['spip_pipeline']['arbo_creer_chaine_url'] .= "||googlenews_arbo_creer_chaine_url";
function googlenews_arbo_creer_chaine_url($x) {
    $objet = $x['objet'];
    if ($objet['type'] == 'article') {
        $x['data'] .= "," . str_pad($objet['id_objet'], 3, "0", STR_PAD_LEFT);
    }
    return $x;
}
?>

Utilisation

Désormais, si vous avez fait le choix des urls arborescentes pour votre site SPIP et que la fonction « google news » est en place, toutes les urls d’articles se terminent par « ,123 ».

Choix des url arboresentes dans SPIP
Choix du type d’url en SPIP 2.1 sur la page ?exec=config_fonctions

Et pour notre site, même l’article N°001 fonctionne : http://www.regards.fr/societe/bourges-tant-que-l-ete-suit-le,001 ! Et l’article dont on parlait au début aussi, mais avec un nombre un peu plus important : http://www.regards.fr/environnement/il-y-a-du-gaz-dans-l-eau,5036.

Il ne reste plus qu’à se signaler auprès de google actus, et d’attendre que l’indexation se fasse.

Nota : pour que la nouvelle déclaration de pipeline soit prise en compte, il faut vider le cache de SPIP. Les URLs avaient peut-être déjà été calculées auparavant. Pour forcer un recalcul, vous pouvez lancer par exemple &var_mode=urls sur une page listant toutes les urls d’articles (comme sur le plan du site).

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom