Aller au contenu

Comment catégoriser un site WordPress avec Screaming Frog ?

Antoine Brisset
Antoine Brisset
Temps de lecture : 4 min
Comment catégoriser un site WordPress avec Screaming Frog ?

Table des matières

Depuis la version 19 de Screaming Frog, il est possible de créer des segments, autrement dit de catégoriser un site en exploitant les données extraites pendant le crawl.

Aujourd'hui, je vais te montrer comment catégoriser un site WordPress avec Screaming Frog.

❗Cette méthode de catégorisation ne se base pas sur les URLs. Elle fonctionne bien pour une analyse rapide sur un site WP en bonne santé, mais est inadaptée sur un site contenant beaucoup d'erreurs ou de redirections (voir plus bas).

Étape 1 : passer en mode "Database Storage"

Les segments ne sont disponibles qu'en mode "base de données".

Il faut donc tout d'abord se rendre dans Screaming Frog SEO Spider > Settings > Storage mode puis sélectionner "Database Storage".

Stockage en mode base de données

Étape 2 : créer les custom extractions

Pour déterminer à quel type de publication correspond chaque page, je vais m'appuyer sur la classe CSS du body.

En effet, sur WordPress, la balise body contient par défaut une classe CSS correspondant au template de page utilisé.

Voici les principales classes utilisées :

  • "home" : pour la HP
  • "page" : pour une page
  • "single" : pour un article
  • "category" : pour une page catégorie
  • "tag" : pour une page tag
  • "author" : pour une page auteur
  • "archive" : pour toutes les pages d'archives (date, format, etc.)

Pour vérifier si chacune de ces classes CSS est présente dans le body, j'utilise les expressions XPath suivantes :

  1. HP : boolean(//body[contains(concat(" ", @class, " "), " home ")])
  2. Page : boolean(//body[contains(concat(" ", @class, " "), " page ")])
  3. Article : boolean(//body[contains(concat(" ", @class, " "), " single ")])
  4. Catégorie : boolean(//body[contains(concat(" ", @class, " "), " category ")])
  5. Tag : boolean(//body[contains(concat(" ", @class, " "), " tag ")])
  6. Auteur : boolean(//body[contains(concat(" ", @class, " "), " author ")])
  7. Archives : boolean(//body[contains(concat(" ", @class, " "), " archive ")])

En gros, je me sers de la fonction boolean pour vérifier si oui (true) ou non (false) le body contient telle ou telle classe.

Je te renvoie à cet article à propos de contains pour mieux comprendre la subtilité de l'espace avant et après chaque chaîne de caractères.

Ajout des expressions XPath

Étape 3 : créer les segments

Maintenant, place à la création des segments.

Je les reprends dans l'ordre où je les ai créés.

La condition est toujours la même : Extractor (n)* — Equals (=) — true.

* Extractor (1) pour HP, Extractor (2) pour Page, etc.
Création des segments

Étape 4 : crawl et analyse

Il ne reste plus qu'à lancer le crawl et à analyser les résultats une fois qu’il est terminé.

Les segments peuvent être utilisés de différentes façons :

  • dans chaque onglet, une colonne segments apparaît à côté de chaque URL
  • en haut à droite, un filtre est disponible pour sélectionner un segment spécifique
  • dans le panneau latéral à droite, l'onglet segments permet d'afficher un certain nombre de graphiques, avec des données calculées pour chaque segment (profondeur, indexabilité, etc.)

Ici, sur cet exemple du site lesmakers.fr, on peut voir que certaines URLs ont été classées dans 2 segments à la fois, ce qui signifie que mes expressions XPath ne sont pas suffisamment restrictives.

Je vais donc les modifier pour y ajouter des négations avec la fonction not.

Voici ce que ça donne :

  • pour les pages : boolean(//body[contains(concat(" ", @class, " "), " page ") and not(contains(concat(" ", @class, " "), " home "))])
  • pour les archives : boolean(//body[contains(concat(" ", @class, " "), " archives ") and not(contains(concat(" ", @class, " "), " author ")) and not(contains(concat(" ", @class, " "), " tag ")) and not(contains(concat(" ", @class, " "), " category "))])
Après correction des XPath, c'est mieux 🙂

Limites de la méthode

Si le site contient beaucoup d'erreurs 40x et 50x ou de redirections 30X, la segmentation ne donnera pas de bons résultats puisque les pages concernées remonteront toutes dans "unsegmented".

Dans ce cas, mieux vaut partir sur une segmentation "classique" en identifiant les patterns d'URL pour chaque type de page (/category/, /author/, etc.)

Même chose pour les images, les fonts, les CSS, les JS, les liens externes, etc. Ils ne seront pas ciblés par la segmentation.

Si vraiment tu as besoin de les analyser, il faudra là aussi t'appuyer sur les URLs pour la segmentation. Sinon, tu peux désactiver le crawl de ces ressources dans Configuration > Spider > Crawl.

Enfin, si tu utilises des custom post types, la configuration sera certainement à revoir.

Voilà, j'espère que ce petit tuto pourra t'être utile !

Screaming Frog

Antoine Brisset Twitter

Consultant SEO depuis 2010. Je traque les clics inutiles et j'automatise les tâches répétitives pour gagner du temps dans mon quotidien de travailleur du web.


Articles Similaires

Membres Public

Balise strong dans une balise hn : détectez la suroptimisation avec Screaming Frog !

Quand je reçois des contenus au format Word ou Google Docs, il arrive souvent qu'en les collant dans l'éditeur WordPress (ou un autre éditeur WYSIWIG), les titres soient automatiquement mis en gras. Ce qui donne par exemple ce type de code HTML : <h2><

Balise strong dans une balise hn : détectez la suroptimisation avec Screaming Frog !
Membres Public

Comment vérifier ses liens d'affiliation avec Screaming Frog ?

Quand on fait de l'édition de sites, on passe beaucoup de temps à créer du contenu, à le promouvoir, à faire des liens. Mais on oublie parfois le plus important : s'assurer que les liens d'affiliation qu'on a glissés dans nos contenus sont

Comment vérifier ses liens d'affiliation avec Screaming Frog ?
Membres Public

Brotli, tu connais ?

Il y a quelques mois, j'avais partagé l'astuce suivante sur Twitter. Petit tips #ScreamingFrog La configuration par défaut de Screaming Frog n'ajoute pas automatiquement la compression Brotli au champ "Accept-Encoding" (il n'y a que Gzip). — Antoine Brisset (@ABrisset) March 27,

Brotli, tu connais ?