# Pagine web per RAG: trasforma i siti in Markdown pulito e suddivisibile

> Alimenta le pipeline RAG con pagine web: crawling in Markdown pulito, suddivisione per titolo e URL. Da 0,07 USD/1K pagine, senza KYC, in criptovalute.

- URL: https://webreaderapi.com/it/use-cases/rag/
- Ultimo aggiornamento: 2026-10-22
- Editore: WebReaderAPI (https://webreaderapi.com)

Il retrieval lavora su ciò che metti nell'indice. Un Markdown pulito con titoli, metadati e URL di origine dà chunk migliori, meno token sprecati e risposte che possono citare la loro pagina.

**Risposta rapida — Come inserisco le pagine web in una pipeline RAG?**

Leggi ogni pagina come Markdown del suo contenuto principale, suddividila lungo i suoi titoli, allega l'URL di origine e il titolo a ogni chunk, poi genera gli embedding e salva. **WebReaderAPI** gestisce la lettura: una richiesta per pagina, oppure un crawl job per un intero sito fino a 10.000 pagine, a un credito per pagina da 0,07 USD/1K pagine a ottobre 2026. robots.txt viene rispettato. Senza KYC; paghi in criptovalute.

## Ingestion RAG con WebReaderAPI

| Attributo | Valore |
| --- | --- |
| Intero sito | `POST https://webreaderapi.com/api/v1/crawl`: Crawling di un sito web per job, fino a 10.000 pagine, seguendo la sua sitemap, il suo robots.txt e il suo Crawl-delay |
| Lista di URL | `POST https://webreaderapi.com/api/v1/batch`: Fino a 100 URL per job batch |
| Per pagina | Markdown del contenuto principale, titolo, autore, data, lingua, conteggio parole |
| PDF | I file PDF fino a 20 MB e 100 pagine vengono convertiti in Markdown, a 1 credito per ogni blocco di 10 pagine iniziato |
| Fatturazione | 1 credito = 1 pagina letta senza browser; 2 crediti quando la pagina richiede un browser per eseguire JavaScript. Una richiesta che fallisce, o che il robots.txt di un sito rifiuta, non viene addebitata |
| Prezzo | 14,25 USD per 50.000 pagine; i crediti non scadono mai |

## Perché un Markdown pulito dà un retrieval migliore?

I chunk fatti di boilerplate si recuperano male. Quando una pagina viene suddivisa con menu, testo dei cookie e footer ancora dentro, molti chunk contengono le stesse parole di navigazione, e la ricerca vettoriale li restituisce per domande non correlate. L'estrazione del contenuto principale rimuove quel rumore prima che tu generi gli embedding.

I titoli contano altrettanto. Un chunk che inizia con `## Refund policy` porta con sé il suo argomento, così sia l'embedding sia il modello che lo legge dopo sanno di cosa parla. Il testo semplice perde quel segnale; l'HTML grezzo lo nasconde sotto il markup.

## Come è fatta una pipeline di ingestion?

Cinque passaggi, qualunque vector store tu usi:

1. **Raccogli gli URL.** Esegui il crawling del sito, oppure invia come batch la lista che hai già.
2. **Leggi come Markdown.** Mantieni `main_content=true` per articoli e documentazione; usa `false` per le pagine di elenco.
3. **Dividi per heading.** Spezza su `#`, `##` e `###`, poi riduci le sezioni lunghe al tuo limite di dimensione con un piccolo overlap.
4. **Allega i metadata.** Salva `url`, `title`, `published_at` e il percorso degli heading con ogni chunk, così le risposte possono citare la fonte.
5. **Aggiorna.** Rileggi le pagine il cui `lastmod` nella sitemap è cambiato, ed elimina i chunk delle pagine che ora restituiscono un errore.

*Python: leggi le pagine e dividile in chunk con la loro fonte*

```python
import os
import re

import requests

API = "https://webreaderapi.com/api/v1/read"
HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}
URLS = [
    "https://docs.example.com/getting-started",
    "https://docs.example.com/billing",
]


def chunks_for(url, max_len=2000):
    page = requests.get(API, headers=HEADERS, params={"url": url}, timeout=90).json()
    if "markdown" not in page:
        return []
    out = []
    for section in re.split(r"\n(?=#{1,3} )", page["markdown"]):
        section = section.strip()
        heading = section.splitlines()[0] if section else ""
        for start in range(0, len(section), max_len):
            out.append({
                "text": section[start:start + max_len],
                "url": page.get("final_url", url),
                "title": page.get("title"),
                "heading": heading,
            })
    return out


all_chunks = [c for u in URLS for c in chunks_for(u)]
print(len(all_chunks), "chunks ready to embed")

```

## Quanto costa creare e aggiornare un indice?

La creazione costa un credito per pagina, due per le pagine che richiedono un browser. L'aggiornamento costa solo le pagine che rileggi. Tre esempi, ai prezzi di ottobre 2026:

- **L'help center di un prodotto** da 800 pagine, aggiornato ogni mese per le pagine cambiate (circa il 10%): 800 crediti una volta, poi circa 80 al mese. 10.000 pagine (3,75 USD) durano anni.
- **Dieci siti di documentazione** da 2.000 pagine ciascuno, aggiornati ogni settimana al 5%: 20.000 crediti, poi circa 4.000 al mese. 50.000 pagine (14,25 USD) coprono la creazione e sette mesi di aggiornamenti.
- **Un archivio di notizie** da 300.000 articoli che non cambiano mai: 300.000 crediti una volta, che stanno in 500.000 pagine (50 USD).

Embedding e storage sono fatturati dai tuoi provider e non sono inclusi.

## Posso indicizzare siti che non vogliono essere indicizzati?

Non tramite WebReaderAPI. Le pagine vietate da robots.txt al nostro crawler, o a tutti i robot, vengono saltate e non vengono addebitate; i siti che dichiarano `Content-Signal: ai-input=no` non vengono letti per te. Per i tuoi siti o quelli dei partner che bloccano i robot, chiedi al proprietario di consentire `WebReaderAPI` in robots.txt; la nostra [pagina del crawler](https://webreaderapi.com/it/bot/) mostra le righe da aggiungere.

Questo conta anche per i tuoi utenti. Un assistente RAG che cita le fonti è più utile quando quelle fonti hanno acconsentito a essere lette.

## Quale pack si adatta a un progetto RAG?

Conta le pagine per creare l'indice, aggiungi l'aggiornamento mensile e scegli il pack che copre qualche mese. I crediti non scadono mai.

| Piano | Quantità | Prezzo | Prezzo per unità |
| --- | --- | --- | --- |
| Test | 10.000 pagine | 3,75 USD | 0,38 USD/1K pagine |
| Starter | 50.000 pagine | 14,25 USD | 0,28 USD/1K pagine |
| Build | 100.000 pagine | 21,75 USD | 0,22 USD/1K pagine |
| Scale | 500.000 pagine | 50 USD | 0,10 USD/1K pagine |

In ogni piano: Estrarre il contenuto principale · JavaScript rendering quando serve · Le pagine non riuscite e rifiutate non vengono addebitate · I crediti non scadono mai

**Prima di pagare**

- Ricarica minima 25 USD. Ricarica una volta in criptovalute, poi acquista qualsiasi piano dal tuo saldo.
- Il tuo saldo non ha scadenza e può acquistare crediti pagina in qualsiasi momento. Se un pacchetto costa meno del top-up minimo, l'importo che hai aggiunto solo per raggiungere quel minimo può essere restituito su richiesta entro 30 giorni dal pagamento, in USDT o USDC, purché tu non l'abbia speso. Qualsiasi altro saldo non viene rimborsato salvo che la legge disponga diversamente.
- Accreditato non appena il tuo pagamento è verificato sulla blockchain. Tempo abituale di conferma della rete: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min

## Ingestion per RAG: domande frequenti

### Che dimensione di chunk devo usare?

Dividi prima per heading, poi riduci le sezioni più lunghe di circa 500-1.000 token con un piccolo overlap. I chunk basati sugli heading contengono ciascuno un solo argomento, il che di solito dà risultati di retrieval migliori rispetto a finestre di dimensione fissa sull'intera pagina.

### WebReaderAPI crea embedding o memorizza vettori?

No. WebReaderAPI legge le pagine e restituisce Markdown con i metadata. Fai l'embedding con il modello che preferisci e memorizzi nel tuo vector database; la [pagina su LangChain e LlamaIndex](https://webreaderapi.com/it/docs/langchain/) mostra entrambi.

### Come mantengo aggiornato l'indice?

Rileggi solo le pagine che sono cambiate. La maggior parte delle sitemap riporta una data `lastmod` per ogni URL; confrontala con la tua ultima lettura e invia come batch gli URL cambiati. Le pagine che ora falliscono vanno rimosse dall'indice.

### Posso includere i PDF dello stesso sito?

Sì. Un crawl legge i link PDF sullo stesso dominio con gli stessi controlli robots.txt. I file PDF fino a 20 MB e 100 pagine vengono convertiti in Markdown, a 1 credito per ogni blocco di 10 pagine iniziato.

---

WebReaderAPI: WebReaderAPI è un'API web reader per agenti AI che converte qualsiasi pagina web pubblica in Markdown pulito, con pagamento in criptovalute e senza caricare documenti d'identità. I crediti prepagati da 0,07 USD/1K pagine non scadono mai e robots.txt viene rispettato. Senza KYC — niente documento, niente selfie, niente documenti. Paga in criptovalute.
