Vérifiez les backlinks de votre site dans n8n ou en Python pur ?
Un canevas de 25 nœuds pour un job en trois étapes est un regret courant. Un script qu'aucun autre ne peut modifier est l'autre. Utilisez l'arbre.
Équipe éditoriale Linkzoid ·
Arbre de décision, de haut en bas
Une personne non technique doit-elle modifier le flux ou lire ses exécutions ? Choisissez n8n ou Make.
Le job tient-il en moins de 60 lignes et vit-il dans un repo de toute façon ? Choisissez Python.
Avez-vous besoin d'un message Slack et d'une ligne dans un tableau mais pas de comparaison (diff) ? Choisissez n8n avec un seul nœud HTTP Request.
Comparez-vous des dizaines de domaines, gardez l'historique ou testez unitairement le parsing ? Choisissez Python avec SQLite.
L'équipe paie-t-elle déjà pour les exécutions n8n cloud ? Comptez-les : une boucle sur 40 domaines peut consommer un plan.
Aucune des options ci-dessus ne convient ? Commencez avec curl dans un script shell et voyez ce qui pose problème.
Quand un flux visuel mérite sa place
Un canevas vaut son encombrement dans certains jobs. Si une personne non technique doit voir chaque étape et sa dernière exécution, un flux visuel bat un repo qu'elle n'ouvrira jamais. Gardez-le court.
La plupart des jobs de backlinks consistent à récupérer, vérifier et écrire. Quatre nœuds font cela correctement. Si votre job consiste à vérifier les backlinks de votre site chaque mois pour un client, cette forme convient à un canevas. Les ennuis commencent quand quelqu'un ajoute la pagination, les nouvelles tentatives et une comparaison, car chacune apporte sa propre branche.
Choisissez le canevas pour le lecteur, pas pour l'auteur.
Qui lit le flux
Les gens du marketing et des ventes lisent un flux par ses sorties, et ils veulent voir la dernière exécution clairement. Un canevas leur donne cela sans ticket. Ils lisent la sortie, pas le code. Un script leur donne un fichier log qu'ils n'ouvriront pas.
Donnez au flux un nom clair et une description en une ligne, pour que le prochain lecteur sache ce qu'il promet avant de l'ouvrir. Un nœud avec une étiquette vague coûte plus de temps que n'importe quelle fonctionnalité manquante.
Des branches visibles d'un coup d'œil
Un nœud IF sur ok est facile à suivre. Trois sur une page restent lisibles, si chaque branche a un nom clair. Au-delà, les lignes se croisent, et un réviseur a besoin de dix minutes pour être sûr quelle branche se déclenche sur un résultat vide.
Où un canevas devient un passif
Les boucles sur de nombreux domaines, l'état partagé entre les exécutions et les tests unitaires sont les points de pression habituels. Un canevas gère chacun avec une solution de contournement, et chaque solution de contournement est un endroit où le flux peut s'écarter de ce que vous vouliez dire.
Si vous vous retrouvez à exporter du JSON pour réparer un flux, le job a dépassé le canevas. Déplacez la logique vers du code et gardez le canevas pour la notification.
La configuration n8n en quatre lignes
Un nœud HTTP Request, méthode GET, URL https://linkzoid.pro/api.php. Ajoutez les paramètres de requête action, q, key. Quiconque veut vérifier les backlinks de son site de cette manière peut le copier en cinq minutes.
Stockez la clé dans les identifiants, pas dans le nœud. Ajoutez un nœud IF sur ok, et envoyez la branche false vers un workflow d'erreur qui vous ping.
Divisez le tableau rows avec un nœud Item Lists ou Split Out, puis écrivez dans Google Sheets ou Postgres. Surveillez les comptes d'exécution, car chaque élément peut être facturé comme une étape sur certains plans.
C'est tout le job. Il casse quand la pagination arrive : les boucles dans n8n fonctionnent mais se lisent mal au-delà d'environ dix nœuds.
Construisez le flux n8n en cinq nœuds
Chaque nœud fait un seul job, et chacun peut être testé individuellement avant d'ajouter le suivant.
01
Créez le nœud HTTP Request
Méthode GET et l'URL https://linkzoid.pro/api.php. Ajoutez action, q et per comme paramètres de requête, et laissez la clé pour l'étape suivante.
02
Attachez la clé comme identifiant
Stockez-la dans les identifiants n8n et référez-vous-y depuis la requête. Une clé tapée directement dans le champ URL peut finir dans les logs et les exports.
03
Bloquez sur le drapeau ok
Ajoutez un nœud IF qui lit ok. Envoyez la branche false vers un workflow d'erreur qui publie le corps de la réponse quelque part où vous la verrez.
04
Divisez les lignes
Utilisez Split Out sur le tableau rows pour que chaque domaine devienne son propre élément. Écrivez ces éléments dans un tableau ou une table, pas toute la réponse dans une seule cellule.
05
Testez d'abord sur l'action gratuite
Pointez le nœud vers overview, qui ne nécessite pas de clé, et confirmez la forme de la réponse avant de passer à une action payante.
Tableau de dépannage
Symptôme
Cause n8n
Cause Python
Seulement 10 lignes arrivent
Aucun paramètre per défini sur le nœud
Identique, vérifiez la chaîne de requête
L'exécution réussit, le tableau est vide
Lignes non divisées en éléments
A écrit le dictionnaire au lieu de rows
402 après une semaine
Le workflow boucle sur un déclencheur
Le cron se déclenche deux fois
La clé fuit dans les logs
Collée dans le champ URL
A imprimé l'URL complète
Trous mois sur mois
La rétention d'exécution a supprimé les anciennes exécutions
N'a jamais stocké l'historique
Coût par exécution
De notre côté, le coût est le même dans les deux cas : 2 crédits pour une page refdomains. Le créateur est là où les coûts diffèrent.
Un n8n auto-hébergé est gratuit à exécuter. Les plans cloud comptent les exécutions. Un script simple sur cron ne coûte rien.
Quel que soit votre choix, gardez une copie datée de chaque exécution en dehors de l'outil. Des instantanés hebdomadaires dans Actions sont un endroit ordonné pour cela, et la comparaison de suites explique pourquoi votre propre historique vaut le coup.
Comptez les exécutions par domaine
Une boucle sur quarante domaines fait quarante exécutions sur un plan qui compte les exécutions. Vérifiez comment votre plan compte une boucle avant de la programmer, car la facture suit le compte, pas les crédits.
Écrivez le compte attendu à côté de la programmation. Une surprise sur la facture est plus facile à expliquer quand l'estimation était déjà dans le fichier.
L'auto-hébergement a sa propre facture
Un n8n auto-hébergé coûte le serveur, les mises à jour et les sauvegardes. La base de données est à vous de maintenir. Un script simple sur une petite machine a moins de pièces mobiles, ce qui est une raison de le choisir pour un job mensuel fixe.
Ce qui casse généralement en premier
Dans n8n, c'est la pagination et les comptes d'éléments. En Python, c'est ce que personne n'a testé : un rows vide, un timeout, un champ nommé différemment de ce que vous supposiez.
Aucun outil n'est faux. Choisissez selon qui maintient la chose dans six mois. Si c'est vous, seul, le code est plus facile à grepper. Si c'est une équipe marketing qui vit déjà dans le canevas, un petit flux qu'ils peuvent voir bat un repo qu'ils craignent.
Les configurations mixtes fonctionnent aussi. Laissez Python écrire le CSV sur une programmation et laissez n8n lire le fichier et poster sur Slack. Chaque outil fait la partie qu'il gère le mieux, et aucun flux ne dépasse dix étapes.
Garder la version Python lisible
Le cas habituel pour le code est que quelqu'un d'autre doive le modifier dans six mois. Rendez cela facile. Un script court avec des noms clairs et une réponse sauvegardée bat un one-liner astucieux que personne n'ose toucher.
Testez le parser sur une réponse sauvegardée
Sauvegardez une vraie réponse dans un fichier et pointez un test unitaire dessus. Le parser s'exécute alors sans dépenser un crédit, et un champ renommé échoue dans le test au lieu de lundi matin.
Gardez la réponse sauvegardée petite, car une douzaine de lignes suffisent. Notez la date à laquelle vous l'avez prise, pour savoir quand les noms de champs ont changé pour la dernière fois.
Gardez les paramètres à un seul endroit
Les domaines, les actions et la taille de page appartiennent à un petit bloc de configuration, pas répartis dans le script. Un collègue peut alors changer la liste cible sans toucher à la logique qui analyse les lignes.
Gardez les secrets hors de ce bloc également. Chargez-les depuis l'environnement, de la même manière que la clé est chargée.
Exécutez un essai de deux semaines avant de vous engager
Ne résolvez pas cela sur papier. Construisez la plus petite version du job dans chaque outil, exécutez-la tous les jours pendant deux semaines, et voyez laquelle vous ouvrez sans qu'on vous le demande.
Regardez ce qui casse. Comptez les fois où vous avez dû modifier quelque chose à la main, et les fois où la sortie était fausse sans erreur. L'outil qui demande moins de corrections manuelles est celui à garder.
Journalisez chaque correction manuelle
Gardez une note simple de chaque fois que vous avez touché le flux ou le script à la main. Une courte liste après deux semaines vous dira plus que n'importe quel tableau de fonctionnalités.
Notez qui a demandé des changements
Si les demandes venaient de personnes qui ne peuvent pas lire le code, le canevas peut gagner. Si elles venaient de vous, le repo est plus facile à vivre.
Les deux réponses sont bonnes tant que vous pouvez y pointer. Écrivez la raison à côté du flux ou du repo, et revisitez-la quand le job grandit.
Réponses courtes pour les créateurs
Make ou Zapier fonctionnent-ils avec cette API ?
Oui. Tout ce qui peut envoyer un HTTPS GET avec des paramètres de requête fonctionne, y compris Make, Zapier, Pipedream et Apps Script. Utilisez le module HTTP générique, mettez la clé dans une connexion stockée, et lisez le tableau JSON rows à l'étape suivante.
Un agent IA peut-il l'appeler à la place ?
Techniquement oui, car c'est une API HTTP simple. Pour un job mensuel fixe, un script est moins cher et plus prévisible, et un agent ajoute une facture de modèle et un risque de mauvais paramètre. Utilisez un agent uniquement pour des questions ad hoc.
Quelle est la façon la moins chère de commencer ?
Un script shell avec curl et l'action overview gratuite, exécuté depuis cron. Pas de clé, pas de coût, et vous apprenez la forme de la réponse. Passez à Python quand la première analyse JSON maladroite apparaît.