Calculer le pagerank. La bonne façon de faire.

Calculer le pagerank. La bonne façon de faire.

Dans le fabuleux monde du web, du SEO et des pages web, il y a quelque chose que l'on aime bien faire quand on audite un site web. Il s'agit de déterminer quelles sont les pages qui sont favorisées par le maillage interne du site.

Pour cela, on a l'habitude de faire un calcul de PageRank.

Dans cet article, je vais aborder successivement plusieurs notions, et pour les plus pressés d'entre vous, je vous invite à vous rendre directement aux sections de cette page qui risque de vous intéresser le plus.

Je vais commencer par définir le PageRank et la notion de surfeur aléatoire, puis voir un modèle plus élaboré appelé le surfeur raisonnable. Ensuite, je vais expliquer comment calculer le PageRank basique avec Gephi et Screaming Frog, puis ensuite comment calculer sa variante raisonnable, plus utile. Des deux calculs de PageRanks, nous comparerons les résultats, et je finirai par faire la promotion d'un boite à outils que l'on trouve dans notre Atelier Data pour les SEOs, qui s'occupe de tout cela sans prise de tête.

  1. Une définition intuitive et utile du PageRank
  2. Le surfeur raisonnable
  3. Calculer le PageRank du surfeur aléatoire avec Screaming Frog et Gephi
  4. Calculer le PageRank du surfeur raisonnable avec Screaming Frog et Gephi
  5. Comparaison des PageRanks
  6. Aller plus loin : crawl et calculs automatiques, prise en compte du nofollow et de la la dilution

Une définition intuitive et utile du PageRank

Le PageRank, conceptuellement, est quelque chose de plutôt simple à appréhender. Imaginez que vous souhaitez déterminer quels sont les pages populaires sur le web. Fermez les yeux. Quelle est la première idée qui vous vient en tête ?

EXACTEMENT ! Vous regardez le nombre de visiteurs sur chaque page du web et vous en déduisez, sans reflexion, quelle est la page la plus populaire. Puis la seconde plus populaire, etc.

Le hic, c'est que connaître le nombre réel de visiteurs sur une page web, c'est compliqué. Surtout quand on se place dans le passé.
De nos jours, on serait tenté de croire que des sociétés telles que Google qui fournissent des solutions d'analytics le peuvent. Mais en fait, il y a tellement de trous dans la raquette que si on se contentait de faire confiance à Google Analytics par exemple, on aurait une idée assez mauvaise des pages les plus populaires du web, ou tout du moins, on en oublierait beaucoup.

Ainsi, il faut voir le problème différemment. Si je suis capable d'imiter le comportement d'un internaute, je peux prédire la façon dont il va naviguer sur le web. Je peux savoir quelle probabilité il aura d'être sur telle ou telle page à tout moment. Si maintenant je décide d'observer non pas un internaute mais des millions, voire des milliards, que se passe-t-il ?
C'est facile, je vais constater que les pages où il y a le plus de probabilités qu'un internaute se trouve sont les pages sur lesquelles il y a le plus d'internautes à un moment donné. Ce sont les pages les plus populaires ! CQFD.

Aussitôt, la question suivante pointe son nez. Mais comment se comporte donc un internaute sur le web ?

Pendant longtemps, on considérait qu'il avait un comportement aléatoire. On parlait même de surfeur aléatoire :

  • le surfeur arrive sur une page, il suit un lien au hasard.
  • ou il décide d'aller faire autre chose, de s'occuper d'autre chose, et il va voir ailleurs si j'y suis. Il se retrouve sur une autre page du web. Au hasard.
  • la plupart du temps, le comportement logique est de suivre le lien.

A ce comportement de l'internaute, est relié un calcul, un algorithme, une fonction. C'est la formule que l'on trouve dans la littérature SEO habituellement : celle du PageRank. Mais je n'ai pas envie de la montrer ici car ce n'est qu'une formule (qui sert à obtenir une valeur -entre 0 et 1-), mais c'est bien le concept du surfeur aléatoire qui reste la clé. Le calcul n'est là que pour donner une forme mathématique à tout cela.

Quand on fait un calcul du PageRank en considérant le surfeur aléatoire, on obtient le calcul classique que font les SEO :

  • récupération de tous les liens du site depuis un outil de crawl tel screaming frog
  • importation des liens dans Gephi
  • utilisation de la fonctionnalité de calcul de Pagerank de Gephi.

Et tout ceci est déjà un bon début : on va récupérer, à l'interne du site, les pages classés par popularité. La valeur absolue de PageRank pour chaque page, on s'en moque un peu, le plus important c'est de connaître le rang des pages - même si savoir qu'une page est 3 fois plus populaire qu'une autre permet tout de même de juger de la disparité de la popularité sur le site.

Le hic, le gros hic, l'énorme hic, c'est que ce calcul de PageRank est bien naïf. En effet, si vous avez pris le temps de vous poser quelques instants, de fermer les yeux à nouveau, vous avez peut-être entrevu quelque chose d'étrange. Vous avez peut-être aussi gardé les yeux ouverts et vous avez pensé en regardant les résultats du calcul de PageRank : "Pourquoi mes pages CGU et mentions légales sont-elles aussi haute dans mon classement ?". SPOILER : Parce qu'elles sont généralement liées depuis toutes les pages du site. Donc le surfeur aléatoire va souvent y accéder en suivant un lien.

Mais bien entendu c'est une hérésie. Ces liens vous les avez placé en footer des pages. Un visiteur réel ne va certainement pas aller cliquer dessus très souvent !

Effectivement, représenter l'internaute comme une créature qui cliquerait frénétiquement au hasard, c'est plutôt insensé. A tel point que l'on s'est bien vite rendu compte que cela donnait des résultats assez peu adaptés quand on calculait le PageRank de cette façon. Vous l'avez vous même vu en quelques secondes en voyant les mentions légales si hautes dans la liste.

Alors, comment mieux représenter l'internaute ?

Le surfeur raisonnable

Les scientifiques ont convenus que finalement cet internaute était nécessairement bien plus raisonnable. On l'imagine donc toujours naviguer sur le web, tel un surfeur, mais parcourir les pages de façon un peu moins aléatoire que précédemment. On se dit que quand il arrive sur une page, c'est d'abord le contenu "central" de la page qui va l'intéresser, en tout cas la plupart du temps. Parfois, bien sûr, il ira directement voir le bloc "en savoir plus" ou bien il remontera dans le site via le fil d'ariane ou le menu, mais il aura certainement beaucoup moins d'appétence à le faire.

Ainsi, on va modéliser ce surfeur raisonnable comme un modèle qui va choisir en premier lieu un "bloc" de la page, aléatoirement bien sûr, mais avec une chance plus grande de choisir le bloc de contenu, par exemple, que le footer. Ensuite, à l'intérieur du bloc retenu, il ira généralement cliquer sur un lien, s'il existe - ou à défaut il quittera le site, faute de pouvoir y rester ou parce qu'il a envie de passer à autre chose.

Les liens ne sont alors plus tous égaux. Les liens footers ont beaucoup moins de poids sur une page que les liens au dessus de la ligne de flottaison par exemple. Les liens dans le contenu de la page sont plus importants que ceux en sidebar.

Vous avez compris le concept, l'algorithme du PageRank, afin de donner un classement plus réaliste de la popularité des pages d'un site web, doit prendre en compte un comportement d'internaute plus intelligent, plus réaliste, plus raisonnable.

Calculer le PageRank du surfeur aléatoire avec Screaming Frog et Gephi

Après cette introduction théorique, passons maintenant à la pratique. Et la première chose à faire c'est de calculer le PageRank de façon "facile", c'est à dire en utilisant simplement la définition la plus basique de l'algorithme, en considérant que l'internaute est un surfeur aléatoire. Rappelez-vous, c'est celui qui clique au hasard, peu importe l'emplacement du lien.

Je pense que c'est quelque chose d'assez balisé maintenant que d'utiliser Screaming Frog + Gephi pour aboutir au calcul de la popularité interne des pages. Mais dans le doute, je préfère la redite, sans pour autant aller dans les coins.

Tout d'abord, on ouvre le logiciel Screaming Frog (il faut bien sûr l'avoir acheté, ou à défaut utiliser la version gratuite, très limitée), puis on lance le crawl en indiquant l'url de la page d'accueil du site.

On peut bien sûr changer la configuration du crawl de façon très poussée, mais nous allons admettre que les paramètres par défaut suffisent.
On patiente jusqu'à ce que le crawl soit terminé à 100%.

Dès lors, nous pouvons nous rendre dans le menu XXX, puis sélectionner All Outlinks. On enregistre alors au format CSV le fichier.

Aussitôt, direction un éditeur de texte (le plus léger possible, souvent le fichier de liens est très lourd, et donc demande beaucoup de ressources pour être ouvert), pour supprimer la première ligne de ce fichier CSV, ainsi que de renommer l'entête "Destination" en "Target".

Une fois cela fait, on peut ouvrir le logiciel Gephi. Après avoir ouvert un nouveau projet, on se rend dans le laboratoire de données et on importe le fichier CSV comme table des liens, en prenant soin de demander la création des noeuds que l'on rencontre dans la liste des liens.

On retourne sur la vue générale pour demander un calcul de PageRank. Après quelques secondes, le calcul se termine et on peut observer le résultat dans le laboratoire de données, dans l'onglet noeuds.

Chaque noeud (page) du site a une valeur de PageRank attribuée. En classant par ordre descendant on constate alors quelles sont les pages les plus favorisées par le maillage interne du site. L'algorithme nous révèle si notre structure est bien faite.

C'est un excellent début mais, comme dans la capture d'écran ci-dessous, je me demande bien ce que vient faire la page cgu en si bonne place ! Je ne souhaite pas référencer cette page et pourtant elle est vue comme une page primordiale de mon site. Que faire ? Supprimer les liens qui amènent vers elle (difficile à cause des règlementations en tous genres) ? Cacher les liens aux moteurs de recherche (difficile si on ne veut pas de risque associé) ? Placer des liens plein texte dans les cgu pour pousser d'autres pages du site (certainement la solution la plus facile et efficace) ?

(ici, http://exterieur est un noeud virtuel qui représente l'ensemble des pages extérieures à mon host, ici cinema.krinein.fr J'ai regroupé à la main toutes les pages extérieures au site directement dans Gephi)

Mais la réalité est tout autre. Les liens vers les cgu sont sur toutes les pages de mon site, mais depuis le footer. Alors je repense au surfeur raisonnable et je revois ma copie. Tous les liens n'ont pas le même poids, j'allais l'oublier !

Malgré tout, faisons un point sur le genre de déductions que l'on peut faire depuis une telle répartition du PageRank (ici avec le surfeur aléatoire, je le rappelle), pour le fun, puisque de toute façon, vous l'aurez compris, il faudra penser surfeur raisonnable :

  • la page les plus importante du site est la page de cgu.
  • ensuite, ma seconde page est la page "extérieur". C'est à dire que je perds du PageRank. En réalité, quand j'observe le site, je vois que je donne surtout du PageRank aux autres sous-domaine de Krinein.fr. Donc ce n'est pas bien grave.
  • Vient ensuite la page d'accueil. Ca me va.
  • la page contact ? Que fait-elle ici ? Je ne souhaite pas la positionner. Et pire, il n'y a pas dessus de contenu qui pourrait véritable m'apporter des visiteurs. Il faudrait travailler pour corriger cela.
  • Ensuite viennent des catégories (idem, le contenu n'est pas top dessus. C'est juste un listing), puis les pages d'articles. Sur ces dernières, il y a du contenu, mais du coup est-ce que je veux pousser particulièrement celles qui sont le plus haut dans le classement ou bien est-ce que je préfère pousser d'autres pages ?

Calculer le PageRank du surfeur raisonnable avec Screaming Frog et Gephi

Ne tournons plus autour du pot. Je l'ai déjà évoqué largement : il faut calculer le PageRank avec un modèle de surfeur plus rusé, comme le surfeur raisonnable. C'est à la fois très facile à faire et redoutablement fastidieux. je m'explique :

  • chaque lien du site peut être caractérisé par un poids. C 'est à dire qu'on peut moduler la valeur d'un lien par rapport à un autre.
  • Une fois la colonne "weight" de Gephi renseignée, il suffit de lancer le calcul de PageRank, comme auparavant, en cochant simplement en plus la case "Utiliser le poids des liens". On obtient alors directement les valeurs du PageRank du surfeur raisonnable.

C'est formidable n'est-ce pas ?

Malheureusement, derrière cette facilité se cache un terrible travail en amont. Il faut qualifier un par un tous les liens du site.

Par exemple, si vous pensez que le bloc de véritable contenu des pages de votre site intéresse 70% du temps l'internaute, alors il va falloir indiquer le pourcentage dans la colonne "weight" de tous les liens qui correspondent.

De même, si le footer est d'après vous intéressant 5% du temps pour un internaute, il faut placer cette valeur dans la colonne "weight" de tous les liens qui correspondent.

Oui, c'est fastidieux. Mais vous pouvez certainement bricoler quelque chose pour parvenir à remplir cette colonne "weight" lors du crawl du site.

Pour tout avouer, on a pensé à cette problématique et on a décidé d'y répondre en proposant un outil efficace et personnalisable qui mâche le boulot et intègre pas mal de subtilités dans le calcul du PageRank.

On en reparlera en conclusion de l'article. C'est vraiment si vous souhaitez aller plus loin et automatiser largement une analyse de PageRank sur des sites. Si vous faites de petits audits pour de petits sites, peut-être que la partie fastidieuse n'est pas si énervante ? Personnellement je ne me vois pas faire tout à la main, mais c'est une question de point de vue 🙂

Comparaison des PageRanks

Sur cinema.krinein.fr j'ai caractérisé l'ensemble des liens (spoiler : j'ai utilisé l'outil de calcul de PageRank que j'évoquerai après pour le crawl et ainsi générer tout seul les poids des liens). Et voici ce que ça donne :

Comparaison PageRank avec surfeur aléatoire et PageRank avec surfeur raisonnable

Les résultats sont globalement différents, même si, évidemment des choses se recoupent :

  • la page d'accueil est la page à plus fort PageRank du site. Pas très surprenant n'est-ce pas ?
  • Le noeud virtuel "exterieur" est toujours haut dans le classement. C'est plutôt logique, les liens qui amènent vers les autres sous-domaines sont très hauts sur les pages.
  • Ensuite viennent les catégories : il va falloir que je les peuple de davantage de contenus !
  • Puis arrivent des articles. Sans surprise.
  • On voit que les pages CGU et contact sont reléguées bien plus bas dans le classement. Bien sûr, j'ai beaucoup de liens qui pointent vers ses pages (liens toutes pages), donc le PageRank reste plutôt haut. Mais la position footer des liens change la donne. Ce n'est plus aussi important de faire de l'optimisation en cloackant les liens, par exemple. Mieux vaut travailler mes pages de catégories...

Aller plus loin : crawl et calculs automatiques, prise en compte du nofollow et de la la dilution

Alors, voici la question à mille euros (en réalité moins ;)). Comment faire pour donner des poids différents aux liens ?

J'ai utilisé l'outil que l'on donne lors de notre formation Atelier Data pour les SEOs. J'ai entré l'url du site à étudier. L'outil est allé crawler le site. Une fois le crawl terminé j'ai exporté la liste des liens de façon à les importer dans Gephi, afin de vous montrer un environnement familier.

Mais en vérité, l'outil fait tout de A à Z. Depuis une interface graphique, vous lancez un crawl, vous calculer le PageRank, vous prenez en compte le poids des liens, le nofollow, vous calculer la quantité de PageRank que vous transmettez à l'extérieur, etc.

Lancer un crawl et récupérer tous les liens ? Rien de plus facile
Je lance le calcul une fois le site crawlé
J'affiche le résultat (ou j'exporte un CSV)

L'outil de l'Atelier Data se présente sous la forme d'images Docker à utiliser directement : on installe docker, on lance, on utilise. Soit sur son ordinateur perso, soit, c'est ce que j'utilise, sur un serveur. Par exemple, pour 10 euros par mois chez online.net vous pouvez avoir un serveur dédié qui héberge l'outil et vous permet de l'utiliser à tout moment, sans monopoliser votre ordinateur de travail. Vous pouvez bien sûr faire la même chose sur n'importe quel serveur dédié qui autorise l'utilisation de Docker.

Un serveur dédié situé dans un datacenter, c'est aussi l'assurance d'avoir une belle vitesse de crawl, une excellente connectivité.

L'outil de l'Atelier Data propose beaucoup de choses reliées à la data (10 modules), mais le module de calcul de PageRank est à mon sens très intéressant car il va plus loin que ce que font classiquement les SEOs, tout en le faisant de façon automatisée. Par exemple :

  • est-ce que votre outil actuel de calcul de PageRank permet de crawler un site ?
  • est-ce qu'il prend en compte le surfeur comme une entité raisonnable ?
  • est-ce qu'il agrège les noeuds extérieur pour permettre de mieux comprendre la fuite de PageRank ?
  • est-ce qu'il considère les liens follow différemment des liens nofollow ? Est-ce qu'il récupère les informations de nofollow depuis l'attribut des liens, depuis le head html, depuis le header de la page, depuis le robots.txt ?

Nous finissons sur une note promotionnelle, et je vous invite largement à venir à la prochaine session de l'Atelier Data pour les SEOs, et à consulter son programme en détail. Cependant, avec cet article, je souhaite avant tout que le concept du surfeur raisonnable soit transmis et utilisé.

Finalement, que vous utilisiez un outil tout fait ou que vous recodiez le vôtre, l'essentiel est d'utiliser des outils que vous savez bien manier. C'est ce qui rend le référenceur efficace et lui évite de faire des tâches répétitives.