Skip to main content
Wix guide

JSON-LD for Wix Stores

By ยท Updated ยท 7 min read

How JSON-LD Works on Wix Stores

Wix generates some structured data automatically for Wix Stores โ€” product schema, breadcrumbs, and organization markup are injected server-side by the platform without any merchant configuration. This built-in output covers basic Google requirements but stops well short of the full JSON-LD vocabulary available in the spec.

Unlike Shopify or WooCommerce, Wix does not expose a theme-level code injection point specifically for product templates. Instead, custom JSON-LD must be added via the site-wide custom code panel under Settings > Custom Code, or through Wix's Velo developer platform. Both methods introduce trade-offs around scope and maintenance that merchants need to understand before deploying structured data at scale.

What Wix Generates Automatically

Wix Stores injects Product schema for every product page, including name, description, image, and price. It also outputs Organization markup on the homepage and BreadcrumbList on category and product pages. These are rendered server-side, so Googlebot reads them in the initial HTML response โ€” no JavaScript rendering delay.

The automatic output omits several commercially significant properties. Review aggregate ratings (aggregateRating), offer availability variants per SKU, brand, GTIN, and MPN are absent or incomplete by default. For stores with product catalog depth โ€” hundreds of SKUs across multiple variants โ€” this gap means Google cannot surface rich results like price ranges, review stars, or availability badges in search without additional markup.

Wix also outputs WebSite schema with a SearchAction sitelinks searchbox on the homepage. This is handled entirely by Wix and cannot be modified by the merchant. If the SearchAction URL pattern does not match the store's actual search behavior, there is no documented override path short of Velo scripting.

Adding Custom JSON-LD via Settings > Custom Code

The Custom Code panel (Settings > Custom Code in the Wix dashboard) accepts raw HTML including inline script tags. A JSON-LD block placed here with type application/ld+json is valid and crawlable. The panel lets merchants specify whether the code fires on all pages, specific pages, or the homepage only, and whether it loads in the head or body.

The critical limitation: Custom Code injection is site-wide or page-type-wide, not template-level. A merchant cannot insert a dynamic JSON-LD block that pulls the current product's GTIN or brand from the Wix Stores database through this panel alone. Static organization or FAQ schema works fine here; per-product dynamic schema does not without Velo.

For stores running a modest catalog where critical properties can be hardcoded or where a single brand and GTIN prefix applies universally, the Custom Code panel is a fast, no-developer path. For catalogs above a few dozen SKUs with meaningful variation in brand, GTIN, or condition, Velo or a third-party app is necessary.

Velo by Wix for Dynamic JSON-LD

Velo is Wix's built-in JavaScript development environment. Within Velo, a developer can access the Wix Stores Products API to retrieve the current product's data โ€” including custom fields โ€” and inject a fully populated JSON-LD block into the page head using the wix-seo module's setStructuredData() method. This approach enables per-product aggregateRating, brand, GTIN, and variant-level Offer nodes.

The wix-seo.setStructuredData() method accepts a JSON object and renders it as a script tag with type application/ld+json in the server-rendered HTML. This means the markup is present in the initial response, not added client-side after load, which is important for Googlebot reliability. Velo scripts run in a Node-like server environment, so API calls to fetch product data complete before the page is served.

One constraint: Velo's setStructuredData() replaces any existing structured data object of the same @type rather than appending to it. A developer building on top of Wix's automatic Product schema must account for this โ€” either reconstructing the full Product object or using a separate custom @type to avoid collisions with the platform-generated output.

Third-Party Apps for JSON-LD on Wix

The Wix App Market contains several SEO apps that add or enhance structured data, including tools such as SEO Assistant apps that inject schema for reviews, FAQs, and breadcrumbs. These apps typically work by adding Custom Code snippets automatically or by using Velo under the hood. The benefit is a no-code interface; the trade-off is that the app controls the output structure and update cadence.

Before installing any schema app, audit what Wix already generates to avoid duplicate Product or Organization nodes. Google's Rich Results Test will flag duplicate @type entries as errors. An app that injects a second Product block without being aware of Wix's native output creates conflicts that suppress rich results rather than enhance them.

App-generated schema also introduces a dependency on the app vendor's update cycle. If Wix changes its native schema output โ€” which it has done without merchant notice in the past โ€” an app injecting complementary markup may produce conflicts or redundancies that require manual resolution. Merchants running high-SKU catalogs should treat schema as infrastructure and prefer the Velo approach for control and auditability.

Practical Steps to Audit and Extend Wix Store Schema

Start by running a representative product URL through Google's Rich Results Test and the Schema Markup Validator. Document exactly which properties Wix is already outputting and which are missing. Pay specific attention to aggregateRating, brand, gtin13, offers.availability, and offers.priceValidUntil โ€” these are the properties most likely to affect rich result eligibility in product search.

Next, decide on the implementation path based on catalog size and developer access. Fewer than 50 SKUs with uniform branding: use Custom Code for static additions. More than 50 SKUs or variable GTIN/brand: use Velo's setStructuredData() with the Wix Stores Products API. In both cases, re-run the Rich Results Test after deployment and check Google Search Console's Enhancements report within two to four weeks to confirm Google has processed the new markup.

Set a calendar reminder to re-audit schema after any Wix platform update. Wix pushes updates to its automatic schema generation without versioned changelogs for merchants, so a quarterly check against the Rich Results Test prevents silent regressions from erasing rich result eligibility that was previously established.

Frequently asked questions

Does Wix automatically add JSON-LD to product pages?

Yes. Wix Stores injects Product, BreadcrumbList, and Organization schema server-side on product and category pages without any merchant configuration. However, the automatic output omits commercially important properties like aggregateRating, GTIN, MPN, and brand, which limits eligibility for review stars and price rich results in Google Search.

Can I add JSON-LD to individual Wix product pages without a developer?

Not dynamically. The Custom Code panel allows site-wide or page-type injection of static JSON-LD, but it cannot pull per-product data like GTIN or brand from the Wix Stores database. Dynamic per-product schema requires Velo, Wix's built-in JavaScript platform, which does need developer involvement.

What is Velo's setStructuredData() method and how does it affect SEO?

setStructuredData() is a Wix Velo API method in the wix-seo module that injects a JSON-LD script block into the server-rendered page head. Because it runs server-side before the page is sent to the browser, Googlebot reads the markup in the initial HTML response โ€” the same reliability as hardcoded structured data โ€” without client-side rendering delay.

Will installing a schema app on Wix create duplicate structured data?

It can. Wix already generates Product and Organization schema natively. An app that injects additional blocks of the same @type without accounting for the native output creates duplicates. Google's Rich Results Test flags these as errors and suppresses rich results. Always audit existing Wix-generated schema before adding any third-party app that touches structured data.

How is JSON-LD on Wix different from JSON-LD on Shopify?

Shopify exposes theme template files (product.liquid, etc.) where JSON-LD can be added with full access to Liquid variables for dynamic per-product data โ€” no separate development environment needed. Wix requires either static Custom Code injection or Velo scripting for equivalent dynamic output. Shopify also has a larger ecosystem of schema-focused apps with deeper platform integration than Wix currently offers.

MG
Written by

Matt is the founder of RunOctopus. He built All Angles Creatures from zero to page-1 rankings in reptile feeder insects in under 60 days using exactly this method โ€” turning a hard, entrenched niche into RunOctopus's proof store for programmatic SEO and AI search citation.

Connect on LinkedIn →

See what Otto would build for your store

Free architecture preview. No card required. Five minutes.

Generate Preview →