---
title: "How to ship one h1, title, meta description and JSON-LD on Wix"
slug: title-meta-schema-wix
published: 2026-09-25T13:20:40.638808+00:00
updated: 2026-09-25T13:23:07.769089+00:00
author: "Asif Rahman"
author_url: https://masifrahman.com
category: "AI Readiness"
tags: check:C3, platform:wix, Wix, structured data, JSON-LD, meta description, technical SEO
description: "Wix keeps the title tag and meta description in SEO basics, JSON-LD in the Advanced SEO tab, and the h1 as a plain text element. Here is where check C3 looks."
url: https://aiscan.site/blog/title-meta-schema-wix
---

Ask AIScan's check C3 to grade a Wix page and it looks for four specific things in the raw HTML: exactly one `<h1>` tag, a `<title>`, a `name="description"` meta tag, and at least one `application/ld+json` script. Wix ships real settings for three of those, but not in one place, and not for the fourth at all.

## Quick summary

| Signal | Where it lives on Wix | Fastest way to check |
|---|---|---|
| Title tag | Page's **SEO basics** panel | `curl -s <url> \| grep -o '<title>[^<]*'` |
| Meta description | Same **SEO basics** panel, next field down | `curl -s <url> \| grep -o 'name="description"[^>]*'` |
| JSON-LD | **Advanced SEO** tab on that same panel, or the SEO Settings dashboard | `curl -s <url> \| grep -c 'application/ld+json'` |
| H1 | Not a setting: a **Heading 1** text element on the canvas | `curl -s <url> \| grep -o '<h1[^>]*>'` |

## Wix splits these four signals across three different surfaces

Title tag and meta description sit in the same panel. Structured data is one tab over, in the same panel, but with its own character limit and its own dashboard-level alternative for page types. The h1 isn't in that panel at all. It's a text element you place on the page, styled like any other piece of text, which is exactly why it's the signal that goes missing. According to AIScan's own corpus of scanned sites, C3 is one of the checks where "the panel has a field for it" and "the page actually ships it" diverge most often, and a visual builder like Wix is the clearest case: nothing in the editor stops you from deleting the one Heading 1 element a template shipped with, or from styling a `<div>` to look identical to it while leaving the real heading tag unused.

## Set the title tag and meta description from SEO basics

Go to your editor, click **Pages & Menu**, click **More Actions** next to the page you're editing, and click **SEO basics**. Enter your headline under **Title tag (title in search results)** and your summary under **Meta description (description in search results)**, then click **Publish**.

According to Wix's help center article on title tags and meta descriptions, verified 25 September 2026, a title tag should stay under 60 characters (longer ones get trimmed in search results), and a meta description should run 50 to 160 characters. Wix's own guidance recommends the format `Keyword | Location | Brand Name` for local businesses and `Keyword | Brand Name` otherwise, and it states plainly that AI bots rely on an accurate meta description when summarizing a page, which is the same reason C3 checks for one at all: a missing description doesn't just cost a search snippet, it costs the one-sentence summary an agent would otherwise quote back.

| Field | Wix's own limit | What happens over the limit |
|---|---|---|
| Title tag | Under 60 characters | Search engines trim the display, C3 still passes on presence alone |
| Meta description | 50–160 characters | Google truncates around 160; under 50 reads as thin to a searcher |
| JSON-LD markup | Under 7,000 characters, up to 5 per page | Wix's Apply button rejects an oversized or malformed block |

## Add JSON-LD from the Advanced SEO tab, or let SEO Settings cover the page type

From that same **SEO basics** panel, click the **Advanced SEO** tab, then **Structured Data Markup**, then **+Add New Markup**. Paste your JSON-LD under **Write your markup in JSON-LD format** and click **Apply**.

Verified on Wix's structured data article: Wix accepts JSON-LD only (no Microdata, no RDFa), caps each markup at under 7,000 characters, and allows up to five markups per page. Get a type wrong (`blogposting` instead of `BlogPosting`) and it won't validate.

There are two routes, and they don't cover the same ground:

| Route | Where you open it | Scope | Best for |
|---|---|---|---|
| Advanced SEO tab | Per page, in the editor | That one page only | A one-off page, like an About page or a landing page |
| SEO Settings dashboard | Site dashboard → SEO & GEO → Tools and settings | Every page of one page type, with variables for dynamic fields | Blog posts, Stores products, Bookings services, anything templated |

Fetched from Wix's structured data article: Wix auto-adds Local Business markup to your homepage once you've entered a business name and location, and it presets markup on Stores product pages, Bookings service pages, Blog posts and Events pages the moment you create them. Blog posts have a third option: an AI-generated markup toggle in SEO Settings that scans a published post and writes schema for it automatically, refreshed as the post changes. That toggle only covers the Wix Blog; every other page type still needs the manual route above.

## The h1 is a text element, not a setting, and a blank line breaks it

To add one: click **Add Elements**, click **Text**, click **Add Heading 1**, and drag it onto the page. To reassign an existing line of text without changing how it looks, select it, click **Edit Text**, click **SEO & accessibility**, and choose a new tag from the **Choose HTML tag** drop-down. You can turn an H1 into an H4 and keep the same font and size.

According to Wix's own article on managing heading tags, fetched 25 September 2026, there's a specific failure mode worth knowing before you go looking for it: assigning Heading 1 to a text box that contains a blank line break generates an empty `<h1>` tag. AIScan's C3 check reads the tag itself, not whether it's empty, so a blank H1 still counts as a present one to a naive check. A human reading the rendered page sees nothing where the headline should be, which is the gap between "the tag exists" and "the signal does its job." And because Heading 1 is just a style choice on a text element, nothing in the editor stops you from applying it twice on the same page; most Wix themes ship with one, but a second Heading 1 dropped in by hand renders as a second `<h1>` and splits the one ranking signal a page is supposed to carry.

## Check the published domain, not the `wixsite.com` preview

Check with AIScan first — it names this exact check:

```bash
npx aiscan-cli yoursite.com
# look for check C3 in the output: pass/fail plus the specific signal missing
```

Or by hand, against the live domain rather than a `*.wixsite.com` preview:

```bash
curl -s https://yoursite.com | grep -Eo '<title>[^<]*|name="description"[^>]*|application/ld\+json|<h1[^>]*>'
```

Expect a `<title>` value, one `name="description"` tag, at least one `application/ld+json` script tag, and exactly one `<h1`. Republishing after an edit updates the served HTML immediately, so a fresh `curl` reflects it right away, even though Google's own cached snippet can lag behind until its next crawl.

## Where AIScan fits, and where it doesn't

C3 is a presence check: it confirms the tag exists once and the JSON-LD parses as a script block. It cannot tell you whether your JSON-LD's `@type` matches what Google's Rich Results Test wants, whether your title actually describes the page, or whether the "one" `<h1>` it counted is the empty one from a stray line break. Run the scan to catch a signal that's missing outright; read the page yourself to catch one that's present but wrong.

## Fix the split, then scan it

Set the title and meta description in **SEO basics**, add JSON-LD from the **Advanced SEO** tab or SEO Settings, and give the page exactly one real **Heading 1**. Then run `npx aiscan-cli yoursite.com` and check row C3. For the file-based half of AI readiness, llms.txt and robots.txt, see the [Wix llms.txt guide](https://aiscan.site/blog/llms-txt-wix) and the [Wix robots.txt guide](https://aiscan.site/blog/robots-txt-ai-bots-wix); for how a different visual builder handles the same four signals, see [the Webflow version of this check](https://aiscan.site/blog/title-meta-schema-webflow). More fixes, one per check, live at [AIScan's guides](https://aiscan.site/guides).

