Lors du dernier WordCamp Paris, j’ai également eu le plaisir d’animer un atelier sur le thème « Méfiez-vous de WordPress et de ses utilisateurs ».

Je n’avais aucune slide pour ce sujet, et ce que je souhaitais était très simple : montrer à chacun qu’il ne faut jamais faire confiance à WordPress, aux développeurs, aux plugins, aux thèmes et aux utilisateurs. Je vais donc essayer ici de retranscrire les différents sujets dont j’avais parlé, notamment la sécurité, le référencement naturel, ou encore l’ergonomie et les performances du CMS.

Pourquoi ne doit-on jamais faire confiance ?

Il existe de très nombreuses raisons pour lesquelles on ne doit pas faire confiance à tous ces éléments. Les développeurs et utilisateurs peuvent être incompétents, ignorants ou pressés. Ils peuvent aussi avoir de mauvaises intentions. Ils peuvent également être doués, tout en oubliant des problématiques de compatibilité. Et vous pouvez aussi vous trouver dans des cas de figure particuliers qui font que des associations de thèmes, plugins et fonctions ne pourront pas marcher ensemble.

Tous les conseils donnés dans cet article le sont car il s’agit de problématiques que j’ai déjà rencontrées ou pu voir sur le web. Je n’invente rien, tout est malheureusement 100% authentique…

La règle d’or du web : la sauvegarde

Avant de continuer, commençons par la règle d’or de tout site web : la sauvegarde automatisée de vos données. C’est le seul et unique moyen de pouvoir corriger et revenir en arrière, quel que soit le problème que vous rencontrez sur votre WordPress. Peu importe le moyen ou plugin utilisé pour faire cela : vous devez mettre en place une sauvegarde journalière de votre base de données SQL et de tous les fichiers présents sur votre serveur.

Bien entendu, cette sauvegarde doit se faire dans un lieu différent des données en production. Ne comptez donc pas sur votre hébergeur et sa sauvegarde automatisée, car si par exemple ses locaux brûlent, vous perdez votre site et vos sauvegardes…

Méfiez-vous de WordPress

Commençons par le cœur même de WordPress, sans plugin et avec un thème par défaut. Dès l’installation, vous devriez déjà vous méfiez du CMS le plus utilisé au monde (23% du web mondial à l’heure actuelle). Prenons deux exemples :

Je donne mon login à tout le monde

Dès que vous allez publier un contenu, la plupart des thèmes de WordPress (dont ceux fournis par défaut) affichent le nom de l’auteur (son « Display Name ») et un lien vers sa page auteur. Avec ces deux informations, n’importe quel pirate peut deviner votre login. Cela reste insuffisant pour pirater votre site, mais cela les aide en leur donnant déjà une partie des informations dont ils auraient besoin.

Par exemple, je vais créer l’utilisateur « Daniel Roch ». Son URL sera « author/daniel-roch« , et son nom affiché publiquement « Daniel Roch ». Merci donc à WordPress de donner à tous mon login (et je ne vous parle même pas de l’utilisateur « admin »).

Pour corriger ce bug, j’ai créé avec Julio un petit plugin appelé SX User Name Security, et qui va forcer le Display Name à être différent du login de l’utilisateur. Ce dernier doit en effet remplir un autre nom, sous peine de voir son Display Name généré automatiquement par l’extension. Ensuite, il vous faudra utiliser un second plugin comme le très bon SF Author URL Control pour modifier manuellement les URL de vos différentes pages auteur.

Je freine l’indexation avec mes flux

De base, WordPress va créer un flux RSS d’actualité qui contient vos dernières publications, ce qui est très bien. Le hic, c’est qu’il va aussi créer :

  • un flux RSS pour tous vos commentaires ;
  • un flux RSS par catégorie ;
  • un flux RSS de commentaires par article.

Donc, si vous avez publié 100 articles dans 5 catégories, votre site génère de base 107 flux RSS différents, flux que Google va suivre inutilement, freinant ainsi l’indexation de votre site. Pour corriger cela, le seul moyen propre et sûr de le faire, quel que soit les réglages, plugins et thèmes utilisés, est de suivre la méthode suivante :

  • dans le fichier header.php du thème, supprimez toute référence au flux RSS (si celui-ci est codé en dur) ;
  • copier le code ci-dessous dans le fichier functions.php de votre thème, ou dans un plugin ou mu-plugin pour :
    • forcer l’activation de tous les flux RSS ;
    • puis forcer leur désactivation ;
    • et enfin ne réactiver proprement que le flux RSS principal (celui qui est réellement utile).
Supprimer tous les flux RSS de WordPress sauf le principal
/**
 Activer les liens RSS automatiques (feed_links & feed_links_extra)
 */
function seomix_theme_rss()  {
  add_theme_support( 'automatic-feed-links' );}
add_action( 'after_setup_theme', 'seomix_theme_rss' );


/**
 Désactiver les flux RSS secondaires (les commentaires de chaque article)
 */
remove_action('wp_head', 'feed_links_extra', 3);


/**
 Désactiver le flux RSS des articles et celui des commentaires
 */
remove_action('wp_head', 'feed_links', 2);


/**
 Réactiver le flux RSS principal
 * © Daniel Roch
 */
function seomix_feed_link( $args = array() ) {
  $defaults = array(
    /* translators: Separator between blog name and feed type in feed links */
    'separator' => _x('»', 'feed link'),
    /* translators: 1: blog title, 2: separator (raquo) */
    'feedtitle' => __('%1$s %2$s Feed'),
    /* translators: %s: blog title, 2: separator (raquo) */
    'comstitle' => __('%1$s %2$s Comments Feed'),
  );
  $args = wp_parse_args( $args, $defaults );
  echo '<link rel="alternate" type="application/rss+xml" title="' . esc_attr(sprintf( $args['feedtitle'], get_bloginfo('name'), $args['separator'] )) . '" href="' . home_url() . "/feed/\" />\n";
}
add_action('wp_head', 'seomix_feed_link');

D’ailleurs, j’ai toujours un ticket en attente pour avoir une solution plus propre directement dans le coeur de WordPress. N’hésitez pas à le relayer pour qu’il soit intégré dans la prochaine mise à jour de WordPress.

Méfiez-vous des utilisateurs

Deuxième problème que nombre d’entre vous ont rencontré : l’utilisateur, ou le fameux « PEBKAC ».

PEBKAC : Problem Exists Between Keyboard And Chair

En d’autres termes, le problème vient très souvent de la gentille personne placée entre la chaise et son clavier…

PEBKAC
Là encore, prenons quelques exemples :

J’aime les options et grosses images

Pour l’avoir vécu, vous n’imaginez pas le nombre d’utilisateurs de WordPress qui se sont dit que ces réglages de permaliens n’étaient pas très jolis, et qui rajoutent sans vous prévenir la date et la catégorie dans l’URL. Inutile de vous expliquer l’impact sur votre référencement.

Vous avez aussi l’utilisateur qui ajoute des supers photos à ses contenus. C’est bien pour les visiteurs me direz-vous, mais ce l’est beaucoup moins quand il s’agit d’un fichier BMP ou que l’image fait 4000 pixels de large par 3000 de haut. Inutile également de vous expliquer l’impact sur les performances et le temps de chargement des pages.

Et oui, tout ça, c’est malheureusement du vécu… La solution : ne donnez jamais un accès administrateur à vos clients, et utilisez des plugins pour forcer un poids et une taille d’image maximum lors des uploads.

Je n’aime pas être bien référencé

Là encore, l’utilisateur peut faire n’importe quoi. Pour commencer par le moins grave, vous avez ceux qui ont la « publication facile », c’est à dire ceux qui publient plein d’articles très courts (à peine 50 mots), tous associés à au moins 20 mots clés (si vous ne savez pas pourquoi c’est mauvais, lisez le guide des mots clés de WordPress).

Et dans la série « je fais n’importe quoi et on verra », vous avez ceux qui suppriment et ajoutent à la volée des catégories et des mots clés, ou qui changent sans redirections les URL des différents contenus du site. Dans ce cas de figure, avoir une pelle sous la main pour frapper votre client peut être une solution tout à fait pertinente.

Je ne comprends pas les plugins

Et vous avez tout simplement ceux qui ne comprennent pas certains réglages de WordPress ou des plugins et qui font tout de travers. Vous n’imaginez pas le nombre de clients qui veulent absolument une pastille verte dans le plugin WordPress SEO, et qui ainsi sur-optimisent tous leurs contenus…

Penguin
Oh, un Google Penguin…

Méfiez-vous des plugins

Des failles partout

Vous utilisez les plugins de référence pour chaque fonctionnalité de votre WordPress, et vous avez raison. Malheureusement, il n’existe aucun plugin 100% sécurisé sur le long terme. Vous avez sans doute des plugins qui contiennent actuellement des failles sur votre site, et qui ne sont pas encore détectées.

Et ce n’est pas parce que le plugin est connu qu’il est sécurisé : MailPoet, WordPress SEO, des plugins de sécurité eux-mêmes et d’autres ont déjà eu dans le passé des failles de sécurité. C’est malheureusement normal car la sécurité web est complexe à implanter, et tout développeur, aussi compétent soit-il, peut faire des erreurs ou des oublis dans ce domaine. Attention par contre, cela ne veut pas dire que vous ne devez pas utiliser les très bons plugins cités juste avant, mais ayez toujours en tête qu’un site web est rarement entièrement sécurisé, notamment à cause des plugins utilisés ou des utilisateurs.

Des plugins ‘instables’

Autre souci, les plugins « instables ». On vous dit en effet qu’il faut constamment mettre à jour WordPress, les plugins et les thèmes. C’est vrai, mais surtout quand la mise à jour apporte des patchs de sécurité. Dans les autres cas, méfiez-vous : il est préférable d’attendre quelques jours.

Vous n’imaginez pas par exemple le nombre de fois où lors de la mise à jour du plugin WordPress SEO, celui-ci a perdu des données, a provoqué des fatals errors ou s’est désactivé tout seul comme un grand.

WordPress SEO
Même s’il ressemble à un super héro, les mises à jour de Yoast peuvent être dangereuses

Les incompatibilités entre plugins

Vous avez aussi le cas de figure des plugins qui séparément fonctionnent très bien, mais qui ne peuvent cohabiter naturellement. J’ai par exemple eu plusieurs clients qui utilisaient à la fois un plugin SEO et le plugin communautaire BuddyPress. Dans ce cas de figure, le résultat de l’incompatibilité est très simple : aucun contenu généré par BuddyPress ne pourra jamais être référencé, car les plugins de référencement vont bloquer l’indexation de ces contenus (avec la balise Canonical par exemple pour WordPress SEO).

En attendant, copier/coller ce code dans le fichier functions.php de votre thème, dans un plugin ou un mu-plugin :

Pas de Canonical dans BuddyPress avec WordPress SEO
function seomix_wpseo_canonical_exclude( $canonical ) {
  global $bp;
  if ( function_exists( 'buddypress') && ( buddypress()->displayed_user->id || buddypress()->current_component ) ) {
    $canonical = false;
  }
  return $canonical;
}
add_filter( 'wpseo_canonical', 'seomix_wpseo_canonical_exclude' );

Merci d’ailleurs à Imath pour ses conseils sur BuddyPress.

Remarque : sur les versions les plus récentes de BuddyPress et WordPress, il semblerait que le problème ne se pose plus \o/

Méfiez-vous de vos thèmes

C’est beau, mais c’est lent ou pas sécurisé

C’est souvent la remarque que je me fais en regardant les thèmes payants disponibles sur Internet (sans parler d’un manque total d’optimisation pour le référencement naturel). Beaucoup de clients, d’agences ou de développeurs achètent des thèmes en se basant sur l’aspect visuel de celui-ci et ses éventuelles fonctionnalités. C’est l’une des pire erreurs que l’on peut faire, et notamment car beaucoup de thèmes ne respectent pas les standards de WordPress, ou sont très lents au niveau des performances. Si vous voulez savoir quel thème prendre, lisez cet article  sur les thèmes WordPress optimisés.

Méfiez-vous aussi des feintes des thèmes. Certains vous offrent des plugins payants, sans pour autant vous fournir la clé de licence qui va avec. Vous avez donc un WordPress qui ne vous affiche aucune mise à jour en attente, et pourtant tous les plugins payants sont dépassés. N’ayant pas la clé de licence, vous ne voyez pas les mises à jour qu’il faudrait faire. Bravo, votre site est devenu une très jolie passoire. Cela avait d’ailleurs grand bruit avec la fameuse faille RevSlider dont parlait Fabrice Ducarme juste ici.

Passoire
Votre site est devenu une magnifique passoire

SEO et thèmes WordPress

C’est sans doute le point noir. Vous installez un joli thème et vous peaufinez au maximum votre référencement : structure optimale dans l’administration de WordPress, optimisation de chaque publication, création de liens et de popularité vers le site… Bref, tout est parfait, sauf votre thème. Là encore, prenons deux exemples :

Commentaire est-tu là ?

Le premier, avec un utilisateur qui fait n’importe quoi. Imaginons que vous travaillez très bien le SEO de votre site, et que vous ayez de bons résultats. Un beau jour, vous vous retrouvez sur des articles ayant beaucoup de commentaires. Votre client/utilisateur va alors innocemment cocher la case « Diviser les commentaires en sous pages ». Vos articles vont donc afficher les X derniers commentaires, avec l’ajout de liens « Commentaires suivants / précédents ». Le hic, c’est que votre thème ne le prévoyait pas. Chaque sous page de commentaire va ainsi faire une duplication interne intégrale de votre contenu. Avec 2 sous-pages de commentaires, vous vous retrouvez donc avec 3 fois le même contenu sur 3 URL différentes.

Le seul moyen de corriger et d’anticiper cette problématique est tout d’abord d’empêcher activation de cette option. Et si votre client le fait quand même, vous pouvez corriger la problématique du contenu dupliqué en modifiant le thème. Dans les fichiers qui gèrent vos Post Type (notamment single.php), il faudra remplacer la fonction the_content par le code suivant :

// Pas de duplication de contenu sur les pages de commentaires
$cpage = get_query_var( 'cpage' );
if ( is_singular() && $cpage > 0 ) {
	echo "Vous êtes sur une page de commentaire. Voici un extrait de l'article : ";
	the_excerpt();
} else {
	the_content();
}

J’en parlais déjà dans cet article si cela vous intéresse : Détecter une page de commentaire sur WordPress

Ma structure est-elle bonne ?

Là aussi, pour votre référencement, vous créez la structure de site en ayant une optimisation parfaite de vos silos et de vos expressions clés. Visuellement en naviguant sur votre site, vous avez l’impression d’avoir correctement structuré votre site.

Par exemple, sur SeoMix, c’est ce que je pensais avoir fait. Et un jour, j’ai décidé d’utiliser le logiciel Gephi pour visualiser la réelle structure de mes contenus. Et je suis ainsi arrivé à cette soupe de liens et de publications sans maillage interne efficace :

Une mauvaise structure SEO
Une structure de site mal définie

Le souci, c’est que mes sections ne ressortaient pas du tout. En fait, plein de petits détails dans mon thème généraient des liens internes dans le contenu ou dans les balises du header. Je faisais confiance au thème que j’avais moi-même développé, à tort (ne vous faites pas confiance).

En retravaillant le tout, j’ai enfin obtenu une réelle structure en silo optimisée pour le référencement naturel, comme dans l’image suivante :

  • en rouge, mes pages statiques comme « Mentions légales », « mes services » ou « contact » ;
  • en noir mon accueil ;
  • dans les autres couleurs mes trois grands silos : Référencement, WordPress et WebMarketing.
Une structure en silo optimisée pour le SEO
Une structure en silo optimisée pour le SEO

C’est ce que nous faisons d’ailleurs de manière systématique lors de nos audits SEO : l’analyse de la structure est en effet primordial pour que ces audits soient réussis.

PS : là encore, un tuto est à venir très vite sur SeoMix ;)

En conclusion

Vous l’aurez compris : méfiez-vous de tout et de tout le monde, y compris de vous-même. Testez tout ce que vous faites et vérifiez constamment que toutes vos actions vont vous amener le rendu désiré. Et cette remarque est valable en référencement, en sécurité, en performances, en ergonomie…

La vidéo de la conférence est en ligne :

Et pour terminer, voici quelques images de cet atelier du WordCamp Paris où j’ai pu parler de tout cela :