Retirer automatiquement les stop word du slug

Retirer automatiquement les stop word du slug

Un article vite fait pour vous partager une fonction récupérée sur le web et améliorée pour retirer les stop word du slug sur WP… Mine de rien, ça fait gagner beaucoup de temps !

Les stop word, c’est quoi ?

Un stop-word (j’en vois déjà qui se disent que c’est un truc SM), c’est tout les petits mots qu’on trouve dans une langue. En français, ce serait “mon”, “ma”, “me”, “le”, “la”, “les” etc.

Pour un moteur de recherche, ces termes n’ont pas une grande importance pour comprendre un texte (quoi qu’avec Bert, un des derniers alogs de Google, ça peut avoir changé). Donc, quand ils récupèrent un texte, les moteurs vont “trim” les stop-words pour passer ensuite le texte à la moulinette algorithmique et essayer de déterminer si la page peut être pertinente pour un ensemble de requêtes données. Bref…

Faut-il conserver les stop-words dans l’URL ?

A mon avis : non.

Je ne dis pas qu’il faut TOUJOURS les enlever, mais dans la plupart des cas, ils ne pèsent rien dans la compréhension du contenu de l’article (ou très peu), d’autant plus que le poids des mots-clés dans l’URL est aujourd’hui très faible.

Là où les Stop words deviennent gênant, et ça a été l’occasion de ma recherche en fin de journée, c’est quand on a une URL qui a une structure de type “catégorie/sous-catégorie/sous-sous-catégorie/titre-du-contenu”.

On n’a pas forcément envie de présenter une URL à rallonge, et dans ce type de cas, les stop-words cumulés peuvent représenter une sacrée longueur de chaine. Donc ici, c’est intéressant de les retirer.

Oui, je sais, ça prend 10 secondes. Mais quand on pond 25 contenus d’affilés, ça fait 250 secondes. Presque 5 minutes. Et si on doit faire ça tous les jours… Vous avez compris.

Donc j’ai cherché (un peu), j’ai trouvé une fonction prometteuse, que j’ai enrichie avec une liste de Stop-words. Vous pouvez récupérer le script et l’éditer à votre tour pour que ça colle à votre niche/site/activité.

//RETRAIT DES STOP WORDS DU SLUG
add_filter('sanitize_title', 'remove_short_words');
function remove_short_words($slug) {
if (!is_admin()) return $slug;
$slug = explode('-', $slug);
foreach ($slug as $k => $word) {
  if (strlen($word) < 3) {
    unset($slug[$k]);}
$keys_false = 'afin,ainsi,alors,au,aucuns,aussi,autre,aux,avant,avec,avoir,ça,car,ce,ceci,cela,celà,ces,cest,cet,cette,ceux,chaque,ci,comme,comment,dans,dedans,dehors,depuis,des,deux,devrait,doit,donc,dos,du,dun,dune,egalement,elle,elles,en,encore,ensuite,es,essai,est,et,étaient,étais,était,étant,état,etc,ete,été,étée,étées,êtes,étés,étiez,étions,être,eu,eux,fait,faites,fois,font,force,fûmes,furent,fus,fusse,fussent,fusses,fussiez,fussions,fut,fût,fûtes,grace,grâce,haut,hors,ici,il,ils,ils,je,juste,la,là,le,les,leur,leurs,ma,maintenant,mais,meme,même,mes,mieux,mine,moins,mon,mot,ni,nommés,nos,notre,nous,nouveau,ou,où,par,parce,pas,peu,peut,pièce,plupart,pour,pourquoi,quand,que,quel,quelle,quelles,quels,qui,sa,sans,sera,serai,seraient,serais,serait,seras,serez,seriez,serions,serons,seront,ses,seulement,si,sien,soi,soient,sois,soit,sommes,son,sont,sous,soyez,soyons,suis,sujet,sur,ta,tandis,tellement,tels,tes,ton,tous,tout,toute,toutes,tres,très,trop,tu,un,une,valeur,voie,voient,vont,vos,votre,vous,vu,men,jen,ten';
$keys = explode(',', $keys_false);
foreach ($keys as $l => $wordfalse) {
if ($word==$wordfalse) { unset($slug[$k]); }
}
}
return implode('-', $slug);}

Vous collez ça dans le functions.php de votre thème (et vous pouvez ajouter/éditer/supprimer des stop words dans le contenu de “$keys_false”).

Charles Annoni

Charles Annoni

Développeur Front-End et Formateur

Charles Annoni accompagne les entreprises dans leur développement sur le web depuis 2008. Il est également formateur dans l’enseignement supérieur.