Aider nos amis les robots
Il paraît que google-news, c’est trop de la balle et que pour bien faire, ou bien se faire référencer, il est absolument indispensable que l’url d’une page contiennent un identifiant numérique d’au moins 3 (oui, trois) caractères.
Avec SPIP, nous savons rendre intelligible nos urls pour les humains, mais, hélas pour eux, au détriment des robots, qui sont perdus sans leurs &# !?$$ numéros.
En femmes et hommes libres, nous pouvons choisir et faire l’effort condescendant d’aider nos amis les robots.
Adapter les Urls propres
Nous avons besoins pour commencer d’activer les urls propres
Certains d’entre-nous peuvent l’avoir remarqué, si deux objets éditoriaux de même type, deux articles par exemple, ont le même titre, les urls propres ajouteront automatiquement au second son identifiant numérique après une virgule discrète et élégante.
Ceci fait, nous pouvons, nous les humains, rendre ce choix arbitraire parfaitement systématique et mieux, combler le vide que laissent les identifiants inférieurs à 100, qui ne sont pas constitués de 3 chiffres...
Pour cela, profitons des capacités de « surcharge » de SPIP :
Dans le dossier squelettes/
, créez un sous-répertoire urls/
. Dans celui-ci, collez le fichier propres.php
que vous aurez copier depuis son répertoire d’origine, à savoir ecrire/urls/
Opérez les modifications ci-dessous :
Vers la ligne 117,
Avant :
if ($n > 0) {
$url = $url.','.$id_objet;
}
Après :
if ($type == 'article') {
$url = $url.','.sprintf('%03d', $id_objet);
}
elseif ($n > 0) {
$url = $url.','.$id_objet;
}
Les identifiants apparaîtront systématiquement pour tous les articles, après la sympathique virgule et sur 3 chiffres minimum, les nombres inférieurs à 100 étant complétés par des 0 à gauche (Exemple : 35 devient 035).
Mettre à jour des urls propres existantes
Si vous aviez déjà activé les urls propres par le passé, vous devrez mettre à jour les urls propres qui ont déjà été calculées. Comme il n’existe pas, à ce jour, d’interface graphique pour ce faire, et ce n’est pas la peine de râler sur ce fait dans le forum de cette page, d’avance merci ;), vous aurez à le faire à la main, avec la requête SQL suivante :
UPDATE spip_articles SET url_propre='';
Discussions par date d’activité
19 discussions
Bonjour,
Je cherchais à obtenir des urls avec le nom de l’article, suivi d’un « _ » et du numéro d’article sur cinq chiffre. Cinq, car j’ai plusieurs milliers d’articles, et que Google dit que les nombres ressemblant à des dates peuvent ne pas être pris en compte comme url valide.
Ce que j’ai fait et qui semble fonctionner, c’est ajouter une ligne dans la fonction urls_propres_creer_chaine_url à la ligne 91.
Au lieu de
J’ai mis
ça semble fonctionner.
Que ceux qui voient un problème potentiel se profiler avec cette modification partagent leur savoir.
Que ceux qui cherchaient comme moi et qui pourraient profiter de cette solution en profitent.
Ciao
Pour la ligne 91, je parle du fichier propres.php, d’un SPIP 2.1.0
Répondre à ce message
Bonjour,
Il faut ajouter quoi et où dans propre.php sachant que j’utilise spip 2.0.6 ? J’ai essayé une cinquantaine de possibilités avec le code proposé dans l’article mais ça ne marche pas.
Merci.
Azul,
Pour spip 2, j’ai utilisé un machin comme ça :
Dans propres.php
Avant :
Ajouter :
Ça donne des urls avec un nombre d’au moins 4 chiffres (articles et brèves) en ajoutant à l’id un, deux, ou trois 0.
Exemples :
Article : http://aokas.net/Autant-en-emporte-le-vent-de-sable,00090.html ; Brève : http://aokas.net/+Alerte-a-Melbou-Les-habitants,00015+.html.
Les gars, Oubliez la modif de code et installez le Couteau Suisse (télécharger)
Il fera le boulot tout seul dès que vous aurez configuré l’outil adéquate, sinon vous risquez de vous arrachez les cheveux à la prochaine mise à jour de SPIP.
Bonne journée.
Mef quand même avec le couteau suisse, parfois lors d’une mise à jour vous pourriez avoir des surprises.
Une fois j’ai perdu tout le travail de réécriture suite à une version foireuse, toutes les urls étaient à nouveau à 35 caractères.
Répondre à ce message
Si, si très clair.
Merci Patrice et Loiseau2nuit pour vos précisions. C’est très interessant.
Répondre à ce message
Quel adaptation faire avec un basculement sous spip 2.0.2 ?
Je ne trouve pas la ligne 117 correspondante.
HELP je suis bloqué à ce stade, quel changement avec l’urlwriter et la version 2.0.2 ??????? !!!!!!!
Il faut utiliser le pipeline creer_chaine_url. Le Couteau Suisse propose déjà cette fonctionnalité pour SPIP 2.0.X.
Le code de ce pipeline pourrait être du genre :
$flux['data'].=','.$flux['objet']['id_objet'];
Hello Patrice, je viens de tomber sur la fonctionalité du CS en effet.
En revanche, j’ai pu constater qu’elle ajoutais l’ID sur TOUTES les branches de l’URL alors que techniquement (James me contredira si je me trompe) seul le dernier objet de l’url suffirait
exemple :
http://www.tagadatsointsoin.fr/plop,6/pwet,39/mon-article,94
alors quehttp://www.tagadatsointsoin.fr/plop/pwet/mon-article,94
suffirait amplement si je suis bien le raisonnement de cette contrib ?Autre chose, les id ne font pas 3 chiffres ? C’est un choix ? une nouvelle préco Google ?
Merci pour tes retours.
Etienne.
Je viens donc d’ajouter ces 2 réglages dans le Couteau Suisse, en jouant sur $flux[’objet’][’id_objet’] et $flux[’objet’][’type’].
J’aimerais préciser que cette discussion n’est pas appropriée ici, et qu’il vaudrait mieux, si suite il y a, la poursuivre ici.
Hello :)
Parce que ???
Donc, dans le cas des arbos, si tu cliques sur une rubrique, son url sera http://www.tagadatsointsoin.fr/plop,6 et si tu cliques sur un article alors ce sera http://www.tagadatsointsoin.fr/plop,6/mon-article,94 : cqfd.
Sur le principe http://www.tagadatsointsoin.fr/plop006 ne me dérange pas tant que plop est la dernière branche affichée de l’arbo.
En revanche, pour le cas d’un article, c’est le nom de l’article qui devient la dernière branche.
L’idée ici serait de ne numéroter QUE la dernière branche :
http://www.tagadatsointsoin.fr/plop006
http://www.tagadatsointsoin.fr/plop/pwet123
http://www.tagadatsointsoin.fr/plop/pwet/article456.html
Sinon, merci pour le lien que tu as fournis, je trouve juste dommage qu’ils ne se soient pas épanché un peu plus sur le principe des 3 chiffres...
Bon après j’imagine que ce n’est pas tout le monde qui a besoin de pointer son site dans Google News mais j’aime bien savoir avec précision pour quelle raison je m’arrache des cheveux lors de mes intégrations de sites :-P
Parce qu’en gros, à chaque objet correspond une (voire plusieurs dans le cas de SPIP 2.0) URLs, et qu’on ne peut pas utiliser d’un côté
http://www.tagadatsointsoin.fr/plop,6/
et d’un autrehttp://www.tagadatsointsoin.fr/plop/mon-article,94
: l’URL de la rubrique est «plop,6
» et non «plop
» tout court.Le système « arbo » met simplement bout à bout l’URL de chaque objet, donc :
une_rubrique/une_rubrique/un_article
.- Si on décide d’ajouter un identifiant à tous les objets on obtiendra :
une_rubrique,1/une_rubrique,2/un_article,456
- Si on retire les rubriques du processus, on aura simplement :
une_rubrique/une_rubrique/un_article,456
, ce qui est quand même mieux. Vu que Google préfère les articles aux rubriques, pas besoin d’avoir d’identifiant à l’URL d’une rubrique...Je ne sais pas si j’arrive à être clair ;-)
tout à fait limpide, et effectivement vu comme ca ca parait plus logique :-)
Merci pour les précisions
Répondre à ce message
Bonjour,
Si l’on applique le même principe aux brèves, cela veut-il dire que l’article 087 et la brève 087 vont être considérés comme la même url par Google pour son référencement ?
Comment cela se passe-t-il lorsqu’il y a cette double numérotation ?
Si quelqu’un parmi vous a un début d’info, je suis très curieux.
Merci.
Je crois que les téléscopages sont gérés par SPIP (préférez la version 2.0 !). As-tu fait l’essai ? Pour ce test, il faudrait une brève et un article de même titre... Tu ne risques rien ;-)
Répondre à ce message
Il semblerai que ce type d’urls soit incompatible avec l’effet Thickbox V2 en 0.3 !
Répondre à ce message
Bonjour,
ce plug-in marche-t-il avec d’anciennes versions de Spip ? Je dois m’occuper d’un site qui est sous 1.9.1...
Merci,
C. Bloch
Oui ça marche pour d’anciennes versions de SPIP, notamment 1.9.1. Mais ce n’est pas un plugin, il s’agît plutôt d’un mode opératoire.
Merci de votre réponse rapide. Mais en fait, j’avais déjà tenté la manip, et ça m’avait planté mon site... Plus rien de visible en public, et affichage bizarre (grosses polices de caractère) en privé...
Je ne sais pas si c’est lié à la modification de propres.php ou si j’ai fait une mauvaise manip quand j’ai voulu réinitialiser les urls... Du coup j’ai dû tout réinstaller. La requête Mysql s’effectue comment exactement ?
Merci,
Cyrill
Alors, j’ai effectué toutes les manips SAUF la requête SQL. C’est donc bien de là que vient le problème. Auriez-vous plus de détails quant à la manière de l’effectuer ? Je suis nioubie, là...
Merci
C. Bloch
Pour préciser ma question, je suis sous Mac, donc j’ai MAMP. Je vois ma base de données, et le bouton SQL qui propose : Exécuter une ou des requêtes sur la base. Dois-je exécuter la requête sur TOUTE la base ou uniquement sur spip_articles ?
Merci,
C. Bloch
OK, j’ai trouvé, et je précise pour celles et ceux qui ne sauraient pas : vous allez dans phpMyAdmin, puis vous ouvrez votre base. Vous cliquez sur SQL, ça devrait vous proposer une option exécuter une requête SQL ; vous entrez le code donné par James, vous cliquez exécuter, et ça marche.
Voilà, c’est des infos d’un nioubie pour d’autres nioubies, mais ça peut être utile...
C. Bloch
Par contre, je rencontre un autre problème :
le lien cliqué mène bien vers monsite.fr/nomdelarticle-123.html, mais le lien en survol affiche monsite.fr/nomdelarticle-123_123 ? Quelqu’un saurait-il où qu’on (je) peut modifier le lien affiché en survol ?
Merci,
C Bloch
il y a un plugin qui permet de réécrire les urls et donc de les nettoyer
http://www.spip-contrib.net/Plugin-Effacer-url-propres
Répondre à ce message
si on cherche cette format www.site.com/article-3chiifres c facile sans rien modifier.
il suffit de changer l’id de votre premier article sur le site, et mettre 100, comme ca le prochain article que vous allez rédiger aura automatiquement 101 puis 101 ... et ainsi de suite ;)
L’astuce proposée ici (
$url = $url.','.sprintf('%03d', $id_objet)
) affiche des chiffres sur 3 digits : 1 donne 001, 42 donne 042, 768 donne 768. Au delà de 4 digits, ça marche tout à fait bien, 1045 donnera 1045 etc ... donc d’une part, pas besoin de faire des trucs tordus, donnés sans explications qui plus est. :)D’autres part, « sans rien modifier » ... ne modifiera rien, donc les urls n’afficheront aucun chiffre : De base, les urls propres n’ajoute aucun chiffre. La seule exception concernant les objets ayant rigoureusement le même titre calculé, ce qui reste assez rare. Le test proposé par cette contribution incluant, lui, systématiquement un chiffre... sur 3 digits minimum.
Amicalement, ;)
bonjour,
super contrib je cherchais depuis un moment comment faire et par chance je tombe enfin dessu.
Par contre j’aimerai appliquer le même procédé aux brèves. comment m’y prendre ?
merci beaucoup
Même question.
J’ai regardé mais je n’ai pas trouvé le moyen de l’adapter aux brèves...
Quelqu’un peut m’aider ?
Merci d’avance.
J’ai finalement trouvé un moyen simple mais je ne suis pas sur qu’il soit optimale.
Ajouté après le code pour l’article qui est celui là :
if ($type == 'article')
{
$url = $url.','.sprintf('%03d', $id_objet);
}
elseif ($n > 0)
{
$url = $url.','.$id_objet;
}
Le code pour la brève :
if ($type == 'breve')
{
$url = $url.','.sprintf('%03d', $id_objet);
}
elseif ($n > 0)
{
$url = $url.','.$id_objet;
}
Y reste plus qu’à faire pareil si vous voulez l’ajouter aux rubriques.
merci ça marche super
Répondre à ce message
Hello James :)
De 2 choses l’une :
- serait-il possible qu tu nous en dises un peu plus sur ces fameux 3 numéros ? En quoi sont ils vraiment utiles et qu’est ce que tout ceci apporte de plus en terme de SEO qu’une arbo plus classique sous forme de racine.site.web/rubrique/sousrubrique/article ? Ca c’était pour la question chiante du jour :P
la seconde :
- je te cite
et je répond ceci : Plugin effacer urls propres ;)
Bonne soirée à tous
Non :P
C’est pas de la mauvaise foi, c’est juste parce que tout ce que je sais est expliqué en intro de cet article.
J’ai fait cet article parce que la solution technique était facile, contenait un minimum de pédagogie et que c’était régulièrement demandé, sans d’ailleurs que qui que ce soit n’ait jamais pris la peine de donner lui-même des explications. Donc, il existe dans l’unique objectif de soulager les modérateurs de forum et de liste en leur évitant de se répéter : juste pointer ici.
SEO : Je ne sais pas ce que c’est, tu deviens très jargonneux tout d’un coup. Si tu penses que ça intéresse du monde, je t’en prie, écris un article à ce sujet :) N’oublie pas d’être didactique ;)
Enfin, il n’est absolument pas incompatible de faire une arborescence virtuelle et d’associer 3 chiffres dans une url, c’est évoqué plus bas dans les forum, mais là encore, le propos n’est pas là.
Sinon, oui, le plugin, bonne idée de faire le lien :)
SEO = Search Engine Optimization
C’est effectivement un des sigles à la mode maintenant, utilisé pour regrouper sous une même étiquette tout ce qui a trait à l’amélioration du positionnement d’un site web dans les moteur de recherche, ce que propose ta contrib en l’occurence ;)
Didactique ? Comment ca didactique ? /me sors son shotgun et tire en aveugle... :P
Répondre à ce message
et si on cherche de remplacer les « , » par les « - » ?
Qui ce que je dois changer ?
Ex : www.site.com/033-titre.html
Merci
dans le code légendé « après », remplacer la virgule par un tiret :)
ok, parfait, ca marche
merci
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Suivre les commentaires : |