WordPress est un CMS très utilisé dans le monde entier. Mais il possède malheureusement de très nombreuses lacunes dès lors que l'on parle de référencement naturel. Dans ces slides, Daniel Roch explique les défauts de WordPress pour votre SEO.
Par l'agence Seomix : http://www.seomix.fr
2. hello!
Je suis Daniel Roch
Consultant en référencement naturel et WordPress
Créateur de l’agence SeoMix et de l’extension SEO KEY
Auteur d’Optimiser son référencement WordPress
Conférencier compulsif
Suivez-moi sur @rochdaniel et seomix.fr
4. 1.
Le SEO de base
Mais on m’avait dit qu’il fallait juste activer un PLUGIN…
5. Un bon référencement
sur WP passe par :
✘ Une stratégie de contenu
✘ Des liens, des liens et des liens…
✘ Un site techniquement propre
6. Les défauts techniques
de WP
Entre :
✘ ce que je fais sur WordPress,
✘ Ce que je veux faire,
✘ Ce que je crois faire,
✘ Ce que Google veut,
✘ Ce que Google voit,
✘ Ce que Google comprend,
✘ Et ce que je veux faire comprendre à Google,
7. Les défauts techniques
de WP
Ce qui donne les problèmes suivants :
✘ Problèmes d’indexation
✘ Contenus dupliqués
✘ Contenus pauvres
✘ Contenus non optimisés
✘ Structure et maillage interne non adaptés
10. Je suis référenceur…
✘ « C’est mon métier », et pourtant j’ai raté ces URL sur
www.seo-camp.org :
=> /examen-ceseo-a-constantine/?replytocom=6197
=> /evenements/liste/?tribe-event-display=past&tribe-paged=3
=> /?p=2123
=> //
=> /wp-login.php?redirect-to=https%3A%2F%2Fwww.seo-
camp.org%2Fposte%2Feskimoz-paris-16-pres-du-trocadero-17-chef-de-
projet-seo-junior-hf-stage%2F
=> /wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.seo-
camp.org%2Fvideo-seo-camp-day-nantes%2F&format=xml
11. Les outils SEO
✘ Search Console de Google
=> Contrôlez chaque menu
✘ Les logs
=> Regardez où Google Bot se rend
✘ Site:monsite.fr
=> Vérifiez ce que Google indexe réellement
=> Comparez avec Analytics et les logs
✘ Les logiciels de crawl : Xenu ET Screaming Frog
=> Regarder ce que génère réellement WordPress
13. Indexation
- des archives par date
- des archives pour les auteurs
- des archives de CPT et de
taxonomies
- des sous pages de
commentaires
- des URL en ?replytocom=
- des contenus privés
✘ WordPress génère tout, tout le temps…
14. Indexation
✘ Solutions :
- Bien paramétrer WordPress
- Avoir une extension pour le SEO (Yoast puis SEO KEY)
- Se méfier de son thème
- Se méfier des extensions
=> Scanner régulièrement son site
16. HTML et sémantique
✘ WordPress n’est pas toujours le problème, les
développeurs et intégrateurs le sont
systématiquement…
- Balisage Hn
- Les fonctions du cœur (body_class)
- Schema.org
- Duplication de liens
- Ancres non optimisées
- Oubli des ALT
C’est pas très
optimisé tout
ça
17. HTML et sémantique
✘ L’utilisateur est aussi un problème…
- Sur-optimisation des mots clés
- Ajout de catégories et d’étiquettes partout
- La pastille verte de Yoast
- Etc.
J’aime les
pastilles
vertes…
21. Maillage interne
Pour les administrateurs et utilisateurs :
✘ Pas de commentaires imbriqués
✘ Pas de sous pages de commentaires
✘ Pas d’étiquettes
✘ On augmente le nombre d’articles par page
✘ Une seule catégorie
✘ Un extrait bien rédigé (l’excerpt)
22. Maillage interne
Quelques conseils pour le thème :
✘ Pas de liens sur soi-même
✘ Pas de liens vers les pages inutiles (étiquettes, auteurs,
dates…)
✘ Afficher automatiquement des liens vers les catégories ou
pages enfant (ou de même niveau)
26. Les solutions :
✘ Passer par un thème qui l’intègre (correctement…)
✘ Passer par une extension
=> Par exemple FacetWP pour WooCommerce
=> TOUJOURS contrôler !
27. Les solutions :
✘ Développer cela soi-même !
=> Chaque filtre n’est PAS un lien <a href>
=> Chaque filtre déclenche une requête AJAX (admin-ajax ou admin-post)
=> On utilise les filtres pour les besoins non liés à une requête SEO, sinon c’est
une sous-catégorie
=> l’URL ne change pas
29. Les problématiques
✘ 1er problème : la navigation à facettes
✘ 2nd problème : les contenus privés
=> Les pages privées rendues publiques (Commande
payée, mon compte, choix du mode de livraison…)
=> De base, elles vont apparaître
- dans le plan du site ;
- dans le sitemap ;
- dans certains widgets et menus.
30. Les problématiques
=> Il faut donc exclure les contenus privés
- noindex sur ces pages
- les bloquer par robots.txt
- ne pas faire de liens vers elles
- les exclure du plan de site
- les exclure du fichier sitemap
31. Les problématiques
✘ 3ème problème : la structure du site
✘ La partie blog est séparée de la partie e-commerce.
Cela casse la structure en silos :
32. Les problématiques
✘ 3ème problème : la structure du site
- Etendre les catégories de produits aux articles
add_action( 'init','seomix_product_taxonomy_add_advices' );
function seomix_product_taxonomy_add_advices(){
// add product taxonomy to post
register_taxonomy_for_object_type('product_cat', 'post');
}
33. Les problématiques
✘ 3ème problème : la structure du site
Ensuite, créer
une nouvelle
boucle dans
le template.
34. Les problématiques
✘ 3ème problème : la structure du site
- Et ensuite ajouter les « produits » aux articles relatifs.
Pour l’extension YARPP, il faut ajouter cette ligne dans la
déclaration du Post Type « Product » :
yarpp_support => 'true'
36. Pourquoi en faire un ?
✘ C’est tendance
✘ La navigation est plus fluide
✘ Cela donne une sensation de modernité
37. Les risques SEO
✘ Google veut :
un mot clé = un contenu = une URL unique
✘ Un site OnePage = tout est mélangé si c’est mal fait (et
c’est souvent mal fait…)
38. Comment faire ?
✘ Etapes :
=> Concevoir le site normalement, SANS AJAX (ce n’est
donc pas un ONE PAGE !)
=> Rajouter de l’AJAX pour injecter le contenu dans la
page actuellement consultée
✘ Testez !
=> Avec un crawl
=> En désactivant le JS de votre navigateur
39. Comment faire ?
✘ Ne pas faire n’importe quoi :
=> Les requêtes AJAX se font en JS avec admin-ajax
(éventuellement avec admin-post)
=> Le site doit toujours fonctionner sans ce JS
=> On essaye de mettre en cache les requêtes
$nomtransient = get_transient ( 'seomix_transient_nomurl' );
if ( false === ( $rendu = $nomtransient ) ) {
// mon code
set_transient ( $nomtransient, 'contenu_transient‘ )
}
40. Comment faire ?
✘ Ne pas faire n’importe quoi :
=> On FORCE le changement d’URL
=> On n’oublie pas Analytics
success : function( data ) {
history.pushState(data, data.title, data.link);
}
success : function( data ) {
// L’insertion pour Google Analytics :
ga('send', 'pageview', window.location.pathname);
}
41. Comment faire ?
✘ Ne pas faire n’importe quoi :
=> On rend compatible son AJAX avec les boutons « suiv
– prec » du navigateur
window.addEventListener( 'popstate', function(e) {
e.preventDefault();
var url = window.location.href;
$.ajax({
// Mettez ici les arguments nécessaires pour récupérer le
contenu de la précédente page
})
} );
43. Les bases du SEO
multilingue sur WP
✘ Il faut un thème traduisible : __( et _e(
✘ Il faut une extension pour gérer les traductions :
=> PolyLang
=> WPML…
44. Les bases du SEO
multilingue sur WP
✘ Il faut idéalement :
=> Un Top Level Domain par langue (.fr, .de, .es, Etc.)
=> Sinon un sous domaine par langue
=> En dernier recours un répertoire
=> JAMAIS avec un paramètre ?
45. Sur WordPress
✘ Vérifiez manuellement les traductions
✘ Inscrivez chaque domaine dans la Search Console
✘ Créez des liens vers chaque langue, dans la bonne
langue
✘ Vérifiez la présence du balisage hreflang