---
title: Are Vercel Preview Deployments indexed by search engines?
description: Information on whether a Vercel Deployment will be indexed by search engines.
url: /kb/guide/are-vercel-preview-deployment-indexed-by-search-engines
canonical_url: "https://vercel.com/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines"
last_updated: 2025-11-27
authors: Sam Ko
related:
  - /docs/platform/deployments
  - /docs/custom-domains
  - /docs/git
  - /docs/project-configuration
install_vercel_plugin: npx plugins add vercel/vercel-plugin
---

For SEO purposes, it's necessary to ensure that your website is not serving duplicate content. It is important to ensure you are not hosting the same content at more than a single URL.

Given the nature of [Preview Deployments](https://vercel.com/docs/platform/deployments#preview), and the way they are designed to give a realistic representation of a [Production Deployment](https://vercel.com/docs/platform/deployments#production), they serve duplicate content by default. This article outlines how this case is handled by Vercel, to ensure your SEO ranking is **not negatively impacted by duplicate content**.

## X-Robots-Tag Header

Vercel [Preview Deployments](https://vercel.com/docs/platform/deployments#preview) are **not indexed by search engines** by default because the `**X-Robots-Tag**` HTTP header is set to `noindex`. If you are using a [Custom Domain](https://vercel.com/docs/custom-domains) that is assigned to a non-[Production Branch](https://vercel.com/docs/git#production-branch), however, the header `X-Robots-Tag: noindex` **will not** be set.

To confirm the value of the `X-Robots-Tag` header, you can use the following [curl](https://curl.haxx.se/) (already available on most desktop devices) command in your terminal to check your Preview Deployment's headers:

`curl -I <preview-deployment-url>`

Amongst the output, you will find an `X-Robots-Tag` header after executing the [curl](https://curl.haxx.se/) command.

`x-robots-tag: noindex`

If you are using a Custom Domain for your preview deployments and wish to override the default behavior of omitting `X-Robots-Tag: noindex`, you should first look to inject the response header using your framework's built-in methods.

`module.exports = { async headers() { const headers = []; if (process.env.NEXT_PUBLIC_VERCEL_ENV === 'preview') { headers.push({ headers: [ { key: 'X-Robots-Tag', value: 'noindex', }, ], source: '/:path*', }); } return headers; }, };` If you are not using a framework or your framework does not support injecting response headers, you may modify the [`Header`](https://vercel.com/docs/project-configuration#project-configuration/headers) [object](https://vercel.com/docs/project-configuration#project-configuration/headers) in your `vercel.json` file.

`{ "headers": [ { "source": "/", "has": [ { "type": "host", "value": "example.com" } ], "headers" : [ { "key" : "X-Robots-Tag", "value" : "noindex" } ] } ] }`

> **NOTE:** Please note that using your framework's built-in methods to inject headers **is always** recommended and doing so through `vercel.json` should only be as a last resort and may lead to other problems.