Un guide mensuel pour un rapport de backlinks reproductible
Exécutez-le une fois par mois, stockez un instantané daté, générez à partir du fichier. Le reste de la page détaille ces trois habitudes.
Équipe de recherche CranSEO ·

Le guide
Récupérer
Un script planifié appelle l'API et écrit un fichier daté, par exemple links_2026-10.rds. GitHub Actions ou cronR conviennent tous les deux.
Vérifier
Échouer le travail sur HTTP 401 ou HTTP 402, et journaliser le champ crédits. Un pull partiel silencieux est pire qu'un arrêt bruyant.
Geler
Ne jamais écraser le fichier du mois dernier. Avec renv et targets, les anciens rapports peuvent toujours être relancés sur les anciennes données.
Générer
Quarto lit le fichier stocké, et non l'API. Le rendu est alors gratuit et reproductible.
Annoter
Ajoutez les lignes de mise à jour datées ci-dessous aux graphiques, afin qu'une augmentation soit lue dans le bon contexte.
Pourquoi mensuel et non quotidien
Notre graphique s'actualise environ une fois par mois. Un travail quotidien renvoie les mêmes chiffres.
Le lancer plus souvent ne rend pas un rapport plus actuel, cela le rend seulement plus coûteux à expliquer. Un lecteur qui voit 30 points identiques supposera que la pipeline est cassée.
Choisissez un jour par mois délibérément, idéalement une semaine après que la précédente actualisation se soit stabilisée. Écrivez la date dans le nom du fichier, afin que la planification elle-même soit documentée.
Choisissez le calendrier en premier et laissez le rapport le suivre. Un rapport qui se reconstruit chaque fois que quelqu'un ouvre le notebook n'a pas de date claire du tout, et c'est difficile à défendre lors d'une revue.

Que stocker outre les chiffres
La moitié du rapport est des métadonnées, donc stockez-les aux côtés des chiffres.
Écrivez la date de récupération, le nom de l'action, les paramètres (per, sort, order) et le champ crédits de la réponse dans un petit fichier annexe à côté de chaque instantané. Six mois plus tard, lorsqu'un collègue demande pourquoi octobre ressemble différemment de septembre, ce fichier répond en dix secondes au lieu d'un après-midi.
Ajoutez le commit git du script et les versions des packages depuis renv. Un rapport qui ne peut pas dire quel code et quel état de l'index ont produit un graphique est une capture d'écran, pas une analyse, aussi soigné que soit le tibble.
Événements Google datés worth drawing on your charts
Penguin 4.0
Penguin est devenu partie intégrante de l'algorithme principal et fonctionnait en quasi temps réel.
Mise à jour du contenu utile
Début du déploiement le 25 août 2022.
Mise à jour de base de mars 2024
Annoncée conjointement avec des changements de politique anti-spam en mars 2024.
Mise à jour de base de mars 2025
Une autre mise à jour de base large, déployée sur environ deux semaines.
Une structure minimale de targets
Trois cibles suffisent lorsque le plan reste petit.
Une cible récupère depuis l'API et écrit le fichier daté, une lit le fichier et construit le tibble, une génère le document Quarto. Comme seule la première cible touche au réseau, vous pouvez relancer les autres hors ligne autant que vous le souhaitez et le graphique ne change pas par accident.
Épinglez les versions des packages avec renv, enregistrez les informations de session dans le pied de page du rapport, et gardez le tableau de seuils issu de la page de notation par lots dans le dépôt à côté du code. Pour le côté financier, la page des tarifs vous indique ce qu'un mois devrait coûter.
Quand quelque chose échoue, lisez d'abord le code. HTTP 401 signifie que la clé est incorrecte ou manquante. HTTP 402 signifie que les crédits sont épuisés. Tout le reste mérite d'être journalisé en entier. Le démontage couvre ces étapes, et l'exemple de jointure est un bon premier travail à planifier.
Apprendre qu'un run a échoué avant qu'un collègue ne le fasse
Un rapport de backlinks reproductible qui échoue silencieusement induit plus en erreur qu'un rapport qui n'a jamais été exécuté. La vraie question n'est pas si le travail peut échouer, mais à quelle vitesse quelqu'en est informé.
Faire échouer le travail bruyamment
Un travail planifié se termine avec un statut non nul lorsqu'un appel retourne HTTP 401 ou 402, et le planificateur marque le run comme échoué. C'est l'alerte la moins chère que vous ayez, et elle ne nécessite aucun service supplémentaire.
Les pulls partiels sont le cas dangereux. Si le script écrit son fichier après vingt des trente chunks, le fichier existe et semble correct. Écrivez dans un nom temporaire et renommez-le uniquement en cas de succès.
Envoyer un message par échec
Choisissez un seul canal pour les échecs, comme un email au propriétaire du rapport ou un message dans le chat d'équipe. Deux canaux signifient deux endroits où chercher, et une plus grande chance que personne ne regarde aucun des deux.
Le message doit nommer la cible qui a échoué, le code de statut et l'heure. Tout le reste appartient au journal.
Vérifier que la sortie est plausible
Un run peut réussir et être faux. Comparez le nombre de lignes avec celui du mois dernier, et signalez une chute au-delà d'un seuil que vous avez choisi à l'avance.
La vérification peut être aussi simple qu'une plage attendue. L'objectif est de remarquer un instantané à moitié vide avant qu'un graphique n'atteigne un client.
Nommer un seul propriétaire pour le rapport
Nommez un seul propriétaire pour le rapport. Une alerte sans propriétaire est lue par tout le monde et n'est suivie d'aucune action par personne.
Le propriétaire n'a pas nécessairement à réparer le travail. Le propriétaire doit décider si un rapport tardif est acceptable, et le dire dans le rapport lui-même.
Écrivez le nom du propriétaire dans l'en-tête du guide, et mettez-le à jour lorsque le propriétaire change. Un guide avec un ancien propriétaire est un danger silencieux.
Questions sur l'exécution mensuelle
Puis-je faire exécuter le travail par cron ?
Oui. Une entrée cron ou un travail CI planifié exécute le script un jour de votre choix, et le script écrit son fichier daté. Les deux fonctionnent tant que la clé provient du magasin de secrets et que le statut de sortie est honnête.
Pourquoi ne pas l'exécuter tous les jours ?
Un run quotidien renvoie les mêmes chiffres, car le graphe de liens s'actualise environ une fois par mois. Cela ne fait que donner l'impression que le rapport est cassé à un lecteur qui voit trente points identiques.
Que se passe-t-il si la clé cesse de fonctionner ou si le solde s'épuise en cours de mois ?
Une clé mauvaise ou manquante retourne HTTP 401, et un solde vide retourne HTTP 402. Le run s'arrête sur l'un ou l'autre code et le nomme. Réparez la clé ou rechargez depuis la page du compte, puis relancez. Le fichier précédent est intact.
Ai-je besoin d'un serveur pour le planifier ?
Pas nécessairement. Un exécuteur CI hébergé, comme GitHub Actions, exécute le script sur une minuterie sans votre machine. cronR peut définir une entrée cron locale si vous voulez le travail sur votre propre ordinateur.
Où doivent vivre les fichiers instantanés ?
Dans un dossier que le rapport lit, avec le mois dans le nom du fichier et pas de réécriture. Gardez le dossier sous contrôle de version uniquement si les fichiers sont suffisamment petits pour votre dépôt, et utilisez le stockage que votre équipe a déjà confiance sinon.
Que mettre dans le fichier annexe ?
La date de récupération, le nom de l'action, les paramètres tels que per, sort et order, et le champ crédits de la réponse. Le script doit écrire ces valeurs lui-même, afin que rien ne dépende de la mémoire.

Choisir le jour et exécuter le premier travail à la main
Le timing et le premier run décident si la planification tient. Les deux sont faciles à mal faire le premier mois, et les deux sont peu coûteux à bien faire.
Deux décisions, écrites une fois, économisent le plus d'arguments plus tard. La première est le jour. La seconde est où la minuterie s'exécute. Les deux appartiennent au guide, pas dans la tête de quelqu'un.
Choisissez un jour et notez-le
Un jour fixe du mois, comme le premier jour ouvrable après que l'actualisation se soit stabilisée, est plus facile à expliquer qu'une devinette début de mois.
Mettez le jour dans le fichier de planification lui-même, afin que le timing fasse partie du code et non d'une mémoire dans le calendrier de quelqu'un.
Exécutez le premier travail à la main
Le premier run planifié doit être manuel. Exécutez le script vous-même, lisez le journal, comparez le fichier avec le précédent, et seulement ensuite confiez la minuterie.
Le premier run teste également le magasin de secrets. Une clé qui fonctionne sur votre machine mais manque dans CI est une raison courante du premier échec planifié.
Gardez l'annexe honnête
Le fichier annexe enregistre ce que le run a fait. Si une personne l'écrit à la main, il s'écarte du run. Ayez le script pour l'écrire, et laissez les gens seulement le lire.
Une annexe que le script n'a jamais touchée est une note, pas un enregistrement, et le rapport devrait citer l'enregistrement.
Comparez l'annexe avec le fichier une fois par mois. Si les chiffres des deux diffèrent, le run a échoué d'une manière que le script n'a pas remarquée.
Où vit la minuterie
Un exécuteur hébergé et une entrée cron locale échouent de manières différentes. Un exécuteur hébergé peut être mis en pause par ses propres paramètres, et une entrée cron locale s'arrête lorsque la machine est en veille. Vérifiez lequel vous avez choisi, et testez la minuterie une fois avec une courte planification avant la vraie.
Quel que soit votre choix, notez la minuterie dans le dépôt à côté du script, afin que la prochaine personne sache où vit le travail.
Fiche d'exécution pour le premier du mois
- Clé présente dans le magasin de secrets CI, pas dans le dépôt
- Solde supérieur aux dépenses attendues (voir la page des tarifs)
- Fichier instantané écrit avec le mois dans le nom
- Fichier du mois précédent intact
- Rapport généré à partir de fichiers, avec les lignes de mise à jour dessinées