J'ai remplacé un Google Sheet ingérable par un outil de monitoring netlinking — en une soirée, pour 0€
13 avril 2026
7 min de lecture
GD
Gabin DelplanqueConsultant SEO & SEA · WEBQAM Lyon
En agence SEO, le suivi des campagnes de netlinking c'est souvent le parent pauvre de l'outillage. On achète des liens, on les note dans un Google Sheet, et on espère que personne ne les supprime discrètement trois mois plus tard.
Chez WEBQAM, je gère une dizaine de clients en parallèle. Chaque client a son propre sheet. Des dizaines de liens achetés — parfois depuis plus d'un an. Et deux questions qui reviennent en permanence :
Ce lien est-il toujours en ligne ?
Est-il indexé par Google ?
Vérifier ça manuellement, c'est une heure de boulot inutile. Chaque semaine. J'ai décidé de régler le problème une bonne fois pour toutes.
Le Google Sheet c'est confortable au départ. Tout le monde sait l'utiliser, ça se partage en un lien, et ça fait le job pour 5-10 liens.
Mais quand tu passes à 10 clients avec 30 à 100 liens chacun, ça devient ingérable. Pas de vue par client propre, pas de filtres combinables sérieux, pas d'alerte automatique, pas de vérification périodique. Et surtout — personne ne sait vraiment si les liens qu'on a achetés sont toujours là.
Un lien peut disparaître pour plein de raisons : refonte du site éditeur, article supprimé, relation commerciale rompue, migration de domaine. Sans monitoring automatisé, tu le découvres au mieux lors du reporting mensuel, au pire jamais.
Ce que j'ai construit
L'outil tient en trois parties qui s'articulent ensemble.
Architecture de l'outil
Base de données
Google Sheets (un par client)
↓ lecture / écriture via API
Crawler
crawler.py — vérifie chaque URL, lien présent, attribut rel=
↓ appel API indexation
Indexation
SerpAPI — site: query → Oui / Non
↓ automatisation gratuite
Scheduler
GitHub Actions — lundi + jeudi 07h00
↓ si changement détecté
Alerte
Email automatique — lien perdu / désindexé
↓ lecture publique
Interface
index.html — Netlify — connecté en live
Le crawler Python
Script qui vérifie chaque lien, deux fois par semaine
Pour chaque lien de chaque client, il :
Ouvre l'URL du spot et vérifie qu'elle répond (HTTP 200)
Parse le HTML — le lien vers le client est-il toujours présent ?
Interroge SerpAPI — requête site: pour vérifier l'indexation Google
Met à jour les colonnes Statut, Last seen, Indexé dans le Google Sheet
Envoie un email si un lien change de statut
La configuration multi-clients tient dans un seul config.json. Ajouter un client : une ligne JSON, un partage de sheet, terminé.
GitHub Actions — le scheduler gratuit
Lundi + jeudi à 07h00 · zéro serveur · zéro coût
GitHub Actions joue le rôle de serveur cron entièrement gratuit. Un fichier crawler.yml à la racine du repo suffit pour déclencher le script deux fois par semaine, sans aucune intervention.
Connectée en live aux Google Sheets · hébergée sur Netlify
Un fichier HTML connecté aux Google Sheets via l'API gviz — pas de clé API, juste le sheet partagé en lecture publique. Rafraîchissement automatique toutes les 10 minutes.
Vue globale — filtres combinables par statut, gestionnaire, client, indexation. Tri par colonne. Export CSV.
Vue par client — ratio liens actifs / perdus, budget tracké, répartition plateformes.
Vue globale — 249 liens · 19 345€ de budget tracké · filtres par client, statut, gestionnaire
Le coût : 0€
Tout tient sur des services gratuits. Les limites sont largement suffisantes pour une agence de 10 clients.
GitHub Actions
0€ / mois
2 000 min gratuites · on en utilise ~40 min/mois
Google Sheets + API
0€ / mois
Lecture publique via gviz, écriture via compte de service
Netlify
0€ / mois
100 GB/mois de bande passante — usage interne très loin du quota
SerpAPI — le seul service avec une limite : 100 requêtes gratuites par mois. Avec ~100 liens au total en portefeuille, on est pile à la limite. Au-delà, je recommande ValueSerp à 5$/mois pour 5 000 requêtes. C'est la seule dépense possible si le portefeuille grossit.
Ce que ça change concrètement
Le problème avec un suivi manuel, c'est qu'il dépend de la disponibilité. Une campagne de netlinking se construit sur plusieurs mois — et un lien peut disparaître à tout moment, pour des raisons indépendantes de l'agence : refonte du site éditeur, article retiré, migration de domaine.
Sans monitoring automatisé, le délai de détection peut s'étirer. Avec cet outil, chaque changement de statut est détecté en moins de 48 heures et remonté directement — sans attendre le reporting mensuel.
Le résultat en chiffres : 249 liens trackés sur 4 clients actifs · 19 345€ de budget netlinking monitored · détection automatique en moins de 48h si un lien disparaît ou se désindexe.
Ce que j'en retiens
On attend souvent d'avoir le bon outil, le bon budget, le bon moment pour automatiser. Mais la plupart des problèmes opérationnels en agence se règlent avec quelques heures de développement et des APIs gratuites.
Le plus dur n'a pas été le code. C'était de bien définir le problème avant de commencer : qu'est-ce qui doit être vérifié, à quelle fréquence, et comment l'information doit remonter à la surface pour être actionnée.
J'ai passé une soirée dessus. L'outil tourne depuis seul, sans aucune intervention. Chaque heure de maintenance que j'aurais faite manuellement sur les prochains mois est maintenant automatisée.
Le code est dispo si ça t'intéresse.
Je partage volontiers le repo sur demande — crawler, config multi-clients, interface HTML. Envoie-moi un message sur LinkedIn.
Gabin Delplanque — Consultant SEO & SEA, WEBQAM Lyon
Spécialisé en référencement naturel et en gestion de campagnes netlinking, je pilote le pôle SEO de WEBQAM et accompagne une dizaine de clients en parallèle — e-commerce, éducation, B2B industriel, finance, cosmétique. La construction de profils de liens et leur suivi dans le temps font partie de mon quotidien. Je partage mes outils et retours d'expérience sur ce blog et dans ma newsletter Substack.