Link Audit (broken + internal/external)

action_link_audit · action · Utility · Available · v1.0.0

Description

Audit link su pagina HTML — classifica ogni link in internal (same-origin) / external (cross-domain) / anchor (#frag) / mailto: / tel: / javascript: / data: con dedup canonical URL. Opzionalmente esegue HEAD probe parallelo per identificare link rotti (status >= 400 / DNS fail / timeout / TLS error) con severity classification (404 critical / 5xx warning / 3xx info). Differenza con i sibling: action_link_audit = inventory + probe link su pagina (HTML in → links classified + broken list). Per scoring SEO complessivo che incorpora link health usa action_seo_audit (link ratio nei criteri). Per redirect chain audit del singolo link (multi-hop) usa action_redirect_chain. Per estrazione plain text dei link senza probe usa action_html_select. Probing intelligente: HEAD-first (zero bytes downloaded), fallback automatico a GET no-body se server ritorna 405 Method Not Allowed (alcuni vendor mal- configurati). Concorrenza bounded (default 5, max 20) per non DoS-are il proprio server target durante audit. Cap link probati 200 default (config fino a 1000) — un sito con 10k link in 1 pagina e\` un anti-pattern + audit preferisce campionare random invece di tutto. Classification SEO-relevant: rel="nofollow" / rel="sponsored" / rel="ugc" tag separately (Google li tratta diverso per link juice). target="_blank" detect (UX warning: senza rel="noopener" e\` vulnerabile a reverse tabnabbing). Anchor link with same-page target detection. mailto/tel come "non-web" skip probe ma counted separately. Output: `{ summary: { total, internal, external, anchor, mailto, tel, nofollow, broken }, links: [{ href, text, type, rel, target, status, redirected, latencyMs }], broken: [{ href, status, reason }], stats: { probedCount, probedDurationMs } }`. broken list pronta per email digest settimanale a content manager. Use case Cappella-Sistina-grade: (1) **audit settimanale broken links** su sito aziendale 100 pagine — cron loop fetch + link_audit con probe → aggregate broken list → email content team con responsabilita\` per fix; (2) **post-migrazione check** — confronto link inventory pre vs post migration, alert su link che hanno cambiato URL senza redirect; (3) **monitor affiliate/sponsored link** — il partner advertiser cambia URL senza notifica, detect 404 → revenue impact; (4) **rel="noopener" security audit** — target="_blank" senza noopener = XS-Leaks vulnerability, fix automatico in CMS via webhook. Safety budget: SSRF guard, concorrenza max 20, timeout 8s per probe, hard cap 200 link probati (config 1000), audit log con linksTotal + broken count per detect site degradation trends.

⚙️ Configuration parameters

Fields shown in the editor when configuring the node. Generated directly from the NodeDefconfigFields.

FieldTypeRequiredDefaultDescription
baseUrl
Base URL (per classificare internal/external)
stringno
https://miosito.com — lascia vuoto se ricevi {url, body} dal nodo precedente
Origine di riferimento. Se il nodo precedente è web_fetch_advanced viene preso automaticamente dal payload.
checkBroken
Verifica link rotti (HEAD parallelo)
booleannotrueSe ON fa una HEAD request per ogni link unique. Se OFF restituisce solo conteggi/classificazione (molto più veloce).
scope
Filtra scope da verificare
enum
allinternalexternal
noallall = controlla TUTTI i link http(s). internal = solo stesso host. external = solo host diversi.
maxChecks
Max link verificati
numberno200Hard cap default 200, massimo 1000. Limita carico di rete e tempo esecuzione.
concurrency
Concorrenza richieste
numberno5Numero di richieste parallele. Default 5, max 20.
timeoutMs
Timeout per request (ms)
numberno8000Default 8000 ms. Min 1000, max 30000.
userAgent
User-Agent
stringno
FlowForge-LinkAudit/1.0
User-Agent identificativo. Default identifica FlowForge.

⬆️ Node output

Fields available to downstream nodes via $node.<alias>.json.<field>:

  • baseUrl
  • totalLinks
  • uniqueLinks
  • checked
  • skipped
  • byScope
  • broken
  • brokenCount
  • redirects
  • links

💡 Configuration example

JSON snippet of the node as it appears in the workflow. Values are derived fromdefaultValue and from required parameters.

{
  "id": "node-action_link_audit-1",
  "defId": "action_link_audit",
  "label": "Link Audit (broken + internal/external)",
  "config": {
    "checkBroken": true,
    "scope": "all",
    "maxChecks": 200,
    "concurrency": 5,
    "timeoutMs": 8000
  }
}

🔗 Related nodes in the same category

Ready to use Link Audit (broken + internal/external)?

Available now on all FlowForge plans. Try it free without a credit card.

Start freeBrowse all nodes