> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

## Resource: Post-Migration Checklist: Wix Studio and Editor Sites to Headless

## Article: Post-Migration Checklist for Editor and Wix Studio Sites

## Article Link: https://dev.wix.com/docs/go-headless/wix-managed-headless/full-integration-astro/get-started/post-migration-checklist-wix-studio-and-editor-sites-to-headless.md

## Article Content:

# Post-Migration Checklist: Wix Studio and Editor Sites to Headless

This article complements [Moving Your Site to a Custom Frontend](https://support.wix.com/en/article/wix-headless-moving-your-site-to-a-custom-frontend), which covers the basic steps for migrating a Wix Studio or Editor site to a [Wix-managed headless](https://dev.wix.com/docs/go-headless/wix-managed-headless/about-wix-managed-headless.md) site built with [Wix's Astro integration](https://dev.wix.com/docs/go-headless/wix-managed-headless/full-integration-astro/about-the-astro-integration.md).

After you migrate, anything that lived in your Wix Studio or Editor site, such as widgets, page code, and forms, doesn't carry over automatically. Use this checklist to verify or rebuild those features.

Most items apply after you complete the migration. The exceptions are [migration setup](#confirm-your-migration-setup), [cookie consent](#set-up-analytics-and-cookie-consent), [unsupported apps](#handle-unsupported-apps), and [chat](#replace-wix-chat), which you handle before you complete it.

## Checklist overview

The following table lists areas to review after your migration, and what to check for each area.

| Area | What to check |
| --- | --- |
| [Migration setup](#confirm-your-migration-setup) | Parent site, preview site, and CLI steps |
| [Redirects](#redirect-old-editor-site-urls) | Old Editor site URLs that now return 404 |
| [SEO](#review-seo-settings) | Page SEO, `robots.txt`, `llms.txt`, and sitemap |
| [Analytics](#set-up-analytics-and-cookie-consent) | Event tracking and cookie consent |
| [Multilingual](#carry-over-your-translations) | Languages and translations |
| [Forms](#rebuild-your-forms) | Form UI and submissions |
| [Members](#check-member-login-and-account-pages) | Login, signup, and account pages |
| [Checkout and bookings](#check-checkout-and-booking-flows) | Wix-hosted checkout and booking pages |
| [Velo code](#port-your-velo-code) | Page code, web modules, and backend code |
| [Unsupported apps](#handle-unsupported-apps) | Apps that don't render on headless |
| [Chat](#replace-wix-chat) | Chat widgets and Wix AI Site-Chat |
| [Accessibility](#test-accessibility) | Keyboard, screen reader, and contrast |
| [Performance](#test-performance-and-responsive-design) | Page speed and responsive design |
| [3rd-party scripts](#re-add-3rd-party-scripts-and-integrations) | Pixels, tag managers, and embeds |

## Confirm your migration setup

Migration involves 2 sites:

- Parent site: Your existing Wix Studio or Editor site. It keeps all your business data, such as products, bookings, members, and contacts.
- Preview site: A separate site created for the migration project. It doesn't contain a copy of your business data. It hosts the preview of your new frontend until you complete the migration.

Before you go live, do the following:

- [ ] Run `wix env pull` so your local `.env.local` file has the parent site's client ID. Your frontend reads business data from the parent site, even while the preview URL belongs to the preview site.
- [ ] Check that your code makes API calls with the credentials from `.env.local`, not with the site ID in `wix.config.json`. During migration, `wix.config.json` names the preview site.
- [ ] Manage your catalog, bookings, and other business data on the parent site in the site selector. The preview site doesn't contain them.

To go live, open **Complete Migration** in Headless Settings in your dashboard. The dialog gives you a prompt with the `--app-id` and `--site-id` values you need. Run `wix finalize-migration` only with the flags from that prompt, and only after you open the dialog.

The `wix finalize-migration` command switches your project's configuration to the parent site, and then builds and releases your project. Until it finishes, your domain still serves your Editor site.

## Redirect old Editor site URLs

After migration, your domain serves only the pages in your headless frontend. Pages from your Wix Studio or Editor site that you didn't recreate return a 404 error. Add 301 redirects so that bookmarks, campaigns, and search results land on the right pages.

To redirect old URLs:

1. Make a list of your Editor site's URLs. Include pages, blog posts, store products, and any URLs that appear in your marketing or search results.
1. Map each old URL to the matching route in your new frontend.
1. Add the redirects in the dashboard's URL Redirect Manager. For instructions, see [Setting Up a 301 Redirect for a Page on Your Site](https://support.wix.com/en/article/setting-up-a-301-redirect-for-a-page-on-your-site). For multilingual sites, see [Setting Up a 301 Redirect for a Multilingual Site](https://support.wix.com/en/article/setting-up-a-301-redirect-for-a-multilingual-site).

You can also manage redirects with the [SEO Redirects API](https://dev.wix.com/docs/api-reference/business-management/seo/redirects/redirect-v1/introduction.md).

> **Note:** Dashboard redirects apply at the site level on your connected domain. Routing in your frontend code, such as Astro middleware, also works, but it only affects requests that reach your project. Wix serves some paths itself and those never reach your code. See [Reserved URL Paths for the Astro Integration](https://dev.wix.com/docs/go-headless/wix-managed-headless/full-integration-astro/development/reserved-url-paths-for-the-astro-integration.md).

## Review SEO settings

Your SEO settings follow your new frontend automatically, and Wix generates SEO tags for your headless pages from the settings in your dashboard. The settings apply only to routes that your new frontend serves, so routes that exist only in your new frontend, and URLs that changed, need review. Review SEO after the headless site is live.

Check the following:

- [ ] Main pages: In the dashboard, go to **SEO & GEO** > **SEO Settings** > **Main Pages** and confirm each of your new pages has a title and description. See [Manage SEO for Main Pages](https://dev.wix.com/docs/go-headless/wix-managed-headless/full-integration-astro/feature-guides/seo/manage-seo-for-main-pages.md).
- [ ] Item pages: Make sure pages for products, blog posts, and other items render SEO tags. See [Add SEO Support to Item Pages](https://dev.wix.com/docs/go-headless/wix-managed-headless/full-integration-astro/feature-guides/seo/add-seo-support-to-item-pages.md).
- [ ] Images: Use the same `wixstatic.com` media URLs and alt text as on your Editor site.
- [ ] `robots.txt`, `llms.txt`, and sitemap: Wix serves `/robots.txt`, `/llms.txt`, and `/sitemap.xml` from your **SEO & GEO** settings and your published headless routes. These files aren't copied from your Editor site when you finalize the migration, so review the live files and update your settings if they're out of date. Avoid adding your own `robots.txt` page to your project unless you intend to override the default behavior. See [About SEO Support](https://dev.wix.com/docs/go-headless/wix-managed-headless/full-integration-astro/feature-guides/seo/about-seo-support.md) and [About Sitemaps in Managed Headless](https://dev.wix.com/docs/go-headless/wix-managed-headless/full-integration-astro/feature-guides/seo/about-sitemaps-in-the-astro-integration.md).
- [ ] Structured data and social tags: Spot-check a few live pages with a tool such as Google's Rich Results Test.
- [ ] Verification and tracking tags: Add your site verification tags, such as the Google Search Console tag, and any tracking tags to your layout `<head>`. Then resubmit your sitemap and monitor for crawl errors.

## Set up analytics and cookie consent

Wix analytics and your connected analytics and marketing tools follow your new frontend automatically after you switch. Events that come from the UI you build aren't reported unless you send them yourself. To do this, install the `@wix/site` package and call `analytics.trackEvent()` wherever the action happens in your frontend:

```javascript
import { analytics } from "@wix/site";

analytics.trackEvent("ViewContent", {
  origin: "Stores",
  id: "df19c1f7-07d8-a265-42f8-e8dfa824cc6e",
  name: "Soundbeam ERD - 3083",
  price: 220,
  currency: "USD",
  category: "All Products"
});
```

Events go to Wix analytics, and Wix forwards them to the platforms you connect, such as Google Analytics 4, Facebook Pixel, and Google Tag Manager. For the full steps, see [Track Analytics Events](https://dev.wix.com/docs/go-headless/wix-managed-headless/full-integration-astro/feature-guides/track-analytics-events.md).

Do the following:

- [ ] Check your cookie consent policy before you complete the migration. On a new managed headless site, the default policy grants every category until a visitor chooses otherwise, and your live domain starts serving visitors as soon as the migration completes. If you serve visitors in regions that require opt-in consent, such as under GDPR, restrict the policy before analytics scripts run. See [Manage Cookie Consent](https://dev.wix.com/docs/go-headless/wix-managed-headless/full-integration-astro/feature-guides/manage-cookie-consent.md).
- [ ] Add a `trackEvent()` call for each event you relied on before. Use the standard event names, so external platforms recognize them. For example, use `ViewContent` for product and other key pages, `AddToCart`, `InitiateCheckout`, `Purchase`, `Lead` for form submissions and newsletter signups, and `Schedule` for bookings. For other actions, use `CustomEvent`.
- [ ] Check that your analytics and marketing platforms are still connected in the dashboard. Wix forwards events only to connected platforms.
- [ ] Run `wix build` and `wix release`, then confirm that the events arrive in the dashboard or your connected platform. Wix delivers events only from a released site with a custom domain connected. During local development with `wix dev`, the calls run without errors, but Wix doesn't deliver any events.
- [ ] Add a visible consent banner or cookie settings link if your legal requirements require it. The consent banner from your Editor site doesn't carry over.

## Carry over your translations

If your Editor site uses Wix Multilingual, you can support multiple languages on your headless site, but your Editor site translations don't copy over automatically. You translate the content that your new frontend renders.

To set it up, define translation keys in your project, sync them with the Multilingual dashboard using the `wix translation push` and `wix translation pull` CLI commands, and retrieve translated values in your code. See [Add Multilingual Support](https://dev.wix.com/docs/go-headless/wix-managed-headless/full-integration-astro/feature-guides/add-multilingual-support.md).

Check the following:

- [ ] Make sure every language you offered on the Editor site is available on the headless site.
- [ ] Test that locale routing works as expected. Headless locale routing follows Wix's setup, not Astro's built-in folder-based i18n.
- [ ] Make sure the URLs for each language follow the same scheme as on your Editor site, and that your pages include `hreflang` tags.
- [ ] Add language-specific redirects for your old multilingual URLs.
- [ ] Review SEO on your secondary-language pages. Main-page SEO isn't language-specific, so secondary-language versions of a main page can't have their own title and description. See [Manage SEO for Main Pages](https://dev.wix.com/docs/go-headless/wix-managed-headless/full-integration-astro/feature-guides/seo/manage-seo-for-main-pages.md#multilingual-sites).

## Rebuild your forms

The Wix Forms business app keeps working on your site. Submissions, contacts, automations, and notification emails still run from the dashboard. But the form embeds from your Editor site don't render on the headless frontend. Rebuild the form UI in your frontend, and send submissions to the same form with the Wix Forms APIs. See [Form Submissions API](https://dev.wix.com/docs/api-reference/crm/forms/form-submissions/introduction.md).

Check the following:

- [ ] Make sure each form from your Editor site has a matching form in your new frontend that uses the same form ID. Don't create a new form.
- [ ] Map each form field to the same field as on your Editor site's form, so Wix creates contacts the same way.
- [ ] Submit a test form and confirm that notification emails and automations still trigger.

Migration doesn't delete past submissions. They stay in the dashboard under the forms experience where visitors submitted them. New submissions come from the forms that your frontend posts to.

## Check member login and account pages

If your site has members, the member areas of your Editor site, such as login, signup, and account pages, don't carry over. The Astro integration includes built-in authentication endpoints, so you can add Wix's login page or build your own.

- To use Wix's login page, see [Add Member Login with the Astro Integration](https://dev.wix.com/docs/go-headless/authentication/members/wix-login-page/add-member-login-with-the-astro-integration.md).
- To build your own login and signup pages, see [Build Custom Login and Signup Pages with the Astro Integration](https://dev.wix.com/docs/go-headless/authentication/members/custom-login-page/add-custom-login-with-the-astro-integration.md).

Check the following:

- [ ] Test that existing members can log in with their current credentials.
- [ ] Gate member-only pages in your Astro middleware, so logged-out visitors are redirected. Test it while logged out.
- [ ] Make sure the pages that your members used on the Editor site, such as order history and bookings, exist in the new frontend or link to Wix-hosted pages.

## Check checkout and booking flows

For processes that need a user interface, such as checkout and booking a service, you can redirect visitors to Wix-hosted pages instead of building the pages yourself. See [About Wix-Hosted Pages](https://dev.wix.com/docs/go-headless/business-solutions/wix-hosted-pages/about-wix-hosted-pages.md).

Check the following:

- [ ] Complete a full test purchase and booking on your live domain.
- [ ] Confirm that visitors return to your frontend after each Wix-hosted flow.
- [ ] Confirm that order and booking confirmation emails arrive as expected.
- [ ] Check your payment provider settings. Payments continue to use your site's existing payment setup.

## Port your Velo code

Velo code that you wrote for your Wix Studio or Editor site doesn't run on the headless frontend. That includes page code, `$w` element code, and calls to `backend/*.jsw` web modules from your pages. Your Velo backend code stops working too. After you switch, requests to your site's `/_functions` URLs no longer reach your Velo backend, so you need to rewrite anything you still need in your headless project.

Replace each piece of Velo code with its headless equivalent:

| Velo code | Headless replacement |
| --- | --- |
| Page code and `masterPage.js` | Use it as a reference for your business logic, and re-implement the logic in your Astro frontend. Don't port it 1:1. |
| `.jsw` backend web modules | Create [HTTP endpoints](https://dev.wix.com/docs/go-headless/wix-managed-headless/full-integration-astro/extensions/backend/http-endpoints/about-http-endpoints.md) at `src/pages/api/<name>.ts` that use the Wix SDK. Callers switch from importing the module to calling the endpoint with `fetch`. |
| `http-functions.js` | Create HTTP endpoints at `/api/<name>`. The URL changes, so update external callers, such as webhooks, Zapier, and partner integrations. |
| `events.js` and `after*` data hooks | Add an event [extension](https://dev.wix.com/docs/go-headless/wix-managed-headless/full-integration-astro/extensions/about-extensions.md), with 1 handler for each event. |
| `before*` data hooks | There's no direct equivalent. Move the logic into the `/api` endpoint that writes the data. |
| `jobs.config` scheduled jobs | There's no scheduler extension for headless projects. Call an HTTP endpoint from an external cron service, or use Wix Automations. |
| Secrets | Call the Secrets API with [elevated permissions](https://dev.wix.com/docs/go-headless/authentication/admin/elevate-api-call-permissions-with-the-astro-integration.md) from your `/api` endpoints. |
| Service plugins | Add a service plugin extension. |

Headless backend code is limited to 1000 CPU milliseconds and 20 sub-requests per request, so long Velo functions might need to be split or simplified. Backend code in preview builds stops working after 3 days.

Check the following:

- [ ] List your Velo backend files, and decide whether to port, reference, or drop each file.
- [ ] Update every external caller of your old `/_functions` URLs.
- [ ] Test each new endpoint on your released site.

If you switch back to your Editor site's storefront, where your plan allows it, your Velo page and backend files are still on your site.

## Handle unsupported apps

Some Wix apps don't render on a headless frontend. See [supported and unsupported apps](https://support.wix.com/en/article/wix-headless-supported-and-unsupported-apps). Unsupported apps don't appear to visitors on your headless site, but they stay installed and you can still manage them from the dashboard.

Check the following:

- [ ] List the apps installed on your Editor site and compare them with the supported apps list.
- [ ] For each unsupported app that visitors used, decide whether to replace it, rebuild it in your frontend, or drop it.
- [ ] Install and configure any app you still need on your Editor site before you complete the migration. After you migrate, you can't add unsupported apps to your storefront the way you could on your Editor site.

## Replace Wix Chat

Chat widgets, such as Wix Chat and Wix AI Site-Chat, are elements of your Editor site, so they don't render on your headless site. There's no supported way to place these widgets on your custom frontend.

If you still need chat, you can build the visitor-facing chat UI yourself with the [AI Site-Chat APIs](https://dev.wix.com/docs/api-reference/business-management/ai-site-chat/introduction.md). These APIs require the [Wix AI Site-Chat](https://www.wix.com/app-market/web-solution/wix-ai-assistant-client) app, which is available only in the Wix Editor. Install and configure the app on your Editor site before you complete the migration. The widget stays hidden on your headless site, but the app stays installed on your site, so your frontend can send and read messages through the APIs.

Check the following:

- [ ] Install and configure the Wix AI Site-Chat app before you complete the migration.
- [ ] Call the APIs from your frontend with a visitor or member identity. The Messages API doesn't support other identities.
- [ ] Test the full flow, from sending a message to receiving a reply, on your live site.

## Test accessibility

Your Editor site's accessibility settings don't apply to a custom frontend. You're responsible for the accessibility of the pages you build.

Check the following:

- [ ] Navigate every page and flow with only a keyboard.
- [ ] Test with a screen reader.
- [ ] Check color contrast, focus indicators, and text size.
- [ ] Add alt text to images and labels to form fields.
- [ ] Check that assistive technology announces dynamic content, such as dialogs and cart updates.

## Test performance and responsive design

Your Editor site's responsive layouts and performance optimizations don't carry over. Test your new frontend on real devices and screen sizes, and measure page speed on your key pages. For caching, see [About Page Caching in the Astro Integration](https://dev.wix.com/docs/go-headless/wix-managed-headless/full-integration-astro/feature-guides/about-page-caching-in-the-astro-integration.md).

## Re-add 3rd-party scripts and integrations

Scripts that you added to your Editor site, such as advertising pixels, chat widgets, reviews, and embeds, aren't included in your new frontend. Check your Editor site's custom code and embedded elements, and add what you still need to your frontend.

## See also

- [Moving Your Site to a Custom Frontend](https://support.wix.com/en/article/wix-headless-moving-your-site-to-a-custom-frontend)
- [About Wix-Managed Headless](https://dev.wix.com/docs/go-headless/wix-managed-headless/about-wix-managed-headless.md)
- [About the Astro Integration](https://dev.wix.com/docs/go-headless/wix-managed-headless/full-integration-astro/about-the-astro-integration.md)
- [Continue Developing Your Project](https://dev.wix.com/docs/go-headless/wix-managed-headless/develop-your-project.md)