Shopify Product Handle Changes After Import

Importier Team9 min read
A broken chain link on concrete beside intact chain links, representing a broken URL connection.
On this page

A merchant has a product page for "Women's Waterproof Trail Boot" that has been live for eight months. Fourteen outdoor gear review sites link to it. Google has indexed it at a stable URL. The page ranks on the second page of results for the product's primary keyword.

The supplier sends an updated catalogue with new pricing and a slightly updated product name. The merchant re-imports the catalogue via CSV. Two days later, a customer emails asking why the product page is returning a 404. The merchant checks and finds a new product at a different URL. The original URL is gone.

Shopify product handle changes after import are one of the most damaging silent problems in catalogue management. A 404 is visible. The lost search equity on the old URL is not.

What a Shopify product handle is

A product handle is the URL slug for every Shopify product page: yourstore.com/products/[handle]. When Shopify creates a new product, it generates the handle from the product title: converting to lowercase, replacing spaces with hyphens, and removing special characters.

A product titled "Women's Waterproof Trail Boot - Dark Forest Green" gets the handle womens-waterproof-trail-boot-dark-forest-green. Once created, the handle stays fixed unless the merchant manually regenerates it through the product settings.

This makes handles stable by default. The problem appears on re-import.

How re-importing creates new handles

Shopify's CSV import uses the Shopify product ID to determine whether an incoming row should update an existing product or create a new one. The product ID is the internal numeric identifier that Shopify assigns when a product is first created.

If the import CSV includes the product ID and the ID matches an existing product, Shopify updates that product (including its title, description, price, and images) while keeping the original handle unchanged.

If the import CSV does not include the product ID (which is the case for every supplier CSV, since suppliers do not have access to Shopify's internal IDs), Shopify compares by title. If the title matches exactly, it updates the product. If the title differs even slightly, it creates a new product with a new handle.

Read more about how to set up a Shopify CSV import correctly to avoid common problems. The product ID column is one of the most commonly overlooked fields in re-import workflows.

The result for the merchant importing their supplier's updated catalogue: any product whose name changed between the previous import and this one generates a new Shopify product at a new handle. The old product may become a duplicate (if it still exists in Shopify) or may have been overwritten with zero products remaining at the old URL.

What gets broken when a handle changes

A handle change is not simply a URL change. It triggers a cascade across every system that has referenced the old URL.

Organic search rankings. Google has indexed the old product URL and may have assigned it position signals based on click-through rate, dwell time, and backlinks. The new URL starts with no history. Even with identical content, the new URL needs to re-earn those signals from zero.

Backlinks. Any external website that linked to the old handle is now sending users to a 404. Those links no longer pass any signal to the new URL unless redirects are set up. Read more about why URL stability matters for Shopify SEO. Google explicitly recommends stable, permanent URLs for this reason.

Google Shopping deep links. If the Google Merchant Centre feed has synced the old product URL, Shopping ads and free listings may be pointing to the dead URL until the feed resyncs and Merchant Centre re-validates the new one.

Customer wishlists and bookmarks. Any customer who bookmarked the product page or added it to a wishlist app is now hitting a 404.

Internal blog links. If any blog article or page on the store linked to the old product handle directly, those links are broken.

A 404 is the visible symptom. The invisible one is the search equity that accumulated on the old URL and cannot transfer to the new one without a redirect.

The redirect problem

When a product handle changes on re-import, Shopify does not automatically create a URL redirect from the old handle to the new one. The 404 persists until the merchant manually adds a redirect in Shopify admin under Online Store → Navigation → URL Redirects.

For a merchant who re-imports a catalogue of 500 products and 40 of them have slightly changed names, that is 40 manual redirects to identify, create, and verify. The identification step is the hardest part: there is no native Shopify tool that shows which products had their handles changed between imports.

A physical address book with some entries crossed out and new addresses written beside them.

Shopify's product handle documentation notes that redirects must be created manually whenever a URL changes. For catalogue-scale re-imports, this is not a practical manual process.

A retail worker at a computer comparing two product catalogues, noting discrepancies between versions on a notepad.

Matching products by ID, not by title

The reliable fix for handle stability is to include the Shopify product ID in every re-import CSV. When the product ID is present and matches, Shopify updates the existing product record in place: the handle does not change regardless of what the title becomes.

The workflow to set this up:

  1. 01
    Step 1
    Export your current catalogue with product IDs. Before re-importing a supplier update, export your current Shopify products using Importier's Full Shopify CSV export preset. This export includes the Shopify product ID column alongside all other product fields.
  2. 02
    Step 2
    Merge the product IDs into your supplier CSV. Match your supplier's rows to the Shopify export by product title or SKU. Copy the Shopify product ID into the corresponding rows of the supplier CSV. Products that are genuinely new (not previously imported) will have no ID: leave those rows without one.
  3. 03
    Step 3
    Map the ID column during import. In Importier's import wizard, map the product ID column to the Shopify ID field. For products where the ID is present and matches, Shopify updates in place. For rows without an ID, new products are created with new handles.
  4. 04
    Step 4
    Review the import preview before committing. Importier shows a preview of what will be created vs updated before the import runs. Products with matched IDs appear as updates; products without IDs appear as new. Confirm the new-product count is expected before proceeding.
  5. 05
    Step 5
    Check Import History after the import completes. Importier's Import History logs every batch with a count of created vs updated products. An unexpectedly high created count compared to the expected update count indicates that ID matching did not cover all products. Investigate before the handle change becomes a problem.
Without Importier
Re-import without product IDs
  • Shopify compares by title only
  • Title changes trigger new product creation
  • New products get new handles
  • Old URLs become 404s
  • Manual redirects required for every changed handle
  • Organic rankings and backlink equity lost
With Importier
Re-import with product IDs matched
  • Shopify matches by product ID
  • Title updates apply to existing products
  • Original handles preserved regardless of title change
  • Old URLs continue to resolve
  • No redirects required
  • Organic equity retained on stable URLs

An office worker reorganising labelled folders between filing cabinet drawers.

Handling genuinely new products vs updated products

Not every row in a supplier re-import is an update. Suppliers add new products between catalogue versions. New products should create new Shopify products with new handles: this is correct behaviour.

The ID matching approach separates these two cases cleanly: rows with a matched product ID are updates; rows without a product ID (or with an ID that does not match any existing product) are new creates. This distinction is visible in Importier's import preview before the import runs.

For products that genuinely need a new handle (renamed products where the old handle is semantically wrong), the correct workflow is to create the redirect first, then let the product update proceed. Adding the redirect before the URL changes means there is no window where the old URL is dead.

Using Import History to identify handle changes after the fact

If a re-import has already run and handle changes have occurred, Importier's Import History shows the batch details including which products were created (new handles) versus which were updated (stable handles). Cross-referencing the created list against the previous export identifies which old handles are now dead.

With the list of dead handles identified, Shopify URL Redirects (Online Store → Navigation → URL Redirects) can be set up in bulk via CSV. Shopify accepts a redirect CSV import with two columns: old URL and new URL. For 40 changed handles, this reduces the remediation from 40 individual admin edits to a single CSV upload.

Read more about how to use Importier Import Undo to revert a batch. If the re-import has run but the changed handles have not yet been indexed by Google or spread through marketing links, reverting the batch and re-running with correct ID matching is the cleanest recovery option. Read more about how product updates through import can affect existing descriptions and content. The same re-import that changes handles can also overwrite descriptions if the mapping is not configured correctly.

A warehouse supervisor cross-referencing barcoded products against a printed inventory list.

What to take away

Shopify product handle changes on re-import are a data quality problem that looks like a URL problem but is rooted in import configuration. The handle is stable by default. It only changes when a re-import creates new products instead of updating existing ones, and that happens when the product ID is absent from the import CSV.

Key points:

  • Shopify generates a product handle from the product title at creation time and keeps it stable unless the merchant manually regenerates it.
  • Re-importing without product IDs causes Shopify to compare by title. Any title change creates a new product at a new handle. The old handle becomes a 404.
  • Shopify does not automatically create redirects when handles change. The merchant must add them manually, one by one, in Shopify admin.
  • Including the Shopify product ID in re-import CSVs prevents handle changes. Products with matched IDs update in place; new products without IDs create new handles.
  • Importier's Import History logs created vs updated counts per batch. An unexpected create count is the first signal that handle changes may have occurred.
  • If handle changes have already happened, use Shopify's bulk redirect CSV import to set up redirects for all affected handles in a single step.

Try Importier free at importier.app: product ID matching on re-import, Import History with batch details, Import Undo for recovery, and the export presets that include Shopify product IDs for stable re-import workflows.

Ready when you are

Set up your first import in under five minutes.

Importier brings products into Shopify with AI descriptions, category metafields, and data enrichment on every run.

Install on Shopify