Ir al contenido

¿Google indexa tu dirección vercel.app? Cómo mantener las previews y los duplicados fuera de la búsqueda

Qué direcciones de Vercel puede indexar Google, por qué tu-proyecto.vercel.app compite con tu dominio y qué redirección, canonical y protección lo corrigen.

3 min de lectura

Todo proyecto en Vercel tiene más direcciones que la de tu tarjeta de visita. Está tu dominio, www.yourcompany.com. Está la dirección de producción que crea Vercel, your-project.vercel.app. Y cada deploy recibe su propia dirección, además de una por rama para las previews.

La mayoría nunca aparece en Google, porque Vercel se encarga de ellas. Una suele aparecer, y compite con tu dominio real por las mismas búsquedas. Este artículo explica cuál es cuál y cómo cerrar el hueco.

Lo que Vercel ya hace

Vercel añade una cabecera X-Robots-Tag: noindex, que indica a los buscadores que no indexen la página, a:

  • cada preview deployment, es decir, cada deploy desde una rama que no es la de producción;
  • los deployments de producción antiguos: cuando se promociona un deploy nuevo, el anterior empieza a responder con noindex.

El deployment de producción actual no se toca, porque es la web que quieres en la búsqueda. Puedes confirmar lo que envía una dirección con un solo comando:

¿Esta dirección le dice a Google que no la indexe?
curl -sI https://your-project-git-feature-team.vercel.app | grep -i x-robots-tag

Los dos huecos

1. La dirección vercel.app de producción

your-project.vercel.app sirve las mismas páginas de producción que tu dominio, sin noindex. Si Google encuentra un enlace a ella (un README antiguo, una prueba que compartiste, un directorio que lista proyectos de Vercel), tiene dos copias de cada página y debe elegir una. Los duplicados no traen una penalización, pero reparten las señales, y Google a veces elige la dirección que no quieres.

2. Un dominio propio en una rama de preview

Si le diste a una rama que no es de producción su propio dominio, como staging.yourcompany.com, Vercel no le añade noindex. Un entorno de staging en Google muestra páginas sin terminar, precios de prueba y contenido duplicado bajo tu marca.

Cómo corregirlo

Redirige la dirección vercel.app a tu dominio

La solución más limpia es una redirección permanente que solo coincida con ese host y conserve la ruta, para que your-project.vercel.app/pricing?plan=pro llegue a www.yourcompany.com/pricing?plan=pro:

vercel.json
{
  "redirects": [
    {
      "source": "/:path*",
      "has": [{ "type": "host", "value": "your-project.vercel.app" }],
      "destination": "https://www.yourcompany.com/:path*",
      "permanent": true
    }
  ]
}

Que coincida con el host exacto importa: una regla sin él redirigiría tu dominio real a sí mismo, y un patrón amplio atraparía también las direcciones de preview que todavía necesitas.

Pruébalo con una página interna y una query string. Deberías ver un 308 y el Location correcto:

Comprobar la redirección
curl -sI "https://your-project.vercel.app/pricing?plan=pro" | grep -iE "^HTTP|^location"

Haz los canonicals absolutos y en tu dominio

Cada página debe declarar como canonical su propia dirección en tu dominio, escrita completa: <link rel="canonical" href="https://www.yourcompany.com/pricing">. Dos errores frecuentes:

  • Canonicals construidos a partir del host de la solicitud: en your-project.vercel.app, la página declara como principal la dirección vercel.app, y el duplicado se confirma a sí mismo. Constrúyelos a partir de un ajuste fijo con la URL del sitio.
  • Todas las páginas apuntando a la de inicio. Eso le pide a Google que ignore todas tus demás páginas.

Añade noindex a las ramas de preview con dominio propio

Para staging.yourcompany.com, añade tú la cabecera, limitada a ese host:

vercel.json
{
  "headers": [
    {
      "source": "/:path*",
      "has": [{ "type": "host", "value": "staging.yourcompany.com" }],
      "headers": [{ "key": "X-Robots-Tag", "value": "noindex" }]
    }
  ]
}

No lo bloquees en robots.txt en su lugar. Una página bloqueada para el rastreo no se puede leer, así que Google nunca ve su noindex, y la dirección puede seguir apareciendo en los resultados solo por los enlaces.

Activa Deployment Protection para todo lo que no sea producción

En los ajustes del proyecto, Deployment Protection con Standard Protection exige iniciar sesión en Vercel para todas las direcciones excepto tus dominios de producción, y está disponible en todos los planes. Las previews dejan de ser públicas, lo que también viene bien para todo lo que aún no has anunciado. Si un servicio externo necesita acceder a una preview protegida (un sistema de tests, un cliente que revisa), Vercel tiene opciones de bypass para eso.

Limpia lo que Google ya tiene

Si la dirección vercel.app o un dominio de staging ya están en Google:

  1. Despliega primero la redirección o el noindex. Google retira las páginas cuando vuelve a visitarlas y ve el cambio.
  2. Busca site:your-project.vercel.app para ver qué está indexado.
  3. Para ocultar una página más rápido, Search Console tiene la herramienta Retiradas. Oculta la dirección durante unos seis meses; lo que lo hace permanente es la redirección o el noindex.

No borres el proyecto ni el dominio para que el problema desaparezca: una dirección que de repente devuelve errores deja a Google sin nada que seguir, mientras que una redirección pasa su historial a tu dominio.

Después de cada deploy

Ajustes como estos se rompen en silencio: un vercel.json nuevo pierde la redirección, una actualización del framework cambia cómo se construyen los canonicals. Cuando revises las páginas importantes después de un deploy, como en lo que un deploy puede romper en tu SEO, incluye el canonical y una solicitud a la dirección vercel.app.

SEOVercelAlojamiento web

Este artículo también está disponible en: EnglishPortuguês日本語中文