Link Audit (broken + internal/external)

action_link_audit · action · Utility · Disponibile · v1.0.0

Descrizione

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 il server rifiuta lo HEAD. Concorrenza bounded (default 5, max 20) per non DoS-are il server target. Cap link probati 200 default (config fino a 1000): i primi N link unici in ordine di pagina (campionamento deterministico). Classification SEO-relevant: rel="nofollow" / "sponsored" / "ugc" rilevati per ogni link (Google li tratta diversamente per il link-juice). target="_blank" SENZA rel="noopener"/"noreferrer" → flag tabnabbingRisk (reverse tabnabbing, CWE-1022). Broken links classificati per severity (404/410 critical, 5xx/4xx warning, 3xx info). scope: internal / external / anchor / mailto / tel / data / unknown. Output: `{ summary: { total, internal, external, nofollow, sponsored, ugc, broken, tabnabbingRisks }, byScope, links: [{ href, text, rel, scope, nofollow, sponsored, ugc, targetBlank, noopener, tabnabbingRisk, status?, ok?, severity?, durationMs? }], broken: [...], tabnabbingRisks: [...], redirects: [...], totalLinks, uniqueLinks, checked, skipped }`. broken/tabnabbingRisks pronti per un email digest al 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.

⚙️ Parametri di configurazione

Campi mostrati nell’editor quando si configura il nodo. Generati direttamente dal NodeDefconfigFields.

CampoTipoRequiredDefaultDescrizione
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.

⬆️ Output del nodo

Campi disponibili nei nodi successivi via $node.<alias>.json.<field>:

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

💡 Esempio configurazione

Snippet JSON del nodo come compare nel workflow. I valori sono derivati daidefaultValue e dai parametri required.

{
  "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
  }
}

🔗 Nodi correlati nella stessa categoria

Pronto a usare Link Audit (broken + internal/external)?

Disponibile da subito in tutti i piani FlowForge. Provalo gratis senza carta di credito.

Inizia gratisSfoglia tutti i nodi