# Páginas web para RAG: convierte sitios en Markdown limpio y divisible en chunks

> Alimenta tus pipelines de RAG con páginas web: rastrea docs y blogs a Markdown, divide por encabezados y conserva las URL de origen. Desde 0,07 US$/1K páginas.

- URL: https://webreaderapi.com/es/use-cases/rag/
- Última actualización: 2026-10-22
- Editor: WebReaderAPI (https://webreaderapi.com)

La recuperación trabaja con lo que metes en el índice. Un Markdown limpio con encabezados, metadatos y una URL de origen da mejores chunks, menos tokens desperdiciados y respuestas que pueden citar su página.

**Respuesta rápida — ¿Cómo ingiero páginas web en un pipeline de RAG?**

Lee cada página como Markdown de su contenido principal, divídela por sus encabezados, adjunta la URL de origen y el título a cada chunk, y luego genera los embeddings y guárdalos. **WebReaderAPI** se encarga de la lectura: una petición por página, o un trabajo de rastreo (crawl) para un sitio entero de hasta 10.000 páginas, a un crédito por página desde 0,07 US$/1K páginas con fecha de octubre de 2026. Se respeta robots.txt. Sin KYC; paga con criptomonedas.

## Ingesta para RAG con WebReaderAPI

| Atributo | Valor |
| --- | --- |
| Sitio entero | `POST https://webreaderapi.com/api/v1/crawl`: Rastrea un sitio web por trabajo, hasta 10.000 páginas, siguiendo su sitemap, su robots.txt y su Crawl-delay |
| Lista de URL | `POST https://webreaderapi.com/api/v1/batch`: Hasta 100 URLs por trabajo por lotes |
| Por página | Markdown del contenido principal, título, autor, fecha, idioma, recuento de palabras |
| PDFs | Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado |
| Facturación | 1 crédito = 1 página leída sin navegador; 2 créditos cuando la página necesita un navegador para renderizar JavaScript. Una solicitud que falla, o que el robots.txt de un sitio rechaza, no se cobra |
| Precio | 14,25 US$ por 50.000 páginas; los créditos nunca caducan |

## ¿Por qué un Markdown limpio da mejor recuperación?

Los chunks hechos de texto repetitivo se recuperan mal. Cuando una página se divide con sus menús, el texto de cookies y el pie de página todavía dentro, muchos chunks contienen las mismas palabras de navegación, y la búsqueda vectorial los devuelve para preguntas que no tienen nada que ver. La extracción del contenido principal elimina ese ruido antes de generar los embeddings.

Los encabezados importan igual. Un chunk que empieza con `## Refund policy` lleva su tema consigo, así que tanto el embedding como el modelo que lo lea después saben de qué trata. El texto plano pierde esa señal; el HTML en bruto la esconde bajo el marcado.

## ¿Cómo es un pipeline de ingesta?

Cinco pasos, sea cual sea el vector store que uses:

1. **Reúne las URL.** Rastrea el sitio o envía como lote la lista que ya tienes.
2. **Léelo como Markdown.** Usa `main_content=true` para artículos y documentación; usa `false` para páginas de listado.
3. **Divide por encabezados.** Separa en `#`, `##` y `###`, y luego corta las secciones largas según tu límite de tamaño con un pequeño solapamiento.
4. **Añade metadatos.** Guarda `url`, `title`, `published_at` y la ruta de encabezados con cada chunk, para que las respuestas puedan citar su fuente.
5. **Actualiza.** Vuelve a leer las páginas cuyo sitemap `lastmod` haya cambiado y elimina los chunks de las páginas que ahora devuelvan un error.

*Python: lee páginas y divídelas en chunks con su fuente*

```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")

```

## ¿Cuánto cuesta crear y actualizar un índice?

Crear cuesta un crédito por página, dos en las páginas que necesitan un navegador. Actualizar cuesta solo las páginas que vuelves a leer. Tres ejemplos, con los precios de octubre de 2026:

- **El centro de ayuda de un producto** de 800 páginas, actualizado cada mes para las páginas que cambian (alrededor del 10%): 800 créditos una vez y luego unos 80 al mes. 10.000 páginas (3,75 US$) duran años.
- **Diez sitios de documentación** de 2.000 páginas cada uno, actualizados cada semana al 5%: 20.000 créditos y luego unos 4.000 al mes. 50.000 páginas (14,25 US$) cubren la creación y siete meses de actualizaciones.
- **Un archivo de noticias** de 300.000 artículos que nunca cambian: 300.000 créditos una vez, que caben en 500.000 páginas (50 US$).

El embedding y el almacenamiento los facturan tus propios proveedores y no están incluidos.

## ¿Puedo indexar sitios que no quieren ser indexados?

No a través de WebReaderAPI. Las páginas que robots.txt no permite para nuestro rastreador, o para todos los robots, se omiten y no se cobran; los sitios que declaran `Content-Signal: ai-input=no` no se leen por ti. Para tus propios sitios o sitios asociados que bloquean a los robots, pide al propietario que permita `WebReaderAPI` en robots.txt; nuestra [página del rastreador](https://webreaderapi.com/es/bot/) muestra las líneas que hay que añadir.

Esto también importa a tus usuarios. Un asistente RAG que cita fuentes es más útil cuando esas fuentes aceptaron ser leídas.

## ¿Qué pack encaja en un proyecto RAG?

Cuenta las páginas para crear el índice, suma la actualización mensual y elige el pack que cubra unos cuantos meses. Los créditos no caducan.

| Plan | Cantidad | Precio | Precio por unidad |
| --- | --- | --- | --- |
| Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas |
| Starter | 50.000 páginas | 14,25 US$ | 0,28 US$/1K páginas |
| Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas |
| Scale | 500.000 páginas | 50 US$ | 0,10 US$/1K páginas |

En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan

**Antes de pagar**

- Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo.
- Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario.
- Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: 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

## Ingesta para RAG: preguntas frecuentes

### ¿Qué tamaño de chunk debería usar?

Divide primero por encabezados y luego corta las secciones de más de unos 500 a 1.000 tokens con un pequeño solapamiento. Los chunks basados en encabezados contienen un solo tema cada uno, lo que suele recuperar mejor que ventanas de tamaño fijo sobre toda la página.

### ¿WebReaderAPI crea embeddings o almacena vectores?

No. WebReaderAPI lee páginas y devuelve Markdown con metadatos. Tú generas los embeddings con el modelo que elijas y los almacenas en tu propia base de datos vectorial; la [página de LangChain y LlamaIndex](https://webreaderapi.com/es/docs/langchain/) muestra ambos.

### ¿Cómo mantengo el índice actualizado?

Vuelve a leer solo las páginas que hayan cambiado. La mayoría de los sitemaps incluyen una fecha `lastmod` por URL; compárala con tu última lectura y envía como lote las URL que hayan cambiado. Las páginas que ahora fallen deben eliminarse del índice.

### ¿Puedo incluir PDFs del mismo sitio?

Sí. Un rastreo lee los enlaces a PDF del mismo dominio con las mismas comprobaciones de robots.txt. Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado.

---

WebReaderAPI: WebReaderAPI es una API de lectura web para agentes de IA que convierte cualquier página web pública en Markdown limpio, pagando con criptomonedas y sin subir ningún documento de identidad. Los créditos prepago desde 0,07 US$/1K páginas nunca caducan y se respeta robots.txt. Sin KYC: ni documento de identidad, ni selfie, ni documentos. Paga con criptomonedas.
