Each language needs its own addresses, so visitors and search engines can reach every translation directly. You choose the format on Signocore ML → URLs, under URL Strategy in the URL Structure card. Decide before the site goes live: changing the format later changes the address of every translated page.
| Strategy | Example for Spanish | Plan |
|---|---|---|
| Directory | example.com/es/about-us/ |
Free |
| Subdomain | es.example.com/about-us/ |
Pro |
| Domain | example.es/about-us/ |
Pro |
Directory needs no setup outside WordPress and works on any host. Subdomain and Domain need DNS records, hosting and an SSL certificate for every extra host name.
Directory
This is the default. Each language gets a prefix in front of the path, such as /es/ for Spanish and /fr/ for French.
The prefix is the language's address from the Address column on Signocore ML → Languages, which starts as the language code. Some languages offer more than one address. Spanish (Mexico), for example, can use /es-mx/, /es/ or /mx/. When you pick another address, the plugin asks you to confirm, and the old addresses redirect permanently to the new ones. An address that WordPress needs itself, or that a page or post already uses, is marked (in use) and cannot be picked.
Hide the default language prefix
Hide Default Language Prefix is on by default. Your default language then keeps addresses without a prefix, so an English site translated to Spanish has example.com/about-us/ and example.com/es/about-us/. Turn it off to give the default language a prefix too, such as example.com/en/about-us/. The setting only applies to the Directory strategy: with subdomains and domains, the default language always stays on your main domain.
Subdomain
Pro: This needs a Signocore Multilanguage Pro license.
Each language lives on a subdomain named after its address, such as es.example.com and fr.example.com. The default language stays on your main domain.
- At your DNS provider, add a record for each subdomain that points to the same server as your site, for example a CNAME record for
esthat points toexample.com. - At your host, make each subdomain serve the same WordPress installation as the main domain. Hosting panels often call this a domain alias.
- Make sure every subdomain has a valid SSL certificate. The plugin links to subdomains with the same scheme as your site, so a site on
httpsneeds a certificate that covers them, such as a wildcard certificate for*.example.com. - Go to Signocore ML → URLs, choose Subdomain and click Save Changes.
- Open
es.example.comin a browser and check that it shows your site in Spanish.
The Address column on Signocore ML → Languages shows each subdomain, and you can change it there. The subdomain follows that address, also when it differs from the language code. With subdomains, the old subdomain is not redirected when you change an address, and the confirmation says so.
Domain
Pro: This needs a Signocore Multilanguage Pro license.
Each language gets a domain of its own, such as example.es for Spanish and example.fr for French. The default language stays on the domain in your WordPress settings.
- Register the domains.
- At your DNS provider, point each domain to the same server as your site.
- At your host, make each domain serve the same WordPress installation, for example as a domain alias.
- Make sure every domain has a valid SSL certificate.
- Go to Signocore ML → URLs and choose Domain. A Domain Mapping field appears, with your site's domain for the default language.
- Enter the domain for each other language, such as
example.es. Enter the host name only:https://and any path are removed. - Click Save Changes.
A language's domain cannot be the same as the default language's domain. Enter the exact host name visitors use: www.example.es and example.es are two different hosts to the plugin, and a host that belongs to no language shows the default language. Redirect the other variant to the one you entered at your host.
A language without a domain cannot be reached. It is left out of the language switcher, the Translations box and the bulk actions until you enter its domain.
Note: WordPress keeps you logged in on the host where you signed in. On a language subdomain or domain you browse as a visitor, so the admin bar does not show there.
What changes for existing addresses
- With Hide Default Language Prefix on, the addresses of your default language do not change when you install the plugin.
- Each translation gets an address in its language's directory, subdomain or domain.
- In the Directory strategy, changing a language's address on the Languages screen redirects the old addresses permanently to the new ones.
- Switching the strategy, turning the prefix setting off or on, or changing the default language changes addresses without redirects. Do it before the site goes live, or add redirects for the old addresses, for example with the redirect manager in Signocore SEO Pro.
Translate permalink bases
The Permalink Translation card on Signocore ML → URLs translates the fixed parts of your addresses for each language, such as the category base. A Spanish category archive can then be example.com/es/categoria/noticias/ instead of example.com/es/category/noticias/.
- Go to Signocore ML → URLs and find the Permalink Translation card.
- Click the language you want to edit, for example Spanish.
- Change the bases you want to translate, for example
/category/to/categoria/. - Repeat for your other languages, and click Save Changes.
| Base | Plan |
|---|---|
Permalink front, shown when your permalink structure starts with a fixed part such as /blog/ |
Free |
| Category base | Free |
| Tag base | Free |
| Author base | Free |
| Custom post types and custom taxonomies, listed by name | Pro |
| WooCommerce product, product category and product tag bases | Pro, see WooCommerce stores |
The card needs at least one language besides the default. Only the bases change: the slug of each post and term is its own, and you edit it in the editor like any other slug.
Custom post types and taxonomies
Pro: This needs a Signocore Multilanguage Pro license.
With Pro, the bases of your public custom post types and taxonomies are listed below the built-in ones, such as a /portfolio/ base that becomes /portafolio/ in Spanish. Developers can change the list with signocore_ml_translatable_permalink_slugs.
Shared slugs
Pro: This needs a Signocore Multilanguage Pro license.
WordPress gives every post a slug that is unique within its post type, so a translation that uses the same slug as its original gets -2 added, such as example.com/es/about-us-2/. With Pro, posts and terms in different languages can share a slug, so the Spanish page can be example.com/es/about-us/. That suits brand and product names that stay the same in every language.
Shared slugs need no setting: they work as soon as Pro is active. Slugs that already end in -2 keep it until you edit them, and two items in the same language still get unique slugs.
Refresh permalinks
The plugin updates WordPress's address rules by itself when you add, remove or change languages, change the URL strategy or save permalink bases, and when you activate or deactivate it. If a translated address still returns a "Page not found" error after a change, go to Settings → Permalinks and click Save Changes without changing anything. That rebuilds the rules. If the error remains, clear your page cache, and see Troubleshooting.
The URL Structure card also holds Cookie Duration (days), which sets how long the site remembers a visitor's language. See Visitor language and fallbacks.