Le machine learning au service du SEO : comment prédire des positions avec le machine learning ?

Afin de pouvoir prédire les changements de position après d’éventuelles optimisation sur la page, j’ai formé un modèle de machine learning avec des données de mots-clés et des facteurs d’optimisation sur la page.

A l’aide de ce modèle, je peux maintenant analyser automatiquement des milliers de mots-clés potentiels et sélectionner ceux pour lesquels il y ade bonnes chances d’atteindre des positions intéressantes avec seulement quelques optimisations simples sur la page.

A la fin de cet article, je partage avec vous tout le code source de cette expérimentation de SEO et machine learning afin que vous puissiez l’essayer vous-même!

L’essor du machine learning en SEO

Google travaille depuis un certain temps déjà à la mise en œuvre du machine learning dans ses produits et services. Avec l’aide du machine learning, ils sont capables d’accomplir des choses qui seraient très difficiles ou même impossibles à faire sans lui.

En tant que SEOs, nous pourrions regarder cette évolution avec une once de peur. Si le machine learning est appliqué aux algorithmes de recherche, ces algorithmes deviennent de plus en plus complexes et difficiles à comprendre, ce qui rend notre travail beaucoup plus difficile.

Mais pourquoi n’utilisons-nous pas simplement le machine learning pour le référencement afin de suivre Google? Si le référencement devient plus difficile à cause du machine learning, la meilleure façon de relever ce défi est d’utiliser le machine learning nous-mêmes non ?

Dans ce post, je vais vous montrer, à l’aide d’un exemple pratique, comment vous pouvez utiliser le machine learning pour améliorer vos efforts d’optimisation pour les moteurs de recherche.

L’étude de cas : identifier les mots-clés à fort potentiel de positionnement en prédisant les changements de position après optimisations

En tant que SEOs, chaque fois que nous voulons trouver des données de mot-clé, il y a beaucoup de grands outils à notre disposition. Le défi n’est pas de trouver des mots-clés mais d’analyser et de les hiérarchiser. Commençons par regarder les données de mot-clé que SEMrush nous donne pour le site d’exemple www.barf-alarm.de. Nous sommes intéressés par les mots-clés que déjà positionnés et qui ont un volume de recherche élevé.

Données Semrush

Comme vous pouvez le voir dans la capture d’écran, SEMrush nous fournit déjà un grand nombre de mots-clés (plus de 1100) pour le sujet très niché du site exemple.

En ajoutant des mots-clés sur nos concurrents se positionnent, mais pas nous, nous pouvons facilement étendre cette source de mots-clés à plus de 3600 mots-clés :

Algorithme Python 1

Il ne s’agit pas encore d’un très grand nombre de mots-clés par rapport aux analyses pour les sites plus grands ou des sujets plus larges, mais c’est déjà un montant qui serait très difficile à analyser manuellement. Cependant, nous devons filtrer ces mots-clés afin de déterminer lesquels sont pertinents et ceux pour lesquels nous avons des chances d’obtenir une place dans le top 10 en optimisant certaines pages de notre site.

Faisons-le avec la méthode du machine learning ! Notre but est d’identifier, sur les 3600 mots-clés que nous avons rassemblés, un top 10 possible.

Utilisation du machine learning pour identifier le potentiel de classement – étape par étape

Étape 1 : Réfléchir à la façon dont nous ferions cette tâche manuellement

Si nous voulions filtrer manuellement notre liste de 3600 mots-clés jusqu’ à une poignée de mots-clés avec un haut potentiel de classement, nous examinerions probablement des métriques comme le volume de recherche et le CPC afin d’avoir une idée précise de la situation concurrentielle de chaque mot-clé. Les volumes de recherche élevés et les CPC élevés indiquent généralement une forte concurrence pour un mot-clé, ce qui rend plus difficile l’obtention d’un bon classement.

Nous pouvons également analyser nos concurrents. Si un concurrent très similaire est classé dans le top 10 pour un mot-clé que nous visons, il est probable que nous pouvons également atteindre un tel classement.

Enfin, nous pouvons également examiner les facteurs d’optimisation sur la page. Si l’une de nos pages est déjà très bien optimisée pour un certain mot-clé mais se trouve en page deux ou trois, il va être très difficile d’améliorer les classements avec des mesures d’optimisation sur la page. Si, par contre, nous n’avons pas de page qui cible un mot-clé ou seulement une page qui n’est pas très bien optimisée, il est plus probable que nous puissions atteindre le top 10 pour ce mot-clé avec des mesures d’optimisation sur la page.

Nous pouvons utiliser les mêmes données que celles que nous analysons normalement manuellement pour former notre algorithme de machine learning. Parcourons les prochaines étapes pour apprendre comment cela fonctionne.

Étape 2 : Collecte et transformation des données dont nous avons besoin

Nous devons maintenant recueillir les données que nous utiliserions normalement pour effectuer les analyses manuelles décrites ci-dessus. Pour cette expérience, nous utilisons l’API de SEMrush pour extraire des données sur tous les mots-clés pour lesquels notre site exemple et ses concurrents sont classés :

Algorithme Python 2

Algorithme Python 3

Après avoir collecté ces données, nous parcourons toutes les pages de classement de notre site exemple et des sites concurrents et vérifions si la phrase pour laquelle la page est classée est contenue dans le titre, le contenu, l’URL ou le domaine. Nous sauvegardons l’information à ce sujet comme un nombre parce que l’algorithme de machine learning que nous utilisons fonctionne seulement avec des nombres et n’accepte pas le texte comme entrée. Ainsi, par exemple, si tous les mots de l’expression « barfen fleisch » pour lesquels une page se classe sont trouvés dans la balise title de cette page, nous sauvegardons la valeur « 1 » dans « title_found ». Si un seul des mots (50% de tous les mots) est trouvé, nous sauvegardons la valeur « 0.5 », et si aucun mot de la phrase n’est trouvé, nous sauvegardons la valeur « 0 ».

Algorithme Python 4

Maintenant, nous transcrivons également tous les domaines et mots-clés pour représenter des nombres de sorte que nous puissions les introduire dans notre algorithme de machine learning. En rassemblant tout cela, nous avons maintenant une liste de classement des pages pour les mots-clés avec des informations sur la situation concurrentielle (CPC et volume de recherche) et les facteurs de base sur la page.

Algorithme Python 5

Etape 3 : Formation du modèle de machine learning

Ensuite, nous divisons nos données en données de formation (80%) et de test (20%). Les données de formation seront nécessaires pour former l’algorithme de machine learning et les données de test pour tester les résultats fournis par l’algorithme. Nous choisissons alors un algorithme, dans ce cas un MLPClassifier, et nous formons l’algorithme. Sur la base de différents tests, nous pensons qu’un algorithme basé sur un réseau neuronal fonctionne le mieux pour ce type d’application.

C’est la partie où votre machine doit faire beaucoup de travail et vous pourriez devoir attendre quelques minutes ou des heures …

Etape 4 : Prévision des positions pour des pages de destination optimisées

Avec le modèle que nous avons généré, nous pouvons maintenant faire des prédictions. Dans notre exemple, nous prédisons le classement de notre site web www.barf-alarm.de pour la phrase « barf fleisch kaufen » en utilisant les informations que nous avons rassemblées précédemment et les valeurs d’optimisation de la page (phrase qui ne se trouve pas dans le titre ou l’URL et qui ne se trouve que partiellement dans le contenu et le nom de domaine). Notre algorithme prédit la position 20 pour la page, basé sur les informations que nous venons de fournir :

Algorithme Python 6

Si nous regardons nos données d’essai, notre site Web se classe à la 18e place pour cette expression. Cela signifie que notre algorithme de machine learning n’est pas encore précis à 100% mais pas non plus mauvais pour un début :

Algorithme Python 7

Maintenant, voyons ce que notre algorithme prédit pour une version optimisée de cette page donc une où la phrase se trouve dans le titre et dans le contenu de la page. Nous voulons savoir s’il serait logique d’optimiser cette page donc nous demandons à notre algorithme quelle position il pense que nous allons occuper si nous optimisons une page pour cette phrase. Nous alimentons l’algorithme avec les mêmes données que précédemment sauf que la phrase est incluse dans le titre et dans le contenu cette fois-ci.

Algorithme Python 8

Notre modèle prédit la position 1 pour une page qui est optimisée pour cette phrase. Nous savons déjà que notre algorithme n’est pas encore 100% précis mais il fonctionne bien dans le but de cette expérience : identifier des mots-clés avec un fort potentiel de classement. Vérifions si les prédictions pour d’autres phrases semblent plus réalistes !

Etape 5 : Obtenir un résultat complet pour tous les mots-clés potentiels que nous avons identifiés

Faisons donc ce que nous venons de faire pour tous les 3600 mots-clés que nous avons collectés au début. Notre modèle génère une liste de mots-clés avec les positions actuelles et prévues :

Algorithme Python 9

Comme vous pouvez le voir dans l’instantané ci-dessus, le modèle ne prédit aucun classement pour des mots-clés non pertinents comme « kreuzberg » (un district de Berlin), »durchfall » (diarrea) ou « ziege » (chèvre). C’est un signe de qualité : nous ne nous attendons pas à être en mesure de bien nous classer pour des mots-clés qui ne sont pas vraiment pertinents pour notre modèle d’affaires.

Filtrons un peu plus la liste pour un meilleur résultat. Si nous appliquons un filtre pour les classements prévus inférieurs à 10, nous obtenons une liste de mots-clés pour lesquels notre algorithme pense que nous pouvons nous classer sur la page 1 de Google :

Algorithme Python 10

C’est un très bon résultat ! Nous avons maintenant une liste d’environ 600 mots-clés, la plupart du temps pertinents et avec une forte probabilité de classement sur la première page de Google après quelques optimisations très simples sur la page (y compris les phrases dans les balises de titre et le contenu de la page). Nous n’avons pas besoin de vérifier 3600 mots-clés manuellement et nous pouvons commencer à travailler sur la création de pages optimisées pour 600 mots-clés sélectionnés par notre algorithme de machine learning. Il peut y avoir quelques faux positifs et les pronostics de classement sont probablement un peu trop enthousiastes dans certains cas mais c’est un très bon point de départ pour une bonne optimisation sur la page.

Considérations finales

Dans cet exemple, nous avons utilisé des données de base, en particulier pour les mesures d’optimisation. Nous n’avons examiné que quelques facteurs comme le placement des mots-clés dans les balises de titre et le contenu des pages. Il serait certainement judicieux d’ajouter des données plus pertinentes telles que des liens externes ou des analyses TF IDF. Notre exemple n’est qu’une démonstration de base de ce qui est possible avec le machine learning en SEO.

De plus, en extrayant plus de données de classement que nous ne l’avons fait ici et en analysant plus de concurrents et plus de mots-clés, vos prédictions devraient s’améliorer. Il est également possible d’optimiser les paramètres de l’algorithme de la machine ou d’utiliser un meilleur algorithme.

Vous souhaitez voir par vous-même ?

Le code source complet de cette expérience (Python, Jupyter Notebook) est fourni dans le répertoire searchVIU Labs Github. De cette façon, vous pouvez essayer cette expérience pour votre propre site web et avec vos propres données.

Dans le répertoire, vous trouverez également un exemple simple de machine learning pour la prédiction de CTR basé sur les données de Google Search Console qui pourrait être intéressant pour vos premiers pas dans l’utilisation du machine learning pour le SEO.

Cet article est une traduction de l’article de Michael Weber, fondateur et lead developer chez SearchVIU. Je tiens à le remercier vivement pour l’aide et temps accordés fin 2017 lorsque j’ai moi-même utilisé l’algorithme pour d’autres sites web.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *