Publicar una web gratis: cómo subir a internet la web que has hecho con IA

Publica gratis la web que has hecho con IA: Cloudflare Pages, Netlify, Vercel y GitHub Pages comparados, paso a paso con dominio propio y errores típicos.

9 min

Publicar una web gratis es fácil si la web es estática, es decir, si son archivos HTML, CSS y JavaScript que no necesitan un servidor propio. Cloudflare Pages, Netlify, Vercel y GitHub Pages la alojan sin coste, con HTTPS y con tu dominio. Lo más rápido es arrastrar la carpeta a su panel; lo más cómodo a la larga es conectar un repositorio de git para que cada cambio se publique solo.

Esta guía es para quien ha hecho una web con Claude, ChatGPT, Lovable, v0 o un agente de código y ahora no sabe cómo sacarla de su ordenador. Los límites de cada plataforma son los de sus páginas oficiales, consultadas el 8 de octubre de 2026.

Antes de nada: ¿tu web es estática?

La mayoría de las webs que genera una IA lo son, pero conviene comprobarlo:

  • Estática: un archivo index.html (con o sin CSS, JavaScript e imágenes), o un proyecto de React, Vue o Astro que al compilarse produce una carpeta de archivos. Esto se publica gratis en cualquiera de las plataformas de esta guía.
  • Con servidor: si la web guarda datos en una base de datos, tiene usuarios con contraseña o llama a la API de OpenAI o de Claude con una clave, necesita algo que se ejecute en un servidor. Estas plataformas lo ofrecen con funciones serverless, pero entonces ya no basta con subir archivos.

Si Claude o ChatGPT te han dado un archivo HTML, ya tienes una web estática: guárdalo con el nombre index.html en una carpeta, junto con sus imágenes, y listo. Si es un proyecto con package.json, primero hay que compilarlo. En un proyecto de Vite, npm run build deja la web lista en la carpeta dist; esa carpeta es la que se publica, no la del código.

Herramientas como Lovable o v0 suelen tener su propio botón de publicar dentro de la plataforma (v0, por ejemplo, está integrada con Vercel). Esta guía es para cuando tienes el código y quieres alojarlo tú.

Metix, sin ir más lejos, es una web estática: la construyó un agente de código, Claude Code, con Astro, y el resultado son archivos HTML que puede servir cualquiera de estas plataformas.

Las opciones gratis, comparadas

PlataformaTráfico gratis¿Uso comercial gratis?
Cloudflare PagesPeticiones ilimitadas a archivos estáticosSus límites no lo restringen
Netlify (Free)300 créditos al mes; 1 GB son 20Su página de precios no lo menciona
Vercel (Hobby)100 GB al mesNo, solo uso personal
GitHub Pages100 GB al mes (límite flexible)No para tiendas ni negocios online
Firebase Hosting (Spark)360 MB al día (10,8 GB al mes)No lo menciona

Todas permiten usar tu propio dominio con HTTPS. Lo que hay detrás de cada una:

Cloudflare Pages

No cobra ni limita las peticiones a archivos estáticos, tampoco en el plan gratuito. Los límites están en otra parte: 500 compilaciones al mes, una a la vez y de 20 minutos como máximo, 20.000 archivos por web y 25 MiB por archivo. Admite hasta 100 dominios propios por proyecto.

Netlify

Funciona con un sistema de créditos. El plan gratuito da 300 al mes, sin posibilidad de comprar más, y cuando se acaban todas tus webs se pausan y muestran «Site not available». Los créditos se renuevan al empezar cada ciclo. Cada publicación en producción gasta 15 créditos y cada GB de tráfico, 20. Una cuenta rápida: si publicas 10 veces al mes (150 créditos) y cada visita descarga 1 MB y hace 10 peticiones (0,022 créditos por visita), los 150 créditos restantes dan para unas 6.800 visitas. Las previsualizaciones de ramas y los despliegues fallidos no gastan créditos.

Vercel

Es muy cómodo, sobre todo con Next.js, y su plan Hobby incluye 100 GB de tráfico al mes y hasta 100 despliegues al día. Pero es solo para uso personal no comercial, y lo define en sentido amplio: cuenta como comercial cobrar a los visitantes, anunciar la venta de un producto o servicio, cobrar por hacer la web y mostrar anuncios como los de AdSense. Pedir donaciones sí está permitido. Además, en Hobby no se puede conectar un repositorio que pertenezca a una organización de GitHub.

GitHub Pages

Es gratis con el plan Free de GitHub si el repositorio es público. Tiene límites flexibles de 100 GB de tráfico al mes y 10 compilaciones por hora, y la web publicada no puede pasar de 1 GB. GitHub deja claro que no es para negocios online, tiendas ni servicios de pago, ni para webs que pidan contraseñas o tarjetas. El certificado HTTPS lo saca de Let’s Encrypt.

Firebase Hosting y Render

Firebase Hosting, de Google, sigue teniendo plan gratuito (Spark) con 10 GB de almacenamiento y 360 MB de transferencia al día, dominio propio y SSL incluidos. Render también publica webs estáticas gratis, aunque en su página del plan gratuito no indica cuánto tráfico incluye.

La forma más sencilla: arrastrar la carpeta

Si no quieres saber nada de git, Cloudflare Pages te deja subir la carpeta desde el navegador. Según su guía de subida directa:

  1. Crea una cuenta gratuita en Cloudflare y entra en Workers & Pages.
  2. Pulsa Create application, luego Get started y elige Drag and drop your files.
  3. Ponle nombre al proyecto. Será tu dirección: nombre.pages.dev.
  4. Arrastra la carpeta de la web (la que contiene index.html) y pulsa Deploy site.

Al terminar, la web ya está en internet con HTTPS. Para actualizarla, entra en el proyecto, pulsa Create a new deployment y vuelve a arrastrar la carpeta.

Dos límites de este método: como mucho 1.000 archivos y 25 MiB por archivo. Y un proyecto creado arrastrando la carpeta no se puede pasar después a git; si más adelante quieres publicación automática, tendrás que crear otro proyecto.

La alternativa es Netlify Drop: arrastras la carpeta y se publica al momento, incluso sin cuenta. Sin iniciar sesión publica los archivos tal cual; con cuenta, si el proyecto necesita compilarse, Netlify detecta el framework y lo compila por ti.

Con git: que cada cambio se publique solo

Si ya usas git (o tu agente de código lo usa por ti), conectar el repositorio es lo más cómodo: cada git push a la rama principal publica la web, y las demás ramas pueden generar versiones de prueba con su propia dirección.

El proceso es casi igual en Cloudflare Pages, Netlify y Vercel:

  1. Sube el proyecto a GitHub (o GitLab).
  2. En la plataforma, elige importar un proyecto desde git y autoriza el acceso a tu repositorio.
  3. Indica el comando de compilación y la carpeta de salida. Para un proyecto de Vite, npm run build y dist. Vercel detecta Vite y lo configura solo; Cloudflare tiene ajustes predefinidos por framework.
  4. Si la web necesita variables de entorno, añádelas en el panel de la plataforma, nunca en el repositorio.

En GitHub Pages, se activa en el repositorio, en Settings, Pages, eligiendo como origen una rama o un flujo de GitHub Actions. Ojo con una particularidad: una web de proyecto se publica en tu-usuario.github.io/nombre-del-repo/, no en la raíz. Vite lo explica en su guía: hay que poner base: '/nombre-del-repo/' en su configuración o las rutas de CSS e imágenes se rompen.

Si prefieres la terminal, las tres plataformas tienen su herramienta oficial:

npx wrangler pages deploy dist   # Cloudflare Pages
netlify deploy --prod            # Netlify (con su CLI instalada)
npx vercel --prod                # Vercel

Conectar tu dominio propio

Primero se añade el dominio en la plataforma y después se crean los registros DNS en el sitio donde lo compraste. Hacerlo al revés puede dar errores durante un rato.

  • Cloudflare Pages: en el proyecto, Custom domains y Set up a domain. Para un subdominio (www.tudominio.es o blog.tudominio.es) basta un registro CNAME en tu proveedor de DNS apuntando a tu-proyecto.pages.dev. Para el dominio raíz (tudominio.es), Cloudflare exige que el dominio esté gestionado en Cloudflare, cambiando los servidores de nombres.
  • GitHub Pages: escribe el dominio en Settings, Pages. Para el dominio raíz, crea registros A apuntando a 185.199.108.153, 185.199.109.153, 185.199.110.153 y 185.199.111.153; para www, un CNAME a tu-usuario.github.io. Después marca Enforce HTTPS.
  • Netlify y Vercel: el panel te dice qué registros crear; los dos incluyen el certificado.

El HTTPS no cuesta nada en ninguna: las plataformas generan y renuevan el certificado solas. Lo único que hay que tener es paciencia, porque según GitHub los cambios de DNS pueden tardar hasta 24 horas en propagarse.

Errores típicos y cómo se arreglan

La portada funciona, pero al recargar /contacto sale un 404. Pasa con las aplicaciones de una sola página (React con React Router, por ejemplo): la ruta existe en el JavaScript, no como archivo. En Cloudflare Pages se arregla solo: si tu web no tiene un 404.html en la raíz, la plataforma entiende que es una aplicación de una sola página y sirve la portada para cualquier ruta. En Netlify hay que crear un archivo _redirects en la carpeta publicada con esta línea:

/*    /index.html   200

Las imágenes no cargan en el servidor y en tu ordenador sí. Casi siempre son mayúsculas: en Windows y macOS Foto.JPG y foto.jpg suelen ser el mismo archivo, pero la mayoría de servidores web los distingue. Revisa que los nombres del código coincidan letra a letra con los de los archivos.

Has subido el código en vez de la web compilada. Si ves una página en blanco o un listado de archivos, probablemente has publicado la carpeta del proyecto. Compila y sube dist.

La variable de entorno no hace nada. En los proyectos de Vite y Next.js, las variables que usa el navegador se incrustan al compilar. Si cambias una en el panel, tienes que volver a compilar y publicar.

La clave de la API está a la vista. Es el error más grave, y muy fácil de cometer en una web hecha con IA: la página llama a OpenAI o a Claude directamente desde el navegador, con la clave dentro del JavaScript. Cualquiera que abra las herramientas de desarrollo la ve. La documentación de Vite lo advierte: las variables con prefijo VITE_ acaban en el código del cliente y no deben llevar claves. La solución es una función en el servidor que haga de intermediaria (Cloudflare Pages Functions, Netlify Functions o Vercel Functions); en el plan gratuito de Cloudflare, por ejemplo, las funciones comparten un límite de 100.000 peticiones al día con Workers. Si ya la has publicado, sigue los pasos de qué hacer si se filtra una API key.

Un archivo no se sube. En Cloudflare Pages ningún archivo puede pasar de 25 MiB. Los vídeos pesados, mejor en un servicio de vídeo.

Cuál elegir

  • Para casi todo, Cloudflare Pages. Peticiones ilimitadas a los archivos estáticos, subida arrastrando la carpeta y ninguna restricción comercial en sus límites publicados.
  • Si quieres probar en dos minutos sin cuenta, Netlify Drop. Para una web con visitas, vigila los créditos: al agotarlos, la web se pausa.
  • Si es un proyecto personal en Next.js, Vercel. En cuanto la web tenga anuncios o venda algo, el plan Hobby deja de valer.
  • Para un portfolio o una documentación con el código a la vista, GitHub Pages.

Si tu web va a usar IA (un chat, un generador de textos), el siguiente paso no es el alojamiento sino la arquitectura: dónde vive la clave, cuánto puede gastar cada visitante y qué pasa si alguien abusa. Lo explicamos en cómo integrar IA en una aplicación.

Por dónde seguir

Preguntas frecuentes

¿Necesito comprar un dominio para publicar mi web?

No. Cada plataforma te da una dirección gratuita: tu-proyecto.pages.dev en Cloudflare, tu-proyecto.netlify.app en Netlify, tu-proyecto.vercel.app en Vercel o tu-usuario.github.io en GitHub. El dominio propio solo hace falta si quieres una dirección con tu marca, y se puede añadir después sin volver a publicar.

¿Puedo tener un formulario de contacto en una web estática?

Sí. Netlify tiene formularios integrados y, en sus planes por créditos, los envíos de formularios son gratuitos e ilimitados. En las demás plataformas necesitas una función serverless o un servicio externo que reciba los datos.

¿Es seguro publicar el código en GitHub para usar GitHub Pages?

Con la cuenta gratuita de GitHub, el repositorio de una web de GitHub Pages tiene que ser público, así que cualquiera puede ver el código. No es un problema para una web estática, siempre que no haya dentro claves, contraseñas ni datos personales.

Escrito por

Equipo editorial

No te pierdas nada.

Lo importante de la semana en IA, en un email que se lee en cinco minutos.