1 21/04/2026 10 min

Quando devi trovare una parola in una pagina web, il punto non è “se” si può fare: il punto è scegliere il metodo giusto in base a quanto controllo hai sulla pagina e a quanto tempo vuoi perdere. Se stai leggendo un articolo, il browser basta. Se stai analizzando una SPA piena di contenuti caricati via JavaScript, devi guardare anche il DOM reale. Se invece vuoi ripetere la ricerca su più pagine, serve uno script o un comando da terminale.

La distinzione importante è questa: il testo visibile, il sorgente HTML e il contenuto generato a runtime non coincidono sempre. Un motore di ricerca interno, una funzione “trova nella pagina” del browser e uno script che interroga il DOM possono dare risultati diversi sulla stessa pagina. Capire dove si trova davvero il testo ti evita di inseguire falsi negativi.

Il metodo più veloce: cerca nel browser

Per una ricerca occasionale, usa la funzione nativa del browser: Ctrl+F su Windows e Linux, Cmd+F su macOS. È il modo più rapido per trovare una stringa già renderizzata nella pagina. Funziona bene su articoli, documentazione, pannelli web e pagine statiche.

Il limite è semplice: il browser cerca nel contenuto che ha già caricato e reso disponibile. Se una pagina mostra risultati solo dopo un click, un filtro, o uno scroll infinito, la ricerca può non vedere parti che non sono ancora nel DOM. In quel caso il problema non è la ricerca: è lo stato della pagina al momento della ricerca.

Un buon trucco operativo è questo: se sospetti che il testo ci sia ma non lo trovi, fai prima un reload completo e aspetta che la pagina finisca di caricare. Su applicazioni lente o con lazy loading aggressivo, la ricerca nel browser può essere fuorviante se la pagina è ancora in costruzione.

Se stai cercando una parola chiave rara, prova anche varianti semplici: maiuscole/minuscole, plurale, trattini, accenti. Molti contenuti web non sono normalizzati bene e una stringa come “login” può comparire come “log-in”, “Log in” o “accedi”.

Quando il testo non è nel markup che stai guardando

La pagina che vedi a schermo non è sempre il punto di partenza migliore. Alcuni siti caricano i contenuti via API, poi li inseriscono nel DOM con JavaScript. Altri mostrano testo dentro componenti che non sono immediatamente visibili, come tab, accordion, menu laterali o popup. In questi casi la funzione di ricerca del browser può non bastare se il contenuto non è ancora stato espanso o creato.

Qui conviene aprire gli strumenti sviluppatore e guardare il DOM effettivo. Con F12 o Ctrl+Shift+I apri DevTools, poi usi la scheda Elements/Inspector per verificare se la parola è presente nell’albero HTML. Se la trovi lì ma non nel testo visibile, significa che il problema è di rendering o di stato UI, non di contenuto mancante.

Se invece non compare neppure nel DOM, devi cambiare ipotesi: il contenuto arriva da un endpoint API, da un file JSON, o viene caricato solo in certe condizioni. In quel caso il browser è solo il livello finale. Per trovare la sorgente vera, guarda la scheda Network e filtra le richieste XHR/fetch: spesso la parola chiave è in una risposta JSON, non nell’HTML iniziale.

Ricerca nel codice sorgente: utile, ma non basta sempre

Se ti serve capire se una parola è presente nel sorgente HTML, puoi usare Visualizza sorgente pagina oppure salvare la pagina e cercarla come testo. È utile quando vuoi distinguere tra contenuto server-side e contenuto inserito dal client. Se il termine esiste nel sorgente ma non nel DOM, probabilmente qualche script lo nasconde, lo sostituisce o lo renderizza solo dopo un’azione.

Questo passaggio è particolarmente utile in ambito troubleshooting. Per esempio: una pagina mostra “nessun risultato”, ma il termine esiste nel sorgente? Allora forse c’è un problema di filtro lato frontend. Il termine non esiste nel sorgente ma compare nella risposta API? Allora il bug sta nel passaggio di rendering. Non è una ricerca fine a sé stessa: è un modo per localizzare il layer giusto.

Se devi fare controlli rapidi senza strumenti grafici, puoi scaricare la pagina e cercare localmente. Su Linux e macOS, una combinazione di curl e grep è spesso più veloce di aprire mille finestre.

curl -L https://example.com/pagina | grep -ni "parola-chiave"

Questo cerca la stringa nella risposta HTML grezza. Se non trovi nulla, non significa per forza che il testo non esista: potrebbe essere caricato via JavaScript dopo il primo render. Però come primo filtro è ottimo.

Se vuoi cercare in più pagine o in un sito intero

La ricerca manuale va bene su una singola pagina. Se invece devi controllare molte URL, serve un approccio ripetibile. Il caso classico è il controllo di documentazione, knowledge base, liste di prodotti o pagine di supporto. Qui il browser diventa lento, mentre uno script o una scansione mirata ti fa risparmiare tempo.

Il criterio da tenere in mente è semplice: non cercare “ovunque” in modo brutale, cerca nel perimetro giusto. Se hai una sitemap, parti da lì. Se hai un elenco URL, lavora su quello. Se hai solo un dominio, puoi comunque recuperare le pagine note e fare una scansione testuale, ma evita di improvvisare crawl aggressivi su siti terzi senza autorizzazione.

Per una ricerca su file già salvati, uno strumento classico resta grep. Su directory di pagine statiche, il vantaggio è la velocità. Su contenuti compressi o generati, però, devi prima estrarre il testo utile. Se l’obiettivo è trovare una keyword in HTML archiviato localmente, il comando base è questo:

grep -Rni --include='*.html' "parola-chiave" /percorso/pagine

Qui -R scorre ricorsivamente, -n mostra la riga e -i rende la ricerca case-insensitive. È un controllo semplice, ma spesso basta per capire se il termine è nel materiale salvato oppure no.

Ricerca nel DOM con JavaScript: quando ti serve precisione

Se vuoi cercare testo dentro una pagina già aperta, ma con più controllo di quello offerto dal browser, puoi usare la console JavaScript. È utile per verificare il contenuto effettivo del DOM, contare occorrenze o trovare elementi che contengono una certa stringa.

Una ricerca semplice sul testo visibile della pagina può partire da document.body.innerText. È un approccio pratico perché lavora sul testo renderizzato, non sull’HTML grezzo.

document.body.innerText.includes('parola-chiave')

Se vuoi qualcosa di più utile, puoi cercare gli elementi che contengono il testo. Questo aiuta quando il termine è distribuito in più nodi o dentro componenti complessi.

[...document.querySelectorAll('*')].filter(el => el.textContent.includes('parola-chiave'))

Il risultato è una lista di elementi. Da lì puoi ispezionare classi, attributi, gerarchia e capire dove la stringa compare davvero. È il metodo giusto quando la ricerca del browser ti dice “nessun risultato”, ma tu sai che la parola è in pagina perché la vedi o perché arriva da API.

Attenzione però a una trappola comune: textContent e innerText non sono identici. Il primo legge il testo del DOM in modo più “grezzo”; il secondo segue meglio il testo visibile, ma può essere più costoso. Se stai facendo debug veloce, la differenza conta poco. Se fai automazione su pagine grandi, conta eccome.

Le tre situazioni in cui la ricerca fallisce quasi sempre

La prima è il testo dentro immagini o PDF incorporati come oggetti grafici. Se la parola è scritta in un banner PNG o in una schermata convertita in immagine, nessuna ricerca testuale la troverà. Serve OCR o il file sorgente.

La seconda è il testo caricato solo dopo interazione: click, hover, scroll, espansione di un pannello. In quel caso devi attivare la parte di UI che lo rende disponibile. Se il contenuto non è nel DOM, la ricerca non può inventarselo.

La terza è il contenuto protetto o parzialmente nascosto da script. Alcune applicazioni tengono i dati in attributi, oggetti globali o risposte API e poi li trasformano in HTML solo al momento opportuno. Qui la chiave non è “cercare meglio”, ma scegliere il layer corretto: Network, DOM, sorgente, cache locale, file statici.

Parole chiave, sinonimi e normalizzazione

Quando cerchi testo in una pagina, non dare per scontato che la forma che hai in mente sia quella che trovi davvero. I contenuti web spesso cambiano per localizzazione, stile editoriale o template. Una keyword può comparire come sigla, come nome esteso, come alias o come etichetta abbreviata.

In pratica conviene ragionare per famiglie di termini. Se cerchi “SSL”, prova anche “TLS”. Se cerchi “password”, verifica anche “credenziali” o “accesso”. Se cerchi il nome di un prodotto, considera eventuali varianti con trattino, spazio o brand abbreviato. È un dettaglio banale, ma spesso fa la differenza tra ricerca utile e ricerca sterile.

Lo stesso vale per gli accenti e per i caratteri speciali. In alcuni casi il contenuto è normalizzato male oppure passa attraverso HTML entity. Una ricerca testuale rigida può saltare un match che in realtà c’è. Per questo, quando il contesto lo consente, vale la pena fare una seconda ricerca più larga o usare un’espressione regolare nello strumento adatto.

Un flusso pratico che evita perdite di tempo

Se vuoi una procedura semplice e ripetibile, usa questo ordine: prima browser, poi DOM, poi sorgente, poi rete. È un flusso che separa bene i casi senza complicarti la vita.

  1. Controlla la ricerca nativa del browser sulla pagina già caricata.
  2. Se non basta, apri DevTools e verifica il DOM o il testo renderizzato.
  3. Se ancora non trovi nulla, guarda il sorgente HTML e le richieste Network.
  4. Se il contenuto arriva da più pagine, passa a strumenti ripetibili come grep o script dedicati.

Questo approccio funziona perché ti fa fermare presto quando il problema è banale, ma ti porta comunque fino al layer corretto quando la pagina è dinamica. Il vantaggio vero non è trovare una parola: è capire dove la parola esiste e in quale forma.

Un esempio concreto: pagina documentazione con contenuto dinamico

Immagina una documentazione tecnica che mostra una tabella di parametri solo dopo aver selezionato una versione del prodotto. La ricerca nel browser sulla pagina iniziale può non trovare il parametro che ti interessa. Se però apri la tab corretta, il testo compare e la ricerca lo vede subito. Questo non è un bug della ricerca: è la pagina che non ha ancora esposto il contenuto.

Ora immagina la stessa documentazione, ma con i dati caricati via fetch da un endpoint JSON. In quel caso il parametro può non essere nel sorgente HTML, ma essere presente nella risposta API. Qui cercare nel markup è tempo perso: devi controllare la rete o il payload ricevuto. La lezione è che il testo “nella pagina” può vivere in posti diversi a seconda di come è costruita l’applicazione.

Quando conviene automatizzare

Se fai questa attività una volta ogni tanto, il browser basta. Se la fai spesso, automatizza. Un piccolo script che scarica le pagine, estrae il testo e cerca la keyword ti evita errori manuali e ti dà risultati ripetibili. Questo è particolarmente utile per check periodici su changelog, help center, pagine di prodotto o raccolte di knowledge base.

Automatizzare non significa per forza costruire un crawler complesso. A volte basta una lista di URL, una richiesta HTTP e una ricerca testuale. L’importante è non confondere il contenuto pubblicato con quello visibile a schermo in un dato momento. Se una pagina dipende da sessione, cookie o stato autenticato, lo script deve replicare quelle condizioni oppure il risultato sarà incompleto.

In sintesi: per trovare testo e parole chiave in una pagina web, la domanda giusta non è solo “dove cercare”, ma “in quale rappresentazione del contenuto”. Browser, DOM, sorgente, rete e file salvati sono strumenti diversi per problemi diversi. Saperli usare nell’ordine corretto ti fa risparmiare tempo e ti evita diagnosi sbagliate.

Se vuoi un controllo rapido, parti dalla ricerca nativa. Se vuoi capire perché non trovi qualcosa, passa al DOM e alla rete. Se vuoi scalare il lavoro, automatizza. È un flusso semplice, ma nella pratica copre quasi tutti i casi utili.