Liens externes et Google Analytics

Publié le 24 février 2011 Webanalytics

Liens sortants de Google AnalyticsGoogle Analytics est une excellente solution pour analyser le trafic d’un site Internet. Ce n’est pas forcément la meilleure, mais elle conviendra à 90% des utilisateurs. L’un de ses défauts est de ne pas pouvoir analyser et suivre les liens externes. Autrement dit : « Où partent mes visiteurs ? »

SeoMix fait le point sur les différentes solutions qui existent pour traquer les liens sortants.

Pourquoi suivre les liens externes ?

L’intérêt de l’analyse des liens sortants est double : tout d’abord, cela vous indique où vont vos visiteurs, et notamment vers quels sites et quels types de contenus. On peut en déduire plusieurs choses:

  • Ai-je trop de liens externes ?
  • Puis-je créer un contenu similaire (ou meilleur) que la ressource vers laquelle je fais un lien ?
  • Puis-je héberger chez-moi le contenu que j’ai lié depuis mon site ?
  • Comment mieux placer mes liens pour baisser le taux de rebond, fidéliser mes visiteurs et augmenter mon taux de transformation ?

Le deuxième intérêt est de pouvoir mesurer chaque élément de son site. Le webmaster aura des statistiques fiables et concrètes pour tout ce qui concerne :

  • Les échanges de liens
  • La vente d’espace publicitaire
  • Les téléchargements de ressources placées sur d’autres sites
  • Le guest blogging
  • Les thématiques qui intéressent les visiteurs

Suivre les liens sortants dans Analytics

Le rapport des liens externes

Les deux solutions qui sont présentée juste après font appel à la même fonction de Google Analytics, à savoir le suivi d’évènements (et non pas aux variables personnalisées, dont je vous avais déjà parlé). On trouvera les données concernées dans « Contenu » => « Suivi des évènements » => « Catégorie ».

Le suivi des évènements de Google Analytics
Le suivi des évènements de Google Analytics

Ici, vous pouvez analyser tous les évènements que vous avez mis en place sur votre site Internet et donc les clics sur vos liens externes. Le rapport de base donne le nombre total d’évènements et d’évènements uniques (c’est à dire 1 évènement unique par session) ainsi que la valeur de l’évènement  si vous lui en avez donné une.

J’ai créé un rapport personnalisé sur le suivi d’évènements. Il permet de mettre en avant ces éléments :

  • La catégorie de l’évènement (« Clic de sortie »)
  • L’action de l’évènement (« Sortie vers le site XXX »)
  • L’URL de la page depuis laquelle l’évènement a eu lieu (depuis quelle page les visiteurs sortent de mon site)
  • Pour chacun de ces éléments, on retrouvera ces informations:
    • Nombre total d’évènements
    • Nombre unique d’évènements
    • Valeur de l’évènement
    • Nombre de transactions E-commerce
    • Chiffre d’affaire E-commerce
Suivi des évènements et liens sortants dans Analytics
Un meilleur suivi des évènements et des liens sortants

La solution Jquery

EDIT : le code de brianCray n’existe plus.

Pour implanter le suivi des liens sortants, voilà un code de BrianCray que j’adore. Il est simple, efficace, et fonctionne sur tous les sites Internet.

Si votre site charge déjà Jquery, il fera appel à cette librairie. Dans le cas contraire, le code chargera un javascript standard pour mettre en place le suivi des liens externes directement dans Google Analytics. Le code ne pèse pas très lourd et ne surcharge pas le chargement de la page (moins de 4ko).

Copiez-le code suivant dans le Header de votre page, et après Jquery si la librairie est déjà présente.

<script type="text/javascript">
if(typeof jQuery == 'function') {
 jQuery(function () {
 jQuery('a:not([href*="' + document.domain + '"])').click(function () {
 _gaq.push(['_trackEvent', 'clic-sortie', 'sortie vers ' + jQuery(this).attr('href')]);
 });
 });
}
else {
 window.onload = function () {
 var links = document.getElementsByTagName('a');for (var x=0; x < links.length; x++) {links[x].onclick = function () {
 var mydomain = new RegExp(document.domain, 'i');
 if(!mydomain.test(this.getAttribute('href'))) {
 _gaq.push(['_trackEvent', 'clic-sortie', 'sortie vers ' + jQuery(this).attr('href')]);
 }};
 }};
}
</script>

La solution manuelle

On peut également choisir de ne suivre qu’un nombre restreint de liens sortants. Pour cela, il faut manuellement ajouter un balise onclick sur les liens que l’on veut suivre, comme dans l’exemple ci-dessous (en remplaçant XXXXXX par les informations liées au lien qui sera suivi).

<a href="XXXXXX" onclick="_gaq.push(['_trackEvent', 'clic-sortie', 'sortie vers XXXXXX']);">
 XXXXXX
</a>

SetAutoTrackOutbound : un echec…

A vrai dire, j’ai toujours pensé que ce suivi des liens sortants aurait dû être intégré de base dans la solution. J’ai donc continué à fouiller un peu et je suis tombé sur deux lignes de code très intéressantes : setAutoTrackOutbound ainsi que setTrackOutboundSubdomains.

En gros, ces deux lignes sont censés pouvoir mettre en place un tracking des liens externes de manière automatique sur un domaine ou un sous-domaine, sans ajout supplémentaire de notre part. J’aurais pu me dire qu’il s’agissait d’une ligne de code qui était présente pour le fun ou pour une évolution ultérieure, ce qui est en parti vrai puisqu’il existe un rapport dédié dans Google Analytics appelé « Liens sortants ».

J’ai donc commencé un test dans la laboratoire SEO avec la mise en place de plusieurs variantes de SetAutoTrackOutbound. Malheureusement, aucun donnée n’est apparue dans le rapport. Pourtant, j’ai essayé en long, en large et en travers différentes méthodes pour récupérer l’information avec:

  • Le script placé
    • En haut de page
    • En bas de page
    • Scindé en deux (la partie normale en haut et l’autre en bas)
  • En relançant un event après le chargement complet de la page
  • En utilisant différentes écritures, dont :
    • _gaq.push([‘three._setAutoTrackOutbound’, ‘www.seomix.fr’]);
    • _gaq.push([‘three._setAutoTrackOutbound’, ‘seomix.fr’]);
    • _gaq.push([‘three._setAutoTrackOutbound’, [‘www.seomix.fr’]]);
    • _gaq.push([‘three._setAutoTrackOutbound’, [‘seomix.fr’]]);

Si un jour quelqu’un arrive à faire fonctionner setAutoTrackOutbound, je suis preneur. En attendant, soyons patient pour voir si Google Analytics implantera ou non le suivi des liens sortants de manière native.

Mise à jour du 08/03/2011 : une erreur s’était glissée dans mes 2 scripts de suivi des liens externes. Désolé.

Daniel Roch

Fondateur, conférencier, auteur, consultant et expert SEO WordPress

43 Commentaires

Willy Le 24 février 2011 à 9h23
Et si on charge jquery en bas de page, peut-on insérer la solution jquery en bas de page aussi ? Ou bien le script doit forcément se trouver dans le header ?
Daniel Roch Le 24 février 2011 à 9h36
Le script doit juste être placé après Jquery. Donc on peut le placer à loisir dans le header ou dans le footer. ;)
Florian Le 24 février 2011 à 9h38
Super article, j'avoue que j'ai également pris l'habitude de créer des événements pour tous les liens externes, mais également pour les téléchargements de PDFs, clics sur des boutons, etc.

Une extension Wordpress qui peut faire gagner du temps : Google Analytics for Wordpress by Yoast, elle ajoute le suivi des événements à tous les liens sortants (il suffit de cocher une case dans le panneau de configuration).
Romain DIDIER Le 24 février 2011 à 15h49
Notre solution de Web Analytics, SmartProfile, propose un outil de shortlinking qui permet de tracker les liens sortants. Je pense que cette fonction répond assez simplement à ce problème.
kinaze Le 25 février 2011 à 12h30
Merci pour cet article. Une méthode vraiment facile de tracker les sorties des utilisateurs est d'utiliser la fonction du _trackOutbound d'une petite extension géniale pour GA (basée sur jQuery). Voir http://gaaddons.com/doc/_trackOutbound.htm.

Ceci étant dit, je suis souvent surpris de voir le si petit nombre de liens qui sont cliqués directement dans les corps de texte. Mesurer les tendances de ces cliques est vraiment intéressant non seulement pour comprendre quels sont les sujets qui intéressent le plus les internautes, mais aussi quels sont les textes des liens qui fonctionnent le mieux. En supposant que la sortie offerte par le lien externe soit voulue (échange de lien, publicité, ressources centralisées, labo, etc.), cette analyse est un bon moyen de maximiser les ROI de ces tactiques.
Florian G. Le 25 février 2011 à 15h04
Merci pour cet excellent article :) !

Je rejoins kinaze sur l'extension gaAddons. Elle permet également de tracker automatiquement les téléchargements. C'est très utile si vous avez des centaines de PDF sur votre site web !

Pour tracker les liens les plus importants, je rajouterai qu'il est préférable d'utiliser la méthode des pages virtuelles en attendant que l'on puisse utiliser les événements dans les objectifs !
Denis Le 26 février 2011 à 12h44
Je suis en total désaccord avec la 1ère assertion. Google Analytics est incapable D'analyser l'ensemble de trafic d'un site puisqu'il s'agit d'un script chargé à partir de la page d'accueil. Il ne donne qu'une vision parcellaire de l'activité d'un site.

Préférons à Google analytics les outils tels que Awstats qui analyse tout le trafic http.
Daniel Roch Le 26 février 2011 à 18h05
@Denis : je ne vois pourquoi Google Analytics ne permettrait pas d'analyser la totalité du trafic d'un site, surtout qu'il n'est pas chargé depuis la page d'accueil, mais depuis n'importe quelle page.

Et en plus Awstats n'est pas meilleur que GA, loin de là...
Emmanuel Le 27 février 2011 à 18h04
J'ai opté pour la solution manuelle, maintenant je ne comprends pas où trouver les données sur Analytics ?
Daniel Roch Le 27 février 2011 à 18h28
Les données sur les liens externes se trouvent dans le menu "Contenu" => "Suivi des évènements" de Google Analytics.
Emmanuel Le 27 février 2011 à 18h45
Ok pour l'instant je ne vois rien, mais je l'ai mis simplement sur 3 liens pas tellement visibles, pourtant je croyais avoir moi même cliqué pour justement voir ça (réalisé il y a 48h).

Merci !
Elodie SAVARY Le 03 mars 2011 à 11h39
Merci beaucoup pour cet article pertinent. Savoir où vont les internautes est très important, bizarre que GA ne l'ait pas mis en place...
En tout cas merci pour ces solutions bien expliquées.
Emmanuel Le 07 mars 2011 à 19h59
J'ai privilégié la solution manuelle, mais je ne vois rien apparaitre dans le Suivi d'évènements et je ne comprends pas pourquoi.

J'ai mal peut-être mal inséré le code ?

emmanuel-alquier.com (ctrl+f = onclick pour voir mon code sur le lien LinkedIn par exemple.)

Merci d'avance,
Daniel Roch Le 08 mars 2011 à 9h25
Je sais pourquoi. Il y avait une erreur dans le code donné pour le suivi des liens externes (un pagetracker. en trop) qui fonctionne sur mon installation mais pas sur le code de base.

C'est corrigé
Emmanuel Le 08 mars 2011 à 10h38
Mmmh, je suis rassuré !

C'est corrigé, ya pas de raison que ça ne marche pas désormais ;)

Merci !
Mehdi O. Le 09 mars 2011 à 10h08
Bonjour,

Très bon article qui illustre bien les possibilités de GA en personnalisation.
Au passage, l'intervention de Denis est hors sujet. Comparer awStats et GA, c'est comme comparer Notepad et Powerpoint...ce n'est pas tout à fait la même utilisation...
Selim du Chili Le 06 avril 2011 à 19h41
Bonjour, je ne suis pas trop "geek" et j'avoue ne pas avoir saisi où il fallait copier ce code exactement ? que désigne le header ? merci d'avance de votre aide
Daniel Roch Le 07 avril 2011 à 8h16
Il faut modifier le fichier header.php situé dans le thème de WordPress, c'est à dire dans /wp-content/theme/nom-de-votre-theme/header.php
Selim du Chili Le 07 avril 2011 à 14h09
Merci de votre réponse, Daniel, mais je suis sous Joomla. Cela change qq chose ?
Daniel Roch Le 07 avril 2011 à 18h37
Oui : le script de suivi des liens externes de Google Analytics ne dépend pas du CMS que l'on utilise. On peut donc appliquer les codes de suivi sur Joomla. ;)
Selim du Chili Le 07 avril 2011 à 19h48
mais à quel endroit du code HTML de mon site exactement ? désolé, je dois avouer que je suis un peu perdu...
Daniel Roch Le 08 avril 2011 à 9h12
Le code javascript doit être placé dans le fichier header.php du thème WordPress, entre les deux balises HEAD. ;)
Selim du Chili Le 08 avril 2011 à 18h26
Sur Joomla, tu veux dire ?
Je viens de faire la manip (à savoir coller le code entre les deux HEAD et me suis retrouvé avec le code et me suis retrouvé avec le code en haut de ma page d'accueil... :-(
Daniel Roch Le 09 avril 2011 à 16h57
Oui pardon. Il faut trouver dans Joomla l'endroit entre les deux balises HEAD. Es-tu sûr d'avoir bien recopier le code javascript ?
aminelive Le 15 avril 2011 à 10h31
Merci pour l'article,je préfère la solution manuelle avec la gestion de "Suivi des événements" dans google analyics.
Seb F. Le 19 avril 2011 à 14h10
Hello,

Merci pour ce partage bien utile. J'ai au final utilisé la méthode jquery qui me permet d'éviter de penser à rajouter "onclick..." dès que je crée un lien.
Sais-tu s'il existe une astuce similaire pour le suivi des "download jpg / pdf / ..." ; je ne suis malheureusement pas capable d'adapter le code et je ne trouve rien pour l'instant sur le net à ce sujet.
Merci de ton temps et du partage en tout cas !
Aurore Le 26 juillet 2011 à 16h54
Bonjour,
c'est génial c'est ce que je cherchais, j'ai choisi le code de jquery, je suis sur forum actif qui héberge ce code directement sur notre panneau d'administration pour qu'il se place où il faut. J'ai testé deux clics, juste pour me rassurer il faut bien copier tel quel le code ? Je n'ai rien changé du tout ?? Et faut-il un délai avant que les premiers résultats apparaissent dans les évènements de GA ?
    Daniel Roch Le 26 juillet 2011 à 18h54
    Il faudra attendre demain pour voir les premiers résultats. Si quelqu'un a cliqué, cela devrait se voir assez rapidement dans l'interface de Google Analytics.
Aurore Le 27 juillet 2011 à 9h51
Merci Daniel pour votre réponse, je n'ai toujours rien, ce n'est pas faute d'avoir cliqué hier une dizaine de fois sur des liens sortants différents, le code tel qu'il est dans votre billet est ok ou je devais changer quelque chose ? Merci d'avance :)
Daniel Roch Le 27 juillet 2011 à 14h03
Avec le premier code donné, il faut être sûr que la librairie Jquery soit déjà mise en place avant le code.
Aurore Le 28 juillet 2011 à 11h51
Bonjour, alors j'ai eu confirmation, la librairie Jquery est bien mise en place juste avant l'espace alloué afin qu'on entre des codes javascript ou jquery... Je n'ai inséré que votre code, je ne comprends pas pourquoi ça ne marche toujours pas :(
Daniel Roch Le 28 juillet 2011 à 12h06
@Aurore : aurais-tu l'adresse de ton site pour savoir pourquoi le suivi des liens externes ne marche pas ?
Ea Le 31 juillet 2011 à 5h52
Les liens relatifs seront repris avec le script, par exemple : "/page.html" ou "page.html" et un lien du style "http://www.google.com/?q=www.monsite.com" ne sera pas repris.

Ceci doit aller mieux :

[pastacode lang="bash" provider="manual"]$("a[href]").not("[href^="+document.location.origin+"],[href^=//"+document.location.host+"]").each(function(){
if(/^((https?|ftp|irc|gopher|telnet|nntp|worldwind|mailto|svn):\/\/|(mailto|news):)/.test($(this).attr("href")))
_gaq.push(['_trackEvent', 'clic-sortie', 'sortie vers ' + $(this).attr('href')]);
});[/pastacode]
Aurore Le 01 août 2011 à 19h32
Bonjour, j'ai eu une réponse aujourd'hui par un administrateur forum actif qui m'a donné une explication :

il a retiré les balises script et a enlevé la fin car comme la librairie jquery est déjà chargé ça faisait doublon :)

là ça fonctionne, mais j'ai en 1 journée Nombre total d'événements = 3 216 et Événements uniques = 1 370

C'est de la folie, et quand je demande à une boutique de me donner ses stats GA, elle me dit que il n'y a que 7 entrées grâce à mon forum, alors que j'en ai plus de 100 évènement uniques de sortie vers elle...

Ea, voici le code que l'on m'a corrigé aujourd'hui :

[pastacode lang="bash" provider="manual"]$(function(){
$("a[href]").not("[href^="+document.location.origin+"],[href^=//"+document.location.host+"]").each(function(){
if(/^((https?|ftp|irc|gopher|telnet|nntp|worldwind|mailto|svn):\/\/|(mailto|news):)/.test($(this).attr("href")))
_gaq.push(['_trackEvent', 'clic-sortie', 'sortie vers ' + $(this).attr('href')]);
});
});[/pastacode]
Aurore Le 03 août 2011 à 23h31
Non ça ne fonctionne pas, en demandant à plusieurs boutiques, les évènements sont toujours incroyablement plus élevés qu'au réel, aujourd'hui plus de 5000 évènements, donc je vais tester ton code Ea merci beaucoup, je reviens vers vous pour vous dire, et Daniel, j'ai soumis à FA votre avis quant à ce qui ferait buggé les scripts mais apparemment c'est pas ça non plus :) je vais y arriver je lâche pas l'affaire :) Bonne soirée et merci !
Aurore Le 06 août 2011 à 21h01
Bonsoir, donc non, votre script Ea ne fonctionne pas, je suis à zéro :(
Bon je ne sais plus trop quoi faire :( Je crois que j'ai trop d'évènements et que sur le forum c'est trop compliqué, je vais chercher une autre possibilité merci à vous quand même :)
Jowy Le 15 mars 2012 à 16h55
Bonjour et tout d'abord merci pour cet article !

Je déterre un peu cet article mais j'ai une petite question :

J'ai mis en place ce code sur mon site et il track à merveille tous les liens sortants. Sauf que... ce sont des liens d'affiliation vers des boutiques qui ne sont pas toujours parlants une fois dans mon Google Analytics.

Y aurait-il un moyen de récupérer le titre de la page de destination (bon là je rêve un peu) ou au moins de remplacer par le titre du lien ?

Deuxième question : il me track mes ancre interne, y a-t-il un moyen de l'éviter ?

Merci d'avance.
Daniel Roch Le 16 mars 2012 à 11h59
Essaie en remplacant .attr('href') par .attr('title'), et cela devrait fonctionner.
Jowy Le 03 avril 2012 à 11h16
Désolé du retour un peu lent mais j'ai du mettre une balise Title à tous mes liens externes avant de mettre en place la modification.

Donc je confirme que remplacer .attr(‘href’) par .attr(‘title’) fonctionne très bien.

Merci encore !
Lincé Le 22 mai 2012 à 13h10
Bonjour,
Pour ma part j'ai testé plusieurs solutions dont le code manuel dans le lien ou le code dans le header mais les événements ne sont pas comptabilisés.
C'est une page sur laquelle il n'y a qu'un seul lien (et une seule action à faire : cliquer sur le lien)
Précision sur ce lien : il est précédé d'un script car quand on clique sur le bouton il ouvre un formulaire dans une fenêtre externe sur un site de support en ligne. Le script permet d'ouvrir dans une nouvelle fenêtre avec un lien généré automatiquement (car créée un lien avec les informations du site via lequel il est cliqué, etc...)
Donc le code manuel sur le lien du bouton ne fonctionne visiblement pas (le script générant un lien plus complexe)
Pour le code dans le header au lieu du code manuel ne fonctionne pas mieux mais je ne sais pas si c'est pour les mêmes raisons.
Quelqu'un aurait-il une idée ?
Merci d'avance
Daniel Roch Le 23 mai 2012 à 8h59
Si le lien est codé en button, il est normal que cela ne fonctionne correctement. Pouvez-vous nous donner l'URL en question pour savoir ce qui ne fonctionne pas ?
Ronald Le 12 août 2012 à 22h51
Bonjour,

Merci pour cet article qui va me permettre d'améliorer l'analyse de mon site.
Par contre mes liens internes ne contient jamais mon domaine mais commence toujours "/". J'ai donc modifié le script pour n'ajouter les événements que si l'url commence par "http".
J'ai également fait en sorte que les sous domaine ne soient pas concernés.

Voici le code que j'ai modifié même s'il n'est pas encore optimisé pour la suppression des sous domaine. Je ne suis pas doué avec les expressions régulières.


[pastacode lang="bash" provider="manual"] // Suppression du sous-domaine
var domain = document.domain,
ar = domain.split (".");
if (ar.length == 3) {
ar.shift ();
}
domain = ar.join (".");

$('a[href^="http"]').not('[href*="' + domain + '"]').click(function () {
_gaq.push(['_trackEvent', 'outgoing', 'outgoing' + $(this).attr('href')]);
});[/pastacode]
Sandrine Le 02 avril 2014 à 9h05
Bonjour
merci beaucoup pour cet article c'est exactement ce que je recherche !
J'ai choisie la solution automatique où j'ai copié le code dans le leader. Les événements fonctionnent très bien pour les liens internes de mon blog. C'est vraiment super pour suivre la progression du nombre de pages vues et de pouvoir créer des alertes.
Par contre, j'ai également des liens affiliés vers des sites extérieurs au mien. Et j'ai donc créer un événement pour un lien affilié extérieur mais ça ne marche pas. Tout est à zéro alors que le nombre de pages vues n'est pas à 0 et c'est sûr. J'ai créer l'alerte en mettant "page de sortie" "correspond exactement à " valeur : http://www.nom du site avec lien affiliation et j'ai ajouté : m'avertir quand "achat unique" est inférieur à "1". En fait, je veux pouvoir suivre les ventes vers mes boutiques affilié. J'espère que je suis assez compréhensible dans mon message.

Laisser un commentaire

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