Lorsque l’on travaille sur des sites avec du trafic, il y a autant à perdre qu’à gagner en mettant en œuvre des recommandations SEO.
Le risque de baisse d’une mise en œuvre SEO qui tourne mal peut être atténué en utilisant des modèles d’apprentissage automatique pour pré-tester les facteurs de classement des moteurs de recherche.
Mis à part les tests préalables, les tests fractionnés constituent le moyen le plus fiable de valider les théories SEO avant de prendre la décision de déployer l'implémentation sur l'ensemble du site ou non.
Nous passerons en revue les étapes nécessaires à l’utilisation de Python pour tester vos théories SEO.
Choisissez les positions de classement
L’un des défis des tests des théories SEO réside dans la taille importante des échantillons nécessaires pour rendre les conclusions des tests statistiquement valables.
Les tests fractionnés, popularisés par Will Critchlow de SearchPilot, privilégient les mesures basées sur le trafic telles que les clics, ce qui est bien si votre entreprise est de niveau entreprise ou a un trafic important.
Si votre site ne dispose pas de ce luxe envieux, le trafic en tant que mesure de résultat est susceptible d'être un événement relativement rare, ce qui signifie que vos expériences prendront trop de temps à exécuter et à tester.
Pensez plutôt aux positions de classement. Bien souvent, les pages des petites et moyennes entreprises qui cherchent à se développer sont souvent classées pour des mots-clés cibles qui ne sont pas encore suffisamment bien classés pour générer du trafic.
Au cours de la période de votre test, pour chaque point de données dans le temps, par exemple le jour, la semaine ou le mois, il est probable qu'il y ait plusieurs points de données de position de classement pour plusieurs mots clés. Par rapport à l'utilisation d'une mesure de trafic (qui est susceptible d'avoir beaucoup moins de données par page et par date), cela réduit la période de temps nécessaire pour atteindre une taille d'échantillon minimale si vous utilisez la position de classement.
Ainsi, le classement est idéal pour les clients de taille réduite qui cherchent à effectuer des tests fractionnés de référencement et qui peuvent obtenir des informations beaucoup plus rapidement.
La Search Console de Google est votre amie
La décision d'utiliser les positions de classement dans Google rend l'utilisation de la source de données une décision simple (et pratique à faible coût) dans Google Search Console (GSC), en supposant qu'elle soit configurée.
GSC est un bon choix ici car il dispose d'une API qui vous permet d'extraire des milliers de points de données au fil du temps et de filtrer les chaînes d'URL.
Même si les données ne sont pas forcément la vérité, elles seront au moins cohérentes, ce qui est déjà bien.
Compléter les données manquantes
GSC ne signale que les données des URL contenant des pages. Vous devrez donc créer des lignes pour les dates et compléter les données manquantes.
Les fonctions Python utilisées seraient une combinaison de merge() (pensez à la fonction VLOOKUP dans Excel) utilisée pour ajouter des lignes de données manquantes par URL et remplir les données que vous souhaitez saisir pour ces dates manquantes sur ces URL.
Pour les mesures de trafic, ce sera zéro, tandis que pour les positions de classement, ce sera soit la médiane (si vous supposez que l'URL était classée alors qu'aucune impression n'a été générée) ou 100 (pour supposer qu'elle n'était pas classée).
Le code est donné ici.
Vérifiez la distribution et sélectionnez le modèle
La distribution de toute donnée représente sa nature, en termes de la valeur la plus populaire (mode) pour une métrique donnée, par exemple la position de rang (dans notre cas, la métrique choisie) pour une population d'échantillon donnée.
La distribution nous indiquera également à quel point le reste des points de données sont proches du milieu (moyenne ou médiane), c'est-à-dire à quel point les positions de rang sont réparties (ou distribuées) dans l'ensemble de données.
Ceci est essentiel car cela affectera le choix du modèle lors de l’évaluation de votre test théorique SEO.
En utilisant Python, cela peut être fait à la fois visuellement et analytiquement ; visuellement en exécutant ce code :
ab_dist_box_plt = (
ggplot(ab_expanded.loc[ab_expanded['position'].between(1, 90)],
aes(x = 'position')) +
geom_histogram(alpha = 0.9, bins = 30, fill = "#b5de2b") +
geom_vline(xintercept=ab_expanded['position'].median(), color="red", alpha = 0.8, size=2) +
labs(y = '# Frequency n', x = 'nGoogle Position') +
scale_y_continuous(labels=lambda x: ['{:,.0f}'.format(label) for label in x]) +
#coord_flip() +
theme_light() +
theme(legend_position = 'bottom',
axis_text_y =element_text(rotation=0, hjust=1, size = 12),
legend_title = element_blank()
)
)
ab_dist_box_plt
Le graphique ci-dessus montre que la distribution est positivement asymétrique (pensez à l'inclinaison pointant vers la droite), ce qui signifie que la plupart des mots-clés se classent dans les positions les mieux classées (indiquées vers la gauche de la ligne médiane rouge). Pour exécuter ce code, assurez-vous d'installer les bibliothèques requises via la commande pip installe pandas plotnine:
Nous savons maintenant quelle statistique de test utiliser pour déterminer si la théorie du référencement mérite d'être poursuivie. Dans ce cas, il existe une sélection de modèles adaptés à ce type de distribution.
Taille minimale de l'échantillon
Le modèle sélectionné peut également être utilisé pour déterminer la taille minimale de l’échantillon requise.
La taille minimale de l’échantillon requise garantit que toutes les différences observées entre les groupes (le cas échéant) sont réelles et non le fruit du hasard.
Autrement dit, la différence résultant de votre expérience ou hypothèse SEO est statistiquement significative et la probabilité que le test signale correctement la différence est élevée (appelée puissance).
Cela serait réalisé en simulant un certain nombre de distributions aléatoires correspondant au modèle ci-dessus pour le test et le contrôle et en effectuant des tests.
Le code est donné ici.
Lors de l'exécution du code, nous voyons ce qui suit :
(0.0, 0.05) 0
(9.667, 1.0) 10000
(17.0, 1.0) 20000
(23.0, 1.0) 30000
(28.333, 1.0) 40000
(38.0, 1.0) 50000
(39.333, 1.0) 60000
(41.667, 1.0) 70000
(54.333, 1.0) 80000
(51.333, 1.0) 90000
(59.667, 1.0) 100000
(63.0, 1.0) 110000
(68.333, 1.0) 120000
(72.333, 1.0) 130000
(76.333, 1.0) 140000
(79.667, 1.0) 150000
(81.667, 1.0) 160000
(82.667, 1.0) 170000
(85.333, 1.0) 180000
(91.0, 1.0) 190000
(88.667, 1.0) 200000
(90.0, 1.0) 210000
(90.0, 1.0) 220000
(92.0, 1.0) 230000
Pour le décomposer, les chiffres représentent les éléments suivants en utilisant l'exemple ci-dessous :
(39.333,
:proportion d'exécutions de simulation ou d'expériences dans lesquelles la signification sera atteinte, c'est-à-dire la cohérence de l'atteinte de la signification et de la robustesse.
1.0)
:puissance statistique, la probabilité que le test rejette correctement l'hypothèse nulle, c'est-à-dire que l'expérience est conçue de telle manière qu'une différence soit correctement détectée à ce niveau de taille d'échantillon.
60000: sample size
Ce qui précède est intéressant et peut être source de confusion pour les non-statisticiens. D'un côté, cela suggère que nous aurons besoin de 230 000 points de données (constitués de points de données de classement au cours d'une période donnée) pour avoir 92 % de chances d'observer des expériences SEO qui atteignent une signification statistique. Pourtant, d'un autre côté, avec 10 000 points de données, nous atteindrons une signification statistique. Alors, que devons-nous faire ?
L'expérience m'a appris que l'on peut atteindre une signification prématurément, il faut donc viser une taille d'échantillon susceptible de tenir au moins 90 % du temps : 220 000 points de données sont ce dont nous aurons besoin.
Il s'agit d'un point vraiment important car après avoir formé quelques équipes SEO d'entreprise, toutes se sont plaintes d'avoir mené des tests concluants qui n'ont pas produit les résultats escomptés lors du déploiement des modifications de test gagnantes.
Par conséquent, le processus ci-dessus évitera tout ce chagrin, cette perte de temps, de ressources et cette crédibilité blessée due au fait de ne pas connaître la taille minimale de l’échantillon et d’arrêter les tests trop tôt.
Affecter et mettre en œuvre
Avec cela à l’esprit, nous pouvons maintenant commencer à attribuer des URL entre le test et le contrôle pour tester notre théorie SEO.
En Python, nous utiliserions le Fonction np.where() (pensez à la fonction SI avancée dans Excel), où nous avons plusieurs options pour partitionner nos sujets, soit sur le modèle d'URL de chaîne, le type de contenu, les mots-clés dans le titre, ou autre en fonction de la théorie SEO que vous cherchez à valider.
Utilisez le code Python donné ici.
À proprement parler, vous exécuteriez cette opération pour collecter des données dans le cadre d'une nouvelle expérience. Mais vous pourriez tester votre théorie rétrospectivement, en supposant qu'il n'y ait pas d'autres changements susceptibles d'interagir avec l'hypothèse et de modifier la validité du test.
Quelque chose à garder à l’esprit, car c’est un peu une hypothèse !
Test
Une fois les données collectées ou que vous êtes sûr de disposer des données historiques, vous êtes prêt à exécuter le test.
Dans notre cas de position de rang, nous utiliserons probablement un modèle comme le test de Mann-Whitney en raison de ses propriétés distributives.
Cependant, si vous utilisez une autre mesure, comme les clics, qui est distribuée selon la loi de Poisson, par exemple, vous aurez besoin d'un tout autre modèle statistique.
Le code pour exécuter le test est donné ici.
Une fois exécuté, vous pouvez imprimer la sortie des résultats du test :
Mann-Whitney U Test Test Results
MWU Statistic: 6870.0
P-Value: 0.013576443923420183
Additional Summary Statistics:
Test Group: n=122, mean=5.87, std=2.37
Control Group: n=3340, mean=22.58, std=20.59
Ce qui précède est le résultat d'une expérience que j'ai menée, qui a montré l'impact des pages de destination commerciales avec des guides de blog de support liés en interne aux premières par rapport aux pages de destination non prises en charge.
Dans ce cas, nous avons montré que les pages d’offres soutenues par le marketing de contenu bénéficient en moyenne d’un meilleur classement Google de 17 positions (22,58 – 5,87). La différence est également significative, à 98 % !
Il nous faudra toutefois plus de temps pour obtenir davantage de données, dans ce cas-ci 210 000 points de données supplémentaires. Comme pour l’échantillon actuel, nous ne pouvons être sûrs que dans moins de 10 % des cas, la théorie du référencement est reproductible.
Les tests fractionnés peuvent démontrer des compétences, des connaissances et de l'expérience
Dans cet article, nous avons parcouru le processus de test de vos hypothèses SEO, en couvrant les exigences de réflexion et de données pour mener un test SEO valide.
Vous avez peut-être déjà compris qu'il y a beaucoup à décortiquer et à prendre en compte lors de la conception, de l'exécution et de l'évaluation des tests SEO. Mon cours vidéo sur la science des données pour le référencement approfondit beaucoup plus (avec plus de code) la science des tests SEO, y compris le split A/A et le split A/B.
En tant que professionnels du référencement, nous pouvons tenir certaines connaissances pour acquises, comme l’impact du marketing de contenu sur les performances du référencement.
Les clients, en revanche, remettront souvent en question nos connaissances, c'est pourquoi les méthodes de test fractionné peuvent être très utiles pour démontrer vos compétences, vos connaissances et votre expérience en matière de référencement !
Davantage de ressources: