---
title: Promoting Deployments
product: vercel
url: /docs/deployments/promoting-a-deployment
canonical_url: "https://vercel.com/docs/deployments/promoting-a-deployment"
last_updated: 2026-06-26
type: how-to
prerequisites:
  - /docs/deployments
related:
  - /docs/instant-rollback
  - /docs/git
  - /docs/environment-variables
  - /docs/cli/deploying-from-cli
summary: Learn how to promote deployments to production on Vercel.
install_vercel_plugin: npx plugins add vercel/vercel-plugin
---

# Promoting Deployments

By default, when you merge to or make commits to your production branch (often `main`), Vercel will automatically promote the changes to Production. However, there are a number of ways to manually change which deployment is served to people who visit your production domain:


<!-- docsgraph:related -->
## Related pages

> **For AI agents:** Follow these links to understand how this page connects to the rest of the Vercel ecosystem. For the full cross-link map (inbound, outbound, prerequisites, and semantic neighbors), see the .graph.md link below.

- [Are Vercel Preview Deployments indexed by search engines?](https://vercel.com/kb/guide/are-vercel-preview-deployment-indexed-by-search-engines?from=related) — Vercel Preview Deployments aren't indexed by default. Learn how the noindex header works, how to confirm it, and the cus
- [How can I use the Vercel CLI for custom workflows?](https://vercel.com/kb/guide/using-vercel-cli-for-custom-workflows?from=related) — You can use the Vercel CLI to deploy any application, including custom git providers and restricted source code.
- [How do I set up a staging environment on Vercel?](https://vercel.com/kb/guide/set-up-a-staging-environment-on-vercel?from=related) — Information on how to set up a staging environment on Vercel.
- [Can you deploy based on tags/releases on Vercel?](https://vercel.com/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel?from=related) — Learn how to deploy based on tags/releases on Vercel.
- [Promote Preview to Production](https://vercel.com/docs/deployments/promote-preview-to-production?from=related) — Test a preview deployment and promote it to production using the CLI.
- [vercel promote](https://vercel.com/docs/cli/promote?from=related) — Learn how to promote an existing deployment using the vercel promote CLI command.
- [Deploy from CLI](https://vercel.com/docs/projects/deploy-from-cli?from=related) — Set up and deploy a Vercel project using the CLI, from linking to production.
- [Rollback Production](https://vercel.com/docs/deployments/rollback-production-deployment?from=related) — Recover from a bad production deployment by rolling back, investigating the root cause, and redeploying a fix.
- [Rolling Release Deployment](https://vercel.com/docs/rolling-releases/rolling-release-deployment?from=related) — Gradually roll out a production deployment using traffic stages, monitoring, and automated abort.

Full cross-link map for this page: [/docs/deployments/promoting-a-deployment.graph.md](/docs/deployments/promoting-a-deployment.graph.md)
<!-- /docsgraph:related -->

- **[Instant rollback](#instant-rollback)**: You can use this as a way to instantly revert to an earlier [deployment](/docs/instant-rollback#eligible-deployments) that **has** served production traffic. It works by assigning your domains to an existing deployment, rather than doing a complete rebuild
- **[Promote preview to production](#promote-a-deployment-from-preview-to-production)**: You can use this as a way to promote a preview deployment to production through a complete rebuild
- **[Promote a staged production build](#staging-and-promoting-a-production-deployment)**: You can use this option to promote a production deployment which has never served production traffic. To use this option, you must turn off the auto-assignment of domains. This option won't trigger a rebuild

## Instant Rollback

Use this when you want to replace the **current** production deployment with another deployment that has already been serving as current in the past. Instant Rollback is a faster process since it involves assigning domains to an existing deployment rather than a complete rebuild and is ideal to quickly recover from an incident in production to roll back. However, because it does not do a complete rebuild, items such as environment variables will not be rebuilt.

For more information on how and when to use it, see the [Instant Rollback docs](/docs/instant-rollback).

## Promote a deployment from preview to production

There may be times when you need to promote an existing preview deployment to production, such as when you need to temporarily use a branch that isn't set as the [production branch](/docs/git#production-branch).

To promote an existing preview deployment to production on Vercel, do the following:

1. Go to your project's **Deployments** section in the sidebar. This tab lists all the previously deployed builds
2. Click the ellipsis (), and from the context menu select **Promote to Production**
3. The popup dialog informs you of which domain(s) will be linked to the build once promoted. To confirm, select **Promote to Production**

![Image](`/front/docs/deployment/promote-to-prod-light.png`)

> **💡 Note:** If you have different [Environment
> Variables](/docs/environment-variables#environments) set for preview and
> production deployments then the variables used will change from preview to
> those you have linked to the production environment. You **cannot use your
> preview environment variables in a production deployment**

## Staging and promoting a production deployment

In some cases you may want to create a production-like deployment to use as a staging environment before promoting it to production.

In this scenario, you can turn off the auto-assignment of domains for your production build, as described below. Turning off the auto-assignment of domains means the deployment won't automatically be served to your production traffic, but also means you must manually promote it to production.

### CLI

For steps on using this workflow in the CLI, see [Deploying a staged production build](/docs/cli/deploying-from-cli#deploying-a-staged-production-build).

### Dashboard

1. On your [dashboard](/dashboard), select your project
2. Open [**Settings**](https://vercel.com/d?to=%2F%5Bteam%5D%2F%5Bproject%5D%2Fsettings%2Fenvironments\&title=Go+to+Environments) in the sidebar and go to your **Environments** settings
3. Click on **Production** and go to the **Branch Tracking** section
4. Disable the **Auto-assign Custom Production Domains** toggle
5. When you are ready to promote this staged deployment to production, select the ellipses (…) next to the deployment
6. From the menu, select the **Promote** option
7. From the **Promote** dialog, confirm the deployment, and select the **Promote** button:

![Image](`/docs-assets/static/docs/concepts/deployments/promote-to-prod-light.png`)

Vercel will instantly promote the deployment; it doesn't require a rebuild. Once promoted, the deployment is marked as [**Current**](#production-deployment-state).

## Production deployment state

Your production deployments could be in one of three states:

- **Staged** – This means that a commit has been pushed to `main`, but a domain has not been auto-assigned to the deployment. This type of a deployment can be promoted to **Current**
- **Promoted** – This production deployment has been [promoted](#staging-and-promoting-a-production-deployment) from staging. If a deployment has already been promoted in the past, you can't promote it again. If you want to use a previously promoted deployment, you must do a rollback to it
- **Current** – This is the production deployment that is aliased to your domain and the one that is currently being served to your users


---

[View full sitemap](/docs/sitemap)
