Skip to content
Subset

User guide

What counts as a site

One WordPress install is one site, however many addresses it answers on. What we collapse, what we keep separate, and which cases are free.

A site slot is one WordPress install. Not one domain, not one subdomain, not one address bar — one install, with its own wp-admin, its own database tables and its own update check.

Everything below follows from that, including the parts that look generous and the parts that look fussy.

One install, however it spells its own address

WordPress reports its own address in several ways, and a theme or a plugin can report it differently again. So before we store or compare anything, the address is reduced to the part that actually identifies the install.

Thrown away, because none of it identifies anything:

  • The scheme. Moving to HTTPS is not moving site.
  • www. www.example.com and example.com are one install serving two names.
  • Capital letters in the host. Host names are case-insensitive.
  • Trailing and doubled slashes.
  • The default ports :80 and :443, under either scheme.
  • Query strings, fragments and anything before an @.

An internationalised domain is converted to its ASCII form, so bücher.example and xn--bcher-kva.example are also one site.

You might reportWe store
https://www.Example.com/example.com
HTTP://WWW.Example.COM:80/?utm=x#topexample.com
example.comexample.com
https://example.com/blog/example.com/blog
https://example.com:8080example.com:8080

The last two are the ones that surprise people.

What we keep separate

A subdirectory install is a different site. example.com/blog has its own wp-admin, its own tables, its own plugin list and its own update check. It is a second install, and it takes a second slot.

That is the stricter reading, and it is deliberate. Collapsing the path would let one install’s activation satisfy another install’s update check — which is not a billing rounding error, it is two sites sharing one licence. If the two really are the same site to you and you are short a slot, that is a support conversation we are happy to have.

A non-default port is a different site. A site on :8080 is reachable only there, and in practice it is usually a separate install on the same box.

Path capitalisation is kept. Paths are case-sensitive on most servers, and WordPress reports a deterministic value, so lowercasing them risks merging two real installs in order to protect against a typo a machine cannot make.

What does not take a slot at all

Development and staging sites are free, always. localhost, an IP address, a .local or .test domain, a DDEV or Lando address, your host’s staging sandbox, and a structural staging. or dev. subdomain all activate successfully without consuming anything — even when every paid slot is already in use. The detection list and its exact rules are on Development and staging sites.

A multisite network is one site. One install, one wp-admin, one update check — one slot, however many subsites are in the network. See Multisite.

Re-activating a site you already activated is free. Activation is idempotent: saving the key again, reinstalling the plugin, or restoring a backup updates the existing record rather than taking a second slot. Reviving a site you had explicitly deactivated does take a slot again, because you gave that one back.

What a plan allows

Site limits are 1, 5, or unlimited, and they are per licence rather than per plugin. Development and staging sites sit outside the number entirely, so a five-site plan is five production sites plus as much staging as you like.

The limit is checked when you activate, never while the site is running. Running out of slots means the next activation is refused with a message that says so — it never affects a site that is already activated.

Addresses we refuse

An address that is not a usable http or https site is rejected rather than stored: mailto:, file:, javascript:, and anything that does not parse as a web address at all. A malformed address is also, deliberately, not treated as a development site — if it were, every broken site_url would be a free slot.