Conférence réalisée lors du Meetup WordPress de Nantes sur le référencement naturel de cas complexes sur le CMS WordPress :
- Ajax
- Sites OnePAge
- Navigation à facette
- Ecommerce
- Multilingue
- Forums et espaces communautaires
Par Daniel Roch, de 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 SEO KEY
Auteur d’Optimiser son référencement WordPress
Conférencier compulsif
Suivez-moi sur @rochdaniel
5. 1.
Le SEO de base
Mais on m’avait dit qu’il fallait juste activer un PLUGIN…
6. Un bon référencement
passe par :
✘ Une stratégie de contenus
- Des mots clés pertinents
- Des contenus bien rédigés et optimisés (Title, H1, ALT…)
- Une structure optimisée
✘ Un site techniquement propre
- Un site responsive et rapide à charger
- Un balisage Hn et Schema.org optimisé
- Un robots.txt, des balises canoniques et un sitemap.xml
✘ Des liens, des liens et des liens…
7.
8. Les outils :
✘ Search Console de Google
=> Contrôlez chaque menu
✘ Les logiciels de crawl : Xenu, Integrity ou Screaming Frog
=> Regarder ce que génère WordPress
✘ Les logs
=> Regardez où Google Bot se rend
✘ Site:monsite.fr
=> Vérifiez ce que Google indexe réellement
11. C’est quoi ?
✘ Pourquoi en faire ?
=> Proposer une meilleure navigation
=> Augmenter le taux de conversion
✘ Les avantages en SEO
=> Réduire le nombre de sous-catégories pauvres en contenus
=> Avoir plus de contenus uniques sur les catégories principales
13. Les solutions :
✘ Passer par un thème qui l’intègre
✘ Passer par une extension
=> Par exemple FacetWP pour WooCommerce
=> TOUJOURS contrôler !
14. 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) via
du JS
=> On utilise les filtres pour les besoins précis, sinon c’est une sous-catégorie
=> l’URL ne change pas
15. Les solutions :
Si l’URL change quand même (personne ne m’écoute de toute façon…)
=> L’URL avec filtre est en noindex
=> Il y a une canonical vers l’URL sans filtre
=> On ne fait surtout AUCUN lien vers ces URL avec filtres
=> Les boutons de partage prennent l’URL sans filtre
=> les bloquer par robots.txt (Disallow:)
=> Paramétrer les « paramètres d’URL » dans la Search Console
18. Les problématiques
✘ 2nd problème : les contenus privés
=> Les extensions e-commerce vont créer des pages
privées (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.
19. Les problématiques
✘ 2nd problème : les contenus privés
=> 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
20. 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 :
21. Les problématiques
✘ 3ème problème : la structure du site
- Etendre les catégories de produits aux autres types de
contenus
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');
}
22. Les problématiques
✘ 3ème problème : la structure du site
Ensuite, créer
une nouvelle
boucle dans
le template
23. 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 Produit :
yarpp_support => 'true'
28. Comment faire ?
✘ Etapes :
=> Concevoir le site normalement, SANS AJAX
=> 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
29. 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‘ )
}
30. 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);
}
31. Comment faire ?
✘ Ne pas faire n’importe quoi :
=> On rend compatible 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
})
} );
33. Les bases du SEO
multilingue
✘ Il faut une action manuelle de traduction
✘ Il faut penser à la culture du pays ciblé
✘ Il faut pour chaque langue un effort supplémentaire
pour :
=> rédiger des contenus
=> créer encore plus de liens
=> fidéliser les clients et créer une communauté
34. Les bases du SEO
multilingue
✘ Il faut une thème traduisible : __( et _e(
✘ Il faut une extension pour gérer les traductions :
=> PolyLang
=> WPML…
35. Les bases du SEO
multilingue
✘ 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 ?
36. 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
38. ✘ L’atout est de pouvoir fidéliser l’internaute
✘ Le risque constant :
=> la sécurité
=> le respect de la loi
✘ Deux cas de figure en SEO:
=> La communauté est privée, aucun souci
=> La communauté est publique
Les communautés
39. ✘ Les risques sont nombreux :
=> Contenus pauvres
=> Contenus non optimisé
Les communautés
40. ✘ Les risques sont nombreux :
=> Duplication de contenu et URL inutiles
Les communautés
42. ✘ Que faut-il faire ?
=> noindex + canonical sur les types de contenus inutiles
=> former les utilisateurs
=> ne JAMAIS faire de liens vers les contenus inutiles
dans les templates
=> vérifier le sitemap et la page plan du site
=> optimiser manuellement le contenu
=> réduire la pagination
Les communautés
43. 7.
Le mot de la fin
Testez,
encore et
toujours !