About SEO for Self-Managed Headless Projects

On a self-managed headless project, Wix doesn't add SEO tags to the HTML your server sends, and doesn't serve robots.txt or sitemap.xml for you. You can load site scripts so the browser adds the dashboard's SEO tags after the page loads. Crawlers that don't run JavaScript don't see those tags. For tags search engines can read, render them yourself.

Note: This article also applies to a Wix-managed headless project built with a framework other than Astro. A static site you upload to Wix already loads site scripts, so you don't add the tag. SEO tags added that way are still injected in the browser. Rendering tags into the HTML response is specific to Wix's Astro integration.

For Wix-managed headless projects built with the Astro integration, see About SEO Support.

What you build yourself

Build and serve the following in your own frontend and server code:

  • Meta tags: Titles, meta descriptions, canonical links, and social tags such as Open Graph and Twitter.
  • Structured data: Any schema.org JSON-LD you want search engines to see.
  • robots.txt: The rules that control which crawlers can access which parts of a site.
  • sitemap.xml: The list of URLs you want search engines to index. You already know your own static and main-page URLs, since you built the frontend. For dynamic, repeater-generated URLs, such as Stores products or Blog posts, fetch them with List Sitemap Pages instead of deriving them yourself.

Fetch dynamic item URLs for your sitemap

List Sitemap Pages returns the dynamic item URLs Wix knows about for a specified itemType, such as STORES_PRODUCT, BLOG_POST, or BOOKINGS_SERVICE. It doesn't return static or main-page URLs. Filter on each entry's shouldBeIncludedInSitemap field before you write it into your sitemap, and paginate through results with the method's cursor paging. The method returns NOT_FOUND if the site isn't indexable or isn't published.

Reuse your dashboard SEO settings

If a Wix user has already configured titles, descriptions, and other tags in the dashboard, under SEO & GEO > SEO Settings, you can use those values instead of hard-coding your own.

  • In the browser: Loading site scripts adds the tags after the page loads. A tag the page already has, of the same kind, is left as is. Crawlers that don't run JavaScript don't see the tags Wix adds.
  • On your server: Fetch the values with the SEO Tags API, the same API the Astro integration calls, and render the result into your own <head>. The dashboard configuration still applies. This is the option crawlers that don't run JavaScript can see.

See also

Last updated: 26 October 2026

Did this help?