Fix Your Sitemap for Wix
Wix generates /sitemap.xml automatically, but dynamic pages from Wix Data, Wix Stores product collections, and Multilingual site locales often pollute the feed with duplicates and private URLs.
Wix has improved dramatically on SEO over the past few years - SEO Patterns, per-page controls, dynamic Wix Data pages that actually render clean URLs. But the defaults still lean towards "include everything", and a site built in Wix Editor with Wix Stores, Wix Bookings, and Wix Members can produce a sitemap that's 3-4x the size of what should be indexable.
Helped a Wix-based fitness studio with 80 real pages and a sitemap showing 430 URLs. The extras: 180 Wix Bookings service variants (one per class time slot), 90 blog tag pages, 60 member profile URLs, and a scattering of old Thank You and confirmation pages. After applying SEO Patterns and hiding the system pages, they dropped to 95 URLs.
Common Wix Sitemap Issues
- Member-only and private pages in sitemap.xml because they're technically published
- Wix Multilingual creating duplicate URLs per locale without hreflang
- Dynamic pages from Wix Data with placeholder or empty records
- Blog tag pages adding hundreds of thin URLs
- Wix Stores variant URLs appearing without canonicalization
- Wix Bookings service-timeslot URLs leaking into the sitemap
- Free plan sites exposing
username.wixsite.com/sitenamealongside the custom domain - Thank-you pages and confirmation URLs indexable by default
SEO Patterns for dynamic pages
Wix SEO Patterns are the most underused feature on the platform. They let you write one template that applies to every page generated from a Wix Data collection - meta title, description, canonical URL, even robots directives. Instead of editing 2,000 product pages, you set a pattern once and it applies to all of them.
# Example SEO Pattern (conceptual - Wix UI-driven)
Title: {product.name} | {site.name}
Description: Shop {product.name} - {product.shortDesc}
Canonical: https://{site.domain}/products/{product.slug}
Index: yes (only if product.visible = true)
Sitemap: include (only if product.visible = true and stock > 0)Access it at SEO Tools > URL Patterns (Wix calls it different things across the 6 and 7 editors).
Multilingual and hreflang
Wix Multilingual adds locale prefixes like /fr/about, /es/about. Enable "Use a sitemap per language" in Multilingual settings so each locale gets its own sitemap file, and Wix emits hreflang alternates in the HTML head automatically. Verify with view-source: on a translated page. If alternates are missing, your Multilingual feature is configured as "separate site" mode instead of "linked translations" - switch it.
Step-by-Step Fix Guide
- Connect a custom domain (paid plan required) and set it as primary
- Open SEO Settings > Advanced SEO and confirm sitemap.xml is enabled
- For each member-only page, toggle "Show this page in search results" off
- Hide thank-you, confirmation, and checkout URLs from search results
- In Wix Multilingual, set primary language and enable per-language sitemaps
- Filter empty/draft records out of Wix Data collections powering dynamic pages
- Use SEO Patterns for bulk canonical URLs on products, services, and blog posts
- Edit robots.txt in SEO Tools to disallow
/account,/cart,/thank-you, and widget paths - Republish, verify with
curl https://yourdomain.com/sitemap.xml, submit to GSC