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:
-
Export your sitemap from your current platform
-
Use Google Search Console to identify indexed pages
-
Run a site crawl using tools like Screaming Frog or similar
-
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β
-
Navigate to StoreFronts β Pages Tab
-
Create your category structure matching (or improving) your existing site hierarchy
-
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:
- Assign the item to the appropriate product group page
-
Go to StoreFronts β Pages β [Your Product Group] β Items Tab
-
Search and select your items
- 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
- 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 ID | Old Platform URL | Custom URL (in UltraCart) |
|---|---|---|
| STRM-SLV-METALLIC | /products/metallic-sleeve-streamer/ | metallic-sleeve-streamer |
| TEA-ORG-001 | /tea/organic-earl-grey.html | organic-earl-grey |
Phase 4: Configure 301 Redirectsβ
After setting Custom URLs, configure redirects for all legacy URLs:
-
Navigate to StoreFronts β Advanced Tab β URI Mapping
-
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
- 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:
- Use the URI Mapping Import Tool:
-
Location: StoreFronts β Advanced β URI Mapping
-
Click "Import Spreadsheet" or "Import JSON"
- 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)
- 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
Canonical Links Configurationβ
Enable Canonical Linksβ
-
Navigate to StoreFront β Search Engine Optimization Tab
-
Check "Enable canonical links"
-
Save changes
How Canonical Links Work in UltraCartβ
-
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:
-
Open Chrome/Firefox Developer Tools (F12)
-
Go to Network tab
-
Visit an old URL
-
Check the response:
-
Status Code: Should be 301 Moved Permanently
-
Location header: Should show your new URL
- 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:
- Use full URL redirects:
-
Configure external redirects at DNS/hosting level
-
From: https://oldsite1.com/product/ β https://newsite.com/shop/product
-
From: https://oldsite2.com/item/ β https://newsite.com/shop/item
- 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:
-
Verify you've set a valid Custom URL (no periods/extensions) for the item in Pages β Items assignment
-
Confirm you're using the exact full path from the Custom URL route (e.g., /shop/category/slug)
-
Save the page after setting Custom URL before configuring redirects
-
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:
-
Return to Pages β [Group Page] β Items Tab
-
Verify Custom URL field shows your entry (without extensions)
-
Click "Save Page" button
-
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:
-
Submit new sitemap to Google Search Console (ensure only canonical paths like /shop/slug are included, excluding .html variants if redundant)
-
Use URL Inspection tool to request indexing for key pages
-
Ensure 301 redirects are properly configured (not 302)
-
Update any internal links to use new URLs
-
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β
Preserve Link Equityβ
Priority Actions:
-
301 redirects are critical - Never use 302 (temporary) redirects
-
Maintain URL structure when possible to minimize redirect chains
-
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" />"

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/ " />"

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