Licensing Home
Account & FAQ overviewActivation & Renewals
Full lifecycleConnected Sites
Dashboard walkthroughActive Sites
My Account → SitesWhen to use this doc
You already have a Royal Plugins Pro plugin running on one site and want to run it on a different site instead. Common scenarios:
- Client site migration — you're an agency handing a site off to a client (or taking a site over from another builder), and the Pro seat needs to follow.
- Domain change — the site moved from a temporary URL (e.g.
staging.example.com) to its final domain (example.com) and the license needs to move with it. - Retiring an old site — a site you had Pro on is going away and you want to reclaim the seat for a new project.
- Reassigning a seat within your portfolio — you're on a multi-site tier and want to shift a seat from Site A to Site B.
If you're doing an initial activation on a brand-new site and haven't hit your seat cap, you don't need this doc — see Activation & Renewals → Activating a license instead.
Understand the 24-hour cache first
Every Royal Plugins Pro plugin caches its license state locally for 24 hours to avoid hitting the licensing server on every admin page load. This one design choice explains almost every "why is it doing that?" moment during a move.
- When you deactivate in wp-admin, the local plugin clears its cache immediately. Pro features stop working on that site right away.
- The plugin then sends a fire-and-forget request to the licensing server to release your seat. The request is non-blocking with a short timeout — you don't wait for it, and it usually completes in a few seconds.
- When you activate on a new site, the plugin talks to the licensing server directly and caches the result for the next 24 hours.
- When you remotely deactivate a site from My Account (see below), the site's local cache still holds "valid" until its next check-in — up to 24 hours later.
The standard move (both sites accessible)
Use this flow when you have wp-admin access to both the old site and the new site.
On the old site: deactivate the license
Log in to wp-admin on the site you're leaving. Go to the plugin's License page. Click Deactivate License. You'll see a confirmation within a couple of seconds. The Pro-tier features stop working on that site immediately.
Give the seat release a moment
The seat is usually available on the licensing server within a few seconds. If you're moving quickly and both sites are open in adjacent browser tabs, you can go straight to the next step. If you hit an activation-limit error on the new site, wait 30–60 seconds and retry (see Activation limit conflict below).
On the new site: install and activate the plugin
If the plugin isn't installed yet on the new site, install it first (download the current zip from My Account → Downloads or install via WP-Admin → Plugins → Add New if a public-directory version exists). Activate the plugin in wp-admin.
On the new site: activate with the same key + email
Go to the plugin's License page. Paste your license key and the same purchase email you used on the old site. Click Activate License. Confirmation appears within a few seconds.
Verify Pro is live on the new site
The License page updates to show Active with the expiration date. Pro features become available in wp-admin. If the plugin ships a status/health check (some do; not all), use that to confirm the tier signal shows Pro-licensed.
If you forgot to deactivate (or lost access to the old site)
Sometimes the old site is unreachable — you handed it off to a client, the server was decommissioned, DNS was pointed away, or you just forgot to deactivate before wiping the install. In those cases, deactivate remotely from your account.
Log in to My Account
Go to my.royalplugins.com/my-account/. Sign in with the email you used at purchase.
Open the Active Sites view
Click Active Sites in the account menu (or open my.royalplugins.com/my-account/sites/ directly). You'll see every site currently holding a seat across all your Royal Plugins licenses.
Deactivate the old site remotely
Each row on the Connected Sites view has a Deactivate button in the Actions column. Cross-check the Site URL and site-name line to make sure you're picking the right one, then click Deactivate. The seat is released immediately on the licensing server — the site's next license check will pick up the change (usually within 24 hours of your remote deactivation; see the cache reality above).
Activate on the new site
Follow the standard flow from step 3 above. Because the seat was released remotely on the server side, activation on the new site works right away.
For a full walkthrough of the Connected Sites view (columns, "Last seen X ago" timestamps, how to tell similar-looking sites apart), see Connected Sites Dashboard.
Activation limit conflict during a move
If you deactivate on the old site and then immediately try to activate on the new site, you may occasionally get an "activation limit reached" error. This is a race between the server-side seat release and your new-site activation request.
What the error looks like
The License page shows an inline activation-failure notice that references your seat or activation limit for this license. Exact wording is returned by the licensing server and may vary; the signal is: the notice mentions your tier's seat cap being reached, not a bad key or a server-side error.
Fix
- Wait 30–60 seconds for the server-side seat release from your old-site deactivation to complete.
- On the new site, click Activate License again. Same key + email. It should succeed.
If the error persists past 2 minutes, the old-site deactivation may not have reached the licensing server (e.g., the old site's outbound HTTPS was blocked). Fall back to the remote deactivate from My Account flow to release the seat directly on the server.
Staging → production moves
Two common patterns here. Both are supported; pick the one that matches how you work.
Pattern A: build on staging, launch to production
You built the site at staging.example.com (or a temporary host URL like example.wpengine.com) and now it's launching to example.com.
- Do the WordPress URL switchover per your host's process (search-replace of the site URL in the database, DNS cutover, etc.).
- On the newly-launched production site, the license activation state generally migrates with the database. In many cases nothing else is needed — the plugin sees itself running at the new URL and the next license check-in reconciles.
- If the plugin is confused about which URL it's on (License page shows the old URL, or Pro features stay locked despite a valid license), deactivate and re-activate on production. This forces a fresh server call with the new site URL.
Pattern B: Pro on production, then clone to staging
The production site is licensed and running. You clone it to a staging URL for testing.
The staging clone will have a copy of the license option in its database, but the licensing server sees it as a distinct site URL. Two options:
- Deactivate on staging — do this if you don't need Pro-tier features while testing. Pro data (settings, feature data) stays intact; only the license is inactive.
- Activate a second seat on staging — do this only if your tier can absorb another activation. Enter your license key + email on staging's License page.
Bulk moves (agency-tier customers)
If you're running a large portfolio and need to reshuffle a lot of seats at once — after a portfolio restructure, winding down a batch of client sites, or consolidating from multiple hosting accounts — there's no single "move everything" button. The workflow is:
- Log in to My Account → Active Sites.
- Deactivate the sites you're retiring, one at a time.
- Activate on the new sites in the same session (or over the following days — there's no time limit on when a released seat can be claimed).
If you regularly manage 20+ site moves per year and want to discuss a smoother workflow for your team, reach out at support@royalplugins.com.
Special situations
Moving to a site on a local development environment
Local dev URLs (*.local, *.test, localhost) can hold a seat like any other site — the licensing server treats them as distinct URLs. If you regularly spin these up and tear them down, you'll churn through seat activations. Deactivate before deleting a local site so the seat is released back to your pool.
Moving between two sites on the same domain (subdirectories or subdomains)
Each installation is a separate site from the licensing server's perspective. example.com and example.com/blog count as two seats if both are running the plugin. Same for store.example.com vs www.example.com. Deactivate the one you're leaving before activating the new one, same as any other move.
Restoring a backup that includes the license
If you restore a database backup that includes the Pro license option and that license was subsequently activated somewhere else, the restored site's local cache will claim it's licensed until the next check-in against the server. At that point the server tells the local plugin the seat was moved (returns not activated for this URL) and the local state clears. Deactivate and re-activate to reconcile immediately if you don't want to wait for the daily check.
Multisite networks
Multisite is supported, but how seats are counted depends on your network setup. If you're planning to run a Royal Plugins Pro plugin on a multisite network — or moving between two multisite networks — reach out before you activate so we can size the right tier. Single-site installs (the common case) don't need to think about any of this.
What doesn't move with the license
The license is a validation token — it doesn't carry any site content, settings, or history with it. When you move a seat:
- The old site's plugin data (settings, feature configuration, Pro-created records like backup runs, audit rows, undo state, etc.) stays on the old site's database. If you want any of that on the new site, export it separately before deactivating.
- Plugin-generated tokens tied to the old site (undo tokens, session IDs, integration API tokens) cannot be redeemed on the new site — they're keyed to that site's local storage.
- Third-party integrations configured on the old site (OAuth clients, external API keys, webhook registrations) stay on the old site. Configure them fresh on the new site.
If the sites share the same WordPress install (e.g., you're renaming a domain), a full database + files migration moves everything with it and no separate export is needed.
Still stuck?
Include the old site URL, the new site URL, your hosting provider for each, the plugin version, the exact error message from the License page, and screenshots of both the License page and My Account → Active Sites.
Contact Support