Dark green cover graphic reading One h1, title, meta description and JSON-LD on Wix, with a four-row checklist for title, meta, JSON-LD and h1 and the aiscan.site wordmark.
Dark green cover graphic reading One h1, title, meta description and JSON-LD on Wix, with a four-row checklist for title, meta, JSON-LD and h1 and the aiscan.site wordmark.
AI Readiness

How to ship one h1, title, meta description and JSON-LD on Wix

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.

AAsif Rahman 25 Sept 2026 7 min read
#Wix#structured data#JSON-LD#meta description#technical SEO

This guide covers C3 · Content.

Table of contents

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

SignalWhere it lives on WixFastest way to check
Title tagPage's SEO basics panelcurl -s <url> | grep -o '<title>[^<]*'
Meta descriptionSame SEO basics panel, next field downcurl -s <url> | grep -o 'name="description"[^>]*'
JSON-LDAdvanced SEO tab on that same panel, or the SEO Settings dashboardcurl -s <url> | grep -c 'application/ld+json'
H1Not a setting: a Heading 1 text element on the canvascurl -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.

FieldWix's own limitWhat happens over the limit
Title tagUnder 60 charactersSearch engines trim the display, C3 still passes on presence alone
Meta description50–160 charactersGoogle truncates around 160; under 50 reads as thin to a searcher
JSON-LD markupUnder 7,000 characters, up to 5 per pageWix'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:

RouteWhere you open itScopeBest for
Advanced SEO tabPer page, in the editorThat one page onlyA one-off page, like an About page or a landing page
SEO Settings dashboardSite dashboard → SEO & GEO → Tools and settingsEvery page of one page type, with variables for dynamic fieldsBlog 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:

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:

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 and the Wix robots.txt guide; for how a different visual builder handles the same four signals, see the Webflow version of this check. More fixes, one per check, live at AIScan's guides.

Frequently asked questions

AIScan reports h1: 0 on my Wix page, but I can see a headline. What's wrong?

Two likely causes. First, the text is styled to look like a big headline but was never assigned the Heading 1 tag; select it, click Edit Text, then SEO & accessibility, and check the Choose HTML tag value. Second, the Heading 1 text box contains a blank line break, which Wix renders as an empty heading element that a naive check counts as present but a real reader sees as nothing.

Can a Wix page have two H1 elements?

Yes, and nothing in the editor stops it. Heading 1 is a style choice you apply to any text element, so dragging a second Heading 1 onto a page that already has one produces two top-level heading elements in the rendered page, which splits the one heading signal a page should carry.

I edited the title tag and meta description in SEO basics but a fresh scan still shows the old ones. Why?

Check that you clicked Publish, not just closed the panel, and that you're scanning the live domain rather than a *.wixsite.com preview or an unpublished draft. The served HTML updates immediately after Publish; only Google's own cached search snippet can lag behind.

My JSON-LD markup won't save in the Advanced SEO tab. What's failing?

Wix enforces a hard 7,000-character cap per markup and accepts JSON-LD only, not Microdata or RDFa. A common silent failure is a wrong type string, like blogposting instead of BlogPosting; JSON-LD type names are case-sensitive.

Does adding structured data through SEO Settings work for a whole collection of dynamic pages, like blog posts or products?

Yes, that's what SEO Settings is for. Go to the page type's Customize Defaults tab and you can write markup once with variables that fill in per item. The per-page Advanced SEO tab, by contrast, only applies to the one specific page you opened it from.

Does Wix's AI-generated structured data cover my whole site?

No, only published Wix Blog posts. Every other page type, including Stores, Bookings and Events pages that ship with preset markup, and any custom page, needs the manual JSON-LD route in the Advanced SEO tab or SEO Settings.

Does check C3 care whether my title tag follows Wix's recommended Keyword | Brand format?

No. C3 checks presence, not phrasing: whether a title tag value exists at all. Wix's format guidance is good practice for how the title performs in search results, but it isn't part of what AIScan grades.

My homepage already has Local Business JSON-LD that Wix added automatically. Does that satisfy check C3 on other pages?

No. JSON-LD is checked per page, and Wix's automatic Local Business markup only ships on the homepage once you've added a business name and location. Every other page needs its own markup, either preset by its page type or added manually.

Related guides