---
title: "Redirect old product URLs when a product handle changes"
description: "When a product's URL handle changes, create a URL redirect from the old product URL to the new one, so links, ads and search results keep working. Bulk edits, imports and apps change handles without offering a redirect."
canonical: "https://docs.workflow-trigger-extensions.app/template-redirect-product-handle"
---

# Redirect old product URLs when a product handle changes

When a product's URL handle changes, create a URL redirect from the old product URL to the new one, so links, ads and search results keep working. Bulk edits, imports and apps change handles without offering a redirect.

One trigger, built-in Shopify actions only, no other app needed. Nothing in it is specific to a store, so it works as soon as it is imported.

![The workflow in Shopify Flow: Redirect old product URLs when a product handle changes](https://cdn-dev.eu.codecreationlabs.cloud/crm-tool/uploads/SjJ78gKLnLlocopCui3Cs62dJbGZ7F1n/5d340451f324b0dc.png)
*The complete workflow as it looks in Shopify Flow.*

## What it needs

- The app's permission **Product, Variant & Collection Data Access**. See [Permissions and data access](https://docs.workflow-trigger-extensions.app/permissions-and-data-access.md).
- Nothing else: turning the workflow on switches the trigger **Product Handle Changed** on in the app.

Install the Workflow Trigger Extensions app and grant Product, Variant & Collection Data Access on its Permissions page. Turning this workflow on switches the trigger on in the app.

## Get the workflow

1. Download the `.flow` file attached at the bottom of this page.
2. In your Shopify admin open **Flow**, click **Import** and choose the file.
3. Check the steps, then click **Turn on workflow**.

The file is an export from Shopify Flow itself. Do not edit it by hand; change the workflow in Flow after importing it.

## How it works

1. **Product Handle Changed** starts the workflow and hands it `oldHandle` and `newHandle`.
2. **Create redirect URL** redirects `/products/{{oldHandle}}` to `/products/{{newHandle}}`.

## Make it yours

- Add a condition on `product.status` **Equal to** `ACTIVE` to skip drafts that never had traffic.
- Add **Send internal email** after the redirect if your SEO team wants to hear about moved pages.

> [!NOTE]
> **Good to know**
> If a redirect for the old path already exists (Shopify's product editor offers one when you change a handle by hand), Flow reports the action as failed. That is harmless.

## Next steps

- [Product triggers, step by step](https://docs.workflow-trigger-extensions.app/product-trigger-tutorials.md) - every field this trigger sends, with more examples.
- [Workflow templates](https://docs.workflow-trigger-extensions.app/workflow-templates.md) - all templates.
- [Event history and troubleshooting](https://docs.workflow-trigger-extensions.app/event-history-and-troubleshooting.md) - check that the trigger fired.
