Manage SEO for Main Pages

On a Wix-managed headless projects built with the Astro integration, the main pages of your frontend get their SEO tags automatically, with no code. Main pages are pages at a fixed URL, such as the home, about, and contact pages.

Wix's Astro middleware resolves each page's tags at request time, from the settings a Wix user edits in the dashboard, and injects them into the page <head>. There's nothing to install or render.

This article explains how your routes reach the dashboard, where to configure their tags, and how to confirm the tags reach your live site. For item pages, such as Wix Stores products and Wix Blog posts, see Add SEO Support to Item Pages.

How your routes reach the dashboard

Wix learns your frontend's routes from a page registry. When you build and publish your site, the @wix/astro-pages integration included in your project registers every route into a registry that Wix serves at /_wix/pages.json. Your main pages then appear in the dashboard under SEO & GEO > SEO Settings > Main Pages, where a Wix user sets each page's SEO.

Important: Because the dashboard reads this registry, publish your site at least once before you configure SEO. A route that hasn't been published yet won't appear in the dashboard. After a route is registered, dashboard SEO edits take effect on the live page at request time, with no redeploy needed.

Step 1 | Remove hard-coded SEO tags from your layout

Let the dashboard be the single source for the tags it manages. If your shared layout also hard-codes a <title> or <meta name="description">, those compete with the dashboard-managed tags. Remove them from your layout's <head>. For example:

Copy

Keep this in mind for any tag the dashboard owns: title, meta description, canonical link, and social tags.

Leave non-SEO tags, such as charset, viewport, favicon, and fonts, in place.

Step 2 | Publish your site

  1. Run the build command to build the assets for your project:
Copy
  1. Run the release command to publish your project:
Copy

Releasing pushes your project to Wix's servers and publishes your site. After releasing your project, the CLI provides the URL of your published site, and preview URLs for your project's site and dashboard.

This deploys your Step 1 change and registers your routes, so they appear in the dashboard for the next step.

Step 3 | Configure SEO in the dashboard

To configure SEO to propogate through to your headless site:

  1. Open your site's SEO Settings in the dashboard. The link opens a site selector so you can choose your site.
  2. Select Main Pages. Each published main page appears as a row.
  3. Select the relevant tab:
    • Edit by page: Select a row to set that page's title tag, meta description, focus keyword, and indexable toggle. A lock icon on a field means it's following the default pattern. Editing the row overrides the pattern for that page.
    • Customize defaults: Set the title and description patterns that apply to every main page at once, such as {Page Name} | {Site Name}, so you don't have to fill in each page by hand.
  4. Edit robots.txt under SEO & GEO > Robots.txt Editor.

These edits apply to the live pages at request time. You don't need to publish again.

Tip: Check out the SEO Setup Checklist for a personalized list of SEO setup tasks to help your site become more visible in online searches.

Step 4 | Verify your setup

Inspect the rendered HTML on your published site:

  1. Fetch a page and look at its <head>. The injected tags carry a wix-seo-tag="true" attribute:

    Copy

    You see the dashboard-resolved <title>, <meta name="description">, and <link rel="canonical">, plus Open Graph and Twitter tags, each marked with the attribute. The social tags are derived automatically from the title and meta description you set.

  2. Change a value in the dashboard, and then fetch the page again to confirm the change reaches the live <head>.

Note: Test on the published site only, not local wix dev as it doesn't run the SEO injection.

Tip: Resolved tags are edge-cached. A high-traffic route, often the home page, is served from the CDN and can take a few minutes to reflect a dashboard change, while a low-traffic route updates on the next request. When testing, edit a low-traffic page first so you see the change right away.

See also

Last updated: 1 July 2026

Did this help?