Every Wix fix we catalog

SEOLZ catalogs 158 fixes for Wix across 5 areas — SEO, answer-engine readiness, accessibility, security and site-health. Each lists the exact steps for Wix, with a link to the official docs.

SEO · 45 fixes

Catalog coverageModerate effort

Ensure every product and category page is crawlable and discoverable by submitting a complete XML sitemap, fixing internal links, and removing any crawl blocks so Google can index your full catalog.

On Wix

  1. Sitemap: Wix auto-generates and submits a sitemap. In the Wix dashboard go to Marketing & SEO → SEO Tools → Google Search Console and connect your site — this ensures Wix pushes the sitemap. Confirm your store pages are included under SEO → Sitemap.
  2. robots.txt: Wix does not allow direct robots.txt editing for standard plans. Ensure no individual product or category pages are manually set to noindex: in the Wix Editor, click the page → Page SEO → Advanced SEO → confirm 'Let search engines index this page' is ON for all store pages.
  3. Noindex per page: In the Wix dashboard go to Store → Products, open each product, scroll to SEO settings, and confirm indexing is enabled. For categories, go to Store → Categories.
  4. Internal linking: In the Wix Editor, open your main menu (Add → Menus & Anchor → Manage Menu) and ensure your Shop/Store page and top-level categories are linked in the navigation.
  5. Password/visibility: Ensure your site is not password-protected and that store pages are published. Check Settings → Privacy → Site Visibility is set to 'Public'.
Cwv clsModerate effort

Eliminate unexpected layout shifts by reserving explicit space for every image, video, embed, ad, and late-loading widget before it loads, so nothing on your page jumps around as it renders.

On Wix

  1. Images: In the Wix Editor, click any image element > Settings > ensure you have defined both the width and height of the image container. Wix automatically reserves the container's space in its layout engine — the key is not leaving image containers set to 'auto' height.
  2. Use Wix's built-in Image component rather than HTML embed widgets for product images; the native component handles space reservation automatically.
  3. Fonts: Wix loads fonts via its own font system. In the Editor, go to Site Design (paint bucket icon) > Text Themes, and stick to Wix-hosted fonts (Wix Fonts or Google Fonts loaded through Wix). Avoid pasting custom @font-face code in Custom CSS unless you add font-display: swap; manually via Settings > Custom Code.
  4. Promotional/announcement bars: Use a Wix Strip or Box element pinned at the top with a fixed pixel height. Avoid using third-party HTML widgets injected above the main content area, as these can shift the DOM.
  5. Third-party apps and widgets: In your Wix dashboard, review any installed Wix Apps (e.g. chat, reviews, pop-ups). In the App Market or the app's settings panel, configure widgets to load in a fixed-position overlay or below the fold rather than inline above content.
  6. Cookie consent: Use a Wix-native cookie consent solution (Settings > Cookie Banner) which is rendered in a fixed bottom position and does not cause layout shift.
Cwv lcpModerate effort

Reduce Largest Contentful Paint (LCP) to under 2.5 seconds by serving your hero image in a modern format, preloading it, and eliminating render-blocking resources.

On Wix

  1. In the Wix Editor, click your hero/banner image → Change Image → upload a WebP version of the file (Wix's media manager stores it and its CDN serves it). Wix also auto-generates WebP on its CDN for most uploaded images.
  2. Ensure the hero strip/image is set to 'No lazy loading': click the hero element → Settings (gear icon) → under 'Layout' or 'Design', confirm 'Lazy load' is NOT enabled for above-the-fold images. Wix automatically treats the first visible image as LCP-priority in modern sites.
  3. Minimize installed Wix Apps and third-party widgets: each one adds JS. Go to Settings → Manage Apps and remove any apps not actively driving revenue.
  4. Use Wix's built-in 'Site Speed Dashboard' (available in Business/eCommerce plans under Analytics & Reports → Site Speed) to identify additional render-blocking resources specific to your site.
  5. For Wix Studio users: in the Pages & Layout panel, ensure the hero image block does not have an animation or 'reveal on scroll' effect applied, as these add JS overhead and can delay LCP paint.
  6. Re-test with PageSpeed Insights after changes; Wix's infrastructure handles most CDN and format optimization automatically, so the biggest wins come from reducing apps and avoiding lazy-load on the hero.
Duplicate meta descriptionModerate effort

Write a unique, page-specific meta description for every page on your store so Google can display a relevant snippet in search results.

On Wix

  1. Open the Wix Editor or Wix Studio for the relevant page.
  2. In the left panel click Pages & Menu → hover over the page → click the three-dot menu (···) → SEO Basics (or 'SEO Settings').
  3. In the 'Meta Description' field, enter a unique description for this page → Done.
  4. For product pages in Wix eCommerce: the Product page is a dynamic template. Go to CMS (Content Manager) → the Products dataset → edit the SEO fields per item, or navigate to the live product page in the Editor, select the dynamic page, and use Page SEO → Meta Description.
  5. For bulk/dynamic pages: use the Wix SEO Settings per-item fields in the CMS, or use Wix's bulk SEO import/export (Site → SEO → SEO Tools → Import/export SEO data as a CSV).
Duplicate titleModerate effort

Write a unique, descriptive title tag for every page on your store so no two pages share the same title.

On Wix

  1. Open the Wix Editor for your site.
  2. Click the page you want to edit in the Pages & Menu panel (left sidebar), then click the three-dot menu → SEO Basics (or go to Pages & Menu → select page → Settings → SEO).
  3. Update the 'Title tag' field to a unique, descriptive title for that specific page.
  4. For online store product pages: go to your Wix Dashboard → Store Products → click a product → scroll to the SEO section at the bottom → edit 'Page Title'.
  5. For collection/category pages: Dashboard → Store → Categories → select a category → SEO section → 'Page Title'.
  6. Use Wix's SEO Settings (Dashboard → Marketing & SEO → SEO Tools → SEO Settings) to set up default title patterns for product and collection page types, ensuring dynamic pages always produce unique titles.
Faceted url indexableModerate effort

Point every faceted/filter URL's canonical tag to the clean, unfiltered category URL (or add noindex) so Google treats filtered pages as one authoritative page instead of thousands of duplicates.

On Wix

  1. Wix automatically manages canonical tags for its built-in pages and Wix Stores collections — you cannot edit canonical tags directly in the page editor for standard pages.
  2. For Wix Stores: Go to your Dashboard → Store Products → Categories. Wix generates canonical tags pointing to the base category URL for its built-in filter/sort features. Confirm this by inspecting a filtered page's source for `<link rel='canonical'>`.
  3. If you have a custom filter built via Velo (Wix's developer platform): open your page code in the Velo IDE and use `wixSeo.setLinks([{ rel: 'canonical', href: 'https://www.yoursite.com/shop/category' }])` from the `wix-seo` module to override the canonical on filter state changes.
  4. To noindex filtered states in Velo, use `wixSeo.setMetaTags([{ name: 'robots', content: 'noindex, follow' }])` when filter parameters are active.
  5. Ensure your Wix site's built-in sitemap (auto-generated) does not include parameterized filter URLs — Wix's native sitemap excludes query-string URLs by default, but verify if using Velo dynamic pages.
Images missing altModerate effort

Add descriptive alt text to every image on your store so search engines can understand them and all shoppers can access your content.

On Wix

  1. In the Wix Editor, click on any image on your page to select it.
  2. Click the 'Settings' (gear icon) button that appears in the image toolbar.
  3. In the Image Settings panel, find the 'What's in the image? Tell Google' field (this is the alt text field) and type your descriptive text.
  4. Click 'Done' or close the panel — Wix saves automatically.
  5. FOR WIXSTORES PRODUCT IMAGES: Go to your dashboard > Store Products, open a product, hover over the product image, click the pencil icon, and enter alt text in the 'Image alt text' field.
Low performance scoreLarger project

Improve your Lighthouse/PageSpeed performance score by reducing page weight, deferring JavaScript, optimizing images, and fixing Core Web Vitals metrics so your store loads fast on mobile and desktop.

On Wix

  1. Wix handles core infrastructure (CDN, compression, HTTP/2) automatically — your leverage is in content and design choices.
  2. Images — In the Wix Editor, click each image → Settings → Optimize for web. Wix will auto-convert to WebP. Avoid uploading images wider than 2560 px; use 'Original' crop setting only when necessary.
  3. Remove unused apps — Wix App Market → Manage Apps: delete any installed apps you no longer use; each adds script weight to every page.
  4. Wix performance settings — Dashboard → Settings → Performance: enable 'Turbo' (available on some plans) which defers off-screen resources.
  5. Video backgrounds — Replace video background sections on mobile with a static image (Editor → Mobile view → click the section → change background to image); video backgrounds are the single biggest LCP killer on Wix mobile.
  6. Third-party scripts — Settings → Custom Code: audit every snippet added here. Remove tracking pixels, chat widgets, or pop-up scripts that are no longer needed or that load on every page unnecessarily.
Meta description too longQuick win

Shorten your meta description to 150–160 characters so Google displays your full message in search results instead of cutting it off with "…".

On Wix

  1. Open the Wix Editor for your site. Click on the page you want to edit in the Pages & Menu panel (or select it from the top dropdown).
  2. Click the page name → Page Settings (gear icon) → SEO tab.
  3. In the 'What's this page about?' / 'Description' field, edit or rewrite the meta description to 150–160 characters.
  4. Wix shows a live preview of how the snippet will appear in search results — use it to verify the text is not truncated.
  5. For product pages in Wix Stores: go to the Wix dashboard → Wix Stores → Products → click the product → scroll to 'SEO' section on the right panel → edit 'Description'.
  6. Click 'Save' and then 'Publish' your site for changes to go live.
Meta description too shortModerate effort

Expand every meta description to 120–160 characters so Google shows your custom summary in search results instead of auto-generating one.

On Wix

  1. Open the Wix Editor for your site.
  2. For a specific page: click the Pages icon (left panel) → hover over the page name → click the three-dot menu → 'SEO Basics' → edit the 'Meta description' field (Wix shows a character count) → Done → Publish.
  3. For a product page: Wix eCommerce stores use dynamic pages; go to the Editor → click on the product page → 'Page SEO' → you can set a default meta description pattern using Wix's dynamic SEO settings, or manage individual products in the Wix dashboard under Store Products → Edit product → 'SEO' tab.
  4. For site-wide SEO management: Wix Dashboard → Marketing & SEO → SEO Tools → SEO Settings, where you can manage meta description patterns for all page types.
Missing canonicalModerate effort

Add a self-referencing canonical tag to every page so Google knows which URL is the "official" version of that content.

On Wix

  1. Wix automatically adds canonical tags to all pages — no manual action is required for standard pages.
  2. To set or override the canonical URL on a specific page: open the page in the Wix Editor → click the Page Settings icon (gear) → Go to SEO (Google) → expand 'Advanced SEO' → in the 'Canonical Tag' field, enter your preferred URL.
  3. For Wix eCommerce product pages, go to the relevant Product Page in your site editor, open Page Settings → SEO → Advanced SEO and verify or set the canonical there.
  4. Use Wix's SEO Setup Checklist (Marketing & SEO → SEO Tools → SEO Setup Checklist) to audit pages flagged with missing or incorrect canonicals.
Missing h1Quick win

Add a single, descriptive H1 heading to every page that currently lacks one, so search engines and shoppers immediately understand what the page is about.

On Wix

  1. Open the Wix Editor for the page that is missing an H1.
  2. Click the main title text element on the page (usually your page headline or product name).
  3. In the text toolbar that appears, open the 'Paragraph Style' dropdown (it may show 'Paragraph', 'Heading 1', etc.) and select **'Heading 1'**. Wix maps Heading 1 to an `<h1>` tag.
  4. If no heading text element exists, click '+' (Add) → Text → 'Heading 1' to insert one, then type your descriptive heading.
  5. For **Wix Stores product pages**, the product name is automatically rendered as an H1 by the Wix Stores widget — ensure the product has a descriptive name under Store → Products → [product] → Product Name.
  6. Publish the site and verify with a browser headings inspector or 'View Page Source' to confirm `<h1>` is present.
Missing meta descriptionQuick win

Write a unique meta description of 120–160 characters for every page so Google has compelling snippet text to show in search results.

On Wix

  1. Open the Wix Editor for your site.
  2. For a specific page: in the left panel click 'Pages & Menu' → hover over the page → click the '...' (More Actions) icon → 'SEO Basics' (or 'SEO Settings') → fill in the 'Meta description' field → Done.
  3. For a product page (Wix eCommerce): Wix Dashboard → eCommerce → Products → click the product → scroll to 'SEO' section → fill Meta description → Save.
  4. For bulk management: Wix Dashboard → Marketing & SEO → SEO Tools → 'Get Found on Google' or use the Wix SEO Wiz to step through pages with missing descriptions.
  5. Confirm the description is no longer auto-generated by checking the page's SEO preview in the panel.
Missing og descriptionQuick win

Add an og:description meta tag to every page so social platforms display a compelling preview when your store's links are shared.

On Wix

  1. In the Wix Editor, click on the page you want to edit in the Pages & Menu panel.
  2. Click the three-dot (⋯) menu next to the page name → SEO Basics → fill in the 'Meta Description' field. Wix automatically maps this to og:description.
  3. For products in Wix eCommerce: go to your live site dashboard → Store Products → select a product → SEO & Social tab → fill in 'Meta Description' and optionally the dedicated 'Social description' field.
  4. For site-wide defaults: Wix dashboard → Marketing & SEO → SEO Settings → set a default meta description pattern.
  5. Use Wix's built-in SEO Wiz or the 'Social Posts' preview in the product SEO tab to verify the og:description renders correctly.
  6. Validate externally with Facebook Sharing Debugger.
Missing og imageModerate effort

Add an og:image meta tag to every page so social media platforms and messaging apps display a rich preview image when someone shares your store's link.

On Wix

  1. In the Wix Editor, click on the page you want to edit in the Pages & Menu panel, then click the three-dot menu (···) next to the page name → SEO Basics (or 'SEO Settings').
  2. Scroll to the 'Social Share' section. Click 'Edit Image' and upload a 1200×630 px image specifically for social sharing — this sets the og:image for that page.
  3. For product pages in Wix Stores: the og:image is typically pulled from the product's main image. Ensure each product in Wix Stores has a high-quality main photo uploaded.
  4. For a site-wide default, go to Dashboard → Marketing & SEO → SEO Tools → SEO Settings and upload a default social image used as the fallback when no page-specific image is set.
  5. After updating, use the Meta Sharing Debugger to verify the correct image appears.
Missing og titleQuick win

Add an og:title meta tag to every page so your store looks great when shared on Facebook, Pinterest, LinkedIn, and other social platforms.

On Wix

  1. Wix automatically generates og:title tags from your page's SEO title for most page types — first ensure your SEO titles are set correctly.
  2. To set or edit the SEO title for a specific page: open the Wix Editor, select the page, click the Pages panel → hover over the page → click the '...' menu → SEO Basics. Enter your desired title in the 'Page Title' field; Wix will use this as the og:title.
  3. For Wix Stores product pages: in your Dashboard go to Store Products → click a product → scroll to the SEO section at the bottom of the product editor → set the 'Page Title'. Wix maps this to og:title automatically.
  4. For blog posts: open the blog post editor → click the three-dot menu (or SEO panel) → SEO → set the title.
  5. Note: Wix does not currently allow direct editing of raw <head> HTML for og tags on standard plans; controlling it via the SEO title fields is the correct method.
  6. Use the Facebook Sharing Debugger and enter your page URL to confirm the og:title is being read correctly.
Missing titleQuick win

Add a unique, descriptive title tag (30–60 characters) to every page that is missing one.

On Wix

  1. Open the Wix Editor for your site.
  2. Click on the page you want to edit in the Pages & Menu panel on the left.
  3. Click the three-dot menu (…) next to the page name → 'SEO Basics' (or go to the top menu: Page Design → Page SEO).
  4. In the 'What's this page about?' / 'Title tag' field, type your descriptive title (30–60 characters).
  5. For product pages in Wix eCommerce: go to your site's Dashboard → Store Products → select the product → scroll to the 'SEO' section → edit the 'Page title' field.
  6. Click Save and publish.
Multiple h1Moderate effort

Reduce every page to exactly one H1 tag that clearly describes the page's main topic, removing or converting all extra H1s to lower-level headings (H2, H3, etc.).

On Wix

  1. Open the Wix Editor for your site and navigate to the page with multiple H1s.
  2. Click each text element on the page. In the text toolbar at the top, the style dropdown will show 'Heading 1', 'Heading 2', etc.
  3. Identify which text element should be the single H1 (the page's main title). For all other 'Heading 1' elements, click the style dropdown and change them to 'Heading 2', 'Heading 3', or 'Paragraph' as appropriate.
  4. Pay special attention to elements like section headers, banner text, or repeating grid/list items — these are frequent sources of unintentional H1 tags in Wix.
  5. Check your header (site-wide) by clicking the header area. If the site name or logo caption is styled as 'Heading 1', change it to 'Paragraph' or a lower heading level.
  6. Publish the site and verify with the 'Headings Map' browser extension or Wix's built-in SEO Wiz to confirm a single H1 per page.
Noindex detectedQuick win

Remove or replace the `noindex` directive on any page you want Google to find and rank, then verify the change with Google Search Console.

On Wix

  1. To set indexing for an individual page: Wix Editor → click on the page in the Pages panel → Page Settings (the three-dot menu beside the page name) → SEO tab → toggle 'Show this page in search results (noindex)' to ON (indexed).
  2. For site-wide settings: Wix Dashboard → Marketing & SEO → SEO Settings → check for any global noindex toggles.
  3. Wix also surfaces a per-page SEO panel: in the Editor click the page, then the SEO icon in the left panel → Advanced SEO → 'Additional tags' section — remove any manually added `<meta name="robots" content="noindex">` tag here.
  4. For Wix Stores product/collection pages: Dashboard → Store Products → edit product → SEO tab — verify the noindex is not set there.
Non self canonicalModerate effort

Ensure every page's canonical tag points to that same page's own URL — fix any canonical that currently points to a different page unless the redirect is genuinely intentional.

On Wix

  1. Wix manages canonical tags automatically and outputs self-referencing canonicals by default.
  2. If a non-self canonical is present, it was likely set via Wix's SEO settings panel. Go to your site editor → click the page → Page SEO (the SEO Settings panel in the left toolbar).
  3. Scroll to 'Advanced SEO' and open the 'Additional tags' section. Look for any manually added <link rel="canonical"> tag and remove or correct it.
  4. For dynamic pages (e.g., collection/product pages built with Wix Stores), check Editor → Wix Stores → your collection/product page → SEO (Wix Patterns) and remove any overriding canonical.
  5. If you use the Wix SEO Wiz or a connected SEO app, review its settings for any canonical redirect rules.
Page speed warningModerate effort

Reduce your page load time to under 1.5 seconds by compressing images, eliminating render-blocking resources, and enabling caching so Google and shoppers experience a fast site.

On Wix

  1. Images: In the Wix Editor, click each image → Settings → Optimise. Use Wix's built-in image optimisation and ensure you haven't uploaded images far larger than their displayed size. Wix serves images via its global CDN automatically.
  2. Apps: In Wix Dashboard → Apps → Manage Apps, remove any apps you no longer use — third-party app scripts are loaded on every page.
  3. Video/animations: In the Editor, avoid autoplay background videos on key landing pages; replace with a static WebP image if speed is a priority.
  4. Wix Performance settings: In Dashboard → SEO → SEO Tools, or via the 'Performance' panel in the Editor sidebar, enable 'Turbo' mode if available (Wix's performance acceleration feature).
  5. Custom code: In Dashboard → Settings → Custom Code, audit all injected scripts. Remove unused scripts; for remaining ones set placement to 'Body – End' and loading to 'async'.
  6. Verify: Run Google PageSpeed Insights on your published Wix URL. Note that Wix controls much of the server infrastructure, so the biggest gains come from image sizing and removing unused apps/scripts.
Search results indexableModerate effort

Add a noindex robots meta tag to all internal search results pages and block the search path in robots.txt to prevent thin, duplicate, near-infinite pages from polluting Google's index.

On Wix

  1. In the Wix Editor, click on your Search Results page in the Pages panel.
  2. Open Page Settings (gear icon) → SEO (Google) tab.
  3. Check the box labelled 'Hide this page from search results' — this adds noindex to the page automatically.
  4. For robots.txt: go to your Wix Dashboard → Marketing & SEO → SEO Tools → robots.txt and add: Disallow: /search (adjust to match your search page slug).
  5. Publish the site and verify via View Source on a live search URL.
Seo category description missingQuick win

Write a unique 100–200 word description for every product category page explaining what it contains and who it's for.

On Wix

  1. Open your Wix Editor and navigate to the Store/Category page you want to edit.
  2. Click on the category header or content area, then use 'Add Text' to insert a Text element above or below your product gallery.
  3. Type your 100–200 word category description into the text element.
  4. Alternatively, if you're using Wix Stores with dynamic category pages, go to your site's CMS (Content Manager) → find the 'Stores/Categories' collection → select the category → add description text in the relevant field, and make sure your dynamic page template is set up to display that field.
  5. For SEO meta description, go to Pages & Navigation → select the category page → click the three-dot menu → SEO Basics → fill in the meta description field.
  6. Publish your site.
Seo category description thinModerate effort

Expand your category page description to at least 150–300 words of genuinely useful, keyword-rich content that explains what shoppers will find in the category.

On Wix

  1. Open your Wix Editor and navigate to the Store/Category page, or go to the Wix Dashboard → Wix Stores → Categories.
  2. Select the category and look for a 'Category Description' or 'About This Category' text field.
  3. If Wix Stores' native category description field is limited, add a 'Text' element directly on the category page in the Editor above or below the product gallery widget.
  4. Write your expanded description in the text element.
  5. Click 'Save' and then 'Publish'.
  6. Note: For Wix Studio, use the same approach via the Studio Editor, adding a text section to the Category page template.
Seo category emptyQuick win

Either populate the empty category with relevant products, or apply a noindex tag and remove it from navigation so Google does not waste crawl budget on a page with no content.

On Wix

  1. To ADD products: Wix Editor or Dashboard → Store Products → Collections → click the empty collection → Add Products → select products → Save.
  2. To NOINDEX: Wix Dashboard → SEO Tools → SEO Settings → click 'Manage SEO' for Store Category Pages, OR go to the specific collection page in the Editor → click the page → SEO (Google) panel → Advanced SEO → add <meta name="robots" content="noindex"> in the 'Additional tags' field → Publish.
  3. To HIDE from nav: In the Editor, right-click the menu item in your navigation bar → Delete, or go to Pages & Menu → hover the collection page → Settings → uncheck 'Show in Menu' → Done → Publish.
  4. To DELETE: Wix Dashboard → Store Products → Collections → select the collection → Delete. Wix automatically handles the URL; add a manual 301 via SEO Tools → URL Redirect Manager if needed.
Seo category sparseModerate effort

Add more products to the category or consolidate it with a closely related one so Google sees a substantive, valuable page worth ranking.

On Wix

  1. Open the Wix Editor and go to your Store. In the Wix dashboard, navigate to Store Products → Categories (left sidebar).
  2. To add products: click the sparse category, then use 'Add Products' to assign more products to it.
  3. To add a category description: in the category settings panel, fill in the 'Category Description' field.
  4. To merge: reassign all products to the target category, then delete the old category. Set up a 301 redirect in the Wix Dashboard under SEO → Redirects (or Settings → SEO → Redirects), mapping the old category URL to the new one.
  5. Publish your site changes.
  6. Use Google Search Console URL Inspection to verify the redirect and request indexing of the target category.
Seo facet url not canonicalizedModerate effort

Add a canonical tag pointing filtered and sorted category URLs back to the clean (unfiltered) category page URL to prevent duplicate content and crawl waste.

On Wix

  1. Wix eCommerce (Wix Stores) does not expose direct canonical tag editing for collection/filter pages through the standard dashboard UI.
  2. Go to your site's SEO settings: Marketing & SEO → SEO Tools → SEO Patterns. Check if collection (product gallery) pages have a canonical pattern set.
  3. For Wix Stores filter URLs, Wix currently handles some canonicalization internally, but you should verify by using the URL Inspection tool in Google Search Console to check what canonical Google sees for a filtered URL.
  4. If canonicals are missing or incorrect, use the Wix SEO Wiz or contact Wix Support to escalate, as direct `<head>` injection for dynamic filter pages is limited without Velo (Wix's developer platform).
  5. With Velo (developer mode enabled): go to your site editor → click '{} Dev Mode' → open the relevant dynamic page code (e.g., `$w.onReady`) and use `import wixSeo from 'wix-seo'` along with `wixSeo.setLinks([{rel: 'canonical', href: cleanCategoryUrl}])` to programmatically set the canonical based on current URL parameters.
  6. Test with Google Search Console URL Inspection after publishing.
Seo product description minimalModerate effort

Expand thin product descriptions to at least 300 words by adding specifications, use cases, and benefits so Google has enough content to rank and shoppers have enough information to buy.

On Wix

  1. Open the Wix Editor and navigate to the product page, OR go to Wix Dashboard → Stores → Products and click the product.
  2. In the product editor, locate the 'Description' text field and click into it to open the rich-text editor.
  3. Add formatted text, bullet points, and bold headings covering specifications, use cases, and benefits.
  4. To add a structured FAQ, use the Wix Stores 'Additional Info' tabs (click '+ Add Section' or 'Manage Tabs' below the description) — each tab can hold its own block of text.
  5. Click 'Save' in the dashboard, or publish in the editor.
Seo product description missingModerate effort

Write and publish a 200–400 word product description covering what the product is, its key specs, who it's for, and how to use it.

On Wix

  1. Open the Wix Editor and navigate to your store, or go to your Wix Dashboard → eCommerce → Products.
  2. Click on the product to open its edit panel.
  3. Find the Product Description field (below the product image and price fields) and click into it.
  4. Write your 200–400 word description using the inline rich-text toolbar for formatting.
  5. Click Save. Wix renders this description in the page body and includes it in its built-in product structured data.
Seo product description thinModerate effort

Expand thin product descriptions to at least 300 words of unique, keyword-rich content that answers real shopper questions and gives Google enough text to understand what you sell.

On Wix

  1. Open the Wix Editor or Wix Studio for your site.
  2. Go to the Wix Stores dashboard: Stores → Products → click the product to edit.
  3. In the 'Product Info' section, find the 'Description' text area and click into it.
  4. Type or paste your expanded description. Use the formatting toolbar to add bullets, bold text, and paragraph breaks.
  5. Click 'Save'. For SEO purposes, also check that the description text is not placed inside a collapsed accordion widget that relies purely on CSS display:none at page load — prefer a visible section or one rendered in the initial HTML.
Seo product image alt filenameModerate effort

Replace filename-based alt text on product images with short, descriptive phrases that accurately describe each image's content.

On Wix

  1. Open your Wix Editor and navigate to a product page.
  2. Click the product image to select it.
  3. Click 'Settings' (the gear icon) in the toolbar that appears.
  4. In the 'What's in the image? (Alt text)' field, replace the auto-filled filename text with your descriptive alt text.
  5. Click 'Apply' and publish your site.
  6. For Wix Stores products specifically: in your Wix dashboard go to Store Products → select a product → click the image → 'Edit' → update the 'Alt text' field in the image settings panel.
Seo product missing brandQuick win

Add a `brand` property to your Product structured data (schema.org/Product) so search engines can match your listings to brand-specific queries.

On Wix

  1. Wix automatically generates Product schema for Wix Stores products, but brand support depends on your version.
  2. In the Wix Editor, go to your Product page. Open the Settings panel for the Wix Stores Product widget and ensure the 'Brand' field is populated if available in your store settings.
  3. For full control, use Wix's 'Custom Structured Data' feature: in the Editor, click the page, open Page Settings → Advanced → 'Add Structured Data' and paste the full JSON-LD Product block including the `brand` property.
  4. Populate brand data via Wix Stores dashboard: Catalog → Products → select a product → scroll to 'Additional Info' or custom fields to store brand name, then reference it in your custom schema.
  5. Validate the live page URL in Google's Rich Results Test.
Seo product missing gtinModerate effort

Add a valid GTIN (and/or MPN) to your Product structured data so Google can match your listings to its product catalog and show them in Shopping results and AI-powered product features.

On Wix

  1. In your Wix dashboard, go to eCommerce → Products → select a product.
  2. Scroll to 'Additional Info' or the 'Product Details' section → find the 'Brand', 'SKU', and custom field options — Wix does not currently have a native dedicated GTIN field in its product editor.
  3. To add GTIN to structured data, install the 'SEO by Rank Math' or use Wix's built-in SEO settings: go to the product page in the Wix Editor → click the product element → Advanced SEO → Structured Data and add a custom JSON-LD override snippet containing the 'gtin' property.
  4. Alternatively, in the Wix Editor open Settings → Advanced → Custom Code (head section) and inject a per-product JSON-LD Product schema block with the GTIN value hardcoded (practical only for small catalogs).
  5. For larger catalogs, use a Wix app from the App Market such as 'SEO Assistant' that supports custom structured data per product.
  6. Verify using Google's Rich Results Test.
Seo product missing stock statusModerate effort

Add visible stock availability text to each product page and set the correct `availability` property (InStock, OutOfStock, or PreOrder) in your Product structured data (JSON-LD schema).

On Wix

  1. In the Wix editor, stock status labels are controlled by the Wix Stores product settings. Go to your dashboard → Store Products → click a product → scroll to 'Inventory' and set stock tracking to 'Track inventory' or manually set it to 'In Stock' / 'Out of Stock'.
  2. Wix Stores automatically adds Product schema including `availability` based on these inventory settings — no manual schema editing is required.
  3. To verify, use the Wix SEO Settings panel (found under the Marketing & SEO → SEO Tools menu) and run the page through Google's Rich Results Test.
  4. If you need a custom visible availability label, use Wix's product page editor to add a text element or use Velo by Wix to conditionally display stock status via code.
  5. For Velo: in the product page code panel, use `$w('#productPage').onReady()` to read `product.inStock` and update a text element dynamically.
Seo product no imagesModerate effort

Add at least one high-quality image to every product page so Google can index it and shoppers can see what they're buying.

On Wix

  1. Open the Wix Editor or Wix Admin dashboard and go to Store Products (via the Wix Stores app).
  2. Click on the product that is missing an image.
  3. In the product editor, click '+ Add Media' in the Media section and upload images from your computer or Wix Media Manager.
  4. To add alt text, go to your site's Media Manager, find the uploaded image, click the three-dot menu → 'Edit', and fill in the 'Alt Text' field.
  5. Click 'Save'. Wix Stores automatically includes product images in structured data and the sitemap.
Seo product no spec tableModerate effort

Add a structured specifications table or list to every product page so search engines and AI tools can extract and surface factual product details, and shoppers can make faster buying decisions.

On Wix

  1. Open the Wix Editor and navigate to the product page (Wix Stores pages are accessible via the Pages panel).
  2. Click on the product page layout. Use 'Add Elements' (+) to insert a Table element or a Repeater below the product description. Set columns to two: 'Specification' and 'Value'.
  3. Populate the table manually for each product, or connect it to a Wix CMS (Content Manager) collection: create a collection called 'Product Specs' with fields for Product ID, Spec Name, and Spec Value, then connect the repeater to this collection filtered by product.
  4. For Wix Stores products, you can also add product info sections: in the Product Page settings in the Editor, look for 'Product Info Sections' or 'Additional Info' tabs — add a new section titled 'Specifications' and enter spec content as formatted text.
  5. Wix does not offer native structured spec tables for ecommerce as of 2024, so a CMS-connected repeater or a third-party Wix app (search 'product specifications' in the Wix App Market) is the most scalable approach.
Seo product price not in htmlModerate effort

Render product prices in server-side HTML so search engines and rich-result parsers can read them without executing JavaScript.

On Wix

  1. Wix renders Wix Stores product prices server-side by default — first confirm whether the issue is caused by a custom-coded widget or third-party HTML embed block that shows the price via JavaScript.
  2. In the Wix Editor, click on the product price element on your product page. If it is a native Wix Stores element, it renders server-side automatically; no change is needed for that element.
  3. If you added a custom HTML/embed widget or Velo (Wix Code) block to display the price, replace it with the native Wix Stores price element from Add → Store → Product Page elements.
  4. To add structured data, go to your Wix dashboard → SEO → Structured Data Markup (available in Wix's SEO tools) and ensure Product schema with price is enabled for product pages.
  5. Verify by using Wix's SEO Inspector tool or an external 'View Page Source' check on the published site to confirm the price appears in raw HTML.
Seo product single imageModerate effort

Add at least 4 high-quality product images (multiple angles, detail shots, and lifestyle/in-use photos) to every product listing to increase click-through rates and conversions.

On Wix

  1. Open the Wix Editor or Wix Dashboard → Wix eCommerce → Products → click the product.
  2. In the product edit panel, find the 'Product Media' / 'Product Images' section and click '+ Add Images'.
  3. Upload multiple images from your computer or Wix Media Library.
  4. Click each image thumbnail and use the 'Settings' (gear icon) to add alt text describing that specific image.
  5. Drag images to reorder them (first image = main display image) and click 'Save'.
Seo product title genericQuick win

Rewrite generic product page titles to include the product name plus at least one differentiating attribute (material, colour, size, pack size, or brand) in a natural, keyword-rich format.

On Wix

  1. Open the Wix Editor and go to your Wix Stores product page, or go to the Wix Dashboard → Store Products → [select product].
  2. Click the SEO settings for the product: in the Dashboard, open the product, scroll to 'SEO' section, then click 'Advanced SEO'.
  3. Edit the 'Title tag' field with your optimised title.
  4. Click 'Save'. Wix applies the change to that product's page <title> tag.
  5. Alternatively, in the Wix Editor, select the product page, open 'Page SEO' from the left panel, and update the title there.
Seo variant urls in sitemapModerate effort

Remove product variant URLs (e.g. ?variant=, ?sku=) from your XML sitemap so only the canonical product page URL is submitted to Google.

On Wix

  1. Wix generates and manages its sitemap automatically — you cannot directly edit the sitemap.xml file. Wix does not include variant query-parameter URLs in its auto-generated sitemap by default.
  2. If variant URLs are appearing, check whether you are using Wix's Stores product options (which are handled client-side and do not create separate URLs) versus a custom solution. Variant state in Wix eCommerce does not generate new URLs, so the issue is likely a custom coded page or a third-party integration.
  3. Go to your Wix Editor → Pages & Menu → confirm product pages use the standard Wix Stores dynamic page structure (/product-page/{slug}) with no query-parameter variants in the page URL settings.
  4. If you have a custom Wix Velo (code) script generating a sitemap, edit the sitemap function in your site's Backend code (Public/sitemap.js or equivalent) to filter out any URL containing '?' before returning entries.
  5. Use Google Search Console → URL Inspection to confirm variant URLs return a canonical pointing to the clean product URL, then request removal of any already-indexed variant URLs via the URL Removal tool.
Seo variant urls not canonicalizedModerate effort

Add a canonical tag to every product variant URL pointing back to the base product page, so Google consolidates ranking signals onto one authoritative URL instead of splitting them across hundreds of near-duplicate pages.

On Wix

  1. Wix automatically handles canonical tags for standard Wix Stores product pages and does not expose variant URLs as separate indexable pages in the default setup — confirm by inspecting a variant URL's source for a canonical tag.
  2. If you use Wix's dynamic pages or custom URL structures that expose variant parameters, go to your Wix Editor → Page SEO settings for the product dynamic page.
  3. Click on the product dynamic page → SEO (Google) panel → Advanced SEO → 'Additional tags' and add: <link rel="canonical" href="{base product URL}"> — use the Wix dynamic value binding to insert the canonical product URL field, not the full variant URL.
  4. In Wix Studio, use the SEO Settings panel per dynamic page template and set the canonical to the product's main URL binding (not the full request URL).
  5. Test using Google Search Console's URL Inspection tool after publishing.
Slow pageLarger project

Reduce page load time to under 3 seconds by compressing images, minifying CSS/JS, enabling caching, and improving server response speed.

On Wix

  1. Images: In the Wix Editor, select each image → Settings → Optimize. Wix auto-converts images to WebP and serves them via its CDN. Avoid uploading images larger than needed for their display size.
  2. Wix automatically minifies CSS/JS and uses its own CDN for all site assets — these cannot be manually configured but are on by default.
  3. Apps: In your Wix Dashboard → Apps → Manage Apps, remove any apps you no longer actively use, as each adds loading overhead.
  4. Enable Wix Turbo (if prompted in your dashboard): Wix's built-in performance suite that includes lazy loading, resource hints, and prefetching — ensure it is active under Settings → Performance.
  5. Video/animations: In the Editor, minimize use of auto-play background videos and heavy animations above the fold, as these are common causes of slow LCP on Wix sites.
  6. Check Core Web Vitals in your Wix Dashboard → Marketing & SEO → SEO → SEO Dashboard, which links to Google Search Console data for your site.
Thin contentModerate effort

Expand thin pages to at least 300 words of unique, helpful content that genuinely describes your products, category, or topic.

On Wix

  1. Product pages: Wix Editor or Wix Studio → click your product page → open the Wix Stores Product Page widget → click 'Manage Products' → select the product → expand the 'Description' field in the product editor and add full content.
  2. Collection/category pages: Wix does not have a native category description field in the same way; add a 'Text' element above the product gallery in the Editor for the category intro paragraph. Alternatively, use a Wix Blog post linked from the category page.
  3. For auto-generated or low-value pages, go to Wix SEO Settings (Site & App → SEO → SEO Basics) or use the Wix SEO Wiz to set individual pages to noindex.
Title too longQuick win

Shorten your page title tag to 60 characters or fewer so it displays in full — not truncated — in Google search results.

On Wix

  1. Open your site in the Wix Editor.
  2. For any page: click the Pages & Menu icon (left panel) → hover over the page → click the three-dot menu → 'SEO Basics' → edit the 'Title tag' field; Wix shows a live character count and green/yellow/red indicator.
  3. For a Wix Stores product: go to your Wix Dashboard → Store → Products → select the product → scroll to 'SEO' section → edit 'Page title'.
  4. For a Wix Blog post: Dashboard → Blog → select post → Settings (gear icon) → SEO tab → 'Title tag'.
  5. Alternatively, use Wix's built-in SEO tool: Dashboard → Marketing & SEO → Get Found on Google → 'Optimize your pages'.
Title too shortQuick win

Expand your page title to between 50 and 60 characters so it displays fully in Google search results and gives shoppers a clear reason to click.

On Wix

  1. In the Wix Editor, select the page you want to edit from the Pages & Menu panel.
  2. Click the three-dot menu (···) next to the page name and choose 'SEO Basics' (or open Site → SEO Settings for a site-wide view).
  3. Update the 'Title tag' field with your new 50–60 character title. Wix shows a live character counter.
  4. Click 'Save' and then 'Publish' to push the change live.
  5. For product pages in Wix eCommerce, go to Store Products in your dashboard, open the product, click 'SEO' in the product editor sidebar, and update the title there.

Answer Engine Optimization · 15 fixes

Article missing authorModerate effort

Add a structured-data author field (schema.org Person) to every article and blog post so AI engines and search crawlers can verify who wrote the content.

On Wix

  1. In your Wix dashboard, open the Blog app and navigate to a blog post in the editor.
  2. Wix automatically adds basic Article structured data, but to extend it with a richer author entity, go to the Wix Blog Settings → SEO tab and ensure the post author's display name matches the real author.
  3. For the author profile/sameAs field, use Wix's 'Advanced SEO' panel (available in site settings): open Settings → SEO → Structured Data Markup and add a custom JSON-LD snippet for blog post pages.
  4. In the custom JSON-LD snippet, add the 'author' Person object with 'name' and 'sameAs' (paste the code example above, replacing values).
  5. Save and publish, then verify with Google's Rich Results Test.
Invalid rating valueModerate effort

Fix the AggregateRating.ratingValue in your structured data so it falls within the valid numeric range (1–5 by default, or within the declared bestRating/worstRating bounds).

On Wix

  1. Wix injects structured data automatically for products and reviews; you cannot edit raw JSON-LD directly in the standard editor.
  2. For product ratings, ensure your Wix Stores reviews are based on a 1–5 star scale and that products have at least one review with a score ≥ 1.
  3. If you use a third-party review app from the Wix App Market, check that app's settings for its own schema output and contact the app's support if the ratingValue is out of range.
  4. For Wix Studio (advanced), you can inject custom JSON-LD via Settings > Advanced > Custom Code (head section) — add a corrected AggregateRating block there and ensure it does not conflict with Wix's auto-generated schema.
  5. Validate the live URL with the Rich Results Test after any changes.
Low answer first scoreModerate effort

Restructure your page content to lead with a direct, concise answer and add FAQ schema so search engines and AI assistants can surface your content as a featured snippet or direct answer.

On Wix

  1. Open the Editor and navigate to the page you want to improve.
  2. Click the first text element in the main content area and rewrite it as a concise direct-answer summary (under 160 characters).
  3. Edit existing text headings to question format (e.g., 'How do I return an item?') using the Text Settings panel.
  4. For FAQ schema: use the built-in Wix FAQ widget (Add Elements → Wix Apps → FAQ) which automatically outputs FAQPage structured data — populate it with your Q&A pairs.
  5. Alternatively, go to Settings → Advanced → Custom Code, click '+ Add Code', paste the FAQPage JSON-LD snippet, set it to load in the <body> on the specific page.
  6. Use Google's Rich Results Test to confirm the schema is detected.
Low review countModerate effort

Collect at least 5 published reviews so Google can display star ratings in search results for your product pages.

On Wix

  1. Open the Wix Editor and ensure the 'Wix Product Reviews' widget is added to your product pages (Add → Apps → Product Reviews or install from the Wix App Market).
  2. In Wix Dashboard → Marketing Tools → Automations, create a 'Request a Product Review' automation triggered by 'Order is delivered' with a 7-day delay.
  3. Wix Product Reviews automatically adds aggregateRating structured data to the page once reviews are collected; no manual schema editing is needed.
  4. Monitor the review count per product in Dashboard → Reviews and confirm when each product reaches 5 published reviews.
  5. Test with the Rich Results Test and check Wix's SEO Dashboard for any structured data warnings.
Missing schema articleModerate effort

Add Article and BreadcrumbList JSON-LD structured data to every editorial/blog page so search engines and AI answer engines can correctly identify, understand, and feature your content.

On Wix

  1. Wix automatically adds some structured data to blog posts, but you can extend it via Wix's built-in SEO tools: go to the Wix Editor › Blog Post page › click SEO (Google) in the left panel.
  2. For custom JSON-LD, use Wix's 'Custom Meta Tags' field (available per-page under SEO Settings › Advanced SEO) — note Wix does not support injecting arbitrary <script> tags in page <head> for most plans.
  3. For full Article + BreadcrumbList schema control, upgrade to a Wix Business/Unlimited plan and use Wix Velo (Developer Mode): enable Velo, then add code in the page's code panel or in a backend/masterPage.js file that injects JSON-LD into the page head using wixWindow or $w API.
  4. Alternatively, use a third-party SEO app from the Wix App Market (search 'structured data' or 'JSON-LD') that supports blog post schema injection.
  5. Validate via Google's Rich Results Test after publishing.
Missing schema breadcrumblistModerate effort

Add BreadcrumbList structured data (JSON-LD) to every page so Google can display your site's navigation path directly in search results.

On Wix

  1. In the Wix Editor, open the page where you want to add breadcrumb schema (e.g. a dynamic product or category page).
  2. Click the '+' (Add Elements) button → Embed & Social → Custom Embeds → Embed a Widget (or use 'HTML iframe' for a static page).
  3. Paste your complete <script type="application/ld+json"> BreadcrumbList block into the HTML/Embed code box. For dynamic pages (Wix Stores), you will need to hard-code per-page values or use Velo (Wix's dev platform) to write code in the page's 'Page Code' section that dynamically constructs and injects the JSON-LD based on dataset/collection values.
  4. In Wix Stores specifically, go to your Wix dashboard → SEO Tools → SEO Settings for your product or collection pages; Wix generates some structured data automatically but BreadcrumbList may need the Velo approach for full control.
  5. Publish the site, then validate a live page URL in Google's Rich Results Test.
Missing schema faqpageModerate effort

Add FAQPage (and BreadcrumbList) JSON-LD structured data to pages that contain FAQ content so Google can display rich results directly in search.

On Wix

  1. In the Wix Editor, open the page that contains your FAQ content.
  2. Click the page Settings gear icon (or go to Pages & Menu › right-click the page › Settings) and select 'SEO' tab.
  3. Scroll to 'Structured Data Markup' (also labelled 'JSON-LD') and paste your FAQPage JSON-LD block into the text area.
  4. Repeat for BreadcrumbList in the same field (Wix supports multiple JSON-LD blocks — separate them as distinct objects or use an array).
  5. Alternatively, use the Wix FAQ widget (Add Element › Interactive › FAQ) — Wix natively outputs FAQPage schema for pages built with this widget.
  6. Publish the site and validate with Google's Rich Results Test.
Missing schema howtoModerate effort

Add HowTo and BreadcrumbList structured data (JSON-LD) to pages that contain step-by-step instructions so Google can display them as rich results and answer-engine snippets.

On Wix

  1. Open the page in the Wix Editor and click Add Elements › Embed Code › Embed HTML (Custom Code block).
  2. Paste the full <script type='application/ld+json'>…</script> block into the HTML code box and position the element anywhere on the page (it is invisible to visitors).
  3. For site-wide injection: go to Settings › Custom Code (in the Wix dashboard) › Add Custom Code, paste the JSON-LD, set it to load in the <head>, and restrict it to 'Specific pages' — select your instructional pages.
  4. Note: Wix automatically generates basic BreadcrumbList schema for structured site navigation; verify it is present using the Rich Results Test before adding a duplicate.
  5. Validate with Google's Rich Results Test.
Missing schema localbusinessQuick win

Add a LocalBusiness JSON-LD schema block to your store so search engines and AI assistants can surface your business name, address, phone number, and hours in rich results and answer boxes.

On Wix

  1. In the Wix Editor, open the page where you want the schema (homepage recommended).
  2. Click the '+' Add button → More → HTML iframe — BUT for JSON-LD the correct path is: go to your site's Dashboard → Marketing & SEO → SEO Tools → Structured Data Markup (if available on your plan).
  3. For full control: Dashboard → Settings → Custom Code → Add Code → choose 'Head' placement → 'All Pages' → paste the full <script type='application/ld+json'>…</script> block → click Apply.
  4. Wix Business & eCommerce plans also offer a built-in Local SEO tool under Marketing & SEO → Local SEO that auto-generates LocalBusiness schema from your business info — fill in Name, Address, Phone there first.
Missing schema organizationQuick win

Add Organization schema markup to your store's homepage so search engines and AI systems can definitively identify your business, logo, and social profiles.

On Wix

  1. In the Wix Editor, go to your Homepage.
  2. Click the '+' (Add Elements) button or go to Settings → SEO → Advanced SEO.
  3. Under 'Advanced SEO' for the Homepage, find the 'Additional tags' (or 'Structured Data Markup') section.
  4. Paste your entire <script type='application/ld+json'>…</script> block into that field and save.
  5. Alternatively, use the Wix SEO Wiz or a third-party app from the Wix App Market (e.g., 'SEO Schema Markup') to inject the JSON-LD sitewide.
  6. Publish your site and validate with Google's Rich Results Test.
Missing schema productModerate effort

Add Product schema (JSON-LD structured data) to every product page so search engines can display rich results like price, availability, and ratings directly in search listings.

On Wix

  1. Wix automatically generates Product structured data for Wix Stores product pages — no manual code edit is required for basic schema.
  2. To verify or enhance: go to your Wix dashboard → SEO → SEO Tools → Structured Data Markup. Wix's built-in tool lets you review what schema is being output.
  3. For custom or additional properties not covered by Wix's automatic output, use the Wix 'Custom Meta Tags' field in the page SEO settings (available per-page under SEO Basics), or add JSON-LD via a Velo (Wix Code) snippet in the site's page code section.
  4. In Velo: open the product page in the Editor, go to Add → Velo → Page Code, and inject a dynamic JSON-LD script using $w('#productPage').getProduct() to retrieve live product data.
  5. Validate with Google's Rich Results Test on a published product URL.
Missing schema webpageModerate effort

Add WebPage (and Organization) JSON-LD schema markup to every page so search engines and AI answer engines can confidently understand and describe your site's content.

On Wix

  1. Wix automatically adds basic structured data for pages, but to add or customize WebPage/Organization schema, go to your Wix Dashboard → Marketing & SEO → SEO Tools → Structured Data Markup.
  2. Use the Structured Data Markup tool to add JSON-LD for WebPage and Organization types. Fill in the fields for each page type and save.
  3. For more control, add custom JSON-LD via Wix's 'Add Custom Code' feature: Dashboard → Settings → Custom Code → + Add Custom Code. Paste your JSON-LD block, set it to load in the <head>, and choose 'All pages' (for Organization) or a specific page.
  4. Validate each page using Google's Rich Results Test.
Non iso dateModerate effort

Change all datePublished (and dateModified) values in your structured data from informal formats like "09/23/2019 00:00:00" to the ISO-8601 format "2019-09-23" so search engines can correctly read your content's publication date.

On Wix

  1. Wix generates most structured data automatically. Go to your Wix dashboard → Marketing & SEO → SEO Tools → Structured Data Markup to review any custom structured data you've added.
  2. If you added custom JSON-LD via Wix's 'Add Structured Data Markup' tool, click 'Edit' on any schema containing a date field and manually correct the value to ISO-8601 format (e.g. '2019-09-23' or '2019-09-23T00:00:00Z').
  3. For Wix Blog posts, Wix handles datePublished automatically in its built-in schema — ensure you're using the native Wix Blog feature rather than a custom workaround.
  4. For Wix Stores products, structured data dates are also handled natively. If you see malformed dates, check if a third-party app (installed via the Wix App Market) is overriding the default schema.
  5. If you're using Wix Velo (custom code), locate the relevant page's code panel and correct any date strings using JavaScript's toISOString() method: new Date(dateString).toISOString().
  6. Re-test affected pages in Google's Rich Results Test.
Org missing sameasQuick win

Add a `sameAs` array to your Organization structured data, linking to your official social profiles, Wikipedia page, LinkedIn, and other authoritative directories so search engines can confidently identify your brand as a distinct entity.

On Wix

  1. In your Wix dashboard, go to Settings → Advanced → Custom Code.
  2. Click '+ Add Custom Code', paste the Organization JSON-LD (with `sameAs`), set it to load in the '<head>' section, and choose 'All pages'.
  3. Save and publish, then verify with Google's Rich Results Test.
Page unreachableModerate effort

Ensure every page that should appear in AI-powered answers and rich results is actually reachable by crawlers, then add structured data so search engines and AI systems can read and surface its content.

On Wix

  1. In the Wix Editor or Wix Studio, confirm the page is published and not hidden: Pages & Menu → right-click the page → check it is not set to 'Hide from menu' combined with no direct URL, or marked as a Members-only page unintentionally.
  2. Go to Settings → SEO → Robot settings and confirm the page is not set to 'Hide from search engines' (noindex toggle).
  3. For broken URLs, use the Wix 301 Redirects tool: Settings → SEO → URL Redirect Manager → Add Redirect.
  4. To add structured data (JSON-LD), go to the page in the Editor → Settings (page settings) → Advanced → Structured Data (or use the Wix SEO Wiz). For custom schema, add a Custom HTML widget (from the Add menu → Embed → Custom Code) and paste your JSON-LD script block, OR use Settings → Custom Code (site-level) to inject schema on specific pages.
  5. For product pages in Wix Stores, structured data is partially auto-generated; use the Wix SEO settings per product to ensure visibility.
  6. Submit the corrected URL in Google Search Console and test with the Rich Results Test.

Accessibility (WCAG) · 63 fixes

Aria allowed attrModerate effort

Remove or replace any ARIA attributes that are not permitted on an element's assigned role so that assistive technologies can correctly interpret the element.

On Wix

  1. Open your site in the Wix Editor; click on the element flagged with the ARIA mismatch.
  2. Open the element's Settings or Accessibility panel (the wheelchair icon in the inspector sidebar) — Wix exposes limited ARIA fields here; remove or correct any custom ARIA attribute value entered in these fields.
  3. If the element is inside a Wix App (e.g. Wix Stores product page, Wix Bookings widget), the ARIA markup is controlled by Wix — submit a bug report via Wix Support referencing WCAG 4.1.2 and the specific `aria-allowed-attr` violation.
  4. For custom HTML elements added via the Wix HTML iframe widget (Add → Embed → Custom Code), click the widget → Settings → edit the raw HTML to remove the disallowed attribute directly.
  5. Use the Wix Accessibility Wizard (Add-ons → Accessibility Wizard) to re-scan after changes.
Aria allowed roleModerate effort

Remove or replace the invalid `role="presentation"` (or other disallowed ARIA role) on HTML elements where that role is not permitted, so assistive technologies can correctly interpret your page.

On Wix

  1. Open the Wix Editor for your site.
  2. Click on the element flagged (e.g., a button or image). If it was added via Wix's native widgets, check whether a custom `role` attribute was manually added via the element's Settings → Accessibility panel — remove any invalid role there.
  3. If the element is inside a Wix Custom Element or an HTML iframe widget (Add → Embed Code → HTML iframe), open that component's code and correct the role attribute in the raw HTML.
  4. For Wix Studio or sites using Velo (Wix Dev Mode): open the relevant page/component code in the Velo editor, find the `setAttribute('role', ...)` call, and remove or correct it.
  5. Publish the site and verify with the axe DevTools browser extension.
Aria command nameModerate effort

Add a discernible, screen-reader-accessible name to every button, link, and menuitem that uses an ARIA command role so assistive technology can announce what it does.

On Wix

  1. Open the Wix Editor for your site.
  2. Click the unlabelled button or icon element on the canvas to select it.
  3. In the Settings or Accessibility panel (look for the 'Accessibility' section in the element settings panel on the left), enter a descriptive label in the 'Accessible label' or 'aria-label' field — Wix exposes this for buttons and links.
  4. For elements inside Wix's custom code blocks (Velo/Dev Mode), open the code panel and add the `aria-label` attribute programmatically via `$w('#elementId').setAttribute('aria-label', 'Descriptive action');`.
  5. Publish and verify with axe DevTools.
Aria dialog nameModerate effort

Add a descriptive accessible name to every dialog and alertdialog element using aria-label or aria-labelledby so screen-reader users know what the dialog is about.

On Wix

  1. In the Wix Editor, click on the popup/lightbox element on your canvas (or go to Add → Lightbox to review existing lightboxes in the Pages & Lightboxes panel).
  2. Wix does not expose raw HTML editing for standard editor elements, so use Wix's Velo (Dev Mode) to patch ARIA attributes via JavaScript.
  3. Enable Velo: go to the top menu → Dev Mode → Enable Velo.
  4. In the Velo code panel, use the $w API in the page code or a masterPage.js file: $w('#myLightbox').onViewportEnter(() => { const el = document.querySelector('[role="dialog"]'); if (el) el.setAttribute('aria-label', 'Newsletter signup'); });
  5. Alternatively, use the Velo wixWindow.openLightbox callback and a MutationObserver to patch the attribute when the lightbox opens.
  6. Preview the site, open the lightbox, and use the axe DevTools browser extension to confirm the dialog now has an accessible name.
Aria hidden focusModerate effort

Remove `aria-hidden="true"` from any element that contains focusable children (links, buttons, inputs), or remove the focusable elements from inside the hidden container.

On Wix

  1. Open the Wix Editor for your site.
  2. Wix renders its own component framework — you cannot directly edit HTML for most standard components. If the flagged element is a **Wix-native component** (e.g. a built-in menu or button), report the issue to Wix Support as a platform accessibility bug, since core component markup is controlled by Wix.
  3. If the issue is inside a **Velo (Wix Code)** custom element or an HTML iFrame widget, open the Velo code panel (Developer Tools → Velo) and locate the custom component's markup; fix the `aria-hidden` conflict there.
  4. For Wix Blocks components, open the Blocks editor and inspect the component's HTML/CSS panel to correct the attribute.
  5. After edits, preview the site and test with a screen reader or the axe DevTools extension.
Aria input field nameModerate effort

Add a meaningful accessible name (label) to every ARIA input field so screen readers can identify and announce it to users.

On Wix

  1. Open the Wix Editor and click on the form or input element with the accessibility issue.
  2. In the element's settings panel, look for an 'Accessibility' section (available on some Wix form and text input widgets) and fill in the 'Accessible Label' or 'aria-label' field.
  3. For Wix Velo (custom code): open the Dev Mode panel, click the input element to get its component ID, then in the page code (or site code) use the element's 'accessibility.ariaLabel' property: $w('#myInput').accessibility.ariaLabel = 'Search products';
  4. If the input is inside a Wix Form app widget, go to the form editor, click the specific field, and edit the field label — ensure 'Show Label' is toggled on, or use the field settings to add placeholder/label text.
  5. Publish the site and verify using the browser axe extension or Chrome Accessibility Tree.
Aria meter nameModerate effort

Add a descriptive accessible name (via aria-label, aria-labelledby, or a visible <label>) to every element that uses role="meter" so screen readers can announce what the meter represents.

On Wix

  1. Open Wix Editor for your site. Click on the ratings or progress-bar widget that contains the meter.
  2. If it is a native Wix Ratings widget, go to its Settings panel — check for an 'Accessible label' or 'Title' field and fill it in (e.g. 'Product rating').
  3. If using Wix Velo (custom code), open the relevant Page Code or a custom component and locate the element with role='meter'. Add `.setAttribute('aria-label', 'Average customer rating')` in your Velo JavaScript.
  4. Publish your site and retest with the axe browser extension.
Aria progressbar nameQuick win

Add a descriptive accessible name to every progress bar element so screen readers can announce what it represents.

On Wix

  1. Wix's standard progress bar widget can be configured in the Wix Editor: click the progress bar element → Settings panel — look for a 'Accessible label' or 'Title' field and enter a descriptive name.
  2. If no label field is exposed in Settings, switch to Wix Editor → click the element → Accessibility Settings (the person icon in the element toolbar) and enter a label.
  3. For progress bars added via Wix Velo (custom code), open your site's code (Dev Mode) and set the `accessibility.ariaLabel` property: `$w('#progressBar1').accessibility.ariaLabel = 'Password strength';`
  4. For third-party Wix App Market apps rendering progress bars, contact the app developer to request an `aria-label` option, or use Velo to query the rendered DOM and patch the attribute.
  5. Publish the site and test with a screen reader or the Wix Accessibility Wizard.
Aria prohibited attrModerate effort

Remove or replace ARIA attributes that are explicitly prohibited on an element's assigned role, ensuring every ARIA attribute used is valid for its context.

On Wix

  1. Open the Wix Editor for your site. Wix controls most ARIA output automatically, so first check whether the issue comes from a custom HTML element: look for any 'HTML iframe' or 'Embed Code' blocks on the page.
  2. Click on the suspect HTML/Embed widget → click 'Enter Code' → inspect the markup for the prohibited ARIA attribute and remove or correct it.
  3. For Wix-native elements (buttons, menus, images), you cannot directly edit their ARIA output in the standard editor — enable Wix Studio (or use Wix Studio directly) where you get greater HTML/CSS control.
  4. In Wix Studio, select the element → open the Properties & Events panel or Dev Mode → locate any custom ARIA properties set in the properties panel or in Velo (JavaScript) code, and correct them.
  5. Re-test using the axe DevTools browser extension on your published site.
Aria required attrModerate effort

Add the required `aria-level` attribute (and any other missing required ARIA attributes) to every element that uses an ARIA role which mandates them.

On Wix

  1. Open the Wix Editor for your site. Click the element flagged (e.g., a text box or custom widget) to select it.
  2. Open Wix's Accessibility Settings panel: click the element → Settings (gear icon) → Accessibility.
  3. For custom-coded sections (Wix Velo / Corvid), open the Developer Tools panel, navigate to the relevant page code or public file, and locate the HTML/JSX where the ARIA role is set — add the missing attribute there.
  4. If the element is a native Wix component (e.g., a text element used as a heading), use the Design/Text panel to set it as a proper heading tag (H1–H6) instead of relying on a custom `role="heading"` — this removes the need for `aria-level` entirely.
  5. Publish the site and re-test with the axe browser extension.
Aria required childrenModerate effort

Ensure every ARIA parent role contains only its required, permitted child roles — and remove focusable elements (e.g. tabindex on img or a) that are not allowed inside that ARIA context.

On Wix

  1. Open the Wix Editor and click on the element that contains the flagged ARIA structure (e.g. a menu, gallery, or repeater).
  2. Wix generates most ARIA markup automatically; if the violation comes from a Wix-native widget (e.g. Wix Menu, Wix Pro Gallery), you cannot edit the underlying HTML directly. File a bug report via Wix Support so Wix's engineering team can fix the widget.
  3. If you are using Wix Blocks or a custom widget built with Velo (Wix's JavaScript API): open the Dev Mode panel, locate the relevant component, and update the role and tabindex attributes in the component's HTML/CSS settings or in the Velo $w() event code.
  4. For Velo-generated elements, use $w('#myElement').setAttribute('role', 'menuitem') and remove tabindex with .removeAttribute('tabindex') as needed.
  5. Preview the site and test with axe DevTools to confirm the fix.
Aria required parentModerate effort

Wrap every ARIA child role (such as `tab`, `option`, `listitem`, `row`, etc.) in the correct required ARIA parent container role (such as `tablist`, `listbox`, `list`, `rowgroup`, or `grid`) so assistive technologies can correctly interpret the widget's structure.

On Wix

  1. Open the Wix Editor for your site. If the flagged widget is a built-in Wix component (e.g., Wix Tabs), you cannot edit its ARIA structure directly — report the issue to Wix Support as a platform accessibility bug.
  2. If the widget is in a custom HTML/Embed block, click the element → 'Settings' → 'Edit Code' and update the raw HTML to add the required `role="tablist"` wrapper around the child role elements.
  3. For Velo (Wix's dev environment), open the relevant page code in the Velo IDE and add the container role to the dynamically generated HTML using `$w('#element').setAttribute('role','tablist')` on the parent element.
  4. Publish the site and re-test with a browser accessibility scanner.
Aria rolesModerate effort

Audit every element that has a `role` attribute and replace any invalid, misspelled, or non-existent ARIA role value with a valid WAI-ARIA role from the official specification.

On Wix

  1. Open the Wix Editor for your site. Click on the element flagged with an invalid ARIA role.
  2. Open the element's Settings panel (the gear icon or right-click → Settings). Look for an 'Accessibility' section — Wix exposes an 'ARIA label' and sometimes a 'role' field here for certain elements.
  3. If you added a custom role via Wix's Developer Tools (Velo), open the Code panel (turn on Developer Mode via Settings → Developer Tools) and search your page code or site code for `role` attributes set programmatically, then correct them.
  4. For Wix apps (e.g., Wix Bookings, Wix Stores widgets), invalid roles within the app's own rendered HTML cannot be edited directly — submit a bug report to Wix Support with the specific element and role value.
  5. Re-publish your site and verify with the axe DevTools browser extension.
Aria toggle field nameModerate effort

Give every toggle control (checkbox, switch, or ARIA toggle button) a descriptive accessible name so screen readers can announce what it does.

On Wix

  1. Open the Wix Editor and click on the toggle or checkbox element on the canvas.
  2. In the element settings panel that appears, look for an 'Accessibility' or 'Settings' section — Wix exposes an ARIA label field for many interactive widgets.
  3. Enter a clear, descriptive label in the 'Accessible Name / ARIA Label' field (e.g. 'Subscribe to newsletter').
  4. If the element is embedded in custom HTML via an HTML Embed widget, click the widget → Enter Code and manually add aria-label='...' or a paired <label> to the markup.
  5. Publish the site and verify with the axe DevTools browser extension.
Aria tooltip nameModerate effort

Add a visible, descriptive text label to every element that has role="tooltip" so screen readers can announce its purpose.

On Wix

  1. Open the Wix Editor and click on the element that triggers or contains the tooltip.
  2. In Wix, built-in tooltips on buttons or icons often have a 'Tooltip' text field in the element's Settings panel (click the element → Settings gear icon → look for 'Tooltip' or 'Accessible label').
  3. For custom-coded tooltips added via Wix Velo (formerly Corvid), open the page's code panel and locate the tooltip element. Add an aria-label property: $w('#myTooltip').setAttribute('aria-label', 'Add to wishlist');
  4. If you added a tooltip widget from the Wix App Market, check that app's settings panel for a label or accessibility text field.
  5. Use Wix's built-in Accessibility Wizard (Settings → Accessibility Wizard) to scan for missing labels after making changes.
  6. Preview and test with a screen reader to confirm the tooltip text is announced.
Aria valid attrModerate effort

Find every misspelled or non-existent ARIA attribute name in your HTML (e.g. `aria-labeledby` instead of `aria-labelledby`) and correct each one to a valid ARIA attribute name.

On Wix

  1. Open your site in the Wix Editor. ARIA attributes set by Wix's built-in components are managed through each element's Settings or Accessibility panel — click the element, then click Settings (gear icon) → Accessibility.
  2. For custom HTML or embed widgets (Insert → Embed → Custom Code or HTML iframe), click the element → Settings → open the HTML code panel and search for the misspelled ARIA attribute, then correct it.
  3. If the misspelling is in a Wix App (e.g. Wix Forms, Wix Stores product widgets), it is controlled by Wix's platform code; submit feedback via Wix Support because you cannot directly edit app-generated markup.
  4. For Velo (Wix's coding environment), open the relevant page code or public/backend file in the Velo editor and search for the misspelled attribute.
  5. Publish your changes and verify with axe DevTools.
Aria valid attr valueModerate effort

Audit every ARIA attribute on your pages and correct any that point to a non-existent element ID, use a disallowed value, or reference an empty/misspelled target so that assistive technologies can correctly interpret your page.

On Wix

  1. Open the Wix Editor for your site.
  2. Click on the specific element that has the invalid ARIA value (e.g., a button, image, or form field).
  3. Open its Settings or Accessibility panel (the 'Accessibility' option appears in the element's settings for supported elements) and correct the label/description that maps to the ARIA attribute.
  4. For custom-coded sections using Wix Velo (Dev Mode), go to the relevant Page Code or Site Code file and locate the $w() selector where the ARIA attribute is set; fix the value to reference a valid element ID or use a correct keyword.
  5. If a Wix App (e.g., Wix Stores widget, Wix Bookings) is generating the invalid ARIA, report it to Wix Support — third-party app injections inside Wix are not editable by the store owner.
  6. Preview your site and test with the axe browser extension before publishing.
Autocomplete validModerate effort

Add a valid, correctly matched `autocomplete` attribute to every personal-data form field so browsers and assistive technologies can autofill them reliably.

On Wix

  1. Open the Wix Editor for your site.
  2. Click on the form widget containing the field you want to fix.
  3. Wix's native form fields do not expose an autocomplete attribute in the standard Editor UI; for Wix forms (Wix Forms app), raise a feature request via Wix Support, as this is a platform limitation.
  4. If you have a Wix Studio (formerly Editor X) site with custom-coded sections, go to the Dev Mode panel, locate the input element in your custom code, and add the autocomplete attribute directly in the HTML/JSX.
  5. For third-party embedded forms (e.g., a Typeform or HubSpot form embedded via HTML embed), edit the form in the third-party tool's settings to add autocomplete attributes.
Avoid inline spacingModerate effort

Remove hard-coded text-spacing CSS properties from inline `style` attributes so users can override them with their own stylesheets.

On Wix

  1. Open the Wix Editor and click the text or element that has the inline spacing.
  2. In the text toolbar, check for any custom Line Spacing, Letter Spacing, or Paragraph Spacing values set in the Text Settings panel (the 'A' icon) — clear or reset them to default.
  3. For elements built with Wix Studio or custom code blocks (Velo), open the page code panel and locate any `style` object assignments on DOM elements that set `lineHeight`, `letterSpacing`, or `wordSpacing`; refactor these to CSS classes applied via `$w('#element').addClass('my-class')` and define the class in a site-level CSS file.
  4. In Wix Studio, use the Design panel's Typography section to set spacing through design tokens rather than inline overrides.
  5. Publish the site and re-test with the axe browser extension.
Button nameModerate effort

Add a visible or programmatically accessible name to every button so screen readers can announce what it does.

On Wix

  1. Open the Wix Editor for your site. Click directly on the button element that is failing.
  2. In the button settings panel, check whether a 'Tooltip' or 'ARIA Label' field is available (Wix has been rolling out accessibility properties) — if so, fill in a descriptive label.
  3. If no ARIA field is available for that widget type, use the 'Custom Code' section (Settings → Custom Code → Head) to inject a JavaScript snippet that adds aria-label attributes to specific buttons by their selector after page load (e.g. document.querySelector('.cart-icon-button').setAttribute('aria-label', 'Open cart');).
  4. For Wix Studio, use the Dev Mode / Velo editor to directly manipulate element properties and set accessibility attributes on components.
  5. Verify with WAVE or axe DevTools after publishing.
Color contrastModerate effort

Increase the contrast ratio between your text color and its background color to at least 4.5:1 so all users — including those with low vision — can read your content.

On Wix

  1. Open the Wix Editor, click on the element with the failing text color.
  2. In the design panel (paintbrush icon) click Text color or Link color and choose or enter a hex value with sufficient contrast. Use Wix's built-in color picker; note the hex as you adjust and verify it in an external contrast checker.
  3. For site-wide link colors, go to Site Design (the site icon in the left panel) → Colors & Fonts and update the relevant palette color to a passing shade — this will cascade to all elements using that palette slot.
  4. Save and publish, then re-audit with Chrome Lighthouse.
Definition listModerate effort

Fix all `<dl>` (definition list) elements so they contain only valid `<dt>` and `<dd>` child elements, in the correct order, with no stray tags or text directly inside the list wrapper.

On Wix

  1. Open the Wix Editor for the affected page. Wix generates its own HTML and does not expose raw `<dl>` markup in the standard editor.
  2. If you added a custom HTML embed (Add → Embed → Custom Code or HTML iFrame) containing a `<dl>`, click on that element → Enter Code, and correct the definition list markup in the code panel.
  3. If the malformed `<dl>` comes from a Wix app or a third-party widget, contact the app developer, as Wix does not provide direct access to app-generated HTML.
  4. For Wix Studio sites, use the DevMode / Velo panel to locate any custom HTML components and apply the fix there.
  5. After saving, use your browser's DevTools or an accessibility scanner extension (axe, WAVE) to confirm the rendered HTML is now valid.
DlitemQuick win

Wrap every `<dt>` (term) and `<dd>` (description) element inside a parent `<dl>` element so screen readers can correctly announce the list structure.

On Wix

  1. Open the Wix Editor and navigate to the page containing the flagged content.
  2. Wix does not expose raw HTML for standard widgets; however, if the `<dt>`/`<dd>` tags come from a Wix HTML Embed element (Add → Embed → HTML iframe or Embed Code), click that element and select Edit Code.
  3. In the HTML embed code panel, locate the orphaned `<dt>` or `<dd>` tags and wrap them in `<dl>...</dl>`.
  4. If the markup is generated by a Wix app or dynamic dataset, contact the app developer or use a Velo (Wix Code) custom component to correct the structure.
  5. Click Apply, publish your site, and re-test with axe DevTools.
Document titleQuick win

Add a unique, descriptive <title> element to every page so browsers, screen readers, and search engines can identify it.

On Wix

  1. In the Wix Editor, click on the page you want to fix in the Pages panel (left sidebar).
  2. Click the three-dot (⋯) menu next to the page name → 'SEO Basics' (or 'SEO Settings').
  3. In the 'Page Title' field, enter a descriptive, unique title for that page.
  4. For dynamic pages (e.g. Wix Stores product pages): go to the dynamic page template in the editor → click the page settings → SEO Basics → use dynamic variables like {product.name} in the title pattern so each product gets a unique title automatically.
  5. For site-wide defaults: in the Wix dashboard go to Marketing & SEO → SEO Tools → SEO Setup Checklist and complete the homepage and default title settings.
  6. Publish the site and verify by opening the live page and checking the browser tab.
Empty headingModerate effort

Find every empty heading tag on your store and add meaningful, visible text to it — or remove the tag entirely if it serves no structural purpose.

On Wix

  1. Open the Wix Editor for the page with the issue.
  2. Click directly on the heading element on the canvas that appears empty. If it is invisible, try clicking in the area where a heading might be hiding (they can be white text on white background).
  3. If the heading element exists but has no text, either type meaningful content into it or select it and press Delete to remove it.
  4. In Wix Editor X / Wix Studio, use the Layers panel (left sidebar) to expose all elements including hidden or zero-opacity headings. Select each, check its text content, and fix or remove.
  5. For Wix blog or store pages generated from data, ensure your dynamic data source for heading fields is never empty; add a fallback value in your Wix Content Manager dataset.
  6. Preview and use the WAVE browser extension on the published URL to verify.
Empty table headerModerate effort

Add descriptive text to every table header cell (`<th>`) so that screen readers can announce what each column or row represents.

On Wix

  1. Open the Wix Editor for your site. Tables in Wix are typically created using the Table element or inserted via HTML embeds (Wix HTML iframe widget).
  2. For a native Wix Table element: click the table, go to its Settings or Layout panel, and ensure every column header cell has a text label entered. Blank header cells should have descriptive column names typed in.
  3. For tables inside a Wix HTML Code embed: click the embed element → 'Edit Code', then locate and fix any `<th>` elements that lack inner text or an `aria-label`.
  4. If using the Wix Blog or Wix Stores product description: edit the relevant item, switch to HTML view if available, and correct empty `<th>` tags.
  5. Re-test with the WAVE browser extension on your published site.
Frame titleQuick win

Add a descriptive `title` attribute to every `<iframe>` element on your store so screen readers can identify the frame's content.

On Wix

  1. Open the Wix Editor for your site.
  2. For a 'Embed a Site' or 'HTML iframe' element: click the element on the canvas → click 'Enter Code' or 'Edit Code' in the element settings panel.
  3. In the HTML/code panel, locate the `<iframe>` tag and add `title="Your descriptive label"` inside the opening tag, then click 'Apply' or 'Update'.
  4. For Wix Video or Wix Maps widgets: these are Wix-managed components. Go to Site → Accessibility Wizard (available in some Wix plans) to check for labeling options, OR contact Wix Support to report the missing title as a platform accessibility issue.
  5. For Velo (Wix custom code) pages: open the relevant page code in Developer Tools → Code panel and add the title via `$w('#iframeName').setAttribute('title', 'Your descriptive label');`.
  6. Preview and use browser DevTools to confirm the title attribute is set.
Heading orderModerate effort

Fix heading tags so they follow a logical, sequential order (H1 → H2 → H3…) without skipping levels anywhere on the page.

On Wix

  1. Open the Wix Editor for your site.
  2. Click any Text element that is used as a heading. In the text toolbar that appears, open the 'Paragraph Styles' dropdown (it may show 'Heading 1', 'Heading 2', etc.) and select the correct heading level to match the sequential order on the page.
  3. Note: Wix maps its 'Heading 1–6' paragraph styles to <h1>–<h6> HTML tags. Choose the style that corresponds to the correct structural level, not the visual size you prefer.
  4. If you need a different visual size without changing the structural heading level, use the font-size control within the same heading style rather than switching to a different heading level.
  5. Publish the site, then run WAVE or axe DevTools on the live URL to verify the heading outline is sequential.
Html has langQuick win

Add a valid `lang` attribute to the `<html>` element so browsers and assistive technologies know what language your page is written in.

On Wix

  1. Wix automatically adds the `lang` attribute to the `<html>` element based on the language you set for your site.
  2. To set or change the site language: in the Wix Editor, go to Settings (gear icon) → Multilingual, or in the Wix dashboard go to Settings → Language & Region → Site Language.
  3. Select the correct primary language for your site. Wix will inject the matching `lang` attribute on the `<html>` tag automatically when the page is rendered.
  4. For multilingual Wix sites using Wix Multilingual, each language version of a page will automatically receive the correct `lang` value — no manual coding is required.
  5. Verify by using your browser's View Page Source on the published site and confirming `<html lang="…">` is present.
Html lang validQuick win

Set a valid BCP 47 language code on the `lang` attribute of your page's `<html>` element (e.g., `lang="en"`) so browsers, screen readers, and search engines correctly identify the page language.

On Wix

  1. Wix automatically manages the `<html lang>` attribute based on the language set for your site. Go to your Wix Dashboard → Settings → Multilingual (or Language & Region).
  2. Ensure the primary language of your site is correctly set. Wix will render the correct `lang` attribute automatically.
  3. If you use Wix Multilingual, confirm each language version has a valid language assigned — Wix injects the correct `lang` per language.
  4. Because Wix controls the HTML output, you cannot directly edit the `<html>` tag. If the issue persists after setting the language, contact Wix Support, as this is a platform-level rendering issue.
Image altModerate effort

Add a descriptive `alt` attribute to every `<img>` element on your store so screen readers and search engines can understand what each image shows.

On Wix

  1. **Site images in the editor:** Open the Wix Editor → click on any image → click 'Settings' (the gear icon) → enter a description in the 'What's in the image? Tell Google' (alt text) field → click 'Done'.
  2. **Product images (Wix eCommerce):** Wix Editor or Dashboard → Wix Stores → Products → select a product → click a product image → in the image settings panel, fill in the 'Alt text' field.
  3. **Background images:** Note that CSS background images used purely for decoration do not require alt text; however, if a background image is meaningful, consider converting it to an `<img>` element with alt text via the Velo (Wix Code) API.
  4. **Wix Accessibility Wizard:** Dashboard → Settings → Accessibility → 'Start Accessibility Wizard' — this tool flags images missing alt text and guides you through adding it.
Image redundant altModerate effort

Remove or empty the alt attribute on images whose caption or surrounding text already describes them, so screen readers don't announce the same information twice.

On Wix

  1. In the Wix Editor, click the image on your page → click 'Settings' (the gear icon) → under 'What's in the image? (Alt Text)', clear the text field and leave it empty.
  2. For Wix Stores product images: go to the Wix Editor → click the product gallery → Manage Products → select the product → scroll to the product image → click 'Edit' and clear the alt/description field.
  3. For images in Wix blog posts: open the blog post editor → click the image → click the alt text icon (speech bubble) → clear the field.
  4. Note: Wix does not always render a true alt="" for blank fields on all image types; verify with axe DevTools after publishing.
Input button nameQuick win

Add a descriptive label to every input button so screen readers can announce what the button does.

On Wix

  1. Open the Wix Editor for your site. Click on the button element that is missing a label.
  2. In the button settings panel, look for the 'Text' or 'Label' field and enter a descriptive button label (e.g., 'Submit', 'Add to Cart'). Wix buttons created with the visual editor use the text content as the accessible name — ensure the text field is not empty.
  3. For Wix forms: go to the form's field settings and ensure the submit button has a non-empty label in the 'Button Text' field.
  4. If you are using Wix Velo (custom code), find the button element in your page code and set its `label` property: e.g., `$w('#myButton').label = 'Subscribe';`.
  5. Publish the site and verify using the Wix Accessibility Wizard (Add-ons → Accessibility Wizard) or a browser screen reader.
LabelModerate effort

Add a visible or programmatic label to every form input so assistive technologies can identify its purpose.

On Wix

  1. Open your site in the Wix Editor and click on the form element (Wix Forms widget) to select it.
  2. Click 'Settings' on the form widget — each field should have a visible label; enable or edit the label text directly in the field settings panel.
  3. For Wix Forms fields, ensure 'Show Label' is toggled on for every input field in the field's design settings.
  4. If you use a custom HTML embed (Add → Embed → Custom Code), edit that HTML block directly and add proper <label for=""> markup inside your custom code.
  5. Wix's native form builder handles label association automatically when labels are enabled, so verify by publishing and running axe DevTools on the live page.
Label title onlyModerate effort

Add a visible, persistent label to every form field so it is never labeled only by a tooltip (title) or hidden description (aria-describedby).

On Wix

  1. Open the Wix Editor for your site. Click on the form or input element that is flagged.
  2. Select the element and open its Settings panel. Look for a 'Label' toggle or 'Placeholder' field — ensure 'Show Label' is turned ON and enter descriptive label text (e.g., 'Email address', not just 'Email').
  3. For Wix Forms: go to the form widget → Settings → Form Fields → select each field → enable 'Show label' and provide meaningful label text.
  4. For custom-coded elements added via Velo (Wix's developer platform): open the Velo code editor and add an `aria-label` attribute to any input that cannot show a visible label, using `$w('#inputID').setAttribute('aria-label', 'Description')`.
  5. Publish your site and verify with an accessibility checker.
Landmark banner is top levelModerate effort

Ensure your site's banner landmark (<header> or role="banner") sits at the top level of the page, not nested inside another landmark region.

On Wix

  1. Wix generates its own HTML structure automatically, so you cannot directly edit the raw HTML landmark nesting. Instead, open your site in the Wix Editor and ensure your Header section is set as the dedicated 'Header' strip — do not place header content inside a regular Section or Box that itself has a semantic role.
  2. In the Wix Editor, click on the top area of your page. In the left panel make sure it is labeled 'Header' (not a regular Section). If header content has been accidentally dragged into a body Section, move it back into the Header strip using the Layers panel (View → Layers).
  3. For Wix Studio: open the Pages & Layers panel, confirm your header component is under 'Header' at the top of the page hierarchy, not nested under a content section.
  4. After adjusting, re-publish the site and test with the axe DevTools browser extension to check if the banner landmark issue is resolved. Note: if Wix's own rendering still produces the nesting issue, submit a report via Wix Support as this requires a platform-level fix.
Landmark complementary is top levelModerate effort

Move any `<aside>` element (or element with `role="complementary"`) so it is a direct child of `<body>`, not nested inside another landmark region like `<main>`, `<header>`, `<footer>`, or `<nav>`.

On Wix

  1. Wix generates its own HTML and does not expose raw landmark structure for direct editing. Open the Wix Editor for your site.
  2. Select the sidebar or complementary content strip/section. In the Wix Editor, sections are treated as top-level page blocks by default — ensure your sidebar content is a separate Section (not a box inside another section that contains the main body content).
  3. If the sidebar is inside a multi-column layout within a single section that also contains main content, split it: create a dedicated Section for the sidebar content above or below the main content section, or use a side-by-side section layout where Wix maps each column as a distinct region.
  4. Use the Wix Accessibility Wizard (Add-ons → Accessibility Wizard) to check for remaining landmark issues after restructuring.
  5. For advanced control, consider using Velo (Wix's developer platform) to add custom `aria-label` attributes to sections via the Properties & Events panel.
Landmark contentinfo is top levelModerate effort

Move your footer element (or any element with role="contentinfo") to the top level of the page so it is not nested inside another landmark region.

On Wix

  1. Wix renders its footer as a separate, platform-managed section that is always appended after page content — you cannot arbitrarily nest it inside another section via the standard editor.
  2. Open the Wix Editor. If you see a custom footer section nested visually inside a content strip, select it and use 'Arrange' or 'Layers' panel to move it outside any content box or container.
  3. For Wix Studio users: open the Layers panel, find the Footer component, and ensure it is not a child element inside a container that carries a semantic role. Drag it to the root level of the page structure.
  4. If using custom code via Velo (Wix's dev platform), inspect any `$w` components or iframes you may have injected that contain a `<footer>` or `role="contentinfo"` — restructure that injected HTML accordingly.
  5. Preview the page and run axe DevTools to confirm. Note: standard Wix footer placement is typically already top-level; this issue usually arises from custom code or third-party widgets.
Landmark main is top levelModerate effort

Move the `<main>` element (or `role="main"`) so it is a direct child of `<body>` and not nested inside any other landmark element such as `<header>`, `<nav>`, `<aside>`, or `<footer>`.

On Wix

  1. Wix generates its own HTML structure and does not expose direct `<main>` tag editing in the standard Editor or Editor X/Studio.
  2. In Wix Editor or Wix Studio, open the Page Settings for each page and check whether you have custom `<header>` or section elements wrapping the main content area; restructure sections so the primary content section is not inside a Header/Footer widget.
  3. If you have added custom HTML via the Wix HTML iframe widget (`Embed Code` → `Embed HTML`), review that code and ensure any `<main>` or `role="main"` you've added is not wrapped in another landmark.
  4. For deeper structural control, consider migrating to Wix Studio, which offers more semantic layout control, or raise a support ticket with Wix asking them to ensure their generated markup places `<main>` at the top level of `<body>`.
  5. Test each page with the WAVE browser extension to confirm the landmark structure.
Landmark no duplicate bannerModerate effort

Ensure your page has only one banner landmark (a single `<header>` element or `role="banner"`) so assistive technologies can navigate your site correctly.

On Wix

  1. Wix generates its HTML automatically; you cannot directly edit the HTML element tags for built-in header sections.
  2. In the Wix Editor, ensure you have only ONE 'Header' section (the very first section at the top of the page marked as 'Header' in the Layers panel).
  3. If you have added an additional section at the top of the page (e.g. an announcement bar or sticky strip) that Wix is rendering as a second <header>, convert it: click the strip → Settings → change its section type to a regular section rather than a Header.
  4. Remove any duplicate Header sections via the Pages & Menu panel or Layers panel.
  5. For Wix Studio: open the Layers panel, identify any element with a 'Header' role, and ensure there is only one. Change any secondary ones to a regular section.
  6. Use the WAVE browser extension to verify only one banner landmark remains after publishing.
Landmark no duplicate contentinfoModerate effort

Remove duplicate `<footer>` elements or `role="contentinfo"` landmarks so your page has exactly one, site-wide footer region.

On Wix

  1. In the Wix Editor, your page footer is a built-in section at the bottom of every page — Wix renders this as the site footer automatically and it should not be duplicated.
  2. Check whether you have added a 'Footer' section strip manually inside the page body (separate from the actual site footer at the very bottom). If so, that strip likely renders its own landmark. Remove it or convert its content into a regular section/container strip.
  3. If you use Wix Velo (custom code), open the Page Code or Site Code panel and search for any custom HTML components or `$w` elements that output a `<footer>` tag. Change those to `<div>` elements.
  4. For custom HTML widgets (Insert → Embed → Custom Code or HTML iFrame), inspect the widget's code for `<footer>` tags and replace with `<div>`.
  5. Preview the page and use the axe browser extension to verify only one contentinfo landmark is detected.
Landmark no duplicate mainModerate effort

Ensure each page contains exactly one `<main>` landmark element (or one element with `role="main"`) so screen-reader users can navigate directly to the page's primary content.

On Wix

  1. Wix renders its own HTML structure, and the '<main>' landmark is controlled by the platform. You cannot directly edit the generated HTML in standard Wix.
  2. Open the Wix Editor. Avoid placing multiple 'Header', repeated 'Page' sections, or stacked full-page containers that Wix might translate into duplicate main landmarks.
  3. If you have added custom HTML via a Wix HTML Embed (Add › Embed Code › HTML iframe or Embed a Widget), open that embed and check if it contains a '<main>' or 'role="main"' attribute — remove it and use a '<div>' instead.
  4. For Wix Studio or advanced Velo sites, check any custom Page Code or site-wide code (Site › Edit Code) that injects structural HTML and remove any duplicate '<main>' elements.
  5. Re-test the live page with the WAVE browser extension to confirm only one main landmark is detected.
Landmark one mainQuick win

Add a single `<main>` landmark element (or `role="main"`) to every page so that screen-reader users and assistive technologies can skip directly to the primary content.

On Wix

  1. Wix generates HTML automatically; you cannot edit raw HTML directly in Wix Classic Editor.
  2. In the Wix Editor, ensure your page structure uses a dedicated 'Page Content' section below the Header and above the Footer — Wix maps this to a `<main>` landmark in modern Wix rendering.
  3. Go to Settings (gear icon) → Accessibility and enable 'Skip to Content' — this adds a skip link and helps Wix correctly identify the main region.
  4. If you use Wix Studio, open the page, click on the main section, open the Inspector panel, and set the HTML tag to `<main>` under 'Advanced' → 'Semantic HTML Tag'.
  5. Re-publish the site and test with the axe browser extension.
Landmark uniqueModerate effort

Add a unique aria-label (or aria-labelledby) to every repeated landmark role so assistive technologies can distinguish between them.

On Wix

  1. Wix does not expose direct HTML editing for structural landmark elements like <nav> through the standard editor.
  2. Open the Wix Editor and select your navigation menu widget; in the Settings or Accessibility panel (the person icon), look for an 'ARIA label' or 'Accessible name' field and enter a unique label.
  3. For Wix Studio, select the component, open the Properties panel, and use the Accessibility section to add a custom aria-label.
  4. For elements where no built-in ARIA field exists, add a Wix Velo (code) solution: in the Page Code panel, use $w('#menuId').setAttribute('aria-label', 'Primary navigation'); for each navigation component.
  5. Contact Wix Support if landmarks are generated by Wix's own theme infrastructure and cannot be labelled through any of the above routes — this may require a platform-level fix.
Link in text blockModerate effort

Make inline links visually distinguishable from surrounding body text by ensuring at least 3:1 color contrast between the link color and the non-link text color, or by adding a non-color visual cue (such as underline) to every link.

On Wix

  1. Open the Wix Editor for your site.
  2. Click on a text block containing a link → click Edit Text → select the linked text → use the text toolbar's color picker to change the link's font color to one that has ≥3:1 contrast against surrounding text.
  3. Alternatively, enable underline formatting on the link text via the 'U' (underline) button in the text toolbar — this removes the need for the 3:1 color-contrast requirement.
  4. For site-wide link color in blog or dynamic pages: go to Site Design (paint-roller icon) → Text Themes → find the 'Link' text style and update its color and decoration there.
  5. Publish the site and test on the live URL with a browser accessibility extension.
Link nameModerate effort

Add a descriptive, screen-reader-accessible label to every link on your store so assistive technologies can announce where each link leads.

On Wix

  1. Open the Wix Editor for your site.
  2. Click on the element containing the unnamed link (e.g. an image, button, or icon).
  3. In the panel that appears, look for 'Settings' or the accessibility/tooltip option; for image links, click 'What's in the image?' (alt text field) and enter a descriptive label.
  4. For icon buttons (social icons, cart icon), click the element → Settings → 'Tooltip' or 'Accessibility' and enter the accessible label.
  5. For links added via the Wix Editor's 'Add Link' dialog, ensure the linked text is descriptive rather than 'Click here'.
  6. In Wix Studio (the developer-facing editor), you can directly edit HTML properties via Custom Code or Dev Mode — add aria-label attributes to <a> elements in your custom components.
ListModerate effort

Fix all HTML list elements so that `<ul>` and `<ol>` contain only valid `<li>` children, and `<li>` elements appear only inside a proper list container, ensuring correct semantic list structure throughout your store.

On Wix

  1. Open the Wix Editor for your site.
  2. Wix generates most HTML automatically from its widgets, so you cannot directly edit the underlying list markup for built-in menus. However, for custom HTML you added via the Wix HTML iFrame widget (Add → Embed → Custom Code or HTML iFrame), click the widget and select 'Edit Code' to find and fix broken list markup.
  3. For navigation menus, use the built-in Menu widget (Add → Menu & Anchor → Menus) — it generates semantically correct list HTML. Remove any custom code that replicates navigation with non-list markup.
  4. For text content with bullet lists, use the Wix Text Editor's built-in list formatting buttons instead of manually typing dashes or symbols, which produce non-semantic output.
  5. After saving, use the axe DevTools browser extension on your published site to verify the violation is resolved.
ListitemQuick win

Wrap every `<li>` element in a proper `<ul>` or `<ol>` parent so screen readers and browsers can correctly identify and announce list structure.

On Wix

  1. Open the Wix Editor for the affected page.
  2. If the list is inside a Wix HTML iframe element (Add → Embed → HTML iFrame / Embed a Widget), click on that element and select 'Enter Code' to open the HTML editor — find the bare `<li>` tags and wrap them in `<ul>…</ul>`.
  3. If the list is inside a Velo (Wix Code) custom component, open the Developer Tools panel → select the relevant .js or component file and correct the HTML string being rendered.
  4. For standard Wix text or list elements (not custom HTML), replace any manually typed bullet lines with Wix's built-in List formatting (select text → Format → Bulleted List or Numbered List) which outputs correct semantic HTML automatically.
  5. Publish the site and verify with the axe browser extension.
Meta refreshQuick win

Remove or disable any `<meta http-equiv="refresh">` tag that automatically redirects or reloads the page in under 20 hours.

On Wix

  1. Wix does not expose direct access to the HTML `<head>` of standard pages, but custom code can be injected via Settings → Custom Code (Wix Business & eCommerce plans) or via Wix Velo.
  2. Go to Settings → Custom Code and review all code snippets placed in the 'Head' section on any page or site-wide — delete any snippet containing 'http-equiv="refresh"'.
  3. If you use Wix Velo (Dev Mode), open the code panel and check masterPage.js and any page-specific .js files for programmatic meta-injection; remove or replace any `document.head` manipulation that adds a refresh tag.
  4. For URL redirects, use Settings → SEO → 301 Redirects (Wix native feature) instead.
  5. Note: Wix itself does not insert meta-refresh tags; if found, it was added through Custom Code or a third-party Wix App — check Wix App Market installs and review their settings.
Meta viewportQuick win

Remove `user-scalable=no` (and any `maximum-scale` value below 5) from your site's `<meta name="viewport">` tag so visitors can pinch-to-zoom on mobile devices.

On Wix

  1. Wix automatically injects a compliant viewport meta tag and does not expose it for direct editing.
  2. If you added custom HTML via Wix's 'Embed Code' / 'Custom Code' feature (Settings → Custom Code or a HTML embed widget) that contains a viewport meta tag, locate and remove the problematic attributes there.
  3. Go to Settings → Custom Code, review any code in the <head> section, and delete `user-scalable=no` or `maximum-scale` values below 5.
  4. If the issue persists and you cannot find a custom code block, contact Wix Support — the platform-injected tag is not owner-editable.
Meta viewport largeQuick win

Remove or raise the `maximum-scale` value in your site's `<meta name="viewport">` tag so mobile users can pinch-to-zoom freely.

On Wix

  1. Wix automatically injects a mobile-friendly viewport tag and does not expose it for direct editing in most site types.
  2. Open the Wix Editor → click the mobile icon (bottom toolbar) to switch to Mobile view.
  3. If you use Wix's Dev Mode / Velo, open the site's <head> custom code: Settings → Custom Code → Add Code in the Head section.
  4. Paste a corrected `<meta name="viewport" content="width=device-width, initial-scale=1.0">` tag there (Wix will honour the last-declared tag in most browsers).
  5. If the issue persists because Wix's platform tag overrides yours, contact Wix Support and cite WCAG 1.4.4 — this is a platform-level accessibility requirement.
Nested interactiveModerate effort

Remove or restructure focusable elements nested inside interactive controls so that no interactive element contains another focusable child.

On Wix

  1. In the Wix Editor, click on the product gallery or the specific component flagged.
  2. For Wix Stores product grids, click the grid → Settings → Layout, and check whether you have custom 'Product Page' designs with overlapping buttons. Wix Stores grids do not expose direct HTML, so use Velo (Dev Mode) to override rendering.
  3. Enable Dev Mode (left panel → Dev Mode → Turn on Dev Mode). Open the relevant repeater or product widget in the code panel.
  4. In the element's code, ensure buttons inside the repeater items are not wrapped in anchor (<a>) elements. Use onClick event handlers on non-interactive wrapper divs rather than nesting a button inside a link.
  5. If using Wix Blocks or a custom widget, open the widget in Wix Blocks and restructure the element hierarchy so interactive children are siblings of — not descendants of — other interactive elements.
  6. Publish and test keyboard navigation on the live site.
Object altQuick win

Add a descriptive text alternative to every `<object>` element so screen readers can convey its content to users who cannot see it.

On Wix

  1. Wix does not use a standard `<object>` HTML element in its visual editor — embedded PDFs and media are handled via Wix's own embed widgets.
  2. If you have added an HTML embed (`+` → Embed → Custom Code or HTML iFrame), click the embed block to edit it, and add `aria-label` to any `<object>` tags inside your custom HTML.
  3. For a PDF viewer widget, check the widget's Settings panel for an 'Accessible label' or 'Title' field — fill it in with a descriptive name.
  4. For custom code injected via Settings → Custom Code (head/body), locate the snippet and edit the `<object>` tag to include `aria-label`.
  5. Publish the site and verify with axe DevTools or Wix's built-in accessibility checker (available in the editor toolbar).
Page has heading oneModerate effort

Add a single, descriptive `<h1>` heading to every page so screen readers and search engines can identify the page's main topic.

On Wix

  1. Open the Wix Editor for the page you want to fix.
  2. Click on the main title text element on the page (e.g. the hero heading or page name).
  3. In the Text toolbar at the top, open the 'Paragraph Styles' dropdown and select **'Heading 1'** — this outputs an `<h1>` tag in Wix's rendered HTML.
  4. If no heading text element exists, click '+ Add' → 'Text' → 'Heading 1' and type your page title.
  5. For **Wix Stores** product/collection pages, Wix automatically renders product and collection names as `<h1>` in the default Wix Stores layout — if you've overridden this with a custom text box, delete the custom box and restore the default title element, or change its style to Heading 1.
  6. Publish the site and verify using browser DevTools (right-click the heading → Inspect).
Presentation role conflictModerate effort

Remove conflicting ARIA attributes and tabindex from elements that are marked as presentational (role="presentation" or role="none"), so screen readers consistently ignore them.

On Wix

  1. Wix renders most HTML automatically; open the Wix Editor for your site and inspect the page element that carries the conflicting role.
  2. Select the element, open its Settings or Accessibility panel (available on some element types via the right-click context menu → Accessibility) and remove any custom ARIA label or role you have manually added.
  3. If the conflict was introduced by a Wix App from the App Market, check the app's settings panel for ARIA/accessibility options, or contact the app developer.
  4. For custom code injected via Wix Velo (Developer Tools → Custom Code or a code panel), open the relevant code file and locate the element — remove the conflicting aria-* attribute or tabindex there.
  5. Publish the site and verify with axe DevTools in your browser.
RegionModerate effort

Wrap all visible page content inside HTML landmark elements (such as `<main>`, `<nav>`, `<header>`, `<footer>`, or ARIA `role` attributes) so screen-reader users can navigate your store efficiently.

On Wix

  1. Wix generates HTML automatically and does not let you edit raw HTML directly in standard Wix Editor. Your best path is: in the Wix Editor, ensure every page has a recognizable Header section (the built-in Wix Header component) and Footer section — Wix maps these to `<header>` and `<footer>` landmarks automatically.
  2. Make sure all body content is placed inside Wix 'Section' containers on the page canvas, not floating above the header or below the footer — Wix sections render inside the main content area.
  3. For any 'Strip' or 'Box' elements outside the main body area, move them onto the canvas between header and footer using the Editor's drag-and-drop.
  4. If you use Wix Studio (the developer-facing editor), open the page's Velo code panel and use `$w.onReady()` to verify the DOM structure, or add custom HTML components with `<section role="region" aria-label="...">` via the HTML iframe embed widget for content that needs explicit landmark roles.
  5. Install the 'Accessibility Wizard' from the Wix App Market (free) to surface remaining landmark issues, then re-test with axe DevTools.
Role img altQuick win

Add an accessible text label (aria-label) to every element that has role="img" so screen readers can announce what the image conveys.

On Wix

  1. Open the Wix Editor for your site.
  2. Click the element flagged (e.g., a vector image, icon, or decorative shape). In the panel that appears, look for Accessibility Settings or the Settings → Accessibility tab (available on image and vector elements).
  3. In the 'Alt Text' or 'ARIA Label' field, type a concise description of what the element represents.
  4. For Wix Studio, use the Accessibility panel in the Inspector on the right sidebar to add an ARIA label to any element with role="img".
  5. If the element is a Wix App widget (e.g., Wix Stores product badge), check the app's settings for an accessibility or alt-text field.
  6. Publish the site and verify using axe DevTools in your browser.
Scrollable region focusableQuick win

Make every scrollable region on your store reachable and operable by keyboard by adding tabindex="0" (or placing focusable content inside it) so users who cannot use a mouse can scroll it.

On Wix

  1. Open the Wix Editor for your site.
  2. Click the scrollable element (e.g. a Text Box or Container set to scroll), then click the Settings (gear) icon.
  3. In the Accessibility panel (Settings → Accessibility), set the Tab Stop toggle to ON — this is Wix's equivalent of tabindex="0".
  4. Add an ARIA label in the same Accessibility panel under 'Label' or 'ARIA label'.
  5. If the scrollable region is a custom HTML element embedded via Wix's HTML iFrame widget, edit the HTML code inside the widget and add tabindex="0" aria-label="..." directly to the scrollable container.
  6. Publish and test with keyboard navigation.
Select nameModerate effort

Add a descriptive, programmatically associated label to every `<select>` dropdown element on the site so assistive technologies can announce its purpose to users.

On Wix

  1. Open the Wix Editor for the page containing the dropdown. Click the dropdown element to select it.
  2. In the Settings panel that appears, look for a 'Label' or 'Placeholder' field — fill it in with a clear, descriptive label (e.g. 'Select your country'). Wix renders this as a visible label associated with the input.
  3. If you are using Wix Forms, open the form widget → Manage Fields → select the dropdown field → ensure 'Label' is filled in and 'Hide label' is NOT checked.
  4. For custom-coded dropdowns added via Velo (Wix's dev platform): in the code panel, set the element's aria-label property: $w('#myDropdown').setAttribute('aria-label', 'Sort results by');
  5. Preview the page and test with your screen reader or the axe DevTools extension.
Skip linkQuick win

Add a valid, matching target ID to every skip-navigation link so keyboard and assistive-technology users can bypass repeated header content and jump directly to the main content area.

On Wix

  1. Wix's standard editor does not expose raw HTML for layout files. Go to Wix Editor → Add (+) → Embed → Custom Code (or use Wix Velo / Dev Mode).
  2. Enable Dev Mode (turn on in top menu). In the code panel open the masterPage.js file.
  3. Use the DOM API to inject a skip link: in the page's onReady handler add `document.body.insertAdjacentHTML('afterbegin', '<a href="#PAGES_CONTAINER" class="skip-link">Skip to main content</a>');` — Wix's main content section carries the id `PAGES_CONTAINER` in most templates.
  4. Add the matching CSS via Site → Site Styles or a custom CSS block so the link is visually hidden until focused (see code example above).
  5. Verify `id='PAGES_CONTAINER'` exists on the rendered page by inspecting the DOM in browser DevTools; if your template uses a different wrapper id, update the href accordingly.
  6. Note: Wix's accessibility features are improving — check the Wix Accessibility Wizard (Dashboard → Settings → Accessibility) for any built-in skip link settings.
Svg img altModerate effort

Add a meaningful text alternative to every SVG image so screen readers can describe it to visually impaired shoppers.

On Wix

  1. Wix renders SVGs through its own vector-art and icon components; direct SVG markup editing is not available in the standard editor.
  2. For SVG icons used as decorative elements, select the element → click the Accessibility icon in the toolbar → check 'Decorative image' to suppress it from screen readers.
  3. For meaningful SVG images (logos, badges), select the element → click the Accessibility (person) icon → set a descriptive 'Image Alt Text' label in the field provided.
  4. For complex inline SVGs you control (e.g. embedded via Wix Velo / custom HTML component), open the HTML component and add the `<title>` + `aria-labelledby` + `role='img'` pattern directly in the embed code.
  5. Test using Wix's built-in accessibility checker (under the Help menu) or the axe browser extension in preview mode.
TabindexModerate effort

Remove all positive tabindex values (tabindex="1" or higher) from your store's HTML elements, replacing them with tabindex="0" or relying on natural document order to control keyboard focus.

On Wix

  1. Open the Wix Editor for your site.
  2. Wix standard components do not expose a tabindex setting in the visual editor — if positive tabindex values exist, they are almost certainly inside a custom HTML embed: click on the affected element, select 'HTML iFrame' or 'Embed Code' widget, and click 'Enter Code' to edit the raw HTML.
  3. Inside that HTML embed, find and remove or correct the positive tabindex attribute.
  4. For Wix Velo (custom code): open the Velo panel → site code or the relevant page code, search for 'tabindex', and remove positive values.
  5. Publish the site and verify tab order by keyboard-tabbing through the live page.
Valid langModerate effort

Add a valid BCP 47 language code to every `lang` attribute on your pages so assistive technologies can read content in the correct language.

On Wix

  1. Wix manages the `<html lang>` attribute automatically based on the site language you set in the dashboard — you cannot edit the raw HTML tag directly.
  2. To set the correct language: Dashboard → Settings → Multilingual (or Settings → Language & Region) → set your Primary Language to the correct language. Wix will output the corresponding valid BCP 47 code.
  3. For multilingual Wix sites using Wix Multilingual, each language version gets its own `lang` attribute automatically once the language is added and published in Settings → Multilingual → Manage Languages.
  4. If an invalid `lang` attribute appears inside a custom HTML embed widget (added via Add → Embed → HTML iframe), open that widget and correct the value in the HTML code panel.
  5. Re-publish the site and verify with the axe browser extension.

Security (OWASP) · 23 fixes

Dmarc policy noneModerate effort

Strengthen your DMARC policy from p=none (monitor-only) to p=quarantine, then p=reject, to actively block email spoofing of your domain.

On Wix

  1. If your domain is registered through Wix: go to Wix Admin Dashboard > Domains > select your domain > Manage DNS Records.
  2. If your domain is registered externally and pointed to Wix: log in to your external registrar and open DNS management.
  3. Find the TXT record with the Host value _dmarc.
  4. Click Edit and change p=none to p=quarantine in the Value field. Save the record.
  5. Wix sends email via its own mailer; if you use Wix Stores transactional emails or a third-party email marketing app, confirm those services appear in your SPF record.
  6. After a clean monitoring period, return to the same record and update to p=reject.
Hsts disabledQuick win

Enable HTTP Strict-Transport-Security (HSTS) by setting a max-age of at least 31536000 seconds (one year) so browsers always use HTTPS when visiting your store.

On Wix

  1. Wix manages SSL and HSTS for all sites hosted on Wix infrastructure — you cannot and do not need to set it manually for wixsite.com domains.
  2. For a connected custom domain, Wix automatically provisions SSL and sends HSTS headers. Ensure SSL is enabled: Wix Dashboard → Settings → Custom Domain → confirm the SSL toggle is ON.
  3. If you have a custom domain routed through Cloudflare, verify HSTS is set in Cloudflare → SSL/TLS → Edge Certificates → enable HSTS with max-age ≥ 31536000.
  4. Wix does not expose raw HTTP header configuration — if a security scanner still reports HSTS missing on your Wix site, contact Wix Support and reference that your HSTS header is absent or set to max-age=0.
Hsts max age too shortQuick win

Increase your HSTS max-age to at least 31536000 (one year) so browsers enforce HTTPS-only connections for a meaningful period.

On Wix

  1. Wix manages HTTPS and HSTS at the infrastructure level — all Wix sites are served with HTTPS enforced by Wix's CDN and you cannot directly edit HTTP response headers from the Wix dashboard.
  2. If your site is behind Cloudflare or another proxy that is stripping or overriding the HSTS header, log in to that proxy and set Strict-Transport-Security: max-age=31536000; includeSubDomains in its security/headers settings.
  3. If the short max-age originates from Wix's own CDN, contact Wix Support and report it as a security concern — Wix periodically updates its default security headers.
  4. Verify the current header value by entering your Wix site URL at securityheaders.com.
Https not availableQuick win

Enable HTTPS by installing a valid SSL/TLS certificate and redirecting all HTTP traffic to the secure HTTPS version of your store.

On Wix

  1. Wix automatically enables a free SSL certificate for every site — no manual certificate installation is needed.
  2. In your Wix Dashboard, go to Settings → Domains.
  3. Confirm the SSL toggle shows as active (turned on, shown in green) next to your connected custom domain.
  4. Wix enforces HTTPS by default and redirects all HTTP traffic automatically; there is no additional redirect configuration required.
  5. If the SSL toggle is off or shows an error, disconnect and reconnect your domain, or contact Wix Support to re-provision the certificate.
Info disclosure serverQuick win

Remove or obscure the Server HTTP response header so your web server software name and version are no longer exposed to the public internet.

On Wix

  1. Wix is a fully hosted platform — you have no access to the underlying web server configuration, and Wix manages all response headers at the infrastructure level.
  2. Wix does not expose detailed server version strings to end users by design.
  3. If your Wix site uses a custom domain proxied through Cloudflare (Wix does not officially support full Cloudflare proxying, but some setups use it): apply a Transform Rule in Cloudflare to remove the `Server` header as described in the Cloudflare steps above.
  4. If a scanner flags a `Server` header on a Wix site, contact Wix Support — merchants cannot resolve this independently.
Info disclosure x powered byQuick win

Remove or mask the X-Powered-By HTTP response header to stop advertising your server technology stack to attackers.

On Wix

  1. Wix is a fully managed SaaS platform; HTTP response headers are set by Wix's infrastructure and cannot be changed from the site owner's dashboard.
  2. If a scanner flags X-Powered-By on a Wix site, this is a platform-level concern. Contact Wix Support to report it or note it as outside merchant control.
  3. If you use Wix Velo (custom backend code) with external APIs, ensure those API endpoints are hosted elsewhere with headers properly suppressed.
Insecure cookieModerate effort

Set the HttpOnly, Secure, and SameSite=Strict flags on every session and CSRF cookie your store sets so they cannot be stolen by malicious scripts or sent over unencrypted connections.

On Wix

  1. Wix-managed session cookies are set by Wix's infrastructure; you cannot directly modify their flags. Ensure your site is published with HTTPS enabled (Settings → General → SSL Certificate → toggle On).
  2. For cookies set in Wix Velo (custom JavaScript backend): in your site's backend code (e.g., http-functions.js or a Velo web module), use the `wix-http-functions` response API — set cookie options explicitly: `response.cookies.set('name', 'value', { httpOnly: true, secure: true, sameSite: 'Strict' })`.
  3. For cookies set in Wix Velo frontend (page code or site code): note that HttpOnly cookies CANNOT be set from client-side JavaScript by design — move any sensitive cookie creation to a backend/Velo HTTP function.
  4. For third-party app cookies added via the Wix App Market: update each app to its latest version and contact the app developer if their cookie is flagged — Wix app partners are required to follow security standards.
  5. Contact Wix Support (Help Center → Contact Us) if a first-party Wix cookie is found missing flags, as these are outside owner control.
Missing content security policyModerate effort

Add a Content-Security-Policy (CSP) response header to every page so browsers block unauthorized scripts, styles, and resources from loading.

On Wix

  1. Wix does not allow custom HTTP response headers on standard Wix-hosted sites via the dashboard.
  2. Use Wix's built-in security settings where available: Wix Dashboard → Settings → Security, and enable any available content security options.
  3. For Wix sites on a custom domain proxied through Cloudflare, add the CSP header via Cloudflare Transform Rules as described above (Cloudflare Dashboard → Rules → Transform Rules → Modify Response Headers).
  4. If you use Wix Velo (formerly Corvid) and have a custom backend, you can set headers on HTTP Functions: in your Velo backend file, return `response.headers.set('Content-Security-Policy', '...')` in your `http-functions.js`.
  5. Note: Wix's hosted infrastructure limits full CSP control; a Cloudflare proxy is the most practical enforcement option.
Missing dmarcQuick win

Add a DMARC DNS TXT record at _dmarc.yourdomain.com to protect your domain from email spoofing and phishing.

On Wix

  1. In your Wix dashboard, click on your site name at the top, then go to Settings → Domains.
  2. If your domain is managed by Wix (purchased through Wix): click 'Manage' next to your domain → Advanced → DNS Records. Click '+ Add Record', choose type TXT, set Host to '_dmarc', and Value to v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com. Save.
  3. If your domain is managed externally: log in to your external DNS provider and add the TXT record there.
  4. Wix sends site emails (form submissions, notifications) through Wix infrastructure. To ensure they pass DMARC, go to Settings → Email Marketing or check Wix's help docs on 'Email Authentication' to enable the required SPF/DKIM entries Wix provides for your domain.
  5. Wait 24–48 hours for DNS propagation, then verify using MXToolbox's DMARC lookup.
Missing permissions policyQuick win

Add a Permissions-Policy HTTP response header to explicitly restrict which browser features (camera, microphone, geolocation, etc.) your store's pages are allowed to use.

On Wix

  1. Wix is a fully hosted platform and does not allow direct HTTP response header customisation through the admin panel.
  2. The only viable method is to proxy your Wix site through Cloudflare and inject the header at the Cloudflare edge: add your Wix domain to Cloudflare → Go to Rules → Transform Rules → Modify Response Headers → Add 'Permissions-Policy' header with your policy value.
  3. There is no Wix-native way to set true HTTP security headers without a proxy layer.
  4. Verify the header is present using Chrome DevTools → Network → Response Headers once Cloudflare is active.
Missing referrer policyQuick win

Add a `Referrer-Policy: strict-origin-when-cross-origin` HTTP response header to every page so browsers control what referrer information is sent with requests.

On Wix

  1. Wix does not allow custom HTTP response headers to be configured through its editor or dashboard.
  2. As a partial mitigation, use Wix's **Velo (Welo Dev Mode)** to inject a meta tag: enable Dev Mode in the editor, open the `<head>` section via Site → SEO & Meta Tags → Additional Tags, and add: `<meta name="referrer" content="strict-origin-when-cross-origin">`.
  3. For a true HTTP-level header, you would need to proxy your Wix site through a service like Cloudflare and inject the header there via a Transform / Page Rule.
  4. Verify the meta tag is present in page source (View Source → search for 'referrer').
Missing spfQuick win

Add a DNS TXT record containing a valid SPF policy to your domain so email servers can verify that messages sent from your domain are legitimate.

On Wix

  1. If your domain is registered through Wix: log in to your Wix account → go to Domains (in the left sidebar of your Wix dashboard) → click 'Manage DNS' next to your domain.
  2. In the DNS manager, scroll to the TXT Records section → click '+ Add Record'.
  3. Host/Name: @ | TTL: 3600 | Value: your full SPF string (e.g. v=spf1 include:_spf.google.com ~all).
  4. Click Save. Note: Wix's own transactional/marketing emails (Wix Ascend, Wix Stores order emails) are sent from Wix infrastructure — Wix automatically publishes SPF for mail sent through their servers, but you still need a record covering any external ESPs you use.
  5. If your domain is registered externally (pointed to Wix via nameservers), add the TXT record at your external DNS provider instead.
  6. Verify with an SPF checker after propagation.
Missing strict transport securityQuick win

Add an HTTP Strict-Transport-Security (HSTS) response header with at least `max-age=31536000; includeSubDomains` to every HTTPS response your store sends.

On Wix

  1. Wix manages server infrastructure centrally — you cannot modify HTTP response headers directly via the Wix dashboard.
  2. Wix automatically serves all sites over HTTPS and applies HSTS headers on its infrastructure. Ensure your custom domain is connected with SSL: Wix Dashboard → Settings → Domains → confirm the padlock/SSL status is active.
  3. If the header is still reported missing after confirming SSL is active, contact Wix Support — this is an infrastructure-level control outside owner access.
  4. If you are proxying Wix through Cloudflare, you can layer HSTS on top: Cloudflare Dashboard → SSL/TLS → Edge Certificates → HSTS section → Enable.
Missing x content type optionsQuick win

Add the `X-Content-Type-Options: nosniff` HTTP response header to every page of your store so browsers never guess at file types.

On Wix

  1. Wix does not provide direct HTTP response header configuration for standard sites in its dashboard — Wix automatically sets X-Content-Type-Options: nosniff on pages it serves; verify this is present for your site in browser dev-tools.
  2. If you are using Wix Velo (developer mode): open your site's HTTP Functions file (Public → http-functions.js) and ensure any custom API/function responses include the header: response.headers.set('X-Content-Type-Options', 'nosniff');
  3. For any external resources or custom backends connected to your Wix site, set the header on those servers independently.
  4. If the header is missing on your Wix-hosted pages, contact Wix Support — standard storefront pages should carry this header automatically.
Missing x frame optionsQuick win

Add an X-Frame-Options HTTP response header set to DENY or SAMEORIGIN to prevent your store's pages from being embedded in iframes on other websites.

On Wix

  1. Wix manages server infrastructure and sets security headers on your behalf; direct HTTP header configuration is not available to site owners.
  2. Check your current headers using browser DevTools or a header-checker tool; Wix has added X-Frame-Options: SAMEORIGIN to most sites by default.
  3. If the header is missing, report it to Wix Support — they control the server-level configuration.
  4. If your Wix site is proxied through Cloudflare using an orange-cloud DNS record, you can add the header via Cloudflare Rules → Transform Rules → Response Header Modification.
Passive scan onlyModerate effort

Complement passive security scans with active Dynamic Application Security Testing (DAST) against a staging copy of your store before each release.

On Wix

  1. Wix is a fully managed SaaS platform; you cannot run DAST against Wix's infrastructure directly. Active scanning of Wix's shared servers is not permitted.
  2. Focus your security testing on Wix Velo (custom JavaScript code), custom backends, and any external APIs or third-party services your Wix site calls.
  3. If you have a Velo backend or external API, deploy it to a separate staging/test environment and point OWASP ZAP at that endpoint.
  4. For Velo code, conduct code review using OWASP Cheat Sheet guidance for JavaScript/Node.js (input validation, output encoding, secrets management).
  5. Keep all Wix Apps updated via your Wix Dashboard → Add Apps → Manage Apps, as third-party Wix apps are a common vulnerability source.
  6. For deeper security testing needs, consider migrating business-critical custom logic to a self-hosted API service where DAST is fully permitted.
Ssl cert expiring soonQuick win

Renew your SSL/TLS certificate before it expires to keep your store secure, trusted, and visible in search results.

On Wix

  1. Wix automatically provisions and renews SSL for all sites — no manual renewal is needed.
  2. To confirm HTTPS is enforced: go to Wix Dashboard → Settings → Domains → click on your domain → confirm 'SSL certificate' shows as active.
  3. Enable HTTPS redirect: Dashboard → Settings → SSL/HTTPS → toggle 'Redirect all traffic to HTTPS' to ON. This ensures visitors are always served the secure version.
  4. If SSL shows as inactive for a connected custom domain, the most common fix is to update your domain's DNS records (A record and CNAME) to point to Wix's servers — Wix provides the required values in Dashboard → Settings → Domains → DNS Records.
Ssl cert invalidModerate effort

Install a valid SSL/TLS certificate that exactly matches your store's domain name, so browsers trust your site and customer data is encrypted in transit.

On Wix

  1. Wix automatically issues and renews free SSL certificates (via Let's Encrypt) for all sites, including custom domains.
  2. Go to your Wix Dashboard → Settings → Domains. Verify your domain is connected and shows a green SSL indicator.
  3. If SSL is not active, click on the domain → Manage → and look for 'Enable SSL'. Toggle it on. Wix may take up to 24 hours to fully provision the certificate.
  4. If SSL remains broken, the most common cause is incorrect DNS configuration. Ensure Wix's required A record and CNAME are set at your domain registrar exactly as Wix instructs (Dashboard → Settings → Domains → DNS Records).
  5. Wix does not allow uploading custom certificates — all SSL management is handled by Wix automatically once DNS is configured correctly.
Ssl errorModerate effort

Replace or reissue your SSL/TLS certificate so it is valid for the exact domain name your store uses, eliminating the hostname mismatch error.

On Wix

  1. Wix provisions and manages SSL certificates automatically for all sites, including custom domains connected through Wix.
  2. Go to: Wix Dashboard → Settings → Custom Domains.
  3. Verify your domain is connected and the status shows a green checkmark. If not, click the domain and follow the 'Fix It' prompt.
  4. Ensure your domain's DNS A record and CNAME record match the values Wix provides in the domain connection wizard (found under Settings → Custom Domains → Manage DNS).
  5. Once DNS is correctly pointed to Wix, SSL is provisioned automatically — allow up to 24 hours.
  6. Wix does not allow you to upload a custom SSL certificate on standard plans; the platform manages certificates entirely.
Ssl not accessibleModerate effort

Enable HTTPS on your store by opening port 443 and installing a valid SSL/TLS certificate so every page is served over a secure connection.

On Wix

  1. Wix automatically provisions a free SSL certificate and keeps port 443 open for all sites on its hosting infrastructure — you cannot change firewall settings yourself.
  2. In Wix Editor or Dashboard, go to Settings → Domains.
  3. Ensure your domain's DNS is pointed to Wix's name servers or has the correct CNAME/A records per Wix's instructions. Wix will auto-issue the certificate once DNS propagates.
  4. If HTTPS is not loading, go to Dashboard → Settings → Domains and look for an 'Enable HTTPS' or 'SSL Certificate' status indicator. Click 'Enable SSL' if available.
  5. If the issue persists after 48 hours of correct DNS, contact Wix Support from the dashboard — the problem is on Wix's infrastructure.
Weak spfQuick win

Add a hard-fail (-all) or soft-fail (~all) mechanism to your SPF DNS record so that mail servers are explicitly told to reject or flag email from senders not listed in your record.

On Wix

  1. If your domain is connected through Wix: go to Wix Dashboard → Domains → click your domain → 'Advanced' → 'Manage DNS Records'.
  2. Find the TXT record with v=spf1 (Wix may have auto-generated one for Wix Email/Google Workspace).
  3. Edit the record to add -all or ~all at the end of the value. If Wix created a redirect= record, check whether the target record ends in -all; if not, you may need to replace it with a full inline record.
  4. If your domain is pointed to Wix but DNS is managed externally (e.g. Cloudflare), log in there instead and edit the TXT record.
  5. Save and allow up to 48 hours for propagation.
X content type options weakQuick win

Set the X-Content-Type-Options response header to exactly `nosniff` (once, not duplicated) on every page and asset your store serves.

On Wix

  1. Wix automatically adds security headers including `X-Content-Type-Options: nosniff` to all Wix-hosted sites — you cannot and do not need to set this manually in the Wix editor.
  2. If your scanner flags a duplicate, the issue is an upstream proxy or Cloudflare integration added to your domain.
  3. Remove any Cloudflare or third-party header-injection rule that duplicates `X-Content-Type-Options`.
  4. Contact Wix Support if you believe the platform itself is sending a malformed header.
X frame options weakQuick win

Change the X-Frame-Options response header from its current weak or missing value to either DENY or SAMEORIGIN so your store cannot be embedded in a malicious iframe.

On Wix

  1. Wix does not provide direct HTTP response header control for standard sites.
  2. Wix sets its own X-Frame-Options policy on the platform; verify what is currently sent using DevTools or securityheaders.com on your live Wix domain.
  3. If the header is missing or weak, submit a support request to Wix to ask about their security header policy — this is an infrastructure-level setting for standard Wix.
  4. Wix Studio / Velo advanced sites: you can add custom HTTP headers via Wix's HTTP functions (wix-http-functions) for specific API routes, but full page response headers remain platform-controlled.
  5. For maximum control, consider routing traffic through Cloudflare (add your Wix site's DNS to Cloudflare, proxied) and use Cloudflare Transform Rules to inject X-Frame-Options: DENY on all responses.

Site Lifecycle · 12 fixes

Cms versionModerate effort

Identify your ecommerce platform and CMS version, then ensure it is always kept up to date to protect your store from security vulnerabilities and avoid loss of vendor support.

On Wix

  1. Wix is a fully hosted SaaS platform — all core platform and infrastructure updates are applied automatically by Wix.
  2. Log in to your Wix account → Go to your site's Editor: check for any editor or template update notifications in the top bar or the Wix dashboard.
  3. Go to Wix Dashboard → Apps: review all installed Wix Apps to ensure they are up to date — Wix apps are generally updated automatically, but check for deprecation notices.
  4. If you use Wix Studio (formerly Editor X), review release notes in the Wix Studio dashboard for new feature rollouts that may require you to adjust site settings.
Domain expiryQuick win

Enable auto-renew on your domain registration and set calendar reminders well before expiry to prevent accidental loss of your store's address.

On Wix

  1. For domains purchased through Wix: Log in → click your account avatar (top right) → Domains. Click the domain → Manage → Subscription. Confirm auto-renew is toggled ON.
  2. Update the payment method at Wix account → Billing & Payments if needed.
  3. For externally registered domains connected to Wix: log in to the external registrar directly and manage auto-renew there.
  4. Wix sends renewal reminder emails to your registered Wix account email — make sure that email is one you check regularly.
Gtm auditModerate effort

Install Google Tag Manager on your store and configure GA4 with ecommerce event tracking (view_item, add_to_cart, purchase) so you can measure what's driving revenue.

On Wix

  1. In the Wix dashboard, go to Marketing & SEO → Marketing Integrations → Google Tag Manager → Connect.
  2. Enter your GTM Container ID and click Save. Wix injects both GTM snippets site-wide automatically.
  3. For GA4 ecommerce events on Wix Stores (view_item, add_to_cart, purchase), use Wix's native Google Analytics integration (Marketing & SEO → Google Analytics) alongside GTM, or use a third-party app like 'Pixel Perfect' from the Wix App Market to push dataLayer events.
  4. Note: Wix's sandboxed environment limits full custom dataLayer control; the native Wix GA4 integration handles basic ecommerce events more reliably than custom GTM dataLayer scripts.
  5. Verify events in GA4 DebugView and monitor Monetisation reports after 48 hours.
Html langQuick win

Add a correct `lang` attribute to your site's `<html>` tag so browsers, search engines, and assistive technologies know what language your store is written in.

On Wix

  1. Wix automatically sets the lang attribute on the <html> tag based on the language you select for your site.
  2. To set or change it: In the Wix Editor, click the Settings icon (gear) in the left panel, then go to Multilingual, or go to your Dashboard › Settings › Language & Region.
  3. Set your primary site language to the correct language for your content. Wix will inject the corresponding lang attribute into the <html> tag automatically.
  4. If you use Wix Multilingual for multiple languages, each language version's page will receive its own correct lang value automatically.
  5. You cannot directly edit the <html> tag in Wix — the language setting in the dashboard is the only control point. Ensure it matches the actual language of your content.
Lifecycle oos schema not updatedModerate effort

Update the `offers.availability` field in your Product schema to `OutOfStock` (or `PreOrder`/`Discontinued`) whenever a product sells out, so Google's data matches your real inventory.

On Wix

  1. Wix eCommerce automatically generates Product schema for products in your Wix store, reading availability from live inventory.
  2. Ensure your product's inventory is correctly set: in the Wix dashboard go to eCommerce (or Wix Stores) > Products > select the product > scroll to Inventory & Shipping > ensure 'Track inventory' is on and the quantity is set to 0 for out-of-stock items.
  3. When inventory hits 0 and 'Track inventory' is enabled, Wix should update the schema availability accordingly. If you are not tracking inventory, Wix has no signal to update the schema — so enable tracking.
  4. Wix does not currently expose direct JSON-LD editing in the standard editor. If you need manual schema overrides, use the Wix Velo (Dev Mode) feature: enable Dev Mode in the editor, then add or override JSON-LD in the page's '<head>' via Wix Velo's wixWindow API or a custom HTML embed in the page.
  5. Validate using Google's Rich Results Test on a sold-out product URL.
Lifecycle orphaned productsModerate effort

Add internal links from category pages, navigation, and related-product sections to every product page so crawlers and shoppers can find them without relying solely on your sitemap.

On Wix

  1. Open the Wix Editor and go to the Wix Stores dashboard (Manage Store). In the Products section, look for products not assigned to any collection.
  2. Click on each orphaned product and use the 'Collections' section to assign it to one or more relevant collections, which will make it appear on collection/category pages.
  3. Add collection pages to your site navigation: in the Editor, click on your menu, then Manage Menu, and add links to the relevant collection pages.
  4. To add a 'Related Products' widget: in the Editor, click on a product page, then go to the product page settings and enable the 'Related Products' section if your theme supports it, or add a 'Product Gallery' element filtered to the relevant collection.
  5. For manual contextual links: edit any relevant site page or blog post in the Wix Editor, select the product name text, and use the link tool to link to the product page.
Lifecycle products missing from sitemapModerate effort

Add every canonical product URL to your XML sitemap so search engines can discover and index your products faster.

On Wix

  1. Wix auto-generates a sitemap. To verify, go to your Wix Dashboard → SEO Tools → Get Found on Google → SEO Setup Checklist, or check yourdomain.com/sitemap.xml directly.
  2. Individual product pages can be excluded from the sitemap by mistake. Go to Wix Dashboard → SEO Tools → SEO Settings → Pages & Navigation, then select each product page and confirm 'Allow search engines to index this page' is ON.
  3. For Wix Stores, make sure all products in your store are set to 'Visible'. Go to Wix Dashboard → Store Products → select the product → ensure it is not hidden.
  4. Wix automatically re-pings Google when you publish changes, but you can also submit the sitemap manually in Google Search Console.
Lifecycle products too deepModerate effort

Reduce the number of clicks required to reach every product page to 4 or fewer from the homepage by flattening your site structure or surfacing buried products on shallower category pages.

On Wix

  1. Wix Editor → Pages & Menu (left panel): review your menu structure. Wix menus support sub-pages but not deep nesting; ensure collection/category pages are at the top level of your menu, not buried inside multiple dropdowns.
  2. Wix eCommerce → Categories (in the Wix Stores dashboard): restructure product collections so that deeply nested sub-collections are promoted to top-level collections, or products are assigned to a shallower collection.
  3. In the Wix Editor, add a 'Product Gallery' or 'Product Widget' section to your homepage and configure it to display products from the buried category.
  4. Edit your main navigation (Menus & Pages → Manage Menu) and add direct links to the deep product categories, placing them as top-level or first-level dropdown items.
  5. Use Wix's built-in 'Related Products' and 'Also Bought' widgets on popular shallower product pages to create cross-links that reduce effective click depth.
  6. Preview the site and manually click through from the homepage to confirm that every product category and key product is reachable within 4 clicks.
Mixed contentModerate effort

Audit every page, asset, and third-party embed on your store to ensure no HTTP resources are loaded on HTTPS pages, and fix any mixed-content violations before they silently break security warnings or block content in visitors' browsers.

On Wix

  1. Wix enforces HTTPS on all sites automatically; mixed content most commonly comes from external embeds added via Wix HTML iframes or Wix Velo code.
  2. In the Wix Editor, click any HTML iframe widget (Insert → Embed → HTML iframe) and check that the embed code uses https:// URLs, not http://.
  3. If you use Wix Velo (Dev Mode), open your site's code files and search for any fetch(), import, or src references using http://; update them to https://.
  4. Check any Wix app embeds (e.g. third-party chat, review widgets added via the App Market) — if a specific app is injecting HTTP resources, contact the app developer for an updated HTTPS embed snippet.
  5. For media files, all images and videos uploaded directly to Wix are served over HTTPS automatically. If you reference external media (e.g. images hosted elsewhere), ensure those source URLs use https://.
  6. Publish your site and open it in an incognito browser window; use DevTools (F12 → Console) to confirm no mixed-content warnings.
Mobile viewportQuick win

Confirm your store has a correct responsive viewport meta tag so it displays properly on phones and tablets.

On Wix

  1. Wix automatically injects a correct responsive viewport meta tag on all sites — you do not need to add it manually.
  2. If your site was built in Wix's legacy non-responsive (classic) editor, go to your Wix Dashboard → Settings → Mobile Optimization and enable the mobile view.
  3. For best results, switch to a Wix ADI or Wix Editor X (now Wix Studio) template, which are built responsive by default and output the correct viewport tag.
  4. Use Google's Mobile-Friendly Test on your live Wix URL to confirm the tag is present and the site passes.
Server versionModerate effort

Remove or suppress the Server version header so your web server software and version number are no longer exposed in every HTTP response.

On Wix

  1. Wix is a fully hosted platform — you have no access to server configuration files.
  2. Wix centrally manages all HTTP response headers; you cannot set or remove them from the Wix dashboard.
  3. If a scanner reports a version header on a Wix site, report it to Wix Support (support.wix.com) as a security concern — Wix's infrastructure team is responsible for this configuration.
  4. No action is required or possible from the site owner's side.
Ssl expiryQuick win

Monitor your SSL/TLS certificate expiry date and set up auto-renewal so your store never goes offline or shows a security warning to shoppers.

On Wix

  1. Wix automatically issues and renews a free SSL certificate for all sites, including those on custom domains — no manual configuration is needed.
  2. To verify: Wix Dashboard → Settings → Domains → click your domain → confirm 'SSL certificate' shows as active (green).
  3. If your domain was connected via 'point to Wix' (changing nameservers), SSL is handled fully by Wix.
  4. If your domain was connected via 'connect a domain' (DNS records only), make sure the required CNAME and A records are correctly set at your domain registrar so Wix can validate and renew the cert.