Skip to content

Vendor-neutral, engineer-written explanations. Clear definitions first, then practical steps with real examples — no fluff.

How to set up SEO‑friendly URLs and canonical tags in Shopware 6?

SB
Written by StageBit Engineering Team
Updated May 2026 7 min readVerified by engineers

Quick Answer

Shopware 6 generates SEO URLs automatically from your product and category names, but you need to configure the SEO URL templates and canonical settings manually to get clean, duplicate-free URLs. The defaults work for simple stores—but pagination, sales channels, and filter parameters will create duplicate content issues if you don’t address them. This page covers the full setup from URL templates through to canonical tag configuration.

Before You Start

  • Admin access with System > Settings permissions — you’ll need to edit SEO URL templates and sales channel settings.
  • URL slugs already set on products and categories — Shopware builds SEO URLs from these, so empty or auto-generated slugs will produce ugly paths.
  • Scheduled task runner active — SEO URL regeneration runs as a background task; if the scheduler isn’t running, URL changes won’t propagate.
1

Configure SEO URL templates

Admin → Settings → SEO

Shopware uses Twig-style templates to build URLs for products, categories, and landing pages. The default product template is {{ product.translated.name }}/{{ product.productNumber }}—which works but includes the product number, which most stores don’t want in the URL.

  • Go to Settings → SEO and select your sales channel from the dropdown
  • Update the product URL template to {{ product.translated.name }} for clean slug-only URLs
  • Update the category template to {{ category.translated.name }} or include the parent path with {{ breadcrumb | join('/') }}
  • Save and trigger a URL regeneration via Maintenance → SEO URL Indexer
COMMON MISTAKE Changing the URL template after your store is live without setting up 301 redirects first. Shopware will regenerate all URLs and your old ones will return 404s immediately—configure redirects in the same deployment.
2

Set product and category slugs correctly

Catalogue → Products → [Product] → SEO tab

Each product and category has an SEO URL field on its detail page. If you leave it blank, Shopware auto-generates from the name—including spaces converted to hyphens and special characters stripped. You can override this per-product to set an exact slug. This is the right place to fix individual URLs without changing the global template.

  • Open any product, switch to the SEO tab, and set the SEO URL field to your preferred slug
  • Use lowercase, hyphen-separated words only—no trailing slashes, no query strings
  • For bulk updates, use the Import/Export module with a CSV containing the seoUrls.url field
SEO tab
PRO TIP If a product belongs to multiple categories, Shopware creates a separate SEO URL for each path—the canonical tag (configured in Step 4) is what tells Google which one to index.
3

Handle sales channel URL prefixes

Admin → Sales Channels → [Channel] → Domains

If you run multiple sales channels (e.g. separate EN and DE storefronts), each channel has its own domain and URL base. Shopware stores SEO URLs per sales channel—so the same product can have /en/red-shoes on one channel and /de/rote-schuhe on another. This is correct behaviour, but you need to ensure your hreflang tags are also set up if you’re running multilingual channels.

  • Check each sales channel has a clean domain set under Domains—no trailing slashes
  • Confirm the Base URL field is empty unless you’re running Shopware in a subdirectory
  • For multilingual stores, install the SwagLanguagePack or equivalent to get hreflang output in the Storefront
IMPORTANT If two sales channels share the same domain, Shopware will generate conflicting SEO URLs and Google will see duplicate pages with no canonical signal to choose between them.
4

Configure canonical tags in the Storefront

Shopware’s Storefront theme outputs a <link rel="canonical"> tag automatically on product and category pages. By default it points to the primary SEO URL for the current sales channel. The problem is filter parameters—URLs like /shoes?color=red don’t get a canonical by default, which means every filtered view is a potential duplicate.

  • Verify the canonical is rendering in your page source: look for <link rel="canonical" href="..."> in the <head>
  • For filtered listing pages, override layout/meta.html.twig in your custom theme to force the canonical to the unfiltered category URL
  • For products in multiple categories, confirm the canonical points to the product’s primary SEO URL, not the category-prefixed variant
{# In layout/meta.html.twig — force canonical on filtered pages #}
{% block layout_head_canonical %}
  {% set canonicalUrl = page.metaInformation.canonical ?? sw_path(navigationId) %}
  
{% endblock %}
5

Handle pagination canonical tags

Shopware appends ?p=2, ?p=3 etc. for paginated category pages. These are indexable by default and will show up as near-duplicate pages in Google Search Console if you don’t handle them. The standard approach is to self-canonical each paginated page to itself—not back to page one—which tells Google each page is intentional and distinct.

  • Check whether your theme’s canonical tag includes or strips the ?p= parameter by inspecting page two of any category
  • If the canonical strips the parameter (pointing all pages to page one), override the template to include ?p={{ page.listing.page }} for pages two and above
  • Do not use noindex on paginated pages unless the category has very thin content per page—you’ll lose rankings for long-tail terms that only appear on page three or four
PRO TIP Google deprecated rel="next" and rel="prev" pagination hints in 2019—self-canonicals per page are the right approach now, not link rel pagination.
6

Regenerate and verify SEO URLs

Admin → Settings → System → Caches & Indexes

After changing any URL template or slug, you need to rebuild the SEO URL index. You can do this from the admin UI or via CLI. The CLI route is faster for large catalogues and gives you a progress indicator.

  • From admin: go to Settings → System → Caches & Indexes and run SEO URL Indexer
  • Via CLI: run bin/console dal:refresh:index --only=Shopware\Core\Content\Seo\SeoUrlIndexer
  • Spot-check five to ten products by visiting their URLs and confirming the canonical in the page source matches the expected slug
  • Submit an updated sitemap to Google Search Console after regeneration
Caches & Indexes
IMPORTANT Running the SEO URL indexer on a large catalogue (50k+ products) during peak traffic will cause visible slowdowns—schedule it for off-peak hours or run it via CLI on a worker node.

Shopware SEO URL & Canonical Checklist

0 of 11 complete

URL Setup

  • Canonical Tags

  • Verification

Mistakes Most Developers Make

! Changing URL templates on a live store

What happens: All existing URLs are replaced immediately after the indexer runs, producing mass 404s for any pages Google has already indexed—rankings drop within days.

Fix: Export your current SEO URL table before changing the template, generate the new URLs in staging, then configure 301 redirects from old to new before deploying to production.

! Ignoring filter parameters as duplicate URLs

What happens: Every filter combination creates a crawlable URL with near-identical content—a store with 20 filter options can generate thousands of duplicate pages that dilute crawl budget.

Fix: Override the canonical tag template in your theme to always point filtered listing URLs back to the clean category URL without query parameters.

! Not configuring SEO URLs per sales channel

What happens: URL templates set at the global level get inherited by all sales channels, so a German storefront ends up with English slugs if you don’t override the template per channel.

Fix: Always select the specific sales channel from the dropdown in Settings → SEO before saving URL templates—never rely on the global default for multi-channel setups.

! Forgetting to run the SEO URL indexer after changes

What happens: The old URLs remain active and the store serves both old and new paths, causing split indexing with no canonical to resolve which is correct.

Fix: Run the indexer immediately after any template or slug change, and add it to your deployment checklist so it never gets skipped.

Key Takeaway

The short version: Shopware’s SEO URL system is solid out of the box, but three things will silently create duplicate content issues if you don’t address them—filter parameters on listing pages, products assigned to multiple categories, and paginated pages without proper self-canonicals. The canonical tag outputs automatically, but it doesn’t account for query strings by default. Start with Step 1—getting your URL templates right before you index any content is the one thing that saves the most cleanup work later.

Was this answer helpful?

Your feedback helps us improve our answers.

Still need help?

Talk to our Shopware experts

We've handled GDPR/CCPA compliance for dozens of EU & US Shopware stores.

Talk to Shopware Experts

Tell us more about your brand!

Rohit Kundale, Our VP of Sales and Marketing is ready to meet with your team.