Ecco le Migliori Impostazioni di Cloudflare /crawl per Qualsiasi Sito Web
L’endpoint /crawl di Cloudflare Browser Rendering e uno dei modi piu veloci per estrarre contenuti da siti web su larga scala, ma le impostazioni predefinite non sono ottimali per la maggior parte dei casi d’uso. Dopo aver eseguito crawl su decine di siti, dai negozi Shopify alle SPA React fino ai siti di documentazione, queste sono le impostazioni che producono costantemente i migliori risultati.
Questa guida spiega cosa fa ogni impostazione, quando modificarla e i comandi specifici che funzionano meglio per i tipi di sito piu comuni.
La Decisione Piu Importante: La Modalita di Rendering
Ogni crawl inizia con una scelta: Cloudflare deve caricare la pagina in un browser headless, oppure recuperare semplicemente l’HTML grezzo?
render: false (--no-render) recupera l’HTML senza eseguire JavaScript. E veloce, gratuito durante il periodo beta e produce un output pulito per qualsiasi sito che serve il contenuto nella risposta HTML iniziale.
render: true (l’impostazione predefinita) carica ogni pagina in un’istanza headless di Chromium, esegue JavaScript, attende che la pagina si stabilizzi e poi estrae il contenuto. E piu lento, consuma ore browser e costa denaro dopo le 10 ore/mese gratuite.
Quando Ha Senso Ogni Modalita
| Tipo di Sito | Modalita Consigliata | Motivo |
|---|---|---|
| Negozi Shopify | --no-render |
Prodotti, collezioni e pagine sono renderizzati lato server |
| Siti WordPress | --no-render |
Il contenuto e nella risposta HTML iniziale |
| Siti statici e blog | --no-render |
Nessun contenuto dipendente da JavaScript |
| Siti Hugo, Jekyll, Astro | --no-render |
HTML pre-compilato al momento del deploy |
| SPA React o Vue | render: true |
Il contenuto viene caricato tramite JavaScript dopo il caricamento iniziale della pagina |
| Siti con dati a caricamento lazy | render: true |
Recensioni, prezzi e raccomandazioni potrebbero richiedere JS |
Nei nostri test, i siti Shopify hanno restituito contenuti identici per circa il 90% tra le due modalita di rendering. Il contenuto aggiuntivo dal rendering era principalmente composto da elementi UI dinamici come i drawer del carrello e i widget di raccomandazione, non dati significativi sui prodotti. Trattiamo il confronto completo delle modalita di rendering con benchmark comparativi in Pro e Contro dell’Endpoint Cloudflare Crawl con i Negozi Shopify.
La regola generale: inizia con --no-render. Se i risultati mancano di contenuti di cui hai bisogno, passa alla modalita render.
Scoperta URL: Sitemaps vs Link
Il flag --source controlla come Cloudflare trova le pagine da crawlare.
--source sitemaps legge il sitemap.xml del sito e crawla solo gli URL elencati al suo interno. E prevedibile, copre le pagine che il proprietario del sito considera canoniche ed evita il crawling di pagine duplicate o di scarso valore.
--source links parte dall’URL fornito e segue i link <a href> che trova su ogni pagina. Scopre le pagine come farebbe un motore di ricerca, ma puo perdere pagine orfane e potrebbe crawlare paginazioni, filtri o altri pattern URL di scarso valore.
--source all (l’impostazione predefinita) combina entrambi i metodi.
Quale Usare
Usa --source sitemaps quando il sito ha una sitemap completa e ben mantenuta. La maggior parte dei siti Shopify e WordPress ce l’ha. Questa e l’opzione piu affidabile per l’estrazione completa dei contenuti del sito.
Usa --source links o all quando la sitemap e mancante, incompleta o vuoi specificamente verificare la struttura dei link interni del sito.
Blocco Risorse per i Crawl con Render-True
Questa e l’ottimizzazione singola piu impattante per i crawl con render-true. Per impostazione predefinita, il browser headless carica ogni immagine, font, foglio di stile e file multimediale su ogni pagina. Questo e uno spreco quando hai bisogno solo del contenuto testuale.
Aggiungi --block-resources image media font stylesheet a qualsiasi crawl con render-true. L’effetto e significativo:
- Velocita: il tempo di crawl scende da circa 7 secondi per pagina a circa 2 secondi per pagina
- Costo: le ore browser consumate si riducono del 60-70%
- Affidabilita: le pagine che si bloccavano indefinitamente in attesa di asset CDN lenti ora vengono completate normalmente
Il browser esegue comunque JavaScript e costruisce il DOM. Semplicemente salta il download degli asset che non influenzano il contenuto testuale.
La Condizione di Attesa
Il flag --wait-until indica al browser quando smettere di attendere e estrarre il contenuto. L’impostazione predefinita attende che tutta l’attivita di rete sia terminata, il che e lento e non necessario per l’estrazione del contenuto.
--wait-until domcontentloaded indica al browser di estrarre il contenuto non appena il DOM e pronto. Per l’estrazione del testo, questo e quasi sempre sufficiente. Il JavaScript che carica il contenuto sara stato eseguito, ma i ping di analytics in background e le chiamate alle reti pubblicitarie non ritarderanno il crawl.
Comandi Consigliati per Tipo di Sito
Negozio Shopify (Sito Completo)
python crawl.py run https://example.com \
--limit 500 \
--format markdown \
--no-render \
--source sitemaps \
-o results.json
Veloce, gratuito e copre l’intero catalogo prodotti. Le sitemap di Shopify sono complete, quindi --source sitemaps garantisce una copertura totale senza crawlare collezioni paginate o pagine dei risultati di ricerca.
Negozio Shopify (Solo Prodotti)
python crawl.py run https://example.com \
--limit 1000 \
--format markdown \
--no-render \
--include-patterns "https://example.com/products/**" \
-o products.json
Il flag --include-patterns limita il crawl agli URL corrispondenti al pattern fornito. Utile quando hai bisogno solo delle pagine prodotto e vuoi saltare collezioni, articoli del blog e pagine di policy.
WordPress o Blog Statico
python crawl.py run https://example.com \
--limit 500 \
--format markdown \
--no-render \
--source sitemaps \
-o results.json
Stesse impostazioni di Shopify. I siti WordPress sono renderizzati lato server e hanno sitemap affidabili. I generatori di siti statici (Hugo, Jekyll, Eleventy, Astro) producono HTML pre-compilato, quindi render-false cattura tutto.
SPA React o Vue
python crawl.py run https://example.com \
--limit 500 \
--format markdown \
--source sitemaps \
--block-resources image media font stylesheet \
--wait-until domcontentloaded \
-o results.json
Render-true e l’impostazione predefinita, quindi non serve alcun flag. Le aggiunte fondamentali sono --block-resources e --wait-until domcontentloaded. Senza di queste, il crawl sara lento e costoso.
Se la SPA non ha una sitemap, passa a --source links.
Sito di Documentazione
python crawl.py run https://docs.example.com \
--limit 500 \
--format markdown \
--no-render \
--depth 5 \
--exclude-patterns "*/changelog/**" "*/archive/**" \
-o docs.json
I siti di documentazione hanno spesso strutture di link profonde. Aumenta --depth per seguire gerarchie di pagine annidate. Usa --exclude-patterns per saltare pagine di changelog, versioni archiviate o altri contenuti di cui non hai bisogno.
Benchmark delle Prestazioni
Questi numeri provengono da crawl reali su negozi Shopify e di e-commerce a marzo 2026. I nomi dei siti sono stati resi anonimi.
| Sito | Pagine | Modalita | Dimensione Contenuto | Tempo Browser | Tempo Totale |
|---|---|---|---|---|---|
| Negozio integratori (bot-protected) | 89/100 | no-render | 5,9 MB | 0s | ~3,5 min |
| Brand abbigliamento (catalogo grande) | 500/500 | no-render | 77,1 MB | 0s | ~18 min |
| Brand abbigliamento (catalogo grande) | 4/5 | render-true | 0,6 MB | 0,9s | ~10s |
| Brand outdoor DTC | 256/266 | no-render | 11,0 MB | 0s | ~5 min |
| Brand outdoor DTC | 256/266 | render-true | 12,5 MB | 1.338s | ~25 min |
| Negozio abbigliamento medico | 1.200 | no-render | grande | 0s | ~55 min |
Schemi chiave dai dati:
- No-render e da 5 a 10 volte piu veloce di render-true per lo stesso sito
- No-render non consuma tempo browser (gratuito durante la beta)
- Il tempo effettivo scala linearmente con il numero di pagine per i crawl no-render
- I siti con direttive crawl-delay nel
robots.txtsaranno lenti indipendentemente dalle impostazioni, perche il crawler le rispetta
Ottimizzazione dei Costi
Il piano Workers Paid costa $5/mese. Oltre a questo, i costi derivano dalle ore browser consumate dai crawl con render-true.
Livello gratuito: 10 ore browser/mese. Un crawl di 500 pagine con render-true e blocco risorse utilizza circa 15-20 minuti di tempo browser. Puoi eseguire oltre 30 crawl ottimizzati al mese all’interno del livello gratuito.
Senza blocco risorse: lo stesso crawl di 500 pagine potrebbe utilizzare oltre 60 minuti di tempo browser, riducendo la tua capacita gratuita a circa 10 crawl al mese.
I crawl no-render sono gratuiti durante il periodo beta. Per i siti renderizzati lato server, non c’e motivo di usare render-true.
Formula dei Costi
Browser cost = (pages x seconds_per_page) / 3600 x $0.09
A 2 secondi per pagina (render-true ottimizzato): 500 pagine = 0,28 ore = $0,025
A 7 secondi per pagina (non ottimizzato): 500 pagine = 0,97 ore = $0,087
La differenza e piccola per singolo crawl ma si accumula quando si eseguono crawl giornalieri o settimanali su piu siti.
Limiti da Conoscere
| Risorsa | Limite |
|---|---|
| Pagine per crawl | 100.000 |
| Job di crawl al giorno | Illimitati (Workers Paid) |
| Ore browser | 10 ore/mese gratuite, poi $0,09/ora |
| Richieste API | 600/minuto |
| Browser concorrenti | 30 per account |
| Durata del job | 7 giorni massimo, risultati disponibili 14 giorni |
Problemi Comuni e Soluzioni
Errori 403 sulla maggior parte delle pagine: il sito ha protezione anti-bot (Cloudflare Bot Management, Akamai, Datadome). Questo non puo essere aggirato tramite l’endpoint /crawl. Il crawl verra completato ma la maggior parte delle pagine restituira errori.
Il crawl con render-true si blocca verso la fine: una o piu pagine hanno risorse a caricamento lento che bloccano il browser. Aggiungi --block-resources image media font stylesheet e --wait-until domcontentloaded.
Contenuto mancante in modalita no-render: il sito carica il contenuto tramite JavaScript. Passa a render-true con le ottimizzazioni di blocco risorse e attesa.
Lo script si blocca a meta crawl: il job di crawl continua a essere eseguito sui server di Cloudflare. Controlla lo stato e recupera i risultati quando termina:
python crawl.py status <job_id>
python crawl.py results <job_id> -o out.json
Risultati vuoti con la fonte sitemaps: la sitemap del sito potrebbe essere mancante o bloccata. Passa a --source links o --source all.
Limitazioni Note
Prima di costruire un flusso di lavoro attorno all’endpoint /crawl, tieni presente questi vincoli:
- Risoluzione URL relativi non corretta: il convertitore markdown di Cloudflare risolve incorrettamente gli URL relativi come
//www.example.com/pathanteponendo l’URL della pagina. Questo crea percorsi malformati nell’output, in particolare sui siti Shopify. - Contenuto boilerplate in ogni pagina: menu di navigazione, mega menu e footer appaiono nel markdown di ogni pagina. Per un tipico sito Shopify, circa il 90% del contenuto per pagina e contenuto template ripetuto. Consulta la nostra analisi dei rapporti di boilerplate su crawl reali di negozi Shopify.
- Nessuna estrazione di dati strutturati: JSON-LD, schema.org e i dati OpenGraph non vengono analizzati in modalita no-render. Render-true cattura i tag OG di base nei metadati ma non lo schema completo.
- Nessun rilevamento 404: il crawl elabora solo URL attivi. I link morti e i link interni rotti non vengono segnalati.
- URL di partenza singolo: l’API accetta un URL e si espande a raggiera. Non accetta una lista di URL. Per il recupero batch di URL, usa invece gli endpoint
/markdowno/scrape.
Domande Frequenti
Devo usare render true o render false con Cloudflare /crawl?
Usa render false (--no-render) per i siti con rendering lato server come Shopify, WordPress e siti statici. Usa render true solo per le single-page app costruite con React, Vue o Angular dove il contenuto viene caricato tramite JavaScript. Nei nostri test, i siti Shopify hanno restituito contenuti identici per circa il 90% in entrambe le modalita.
Quanto costa Cloudflare Browser Rendering /crawl?
Un piano Workers Paid costa $5/mese. I crawl con render-false non consumano tempo browser e sono gratuiti durante la beta. I crawl con render-true utilizzano ore browser: 10 ore/mese sono gratuite, poi $0,09/ora. Bloccare immagini, font e fogli di stile durante i crawl con render-true riduce significativamente il tempo browser.
Qual e la migliore fonte di scoperta URL per Cloudflare /crawl?
Usa --source sitemaps per i siti con sitemap complete come Shopify e WordPress. Questo garantisce una copertura prevedibile e completa. Usa --source links o all quando la sitemap potrebbe essere incompleta o vuoi scoprire le pagine come farebbe un motore di ricerca.
Perche il mio crawl Cloudflare con render-true si blocca sulle ultime pagine?
Le pagine con risorse a caricamento lento come immagini di grandi dimensioni o script di terze parti possono bloccare il browser headless per oltre 60 secondi. Risolvi aggiungendo --block-resources image media font stylesheet e --wait-until domcontentloaded al tuo comando di crawl.