Fermer

octobre 22, 2019

SEO Analytics for Free – Combinaison de Google Search avec l'API Moz17 minutes de lecture

SEO Analytics for Free - Combinaison de Google Search avec l'API Moz


Je suis un propriétaire de start-up autofinancé. En tant que tel, je souhaite obtenir autant que possible gratuitement avant de convaincre notre directeur financier de dépenser nos fonds de démarrage durement gagnés. Je suis aussi un analyste avec une formation en informatique et en données, donc un geek par définition.

Ce que j'essaie de faire, avec mon chapeau d'analyste SEO, est de dénicher d'excellentes sources de données gratuites et le brouiller dans quelque chose de perspicace. Pourquoi? Parce qu’il n’est pas utile de fonder les conseils des clients sur des conjectures. Il est bien préférable de combiner des données de qualité avec une analyse de qualité et d'aider nos clients à mieux comprendre les points importants sur lesquels ils doivent se concentrer.

Dans cet article, je vais vous expliquer comment utiliser quelques ressources gratuites et illustrer comment. pour rassembler des analyses uniques qui fournissent des informations utiles pour vos articles de blog si vous êtes un écrivain, votre agence si vous êtes un SEO, ou votre site web si vous êtes un client ou un propriétaire qui fait du SEO vous-même.

Le scénario que je vais utiliser est celui que je souhaite analyser certains attributs de référencement (par exemple, des liens en arrière-plan, une autorité de page, etc.) et examiner leur effet sur le classement dans Google. Je souhaite répondre à des questions telles que «Les backlinks sont-ils vraiment importants pour accéder à la page 1 des SERPs?» Et «Quel type de score d'autorité de page dois-je vraiment figurer dans les 10 meilleurs résultats?». Pour ce faire, je devrai combiner données issues d'un certain nombre de recherches Google avec des données sur chaque résultat possédant les attributs de référencement que je souhaite mesurer.

Commençons par travailler sur la façon de combiner les tâches suivantes pour y parvenir, qui peuvent toutes être configurées gratuitement. :

  • Interrogation avec le moteur de recherche personnalisé Google
  • Utilisation du compte API gratuit de Moz
  • Récupération de données avec PHP et MySQL
  • Analyse des données avec SQL et R

Interrogation avec Google Custom Search Engine

Nous d'abord besoin d'interroger Google et obtenir des résultats stockés. Pour rester dans la partie droite des conditions d’utilisation de Google, nous ne supprimerons pas Google.com directement mais utiliserons la fonction de recherche personnalisée de Google. La recherche personnalisée de Google est principalement conçue pour permettre aux propriétaires de sites Web de fournir un widget de recherche semblable à Google sur leur site Web. Toutefois, il existe également une API de recherche Google basée sur REST qui est gratuite et qui vous permet d'interroger Google et de récupérer les résultats au format populaire JSON . Il y a limites de quota mais elles peuvent être configurées et étendues pour fournir un bon échantillon de données avec lesquelles travailler.

Lorsque est configuré correctement pour rechercher sur le Web entier, vous pouvez envoyer des requêtes. votre moteur de recherche personnalisé, dans notre cas, avec PHP, et traitez-les comme des réponses de Google, avec toutefois quelques réserves. Les principales limitations de l’utilisation d’un moteur de recherche personnalisé sont les suivantes: (i) il n’utilise pas certaines fonctionnalités de recherche sur le Web Google, telles que les résultats personnalisés; (ii) il peut contenir un sous-ensemble de résultats provenant de l'index Google si vous incluez plus de dix sites.

Nonobstant ces restrictions, de nombreuses options de recherche peuvent être transmises au moteur de recherche personnalisé pour indiquer par proxy ce que vous souhaitez que Google.com renvoie. Dans notre scénario, nous passions ce qui suit lors d'un appel:

 https://www.googleapis.com/customsearch/v1?key=  & userIp =
 & cx  & q = iPhone + X & cr = countryUS & start =
1 

Où:

Google a déclaré que le moteur de recherche personnalisé de Google était différent de celui de Google .com mais dans le cadre de mes essais limités, la comparaison des résultats entre deuxièmement, les similitudes m'ont encouragé et j'ai donc poursuivi l'analyse. Cela dit, n'oubliez pas que les données et les résultats ci-dessous proviennent de la recherche personnalisée Google (avec des requêtes "sur le Web entier") et non de Google.com.

Utilisation du compte API gratuit de Moz

Moz fournit une application. Interface de programmation (API). Pour l'utiliser, vous devrez vous enregistrer pour une clé d'API Mozscape gratuite mais limitée à 2 500 lignes par mois et une requête toutes les dix secondes. Les plans actuels rémunérés vous donnent des quotas augmentés et commencent à 250 $ / mois. Avec un compte et une clé API gratuits, vous pouvez alors interroger l'API Links et analyser les métriques suivantes :

Champ de données Moz

Code API Moz

Description [19659029] ueid

32

Le nombre de liens externes vers l'URL

uid

2048

Le nombre de liens (externes, équivalents ou non, ou non,). à l'URL

umrp **

16384

Le MozRank de l'URL, en tant que score normalisé à 10 points

umrr **

16384

Le MozRank de l'URL, en tant que score brut

fmrp **

32768

Le MozRank du sous-domaine de l'URL, en tant que partition normalisée à 10 points

fmrr **

32768

Le MozRank du sous-domaine de l'URL, as score brut

us

536870912

Code de statut HTTP enregistré pour cette adresse URL, si disponible

upa

34359738368

Score normalisé à 100 points représentant la probabilité d'un pag e bien classer dans les résultats des moteurs de recherche

pda

68719476736

Score normalisé de 100 points représentant la probabilité qu’un domaine soit bien classé dans les résultats des moteurs de recherche

REMARQUE: Cette analyse étant capturée, Moz documenté qu'ils ont déconseillé ces champs. Cependant, lors du test (15-06-2019), les champs étaient toujours présents.

Les codes de l'API Moz sont additionnés avant d'appeler l'API Links avec un nom semblable à celui-ci:

 www.apple.com% 2F? Cols = 103616137253 & AccessID = MOZ_ACCESS_ID &
Expires = 1560586149 & Signature = 

Où:

  • http://lsapi.seomoz.com/linkscape/url-metrics/ "class =" rédacteur-autoparser-objet "> http://lsapi.seomoz.com/linksc … – L'URL de l'API Moz
  • http% 3A% 2F% 2F www.apple.com% 2F – Une URL codée sur laquelle nous voulons obtenir des données sur
  • Cols = 103616137253 – Somme des codes d'API Moz du tableau ci-dessus
  • AccessID = MOZ_ACCESS_ID – Une version codée de l'ID d'accès Moz (figurant dans votre compte API)
  • Expires = 1560586149 – Délai d'attente pour la requête – définir un délai d'attente pour la requête – quelques minutes dans l'avenir
  • Signature = – Une version codée de l'ID d'accès Moz (figurant dans votre compte API)

Moz retournera avec quelque chose comme le JSON suivant:

 Array
(
    [ut] => Apple
    [uu] =>  www.apple.com/ 
    [ueid]  => 13078035
    [uid] => 14632963
    [uu] => www.apple.com/
    [ueid] => 13078035
    [uid] => 14632963
    [umrp] => 9
    [umrr] => 0.8999999762
    [fmrp] => 2.602215052
    [fmrr] => 0.2602215111
    [us] => 200
    [upa] => 90
    [pda] => 100
) 

Pour un bon point de départ pour interroger Moz avec PHP, Perl, Python, Ruby et Javascript, consultez le référentiel sur Github . J'ai choisi d'utiliser PHP.

Récupération de données avec PHP et MySQL

Nous disposons maintenant d'un moteur de recherche personnalisé Google et de notre API Moz. Nous sommes presque prêts à capturer des données. Google et Moz répondent aux requêtes via le format JSON et peuvent donc être interrogés par de nombreux langages de programmation courants. En plus de la langue que j'ai choisie, PHP, j'ai écrit les résultats de Google et de Moz dans une base de données et choisi MySQL Community Edition pour cela. D'autres bases de données pourraient également être utilisées, par exemple Postgres, Oracle, Microsoft SQL Server, etc. Cela permet la persistance des données et l'analyse ad-hoc en utilisant SQL (Structured Query Language) ainsi que d'autres langages (comme R, que je reviendrai plus loin). Après avoir créé des tables de base de données contenant les résultats de recherche Google (avec des champs pour le rang, l'URL, etc.) et une table contenant les champs de données Moz (ueid, uda, uda, etc.), nous sommes prêts à concevoir notre plan de collecte de données. [19659002] Google fournit un quota généreux avec le moteur de recherche personnalisé (jusqu'à 100 millions de requêtes par jour avec la même clé de la console du développeur Google), mais l'API gratuite de Moz est limitée à 2 500. Bien que pour Moz, les options payantes fournissent entre 120 000 et 40 millions de lignes par mois, selon les forfaits, et leur coût varie de 250 à 10 000 dollars par mois. Par conséquent, alors que je suis en train d’explorer l’option gratuite, j’ai conçu mon code de manière à exploiter 125 requêtes Google sur deux pages de SERP (10 résultats par page), ce qui me permet de respecter le quota de 2 500 lignes de Moz. En ce qui concerne les recherches sur Google, il existe de nombreuses ressources à utiliser. J'ai choisi d'utiliser Mondovo car ils fournissent de nombreuses listes par catégorie et jusqu'à 500 mots par liste, ce qui est amplement suffisant pour l'expérience.

J'ai également intégré quelques classes d'aide PHP à côté de mon propre code pour base de données. I / O et HTTP.

En résumé, les principaux composants et sources de PHP utilisés sont les suivants:

Un facteur à prendre en compte est l'intervalle de 10 secondes entre les appels d'API de Moz . Ceci afin d'éviter que Moz ne soit surchargé par les utilisateurs d'API libres. Pour gérer cela dans le logiciel, j'ai écrit un "throttler de requête" qui bloquait l'accès à l'API de Moz entre des appels successifs dans une période donnée. Cependant, tout en fonctionnant parfaitement, cela signifiait qu'il fallait un peu moins de 7 heures pour appeler Moz 2500 fois de suite.

Analyse des données avec SQL et R

Données collectées. Le plaisir commence maintenant!

Il est temps de jeter un coup d’œil à ce que nous avons. Cela s'appelle parfois des querelles de données . J'utilise un langage de programmation statistique gratuit appelé R avec un environnement de développement (éditeur) appelé R Studio . Il existe d’autres langues telles que Stata et d’autres outils de science des données graphiques tels que Tableau mais ces coûts et le directeur financier de Purple Toolz n’ont personne à traverser!

J’utilise R depuis un certain nombre d’années parce qu’il est open source et qu’il compte de nombreuses bibliothèques tierces, ce qui le rend extrêmement polyvalent et approprié pour ce type de travail.

Laissons la parole.

J'ai maintenant quelques tables de base de données contenant les résultats de mes 125 requêtes de termes de recherche sur 2 pages de SERPS (c.-à-d. 20 URL classées par terme de recherche). Deux tables de base de données contiennent les résultats de Google et une autre table contient les résultats de données Moz. Pour y accéder, nous aurons besoin de créer une base de données INNER JOIN facile à réaliser en utilisant le paquet RMySQL avec R. Celui-ci est chargé en tapant "install.packages ('RMySQL") "dans R console et incluant la ligne "bibliothèque (RMySQL)" en haut de notre script R.

Nous pouvons ensuite procéder comme suit pour connecter et obtenir les données dans une variable de trame de données R appelée "theResults".

 bibliothèque (RMySQL)
# INNER JOIN les deux tables
theQuery <- "
    SÉLECTIONNER A. *, B. *, C. *
    DE
    (
        SÉLECTIONNER
            cseq_search_id
        DE cse_query
    ) A - Requête de recherche personnalisée
    JOINTURE INTERNE
    (
        SÉLECTIONNER
            cser_cseq_id,
            cser_rank,
            cser_url
        DE cse_results
    ) B - Résultats de recherche personnalisés
    ON A.cseq_search_id = B.cser_cseq_id
    JOINTURE INTERNE
    (
        SELECT *
        DE moz
    ) C - Champs de données Moz
    ON B.cser_url = C.moz_url
    ;
"
# [1] Connectez-vous à la base de données
# Remplacez USER_NAME par votre nom d'utilisateur de base de données
# Remplacez PASSWORD par votre mot de passe de base de données
# Remplacez MY_DB par votre nom de base de données
theConn <- dbConnect (dbDriver ("MySQL"), utilisateur = "USER_NAME", mot de passe = "PASSWORD", dbname = "MY_DB")
# [2] Interroge la base de données et conserve les résultats.
theResults <- dbGetQuery (theConn, theQuery)
# [3] Déconnecter de la base de données
dbDisconnect (theConn) 

REMARQUE: je dispose de deux tables pour stocker les données du moteur de recherche personnalisé Google. L'un contient des données sur la requête Google (cse_query) et l'autre des résultats (cse_results).

Nous pouvons maintenant utiliser la gamme complète de fonctions statistiques de R pour commencer à nous quereller.

Commençons par quelques résumés pour avoir une idée des données. Le processus que je suis en train de suivre est fondamentalement le même pour chacun des champs. Nous allons donc illustrer et utiliser le champ "UEID" de Moz (le nombre de liens d’équité externes vers une URL). En tapant ce qui suit dans R je reçois le ceci:

> summary (theResults $ moz_ueid)
   Min. 1er Qu. Médiane Moyenne 3ème Qu. Max.
      0 1 20 14709 182 2755274
> quantile (theResults $ moz_ueid, probs = c (1, 5, 10, 25, 50, 75, 80, 90, 95, 99, 100) / 100)
       1% 5% 10% 25% 50% 75% 80% 90% 95% 99% 100%
      0.0 0.0 0.0 1.0 20.0 182.0 337.2 1715.2 7873.4 412283.4 2755274.0 

En regardant cela, vous pouvez voir que les données sont faussées (beaucoup) par la relation entre la médiane et la moyenne, qui est tirée par les valeurs du quartile supérieur plage (valeurs au-delà de 75% des observations). Nous pouvons toutefois représenter cela sous la forme de boîte à moustaches dans R où chaque valeur X correspond à la distribution des UEID par rang depuis la position de recherche personnalisée Google 1-20.

Notez que nous utilisons une échelle logarithmique sur l'axe des ordonnées afin d'afficher la plage complète des valeurs car elles varient beaucoup!

Un diagramme en forme de boîte à moustaches dans R sur UEID de Moz du classement de Google (note: log scale)

Les diagrammes en forme de boîte à moustaches sont excellents car ils contiennent beaucoup d’informations (voir la fonction geom_boxplot en R). La zone en violet représente la gamme inter-quartile (IQR), qui correspond aux valeurs comprises entre 25% et 75% des observations. La ligne horizontale dans chaque "case" représente la valeur médiane (celle du milieu quand il est commandé), tandis que les lignes partant de la case (appelées les "moustaches") représentent 1,5 x IQR. Les points situés à l’extérieur des moustaches sont appelés «points aberrants» et indiquent où sont les étendues des observations de chaque rang. Malgré l’échelle logarithmique, les valeurs médianes se situent entre le rang 10 et le rang 1, ce qui indique que le nombre de liens d’équité pourrait être un facteur de classement dans Google. Examinons cela plus en détail avec les diagrammes de densité .

Les diagrammes de densité ressemblent beaucoup aux distributions (histogrammes), mais montrent des lignes lisses plutôt que des barres pour les données. Tout comme un histogramme, le pic d’un graphe de densité indique où les valeurs de données sont concentrées et peut aider à comparer deux distributions. Dans le graphique de densité ci-dessous, j'ai divisé les données en deux catégories: (i) les résultats apparaissant à la page 1 des SERP classées de 1 à 10 sont en rose et; (ii) les résultats apparaissant sur le SERP sont en bleu. J'ai également tracé les médianes des deux distributions pour illustrer la différence entre les résultats de la page 1 et de la page 2.

L'inférence tirée de ces deux diagrammes de densité est que les résultats du SERP ont plus de backlinks d'équité externes (UEID) que de page. 2 résultats Vous pouvez également voir les valeurs médianes pour ces deux catégories ci-dessous, qui montrent clairement comment la valeur de la page 1 (38) est beaucoup plus grande que celle de la page 2 (11). Nous avons donc quelques chiffres sur lesquels baser notre stratégie de référencement des backlinks.

 # Créer un facteur en R en fonction de la page SERP associée au résultat (cser_rank).
> theResults $ rankBin <- paste("Page", ceiling(theResults$cser_rank / 10))
> theResults $ rankBin <- factor(theResults$rankBin)
# Now report the medians by SERP page by calling ‘tapply’
> peu à peu (theResults $ moz_ueid, theResults $ rankBin, médiane)
Page 1 Page 2
    38 11 

Nous pouvons en déduire que les backlinks sur actions (UEID) sont importants et si je conseillais un client sur la base de ces données, je dirais qu'il devrait chercher à obtenir plus de 38 backlinks basés sur des actions pour les aider à se rendre Page 1 des SERPs. Bien sûr, il s'agit d'un échantillon limité et davantage de recherche, d'un échantillon plus grand et d'autres facteurs de classement doivent être pris en compte, mais vous voyez l'idée.

Examinons maintenant une autre métrique moins étendue que UEID. Regardez la mesure UPA de Moz, à savoir la probabilité qu'une page se classe bien dans les résultats des moteurs de recherche.

> summary (theResults $ moz_upa)
   Min. 1er Qu. Médiane Moyenne 3ème Qu. Max.
   1,00 33,00 41,00 41,22 50,00 81,00
> quantile (theResults $ moz_upa, probs = c (1, 5, 10, 25, 50, 75, 80, 90, 95, 99, 100) / 100)
  1% 5% 10% 25% 50% 75% 80% 90% 95% 99% 100%
  12 20 25 33 41 50 53 58 62 75 81 

UPA est un numéro attribué à une URL et compris entre 0 et 100. Les données sont mieux interprétées que la précédente variable non bornée UEID dont la moyenne et la médiane sont rapprochées, ce qui permet une distribution plus «normale», comme on peut le voir ci-dessous en traçant un histogramme dans R.

Un histogramme du score UPA de Moz

Nous allons faire le même graphe de fractionnement et de densité que précédemment et examiner les distributions des scores UPA lorsque nous divisons les données UPA en deux groupes.

 # Signalez les médianes par page SERP en appelant 'tapply '
> tapply (theResults $ moz_upa, theResults $ rankBin, médian)
Page 1 Page 2
    43 39 

En résumé, deux distributions très différentes à partir de deux variables d'API Moz. Mais les deux ont montré des différences dans leurs scores entre les pages de SERP et vous ont fourni des valeurs tangibles (médianes) avec lesquelles travailler et finalement conseiller les clients ou appliquer à votre propre référencement.

Bien sûr, il s’agit d’un petit échantillon qui ne doit pas être pris à la lettre. Mais avec les ressources gratuites de Google et de Moz, vous pouvez maintenant voir comment vous pouvez commencer à développer vos propres capacités d'analyse pour fonder vos hypothèses sur plutôt que d'accepter la norme. Les facteurs de classement SEO changent constamment et disposer de vos propres outils d'analyse pour effectuer vos propres tests vous permettra de gagner en crédibilité et peut-être même de vous donner une idée unique de quelque chose d'inconnu.

Google vous fournit un quota gratuit et sain pour obtenir résultats de recherche de. Si vous avez besoin de plus de 2 500 lignes / mois, Moz fournit gratuitement de nombreux forfaits payants que vous pouvez acheter. MySQL est un téléchargement gratuit et R est également un logiciel gratuit pour l'analyse statistique (et bien plus encore).

Allez explorer!



Source link