Skip to main content
How-to

UltraCart StoreFront Migration Best Practices

URL Management & SEO Guide for External Website & Platform Migrations​


Overview​

When migrating from an external website or another e-commerce platform to UltraCart StoreFronts, proper URL management is critical to preserve SEO value, maintain search engine rankings, and prevent broken links. This guide outlines best practices for configuring SEO-friendly URLs and 301 redirects during your migration.

Understanding UltraCart URL Architecture​

Default URL Behavior​

By default, UltraCart generates product page URLs using your Item ID:

  • Default format: /category-folder/ITEM-ID or /category-folder/ITEM-ID.html

  • Example using β€˜Custom URL’: /shop/streamers/STRM-SLV-METALLIC

The Custom URL Feature​

Custom URLs allow you to override the default Item ID-based URL with SEO-friendly paths.

  • Location: StoreFronts β†’ Pages β†’ [Product Group Page] β†’ Items Tab

  • Purpose: Creates actual page routes that the system recognizes

  • Format: Can use trailing slash (simple slugs without extensions recommended)

Critical Understanding: Custom URLs don't just change how URLs displayβ€”they create real page routes in the StoreFront routing system, making them valid targets for 301 redirects.

Step-by-Step Migration Process​

Phase 1: Inventory Your Existing URLs​

Before migration, document all existing product URLs that are indexed by search engines:

  1. Export your sitemap from your current platform

  2. Use Google Search Console to identify indexed pages

  3. Run a site crawl using tools like Screaming Frog or similar

  4. Create a spreadsheet with columns:

  • Old URL (full path)

  • Item ID in UltraCart

  • Desired new friendly URL

  • Priority (based on traffic/rankings)

Phase 2: Configure Product Group Pages​

  1. Navigate to StoreFronts β†’ Pages Tab

  2. Create your category structure matching (or improving) your existing site hierarchy

  3. For each product group page:

  • Set appropriate URI (e.g., /shop/streamers/)

  • Configure SEO metadata (title, description)

  • Set Item Template to template_item.vm

Phase 3: Assign Items with Custom URLs​

For each product being migrated:

  1. Assign the item to the appropriate product group page
  • Go to StoreFronts β†’ Pages β†’ [Your Product Group] β†’ Items Tab

  • Search and select your items

  1. Configure Custom URL for each item:
  • Click "empty" in the Custom URL column

  • Enter your SEO-friendly slug (e.g., metallic-streamer-sleeve – omit .html extension, as periods are stripped on save)

  • Click the checkmark βœ“

  • Click Save Page

  1. Custom URL Format Recommendations:
  • Use a simple slug without extensions: product-name

  • Use lowercase letters

  • Separate words with hyphens (not underscores)

  • Keep URLs concise but descriptive

  • Match your previous URL format when possible

Example Custom URL Configuration:

Item IDOld Platform URLCustom URL (in UltraCart)
STRM-SLV-METALLIC/products/metallic-sleeve-streamer/metallic-sleeve-streamer
TEA-ORG-001/tea/organic-earl-grey.htmlorganic-earl-grey

Phase 4: Configure 301 Redirects​

After setting Custom URLs, configure redirects for all legacy URLs:

  1. Navigate to StoreFronts β†’ Advanced Tab β†’ URI Mapping

  2. For each old URL, create a redirect:

  • From URI: Your old platform's URL path (e.g., /products/old-item-url )

  • To URI: Your new full Custom URL path (e.g., /shop/streamers/metallic-streamer-sleeve – include category prefix but omit .html unless your theme requires it for canonical access )

  • Check: "Send Permanent Redirect (301)"

  • Click Save

  1. Common redirect scenarios:

Scenario A: Different URL structure

  • Old: /products/item-name/

  • New: /shop/category/item-name (full path)

  • Redirect: /products/item-name/ β†’ /shop/category/item-name

Scenario B: Changed item naming

  • Old: /shop/STRM-SLV-MET (abbreviated SKU)

  • New: /shop/streamers/metallic-streamer-sleeve

  • Redirect: /shop/STRM-SLV-MET β†’ /shop/streamers/metallic-streamer-sleeve

Scenario C: Multiple old URLs to one new URL

  • Old URL #1: /products/widget-blue/

  • Old URL #2: /shop/widget-blue.html

  • Old URL #3: /WIDGET-BLUE

  • All redirect to: /shop/widgets/blue-widget

Phase 5: Bulk Import for Large Catalogs​

For stores with hundreds or thousands of products:

  1. Use the URI Mapping Import Tool:
  • Location: StoreFronts β†’ Advanced β†’ URI Mapping

  • Click "Import Spreadsheet" or "Import JSON"

  1. Spreadsheet Format Requirements:
  • Must be Microsoft Excel Worksheet format

  • Four columns (no headers):

  • Column 1: From URI (e.g., /old-url/)

  • Column 2: To URI (e.g., /new-url)

  • Column 3: Send Permanent Redirect ( true or false)

  • Column 4: Exclude from Sitemap ( true or false)

  1. Example spreadsheet row:

/products/old-item/ /shop/category/new-item true false

URL Format Best Practices​

Trailing Slashes vs .html Extension​

For Item/Product Pages:

  • βœ… Recommended: Simple slug in Custom URL field ( /product-name); browser access supports optional .html (e.g., /shop/product-name.html redirects to canonical)

  • ⚠️ Use with caution: Trailing slash format ( /product-name/) – test for routing conflicts

  • Reason: Periods in the Custom URL field are stripped on save, so exclude .html to avoid mangled slugs (e.g., product-name.html saves as product-namehtml). The .html extension is handled by UltraCart's routing for backward compatibility but isn't required for canonical URLs.

For Group/Category Pages:

  • βœ… Recommended: Use trailing slash ( /category/)

  • Reason: Group pages are directory-like structures

Clean URL Structure​

Good Examples:

  • /shop/tea/organic-earl-grey/

  • /accessories/metallic-streamer-sleeve/

  • /sale-items/summer-clearance-widget/

Avoid:

  • URLs with spaces: /shop/tea/organic earl grey

  • Special characters: /shop/tea/organic_&_natural

  • Session IDs or parameters: /shop/tea?session=123

  • Excessively long URLs: /shop/tea/organic-fair-trade-earl-grey-loose-leaf-premium-quality-100g

  • Periods in Custom URL fields: Will be stripped, breaking the slug

  1. Navigate to StoreFront β†’ Search Engine Optimization Tab

  2. Check "Enable canonical links"

  3. Save changes

  • When an item is assigned to multiple page locations, UltraCart automatically selects the canonical URL

  • Uses the "deepest and longest" path rule for maximum semantic meaning

  • Canonical tags appear automatically in your HTML:

Manual Canonical Control​

In the Item Editor's StoreFront section:

  • When items are assigned to multiple pages, you can manually designate which page assignment is canonical

  • Useful when you want specific category associations to be preferred by search engines

Testing Your Migration​

Pre-Launch Checklist​

Before going live with your StoreFront:

  • All Custom URLs configured for existing products

  • All 301 redirects configured in URI Mapping

  • Canonical links enabled in SEO settings

  • Sample redirects tested using browser developer tools

  • Sitemap generated and submitted to search engines

Testing 301 Redirects​

Using Browser Developer Tools:

  1. Open Chrome/Firefox Developer Tools (F12)

  2. Go to Network tab

  3. Visit an old URL

  4. Check the response:

  • Status Code: Should be 301 Moved Permanently

  • Location header: Should show your new URL

  1. Verify you land on the correct new page

Using Online Tools:

Monitoring After Launch​

Week 1-2:

  • Monitor Google Search Console for crawl errors

  • Check for 404 errors and add missing redirects

  • Review server logs for 404 patterns

Month 1-3:

  • Monitor organic traffic levels

  • Check rankings for key product pages

  • Review Google Analytics for entrance pages

  • Update redirects as needed

Common Migration Scenarios​

Scenario 1: Migrating from Shopify​

Shopify URL Pattern: /products/product-name

UltraCart Configuration:

  • Create group page: /products/

  • Custom URL: product-name

  • Final URL: /products/product-name

  • Redirect: /products/product-name β†’ /products/product-name

Alternative (if changing structure):

  • New group page: /shop/

  • Custom URL: product-name

  • Final URL: /shop/product-name

  • Redirect: /products/product-name β†’ /shop/product-name

Scenario 2: Migrating from WooCommerce​

WooCommerce URL Pattern: /product-category/product-name/

UltraCart Configuration:

  • Create matching group page: /product-category/

  • Custom URL: product-name

  • Final URL: /product-category/product-name

  • Redirect: /product-category/product-name/ β†’ /product-category/product-name

Scenario 3: Migrating from Static HTML Site​

Old Pattern: /store/items/ITEM123.html

UltraCart Configuration:

  • Create group page: /store/items/

  • Custom URL: Match old filename ITEM123 OR use friendly name

  • Redirect: Only if changing to friendly names

Scenario 4: Consolidating Multiple Domains​

If migrating multiple sites into one UltraCart StoreFront:

  1. Use full URL redirects:
  1. Within UltraCart URI Mapping:
  • Only enter the path portion (after domain)

  • Example: /product/ β†’ /shop/product

Troubleshooting Common Issues​

Issue: "Invalid Page" Error When Configuring Redirects​

Cause: The target URL doesn't exist as a recognized page route

Solution:

  1. Verify you've set a valid Custom URL (no periods/extensions) for the item in Pages β†’ Items assignment

  2. Confirm you're using the exact full path from the Custom URL route (e.g., /shop/category/slug)

  3. Save the page after setting Custom URL before configuring redirects

  4. Test that the target URL loads independently before adding redirect (check both /slug and /slug.html if applicable)

Issue: Redirect Creates Duplicate Content​

Cause: Redirecting to Item ID instead of Custom URL

Solution:

  • Always redirect to the Custom URL path, not the Item ID

  • Example: Redirect to /shop/product NOT /shop/ITEM-ID

Issue: Custom URL Not Working/Page Not Found​

Cause: Page not saved after setting Custom URL or invalid characters (e.g., periods) stripped

Solution:

  1. Return to Pages β†’ [Group Page] β†’ Items Tab

  2. Verify Custom URL field shows your entry (without extensions)

  3. Click "Save Page" button

  4. Clear browser cache and test again – access via /category/slug or /category/slug.html

Issue: Search Engines Still Indexing Old URLs​

Timeframe: Normal - can take weeks to months for search engines to fully re-index

Accelerate the process:

  1. Submit new sitemap to Google Search Console (ensure only canonical paths like /shop/slug are included, excluding .html variants if redundant)

  2. Use URL Inspection tool to request indexing for key pages

  3. Ensure 301 redirects are properly configured (not 302)

  4. Update any internal links to use new URLs

  5. Update external backlinks where possible

URI Wildcarding for Advanced Redirects​

When to Use Wildcards​

Use the * wildcard character for pattern-based redirects:

Example Use Cases:

  • Redirecting entire category structures

  • Handling dynamic product variations

  • Catching old URL patterns with multiple segments

Wildcard Syntax​

Pattern: /old-category/*/details/ Matches: /old-category/any-product/details/ Redirects to: /new-category/any-product/details/

Configuration:

  • From: /products/*/specs

  • To: /shop/product-guides/

  • Result: Captures and preserves the middle segment

Limitations:

  • Only one * wildcard per mapping

  • Acts as catch-all from that point forward

  • Test thoroughly to ensure expected behavior

SEO Optimization During Migration​

Priority Actions:

  1. 301 redirects are critical - Never use 302 (temporary) redirects

  2. Maintain URL structure when possible to minimize redirect chains

  3. Update internal links to point directly to new URLs (don't rely solely on redirects)

Meta Data Configuration​

For each product page, configure:

In Item Editor (Items β†’ Item Management β†’ [Item ID]):

  • Scroll to "Search Engine Optimization" section

  • Set Item Page Title (unique, descriptive, 50-60 characters)

  • Set Item Page Meta Description (compelling, 150-160 characters)

In StoreFront Pages:

  • Configure group/category page titles and descriptions

  • Ensure proper heading hierarchy (H1, H2, etc.)

Structured Data​

UltraCart themes include built-in structured data support:

  • Product schema automatically generated

  • Review content structured data included

  • Verify implementation using Google's Rich Results Test

Post-Migration Maintenance​

Regular Redirect Audits​

Monthly:

  • Review Google Search Console for 404 errors

  • Add redirects for any discovered broken links

  • Check for redirect chains (Aβ†’Bβ†’C) and simplify to direct redirects (Aβ†’C)

Quarterly:

  • Export URI Mapping list

  • Review and remove obsolete redirects (after 1+ year)

  • Check for redirect performance issues

URL Hygiene​

Ongoing Best Practices:

  • Use consistent URL formats for new products

  • Document URL structure decisions for team reference

  • Maintain spreadsheet of Custom URL patterns

  • Avoid changing URLs after launch unless absolutely necessary

  • URI Audit Tip: In URI Mapping exports, flag any "To URI" with .html if not canonicalβ€”update to slash-based paths for consistency.

Advanced Tips​

Redirect Chains​

Avoid: Old URL β†’ Intermediate URL β†’ Final URL

Why:

  • Slower page loads

  • Potential loss of link equity

  • Search engines may not follow multiple redirects

Solution:

  • Always redirect to the final destination URL

  • Update old redirects when changing URLs again

Query Parameter Handling​

UltraCart preserves query parameters during redirects:

Example:

  • Old URL: /product?color=blue&size=large

  • Redirect to: /shop/product/


FAQ

Question: In the items pages, the canonical link structure is including β€˜.html’:

”<link rel="canonical" href="https://demo.ultracartstore.com/Mens-Hoodie.html" />"

mens-hoodie-canonical-default.jpg

How can we enforce a trailing slash URL structure instead?
Answer: If you wish to enforce a β€˜slash ending’ structure to the item pages, please email UltraCart Support to request this merchant property be enabled for your account. Once enable, the canonical link structure will appear like this:

”<link rel="canonical" href="https://demo.ultracartstore.com/Mens-Hoodie/ " />"

mens-hoodie-canonical-force-trailing-slash.jpg


Document Version: 1.0
Last Updated: October 2025
For UltraCart StoreFront Platform

Was this page helpful?