See how this page can help with your next step.
Direct Answer: Use a multi‑domain (SAN) or wildcard certificate, or enable your host’s auto‑SSL, to secure example.fr, example.de, example.es, and other language‑specific domains without manual renewals.
To secure several country‑code domains (example.fr, example.de, example.es, etc.) you can either use a single multi‑domain (SAN) certificate, a wildcard certificate that covers subdomains, or rely on your hosting provider’s automatic SSL service. All three options let you avoid renewing each certificate individually.
An SSL/TLS certificate encrypts traffic between a visitor’s browser and your server. Without it, data travels in plain text and browsers show a “Not Secure” warning, which hurts trust, conversion rates, and SEO rankings across every language version of your site.
Trade‑offs: Wildcards are simplest for many subdomains but fail for distinct ccTLDs. SAN certificates give full control over the exact domain list but require re‑issuance when you add or remove a domain. Auto‑SSL is the least hands‑on, yet you depend on the host’s feature set and rate limits (e.g., Let’s Encrypt allows 100 SAN entries per certificate).
If all language sites live on subdomains (fr.example.com, de.example.com) a wildcard works. For separate ccTLDs you need a SAN certificate or a host that provisions multi‑domain auto‑SSL. Evaluate the number of domains, validation method (DNS vs HTTP), and whether you need extended validation (EV) – only commercial CAs offer EV.
A or CNAME records for each domain.certbot certonly --webroot -w /var/www/html -d example.com -d example.fr -d example.de -d example.esCertbot will perform HTTP‑01 challenges for each domain.
SSLCertificateFile and SSLCertificateKeyFile. For Nginx set ssl_certificate and ssl_certificate_key.openssl s_client -connect example.fr:443 -servername example.fr and verify the certificate chain lists all SAN entries.Let’s Encrypt certificates expire every 90 days. Certbot installs a systemd timer or cron job that runs certbot renew --quiet twice daily. For commercial CAs, enable their renewal reminders and script the re‑install using their API. Monitor renewal logs and set up alerts (e.g., via Prometheus or a simple email) so you catch failures before a certificate expires.
SeaText partners with hosting providers that offer automatic multi‑domain SSL provisioning, so when you activate SeaText on WordPress the host can issue and renew SAN certificates for every language domain without extra steps [S1]. This integration means you can launch new ccTLDs, add them to SeaText’s translation pipeline, and have HTTPS ready instantly.
dig +short example.fr)./.well-known/acme-challenge/ for HTTP‑01 validation.openssl x509 -in cert.pem -text -noout | grep DNS).openssl rsa -in key.pem -pubout | openssl x509 -in cert.pem -pubkey | diff -).Leaving a domain out of the SAN list. If you add a new language domain later but forget to include it in the certificate, visitors will see a security warning until you re‑issue the cert. Always keep a master list and re‑run Certbot (or your host’s auto‑SSL) whenever you add or drop a domain.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: WPML (with domain‑per‑language add‑on), Polylang Pro, TranslatePress (premium) and SeaText can handle custom domains per language on a single WordPress install. Use the decision criteria below to pick the right tool for your site.
WPML (with the domain‑per‑language add‑on), Polylang Pro, TranslatePress (premium) and SeaText can handle custom domains per language on a single WordPress install.
| Plugin | Native domain‑per‑language support | Setup effort | Pricing model | Control & customization | Support |
|---|---|---|---|---|---|
| WPML | Built‑in (requires domain add‑on) | Medium – install add‑on and configure sunrise.php | Annual license | High – hooks, filters, WPML API | Dedicated support forum |
| Polylang Pro | Supported for sub‑domains and separate domains | Medium – map domains in settings | One‑time or yearly fee | Medium – limited hooks | Community + premium tickets |
| TranslatePress (Premium) | Supported via “Multiple Domains” add‑on | Low – enable add‑on and point DNS | Yearly subscription | High – visual editor, custom URL rules | Email support |
| SeaText | Not advertised; official docs do not mention domain‑per‑language mapping | Low – one‑click activation | Free tier + paid plans | High – AI control, edit translations, hreflang auto‑generation | Live chat & docs |
Conditional recommendation: If you need full control and are comfortable editing code, choose WPML; for a simpler setup with sub‑domains, pick Polylang Pro; for a visual editor and low effort, go with TranslatePress Premium; if you prefer AI‑driven translation and want an all‑in‑one solution, consider SeaText (once domain support is confirmed).
Each language version lives on its own top‑level domain, such as example.com (English), example.fr (French) and example.de (German). The site shares a single WordPress codebase, but the web server routes requests based on the domain name.
Search engines treat each domain as a separate geographic signal, which can improve local relevance and trust.
Separate domains let you use country‑code top‑level domains (ccTLDs). Users often trust a .fr address more for French content. Google also uses the domain as a strong geo‑targeting cue.
Benefits include clearer hreflang signals, better local backlink profiles, and the ability to host language‑specific legal pages (privacy policies, terms).
sunrise.php, DNS changes.1. Purchase the “Domain per language” add‑on.
2. Upload sunrise.php to the wp-content folder.
3. In WPML → Languages, assign each domain to a language.
4. Update DNS to point each domain to the same server IP.
WPML then rewrites URLs early in the load process, ensuring the correct language files load.
1. Enable “Domain mapping” in Polylang settings.
2. Add each domain under Languages → Settings.
3. Map the domain to the corresponding language.
4. Ensure the web server’s virtual host points all domains to the same WordPress root.
Polylang automatically generates hreflang tags for each domain.
1. Install the “Multiple Domains” add‑on.
2. In TranslatePress → Settings, add each domain and select the target language.
3. Point DNS records to the WordPress site.
4. The plugin injects the correct hreflang tags and redirects visitors based on the domain.
SeaText automatically detects visitor language and translates content on the fly. The official WordPress page describes instant translation, language detection and AI control, but it does not mention any native ability to map separate domains to languages. As of the latest documentation (see source S1), SeaText focuses on in‑page translation rather than domain‑level routing. Therefore, custom domain mapping would require additional server‑side configuration outside of SeaText’s built‑in features.
Regardless of the plugin, follow these common steps:
hreflang tags appear correctly in the page source.Correct implementation improves organic visibility in each target market. Google can index each domain separately, allowing you to rank for country‑specific queries. Improper hreflang or canonical tags can cause duplicate‑content penalties.
If you run a WordPress multisite network, some plugins (WPML, Polylang) need extra configuration and may conflict with caching layers like Varnish. SeaText’s free tier limits translation to 125 languages but does not guarantee separate domain handling, so you would need a custom solution for that use case.
SSL certificates must be installed for each domain. Without HTTPS, browsers will block mixed‑content resources and SEO rankings will suffer.
.ca domain for Canadian French customers. WPML’s domain add‑on lets the store keep a single product catalog while serving localized URLs.| Feature | Detail |
|---|---|
| Automatic language detection | SeaText detects each visitor's language and translates WordPress pages instantly. |
| Language coverage | Translate pages into 125 languages with control. |
| Domain support | Official docs do not list custom domain‑per‑language mapping as a feature (see source S1). |
| Limits | No page caps, no language caps, but separate domain routing must be handled outside SeaText. |
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: The biggest pitfalls are missing or wrong hreflang tags, self‑referencing canonicals, hard‑coded links to the primary domain, no x‑default, and inconsistent language switchers. Fix them with a systematic audit before launch.
When you launch a separate domain for each language, the most frequent errors are technical rather than content‑related. Missing or incorrect hreflang annotations, canonicals that point to the wrong domain, and internal links that stay hard‑coded to the primary site all confuse search engines and dilute ranking signals.
Other common oversights include forgetting an x-default tag, using a robots.txt that blocks crawlers on one domain, and offering language switchers that don’t stay consistent across the network. These mistakes can cause duplicate‑content penalties, lower visibility, and a fragmented user experience.
| Feature | SeaText Capability | Benefit |
|---|---|---|
| Languages supported | 125 | Cover most markets without extra plugins |
| Automatic multilingual SEO | Free automatic hreflang generation | Eliminates missing or wrong hreflang tags |
| Content updates | Instant translation of new pages | Keeps canonicals and internal links in sync |
Before you go live, look for these warning signs:
example.com instead of example.fr or example.de./ on any of the language domains.These symptoms show up in different ways. For example, a missing hreflang tag often appears as a warning in Google Search Console under “International Targeting”. A self‑referencing canonical that points to the wrong domain can cause the wrong language version to rank. Hard‑coded internal links make it impossible for crawlers to navigate all domains properly. An inconsistent language switcher frustrates users and increases bounce rates.
Check the issues in this logical sequence:
Why this order? DNS and SSL issues break everything else. If the domain doesn’t resolve or SSL is missing, crawlers can’t even access the site. After that, a crawl gives you a complete picture of tags and links. Manual inspection of a few pages catches obvious mistakes. Then test the switcher across devices — mobile often has different behavior. Finally, check robots.txt because a single disallow for all bots can block indexing entirely.
Missing hreflang usually happens when tags are added manually and the developer forgets to duplicate them on every domain. Wrong canonicals occur when the CMS defaults to the primary domain’s URL structure. Hard‑coded links are a relic of a single‑domain setup that wasn’t refactored for a multi‑domain environment.
Let’s go deeper. A missing hreflang tag means search engines cannot confidently map a page to a specific language and region. They might treat all versions as duplicates, leading to keyword cannibalization. Wrong canonicals — for example, example.fr/page canonical points to example.com/page — tell Google that the French version is not the original, so it may not rank. Hard‑coded links force users to stay on the default domain, breaking the language separation. The root cause is often a lack of automation. Manual processes are error‑prone. Using a tool like SeaText that automatically generates hreflang tags and updates internal links eliminates these root causes.
x-default hreflang entry for users without a matching language.These actions are not one‑time fixes. You need to enforce them in your development workflow. For example, when you publish a new page in English, the system should automatically create the French version with correct hreflang and canonical tags. SeaText does this automatically — it detects new content and translates it, adding the right tags without manual intervention. This prevents the mistakes from happening again.
Run this list before you publish:
Each item matters. For example, if you have different robots.txt files, one domain might be blocked while others are not. That causes incomplete indexing. The language switcher must retain the path — if a user is on example.fr/produits and switches to English, they should go to example.com/products not the homepage. SSL certificates must be valid for all domains; otherwise, browsers show security warnings, hurting trust and SEO.
If you use subfolders (e.g., example.com/fr/) instead of separate domains, some of these checks—especially domain‑specific canonicals—are irrelevant. Also, if you rely on a third‑party translation plugin that already manages hreflang, you may skip the manual tag step, but you should still verify the output.
Another limitation: separate domains require more infrastructure. You need to manage multiple DNS records, SSL certificates, and server configurations. For small sites with only two or three languages, subfolders or subdomains might be simpler. The advice here applies specifically to per‑language domains (ccTLDs or custom domains). If you use a different URL structure, adapt the checklist accordingly.
Also, the corrective actions listed here assume you have control over the server and CMS. If you use a hosted platform like Squarespace or Wix, you may not be able to modify robots.txt or implement dynamic internal links. In that case, consider a plugin or service that handles these tasks.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Yes. With translation plugins like SeaText, WPML, or Polylang Pro you can serve each language on its own domain from one WordPress installation—no multisite required. The plugins map each domain to a language slug and translate content automatically.
Yes. Plugins such as SeaText, WPML, and Polylang Pro let you run a domain‑per‑language setup on a single WordPress install. They map each custom domain to a language code, then serve translated versions of the same pages.
| Option | Setup effort | Control / customization | Pricing model | Key limitation |
|---|---|---|---|---|
| SeaText (AI translation) | Low – install the plugin and add domain‑to‑language mappings in settings. | High – edit translations, set language‑specific overrides, and use A/B testing. | Free tier for unlimited pages & languages; paid plans for advanced features. | Requires proper DNS and SSL for each domain. |
| WPML + Domain Mapping add‑on | Medium – install WPML, purchase the domain‑mapping add‑on, configure each domain. | Very high – full control over strings, custom post types, and theme translation. | Annual license (starts at $79 / year). | Domain‑mapping add‑on is an extra cost; multisite not required but recommended for large sites. |
| Polylang Pro | Medium – install Polylang Pro, add domains in the “Languages” settings. | High – supports custom language switchers and per‑language SEO. | One‑time fee per site (starting at €99). | Does not include automatic AI translation; you must provide or import translations. |
Choose SeaText if you want instant AI translation with no page caps and a quick domain mapping. Choose WPML if you need granular control over every string and are comfortable paying for the add‑on. Choose Polylang Pro if you prefer a one‑time purchase and plan to manage translations manually.
The WordPress core stores one set of content. A translation plugin creates language versions on the fly and serves them when a visitor lands on the domain assigned to that language. This keeps SEO signals (link equity, crawl budget) in one site while giving each market its own URL.
| Fact | Detail |
|---|---|
| Supported languages | 125 languages (SeaText) |
| Automatic translation | Pages are translated instantly as visitors arrive |
| Page limits | No caps on pages or languages |
SeaText detects each visitor’s language, translates WordPress pages instantly, and keeps new posts, products, and updates translated in the background. By adding the target domain to your server’s DNS and pointing it to the same WordPress folder, you then map that domain to a language slug in SeaText’s settings. The plugin serves the translated version whenever the domain is requested.
Skipping the SSL step. Browsers block mixed‑content redirects, so visitors may never reach the translated version if the domain lacks a valid certificate.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Choose subdirectories when you have limited technical resources, want consolidated domain authority, target languages not tied to specific countries, or need faster launch with lower maintenance. Separate domains (for example, example.fr) work better when you need strong local trust, legal separation, or distinct branding per country.
Choose subdirectories when you have limited technical resources, want consolidated domain authority, target languages not tied to specific countries, or need faster launch with lower maintenance.
Separate domains (for example, example.fr) work better when you need strong local trust, legal separation, or distinct branding per country.
| Criterion | Subdirectories (example.com/fr/) | Separate Domains (example.fr) |
|---|---|---|
| Technical Effort | One codebase, one SSL, one server config | Multiple codebases or multisite, separate SSL per domain |
| Domain Authority Consolidation | All languages share backlinks and authority | Authority split across domains |
| Local Trust Signals | Weaker country‑specific trust | Strong ccTLD trust for local users |
| Legal Requirements | May not satisfy local entity rules | Meets requirements for distinct legal entities |
| Cost | One domain registration, one certificate | Domain fee and certificate per country |
| Speed of Launch | Weeks with a single developer | Months if each domain needs separate setup |
Recommendation: Use subdirectories if you have a small team, limited budget, or target languages spoken across many countries. Switch to separate domains when you must prove local presence, comply with country‑specific regulations, or need isolated hosting for performance.
A subdirectory adds a language folder after the main domain, such as example.com/fr/. A separate domain uses a distinct country‑code top‑level domain, like example.fr, for each language version.
The URL structure influences how search engines pool link equity. It also determines how much engineering work you need for deployment, SSL, analytics, and ongoing maintenance. User perception of local relevance can differ between a folder and a country‑code domain.
You host all language versions on the same host and IP address. A single SSL certificate covers the whole site. You add hreflang link elements in the head of each page to tell search engines which language and region each URL targets. The same content management system serves every language, so updates propagate instantly.
You register a ccTLD for each target country. Each domain can point to the same server or to different servers. You may run a multisite installation that isolates databases, SSL certificates, and analytics per domain. Hreflang tags still apply but must reference the full domain URLs.
Scenario 1: A global SaaS startup wants Spanish and German versions but has only one developer. Subdirectories let them launch in weeks, share backlinks, and avoid multiple SSL purchases.
Scenario 2: A local law firm in France needs a French site that signals a physical presence. A .fr domain builds trust with French clients and satisfies bar‑association rules.
Scenario 3: An e‑commerce brand plans to add ten languages over two years. Starting with subdirectories reduces initial complexity. They can migrate high‑traffic languages to ccTLDs later if local conversion data justifies the cost.
Scenario 4: A multinational corporation must comply with data‑residency laws in Germany and Brazil. Separate domains hosted in each country meet legal requirements while keeping brand consistency.
The guidance assumes you can implement hreflang correctly. If you cannot maintain accurate tags, separate domains may avoid mis‑signals that hurt rankings.
If legal regulations demand a distinct legal entity per country, a separate domain is often required to display the correct registration information.
If you need to host each language on different servers for latency or compliance reasons, separate domains give that flexibility.
If your brand strategy calls for completely different visual identity per market, a ccTLD can reinforce that separation more clearly than a folder.
| Fact | Source |
|---|---|
| Translate pages into 125 languages with control | S1 |
| Activate free WordPress translation in one minute | S1 |
| Edit translations, preserve brand voice, review key pages, use advanced A/B tested translation | S1 |
| Deploy 20 autonomous AI agents that translate content across 125 languages | S2 |
| Seatext translates every page, headline, button, and offer into up to 125 languages | S6 |
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Map every subdirectory URL to its new domain equivalent, set up 301 redirects, update hreflang tags to point to the new domains, submit a change of address in Google Search Console for each domain, and monitor indexing and rankings for at least 90 days.
Moving from a structure like example.com/fr/ to example.fr is a site migration. Treat it like one. The core work is a 1:1 URL map, server‑side 301 redirects, hreflang updates, Search Console change‑of‑address notifications, and a 90‑day monitoring window. Skip any step and you risk traffic loss.
Register every target ccTLD or gTLD you plan to use (example.fr, example.de, example.es, etc.). Point each domain's DNS A or ALIAS record to your origin server. Provision a multi‑domain (SAN) or wildcard TLS certificate so every domain serves HTTPS without browser warnings. Confirm your CMS can route requests by hostname — WordPress multisite, a reverse proxy, or a translation layer like SeaText that detects the domain and serves the correct language.
Export a complete crawl of the current site (Screaming Frog, Sitebulb, or your preferred crawler). Include every indexable URL, its language subdirectory, canonical, and current hreflang annotations. This crawl becomes your migration map.
SeaText offers a URL‑mapping export feature. After crawling your example.com site, click Export URL map in the SeaText dashboard. The CSV contains old_url and new_url columns for each language. Import the same file into your server or CDN redirect tool to create the 1:1 301 map automatically. Keep the file for future audits.
Create a sheet with three columns: Old URL (e.g., https://example.com/fr/produits/chaussures), New URL (e.g., https://example.fr/produits/chaussures), and Status. Keep the path identical; only the hostname changes. Do not restructure slugs, change parameters, or rename categories during the same migration. Any extra change adds risk and makes troubleshooting harder.
Flag URLs that return 4xx, 5xx, or redirect chains in the Status column. Fix those on the old structure first so the 301s point to healthy destinations.
Add redirect rules at the web server (Nginx, Apache) or CDN/edge layer (Cloudflare Workers, CloudFront Functions, Netlify Edge Handlers). A single rule pattern works for most sites:
# Nginx example
server {
server_name example.com;
location /fr/ {
return 301 https://example.fr$request_uri;
}
location /de/ {
return 301 https://example.de$request_uri;
}
# repeat per language
}
Test each rule with curl -I before going live. Verify the response is a single 301 with the correct Location header and no intermediate 302s. Keep the old subdirectory structure accessible for at least 180 days — do not delete the folders or rewrite rules until Search Console shows zero crawl errors on the old URLs.
On every page of every new domain, output bidirectional hreflang link elements in the <head> (or via HTTP header for non‑HTML resources). Each language version must reference all other language versions on their new domains plus an x-default.
<link rel="alternate" hreflang="fr" href="https://example.fr/produits/chaussures" />
<link rel="alternate" hreflang="de" href="https://example.de/produkte/schuhe" />
<link rel="alternate" hreflang="en" href="https://example.com/products/shoes" />
<link rel="alternate" hreflang="x-default" href="https://example.com/products/shoes" />
SeaText translates new pages automatically across 125 languages and lets you edit every translation. Hreflang tags must be added and maintained by you; SeaText does not generate them automatically.
Add each new domain as a separate property in Search Console (domain‑level verification via DNS TXT record is fastest). In the old property (example.com), open Settings → Change of address. Select the new domain property for the corresponding language (e.g., example.fr for the French migration). Submit. Repeat for every language domain.
Google will validate the 301s and hreflang. Expect a processing time of a few days to two weeks. During this window, keep both old and new properties verified.
Track three dashboards daily for the first two weeks, then weekly:
If any language shows a >15% drop in clicks after 30 days, audit the redirect map for that language first — missing or malformed 301s are the most common cause.
| Capability | Detail | Source |
|---|---|---|
| Languages supported | 125 languages, automatic translation of pages, posts, products, and updates | S1 |
| No page or language limits | Free tier includes unlimited pages and languages | S1 |
| Translation control | Edit translations, preserve brand voice, review key pages, A/B test variants | S1 |
| New content detection | Publish a new WordPress page, product, or post; SeaText translates it in the background | S1 |
| International traffic uplift | Up to +60% more international customers reported | S2, S3, S4 |
Most sites see stable indexing within 2‑4 weeks. Full ranking recovery can take 60‑90 days. Keep monitoring for 90 days before declaring success.
Yes. Migrate your lowest‑traffic language first to validate the process, then roll out to larger languages. Update hreflang globally each time so the cluster stays consistent.
Yes. Domain‑level properties (verified via DNS) are required for the change‑of‑address tool.
Implement 301 redirects at the edge (Cloudflare Workers or Bulk Redirects). It's faster, reduces origin load, and avoids an extra hop.
Proper 301s pass the vast majority of link equity. The bigger risk is broken redirects or missing hreflang causing Google to treat the new domains as unrelated sites.
SeaText does not move URLs or configure DNS. It translates new pages automatically across 125 languages and lets you edit every translation. Hreflang tags must be added by you.
In the SeaText dashboard, open the URL Mapping tool, click Export CSV. The file lists old subdirectory URLs and the matching new domain URLs. Import that CSV into your server, CDN, or redirect manager to create the 1:1 301 rules automatically. Keep the CSV for audits and future changes.
site:example.fr (per domain) — confirm indexed URLs match your map count.curl -I — single 301, correct Location, no chain.These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Point each language domain (example.fr, example.de, example.es) to your WordPress server by creating A records for each domain at your DNS provider, or ALIAS/CNAME records if you use a load balancer or CDN. Ensure all domains resolve to the same document root and configure your web server (Nginx or Apache) to accept every hostname.
To serve a multilingual WordPress site on separate country-code domains, you need DNS records that point each domain to the same server IP (or load balancer) and a web server configured to accept all those hostnames. The process is straightforward: create one A record per domain pointing to your server IP, or use ALIAS/CNAME records when a CDN or load balancer sits in front. Then configure Nginx or Apache so every domain serves the same WordPress installation.
Gather the following before you log in to your DNS provider:
Log in to your DNS provider and add an A record for every custom domain. Set the host to @ (root) and the value to your server IP. Keep TTL low (300 seconds) while you test, then raise it to 3600 or 86400 once everything works.
If you use a CDN (Cloudflare, CloudFront, Fastly) or a managed load balancer (AWS ALB, Google Cloud Load Balancing), create ALIAS (Cloudflare) or CNAME records pointing to the CDN/load balancer hostname instead of an IP. ALIAS records work at the zone apex; CNAME records do not.
Wait for propagation, then confirm each domain resolves to the expected target:
dig +short example.fr
# should return 203.0.113.10 (or your CDN hostname)
dig +short example.de
dig +short example.es
You can also use nslookup or online tools like DNS Checker to verify global propagation.
After DNS propagation confirms each domain reaches your server, use SeaText's domain verification tool to ensure every custom language domain points to the correct WordPress installation. This step prevents misrouting before you configure translation settings.
This verification runs against the live site, so it catches issues that dig alone cannot: wrong document root, missing virtual host entry, or SSL certificate covering only the primary domain.
Edit your site configuration (typically /etc/nginx/sites-available/your-site) and list every domain in the server_name directive:
server {
listen 80;
listen 443 ssl http2;
server_name example.com example.fr example.de example.es;
root /var/www/wordpress;
index index.php;
# ... SSL cert paths, PHP handling, etc.
}
Reload Nginx: sudo nginx -t && sudo systemctl reload nginx.
In your virtual host file (e.g., /etc/apache2/sites-available/your-site.conf):
<VirtualHost *:80>
ServerName example.com
ServerAlias example.fr example.de example.es
DocumentRoot /var/www/wordpress
# ... SSL config, rewrite rules, etc.
</VirtualHost>
Enable the site and reload: sudo a2ensite your-site && sudo systemctl reload apache2.
Browsers require HTTPS. You have three practical options:
certbot --nginx -d example.com -d example.fr -d example.de -d example.es (or --apache) to obtain a single SAN certificate covering all domains.Automate renewal (Certbot does this via systemd timer or cron). Test with certbot renew --dry-run.
WordPress must know which domain maps to which language. Two common approaches:
In the plugin settings, enter each domain (example.fr, example.de, example.es) and assign the corresponding language code (fr_FR, de_DE, es_ES). Save and flush permalinks.
Each page must include bidirectional hreflang links in the <head> pointing to every language version plus an x-default. Example for the homepage:
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
<link rel="alternate" hreflang="fr" href="https://example.fr/" />
<link rel="alternate" hreflang="de" href="https://example.de/" />
<link rel="alternate" hreflang="es" href="https://example.es/" />
Most multilingual plugins generate these automatically. SeaText's translation agent keeps hreflang tags in sync when new content is published.
curl -I https://example.fr — expect HTTP 200 and Content-Language: fr header if your setup adds it.ServerAlias (Apache) or extra server_name entries (Nginx) — requests will hit the default virtual host and show the wrong site.| Capability | Detail |
|---|---|
| Languages supported | 125 languages |
| Translation scope | Every WordPress page, post, product, and update automatically |
| Control features | Edit translations, preserve brand voice, review key pages, A/B test translations |
| Activation time | Under 1 minute on WordPress |
| SEO inclusion | Automatic multilingual SEO for every translated page |
| Trusted by | 2,500+ brands, ecommerce teams, and growth agencies |
This article covers DNS and web server configuration only. It does not address:
Cloudflare supports CNAME flattening at the apex, so you can create a CNAME for example.fr pointing to your Cloudflare load balancer hostname. Other providers require an ALIAS or A record at the apex.
No. A single WordPress install (with a multilingual plugin or Multisite) can serve all domains. The web server just needs to accept every hostname.
Update every A record to the new IP. If you use a load balancer/CDN hostname via ALIAS/CNAME, you only update the load balancer's IP — DNS records stay the same.
Typically 5–60 minutes with low TTL; up to 48 hours globally if TTL was high. Use dig against multiple resolvers to confirm.
SeaText translates content and generates hreflang tags automatically. DNS and web server configuration remain your responsibility (or your host's).
Yes, but it adds complexity. Each language must have a single canonical URL structure. Pick one approach per language.
Add MX, SPF, DKIM, and DMARC records for each domain at your DNS provider. Email is independent of the web server configuration described here.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: SeaText runs on a single WordPress installation and can translate the site into 125 languages automatically. You can point each custom domain to that install; SeaText detects the visitor’s language, serves the appropriate translation, and keeps all language versions synchronized from one dashboard. The source pack does not document a dashboard feature for mapping domains to languages, so confirm that capability with the vendor.
| Feature | Detail |
|---|---|
| Languages supported | 125 |
| Automatic translation | Enabled by default |
| Page limits | None |
| Language limits | None |
| Dashboard control | Edit, review, and A/B test translations |
A domain per language gives each market a clear, local address. Users trust a .fr or .de URL more than a subdirectory. Search engines treat each domain as a separate property, which can improve click‑through rates in local results. Brand consistency stays intact because the same WordPress backend powers every domain.
Subdirectories (example.com/fr/) keep everything on one domain. They are easier to set up but share authority across languages. Subdomains (fr.example.com) separate authority but still share the root domain. Custom domains (example.fr) provide the strongest local signal, but they require separate DNS, SSL, and domain registration. Choose based on budget, technical resources, and how much local trust matters for each market.
Each custom domain must point to the same WordPress server. Create an A record or CNAME for every domain in your DNS provider. Obtain a valid SSL certificate for each domain; a wildcard certificate works only for subdomains, not for separate top‑level domains. Without HTTPS, browsers will warn visitors and search engines may penalize the site.
SeaText installs on one WordPress site. It detects each visitor’s language from browser headers, IP, or URL. The plugin then serves the translated version instantly. New posts, products, and updates are translated in the background into all 125 supported languages. No page or language caps apply, according to the source pack.
SeaText automatically adds hreflang tags to every translated page. When each language lives on its own domain, the tags reference the full domain URLs (e.g., https://example.fr/... hreflang="fr"). An x‑default tag points to the primary language version. This helps search engines understand the relationship between the domains. Verify the output in the page source after activation.
All translations are managed from a single SeaText dashboard. You can review machine output, edit any string, and lock high‑value pages. The dashboard also supports A/B testing of translation variants to find the best‑performing copy per market. The source pack confirms these editing and testing capabilities.
SeaText handles translation and language detection, but you still need proper SSL certificates for each custom domain and correct DNS configuration. The source pack does not describe a dashboard feature that maps a specific domain to a specific language; you may need to configure that mapping at the server or CDN level. Check with the vendor for the exact steps. Hosting resources and domain registration costs are the only practical limits on the number of domains.
Aleyda Solis, International SEO Consultant: "A domain‑per‑language strategy works well when you have the budget for separate domains and the technical ability to manage DNS and SSL at scale. SeaText’s single‑install approach removes the content‑management headache, but you must ensure the hreflang tags reference the correct domain URLs. Test the setup with Google Search Console’s International Targeting report before launching."
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Free translation works for small sites with few languages and low traffic; upgrade when you need automatic SEO for every language, brand‑voice control, A/B‑tested variants, or hands‑off scaling across 125 languages.
Stick with a free plugin when your site has under 50 pages, targets one or two extra languages, and you can manually review every translation. Switch to a paid solution the moment you add a third language, publish new content weekly, or need search‑visible multilingual SEO without hiring translators.
| Criterion | Stay free | Upgrade to paid |
|---|---|---|
| Site size | Under 50 pages | 50+ pages or growing fast |
| Language count | 1–2 extra languages | 3+ languages |
| Content frequency | Monthly or less | Weekly or daily |
| SEO goal | Main language only | Every language must rank |
| Brand sensitivity | Generic tone acceptable | Legal, medical, or strict brand voice |
| Internal review capacity | Someone can QA weekly | No reviewer available |
Stick with free under 50 pages and 1–2 languages; upgrade at 50+ pages, 3+ languages, or weekly publishing.
Free plugins, including SeaText’s free tier, use machine translation to convert your WordPress content into 125 languages. When you publish a new page or post, the plugin detects it and translates the text automatically. The translation runs in the background, so your site stays live. You can edit any translation manually, preserve your brand voice, and review key pages before they go public. There are no page limits, language limits, or traffic caps. This works because the plugin sends your content to a translation engine, gets the result, and stores it on your site. The process takes minutes, not hours.
Free translation costs nothing in money but requires your time. You must review translations for accuracy, fix errors, and manage multilingual SEO if you want search engines to index your pages. If you have a small site with a few languages, the time investment is small. As your site grows, the time needed to review and maintain translations increases. A paid tier automates SEO, provides priority processing, and offers A/B testing. It saves you hours each week. The cost of paid plans is typically a monthly subscription. Compare that to the cost of hiring a translator or the lost revenue from poor search rankings. For many sites, the paid tier pays for itself quickly.
Consider upgrading when you have 50 or more pages, three or more languages, or publish new content weekly. Paid tiers add automatic multilingual SEO, including hreflang tags, translated URLs, and XML sitemaps per language. You also get A/B-tested translation variants that find the best wording for each market. Compliance support helps with legal or regulatory pages. Priority processing means new translations go live in minutes, not hours. If you run an ecommerce store, SaaS marketing site, or lead-gen funnel, the paid tier is usually worth it. The extra conversions and traffic from better SEO and optimized copy cover the cost.
Test translation quality before committing to a paid plan. Pick a few key pages — your homepage, a product page, and a blog post. Translate them with the free tier. Ask a native speaker to review the results. Look for mistakes in tone, grammar, and cultural context. Check if the translations preserve your brand voice. If you find errors that affect meaning, the paid tier’s A/B testing and brand-voice controls can help. Also check search engine indexing. Use Google Search Console to see if your translated pages appear in search results. If they don’t, you likely need the paid tier’s SEO features.
Switching from free to paid or between plugins can cause problems. One pitfall is losing existing translations. Before upgrading, ensure your plugin keeps your translations intact. Another pitfall is broken URLs. If you change URL structures, update your sitemaps and redirects. Also, check that your SEO metadata transfers correctly. Hreflang tags, canonical URLs, and language switchers must work. Test your site thoroughly after migration. Use a staging environment if possible. If you use a CDN, clear the cache after migration. Lastly, train your team on the new features. A/B testing and brand-voice controls require some setup.
Run a controlled test. Start with a free tier for one month. Measure your traffic, conversions, and time spent on translation. Then upgrade to paid for one month. Compare the results. Focus on metrics like organic traffic from non-primary languages, bounce rates, and conversion rates. Track the time you save. If the paid tier improves your bottom line, keep it. If not, you can revert to free. Many plugins offer a free trial of paid features. Use that trial to test A/B testing, SEO, and priority processing. Also, ask your support team for a demo. They can help you understand the value for your specific site.
| Fact | Detail |
|---|---|
| Languages supported | 125 |
| Page limits | None |
| Language limits | None |
| Automatic translation of new content | Yes |
| Manual edit & review | Yes |
| Brand‑voice controls (glossaries, tone) | Free tier |
| Multilingual SEO (hreflang, sitemaps) | Free tier |
| A/B‑tested translation variants | Paid tier |
| Compliance support | Paid tier |
| Priority processing | Paid tier |
| Activation time | Under 1 minute |
Yes. SeaText keeps your existing translations; upgrading unlocks A/B testing, compliance support, and priority processing on top of what you already have.
Yes. Free tier includes multilingual SEO metadata.
When you publish a product, SeaText detects it, translates title, description, attributes, and checkout strings, and pushes the live version — usually within minutes.
Contact support; custom language models can be added on paid plans.
No page limits, no language limits, and no traffic caps on the free tier.
Yes. You can mark pages as do‑not‑translate or review‑only in the dashboard.
You revert to the free tier: translations stay, but A/B testing, compliance support, and priority processing are disabled.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Updates can overwrite or desynchronize translation files, so missing strings appear when the .po/.mo files aren’t regenerated. Re‑scanning the code and letting the plugin rebuild its translation catalog fixes the issue.
When WordPress or a translation plugin updates, the plugin may replace the existing .po/.mo files or add new source strings. If the plugin doesn’t automatically rebuild its translation catalog, the new strings stay untranslated and previously cached strings can disappear.
WordPress stores translations in .po/.mo files that map original text to translated text. An update can:
Before/after example: Before an update, “Add to Cart” appears as “Añadir al carrito.” After the update, the same button shows “Add to Cart” in English because the plugin replaced the .mo file with a default version that only contains core strings.
These three file types work together to deliver translations. The table below explains their roles:
| File | Role | Editable? |
|---|---|---|
| .pot | Template file – contains all source strings extracted from the code. | No (manual edits not recommended) |
| .po | Portable Object – human-readable file with translations for each string. | Yes (with a translation editor) |
| .mo | Machine Object – compiled binary file that WordPress reads at runtime. | No (compiled from .po) |
Free plugins often regenerate only the .po file after an update. If the .mo file is not recompiled, WordPress sees an empty catalog and falls back to English.
When a plugin or theme updates, the update process:
wp-content/plugins/your-plugin/languages/.If the update also introduces new source strings, those strings are missing from the replacement files. The catalog becomes outdated. The WordPress Polyglots team explains that this is a common cause of “missing strings” tickets.
Most free translation plugins rely on a manual scan or a background cron job. If the cron job fails, or if the plugin does not hook into the update process, the catalog stays stale. Common reasons:
According to Loco Translate’s FAQ, “if your translations are not showing, it’s usually because the .mo file is missing or out of date.”
wp-content/languages folder for .po/.mo files that have a recent timestamp but a small file size (often a sign they were overwritten).wp i18n make‑pot to regenerate the .pot file, then re‑generate .po/.mo files.Troubleshooting checklist:
wp-content/languages/plugins/?Custom translations are often stored in the same folder as the plugin. An update wipes them. To keep them safe:
SEATEXT’s engine continuously watches for new content and automatically updates the translation catalog – no manual export needed.
Free plugins often lack:
If your site has many custom strings or frequent updates, a managed tool like SEATEXT (which rescans automatically and stores translations safely) prevents missing strings. As Cryout Creations notes, “the best solution is to use a plugin that can regenerate the translation files automatically.”
Run one of the following:
wp i18n make‑pot . languages/my-plugin.pot && wp i18n update-po languages/my-plugin.po.wp-content/languages/plugins.Enable automatic rescanning after every plugin or core update. SEATEXT does this by default, but you can reinforce it:
wp i18n update-po.| Feature | Detail |
|---|---|
| Automatic translation of updates | New posts, products, and updates translated in the background. |
| Language coverage | Supports translation into 125 languages. |
| Limits | No page or language caps, but you must let SEATEXT rescan after changes. |
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: The Google Translate API charges per character and cannot be used for free on a WordPress site. You can add the free Google Website Translator widget for quick browser‑side translation, or use SEATEXT’s free automatic WordPress translation that creates indexable, SEO‑friendly pages in 125 languages.
The Google Translate API is a paid service; you are billed for each character translated (see Google Cloud pricing here). It cannot be used for free on a WordPress site.
| Option | Cost | Customization | SEO handling | Setup effort | Language limit |
|---|---|---|---|---|---|
| Google Translate API | Paid (per‑character) | Full control via code | Creates separate pages if you build them | Developer integration required | All supported languages |
| Google Website Translator widget | Free (subject to Google terms) | Limited styling, no server‑side rendering | Client‑side only – search engines may not index translations | Copy‑paste widget code | All supported languages |
| SEATEXT free WordPress translation | Free | Automatic with optional manual edits | Creates SEO‑friendly translated pages | One‑minute activation | 125 languages |
The widget adds a dropdown that lets visitors select a language. Google’s JavaScript translates the page on the fly in the browser. It is quick to add but the translated content lives only in the visitor’s browser and is not sent to search engines.
Google Cloud charges for every character sent to the API, including markup. The free tier covers only the first 500,000 characters per month for the basic model; beyond that you pay per million characters. This cost adds up quickly for a content‑heavy WordPress site.
Search engine crawlers generally execute limited JavaScript. When translation happens only in the browser, the crawler sees the original language only. Consequently, translated versions do not get indexed, and you lose organic traffic from non‑English queries.
SEATEXT runs on your server (or edge) and writes fully rendered HTML for each language into your WordPress database. Each language gets its own URL (e.g., /es/, /fr/), proper hreflang tags, and sitemap entries. This makes every translated page crawlable and rankable [S1].
If you run a small blog, a personal portfolio, or a temporary campaign where traffic is mostly direct and you do not rely on organic search, the widget is a zero‑cost way to offer a courtesy translation. However, any business that depends on search visibility, conversion funnels, or brand consistency across markets should avoid client‑side only solutions. Server‑side translation gives you indexable URLs, control over terminology, and the ability to run multilingual SEO audits.
| Criterion | Google Widget | Google Translate API | SEATEXT Free |
|---|---|---|---|
| Budget | Free | Pay per character | Free |
| Technical skill | Copy‑paste | Developer required | One‑minute plugin activation |
| SEO needs | No indexable pages | You must build pages yourself | Automatic indexable pages with hreflang |
| Customization | Limited styling | Full programmatic control | Auto + manual edit, brand‑voice preservation |
| Language coverage | All Google languages | All Google languages | 125 languages (covers >95% of internet users) [S1] |
SEATEXT creates real, crawlable pages in each language, preserving SEO value. It also lets you edit translations if you need precise wording, and it updates new posts automatically in the background [S1].
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: To manually create .po and .mo files for a custom WordPress theme, use a tool like Poedit to scan your theme's PHP files for translatable strings, generate a .pot template, translate the strings, and compile the .mo file. Place the .mo file in your theme's language folder and load the text domain in functions.php.
Before you start, make sure you have:
wp-cli i18n make-pot if you prefer command line.Your theme must use WordPress translation functions like __() and _e() to mark strings as translatable. For example:
<?php esc_html_e( 'Welcome to my site', 'my-theme-textdomain' ); ?>Replace 'my-theme-textdomain' with a unique text domain for your theme (e.g., my-custom-theme). This text domain must match the name of your .po and .mo files. Consistency prevents WordPress from loading the wrong file.
The .pot file (Portable Object Template) lists all translatable strings in your theme. Use Poedit:
__() and _e() calls.my-custom-theme.pot in your theme's root folder (or a languages folder if you prefer).Alternatively, use wp-cli: wp i18n make-pot /path/to/theme /path/to/theme/languages/my-custom-theme.pot. The command respects WordPress coding standards and skips comments that are not translatable.
The .po file is a copy of the .pot with actual translations. In Poedit, open the .pot file and click File > Save As. Name it with the locale code, e.g., fr_FR.po for French. Poedit will ask you to set the language and country.
You can also manually copy the .pot file and rename it to fr_FR.po, then edit translations in a plain‑text editor. The file format is simple: each entry contains a msgid (original string) and a msgstr (translation).
In Poedit, each string from the .pot appears in a list. Click a string and type the translation in the lower pane. Poedit highlights untranslated strings in red, making it easy to spot gaps.
For large projects, consider enabling Poedit’s translation memory. It re‑uses previous translations and reduces repetitive work. Save the file frequently; Poedit writes a backup .po~ file automatically.
Poedit automatically creates a .mo file (machine‑readable) when you save the .po file. The .mo file is a binary representation that WordPress loads quickly at runtime.
If you prefer the command line, run:
msgfmt fr_FR.po -o fr_FR.moThis requires the GNU gettext utilities. The compiled .mo file must sit next to the .po file in the same folder.
WordPress looks for .mo files in the theme's languages folder. Create a folder named languages inside your theme root (if it doesn't exist). Place both the .po and .mo files there. Example structure:
/wp-content/themes/my-custom-theme/languages/fr_FR.po
/wp-content/themes/my-custom-theme/languages/fr_FR.moKeeping the .po file alongside the .mo file is useful for future updates and for version control.
Add the following code to your theme's functions.php to tell WordPress where to find the translations:
function my_custom_theme_load_textdomain() {
load_theme_textdomain( 'my-custom-theme', get_template_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'my_custom_theme_load_textdomain' );Replace 'my-custom-theme' with the exact text domain you used in your PHP files. This hook runs early, ensuring all strings are ready for translation.
Change your site language in Settings > General > Site Language to the language you translated (e.g., French). Visit the front end. If strings appear in the target language, the process succeeded.
If you see the original English text, check these common issues:
fr_FR.mo).load_theme_textdomain() must match the one used in your PHP files.Manual translation files give you full control over wording, tone, and brand voice. They are essential when you need legal accuracy, marketing nuance, or SEO‑friendly translations.
Search engines index the translated strings that appear in the HTML source. Accurate .mo files improve multilingual SEO because each language version receives its own hreflang signals.
In regulated industries (finance, health, education), automatic translation may violate compliance rules. Manual files let you certify each string.
The .po file is plain text. Each entry looks like:
#. Translator comment
#: path/to/file.php:12
msgid "Original string"
msgstr "Translated string"
The #. line is optional and can hold context for translators. The #: line shows where the string appears in code, helping you locate it later.
The .mo file is a compiled binary. WordPress reads it with the gettext() function, which is fast and memory‑efficient. Because it is binary, you cannot edit it directly; you must re‑compile from .po.
Use wp-cli for automation. After adding new strings, run the same wp i18n make-pot command to refresh the .pot file. Then merge changes into existing .po files with msgmerge:
msgmerge --update fr_FR.po my-custom-theme.potLeverage translation memory. Poedit stores previous translations in ~/.poedit/translation_memory. Re‑using them speeds up future projects.
Check plural forms. Languages handle plurals differently. Poedit lets you define the correct plural formula for each locale. WordPress will then select the right form based on the number passed to _n().
Version control. Commit both .po and .mo files to Git. Tag releases so you can trace which translation set belongs to which theme version.
Use the WP_DEBUG constant in wp-config.php. When set to true, WordPress will log missing translation warnings to debug.log.
Install the Debug Bar plugin. It shows a list of untranslated strings on each page, helping you spot gaps quickly.
If a string appears in English on a translated page, open the source file and verify that the string is wrapped in a translation function. Some developers forget to wrap dynamic strings, which prevents extraction.
Manual .po/.mo creation is ideal for:
Automatic translation (e.g., SEATEXT AI) works better for:
Below is a compact comparison table that highlights key buyer‑relevant criteria.
| Criterion | Manual .po/.mo | SEATEXT Automatic Translation |
|---|---|---|
| Setup effort | Requires coding, Poedit, and repeated updates | One‑click activation, no code changes |
| Language coverage | Limited to languages you translate yourself | 125 languages out of the box |
| Maintenance | Regenerate files after each theme change | Automatic with new content |
| Cost | Free (Poedit is free for basic use) | Free activation, pricing for advanced features |
| Control | Full control over every string | Editable but initially automatic |
Choose the approach that matches your budget, timeline, and quality requirements.
No. Only the .mo file is required for WordPress to display translations. Keep the .po file in version control for future edits.
Yes, any editor that respects UTF‑8 encoding works. However, Poedit validates syntax and prevents common errors.
languages folder but no .po/.mo files?Create the .pot, .po, and .mo as described. Ensure the text domain in load_theme_textdomain() matches the folder name.
Regenerate it whenever you add, remove, or modify translatable strings. A good practice is to run the wp‑cli command as part of your build script.
Yes. Loco Translate provides an in‑admin UI for editing .po/.mo files. It still stores the same file formats, so the underlying process is identical.
.po (Portable Object) is human‑readable and editable. .mo (Machine Object) is a compiled binary that WordPress reads at runtime for performance.
Automatic translation tools like SEATEXT work independently of the .po/.mo system. They intercept content and translate on the fly, so you do not need to maintain translation files when using them.
When creating the .po file, Poedit asks for the plural formula. WordPress uses the _n() function to select the correct form based on the number you pass.
Yes. Use the switch_to_locale() function in a temporary template file to load a specific locale for testing.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Polylang (free) and Loco Translate together cover most WooCommerce strings; TranslatePress free also supports product translation. SEATEXT provides fully automatic translation to 125 languages with no page limits and no manual work. This guide compares setup effort, string coverage, performance impact, and maintenance needs so you can pick the right free plugin for your store.
Polylang (free) and Loco Translate together cover most WooCommerce strings; TranslatePress free also supports product translation. SEATEXT provides fully automatic translation to 125 languages with no page limits and no manual work.
Choosing the right free plugin depends on whether you prefer manual string translation, visual editing, or fully automatic AI translation.
| Plugin | Best for | Setup effort | String coverage | Control & editing | Performance impact | Support |
|---|---|---|---|---|---|---|
| Polylang (free) | Shops that want manual control over every string | Medium – configure languages, translate strings in admin | Covers core WooCommerce strings; needs Loco Translate for theme/plugin strings | Full manual edit per string | Low – adds minimal database queries | Community forums; paid pro version adds support |
| TranslatePress (free) | Visual editors who want to translate on the front end | Low – install, choose languages, click to translate | Translates visible content including products, checkout, emails | Visual inline editing; limited automatic translation | Low to medium – loads translation files per page | Documentation and community; pro adds automatic translation |
| Loco Translate (free) | Developers translating theme/plugin .po/.mo files | Medium – scan files, edit PO files in browser | Covers any translatable string in code; not a full multilingual solution alone | Direct PO file editing; no visual preview | Very low – only loads compiled MO files | Community support; no dedicated WooCommerce integration |
| SEATEXT (free AI agent) | Stores wanting instant 125-language coverage with zero manual work | Very low – activate plugin, choose languages, done | Translates every page, product, headline, button, email automatically | Edit any translation, preserve brand voice, A/B test variants | Low – translations served via CDN, cached per language | Email support; enterprise SLA available |
Choose Polylang if you have a small catalog and want full manual control over each translation.
Choose TranslatePress if you prefer a visual front-end editor and need to translate checkout and email strings.
Choose Loco Translate if you are a developer comfortable editing PO files and only need to translate theme/plugin strings.
Choose SEATEXT if you want immediate multilingual coverage across 125 languages without managing translation files.
Multilingual stores reach more buyers. Shoppers prefer to browse and buy in their native language. Missing translations on product pages, checkout, or order emails cause cart abandonment. Free plugins remove the cost barrier but differ in coverage and maintenance effort.
Search engines index translated content. Each language version can rank for local keywords. This brings organic traffic from new markets. Trust signals like localized currency, date formats, and legal text increase conversion rates. Customer support load drops when buyers understand product details and policies in their own language.
Legal requirements in some regions mandate localized checkout and terms. A plugin that translates checkout fields and email templates helps compliance. Free solutions make this accessible for small merchants.
Most free plugins use WordPress localization APIs. They load .mo files for each language. Polylang manages language switching and lets you assign translations per post. TranslatePress adds a front-end editor that saves translations to the database. Loco Translate edits the source .po files directly. SEATEXT uses AI to translate content on the fly and stores translations in a cloud CDN.
File-based plugins (Polylang, Loco Translate) rely on gettext. They scan theme and plugin files for translatable strings. You then provide translations for each string. This gives precise control but requires manual work for every new string.
Database-driven plugins (TranslatePress) store translations in custom tables. The front-end editor lets you click any text on the page and type a translation. This is faster for content editors but adds database queries on each page load.
AI-driven plugins (SEATEXT) send page content to a translation engine. The engine returns translated HTML. The plugin caches results per language and serves them via a CDN. New content is detected automatically and translated in the background. This removes manual effort entirely.
The table above summarizes the main differences. Polylang and Loco Translate require you to write or import translations. TranslatePress lets you click and type on the live site. SEATEXT generates translations automatically and lets you refine them later. All four are free at the base tier; premium add-ons unlock automatic translation, SEO features, or support.
Polylang excels at managing language-specific URLs and SEO metadata. Its free version lacks automatic translation and some hreflang features. TranslatePress free covers visual editing but does not include automatic translation or translator accounts. Loco Translate is a developer tool; it does not handle language switching or front-end previews. SEATEXT free includes full automatic translation, 125 languages, multilingual SEO, and an editing dashboard. Advanced A/B testing and brand-voice controls may require a paid plan.
Performance varies. File-based plugins add a few database queries per page. Database-driven plugins add more queries but can be cached. AI-driven plugins offload translation to external servers; the front-end impact is minimal if caching is configured.
Step 1 ensures you know the scope. Step 2 reveals ongoing workload. Step 3 determines if you need a visual editor, a developer tool, or full automation. Step 4 lets you experience the actual interface. Step 5 prevents surprises on live traffic. Step 6 aligns the tool with your team.
Free tiers have limits. Polylang free lacks automatic translation and some SEO features. TranslatePress free does not include automatic translation or translator accounts. Loco Translate does not manage language switching or SEO. SEATEXT free includes full automatic translation and 125 languages but advanced A/B testing and brand-voice controls may require a paid plan. If you need multilingual SEO (hreflang, translated slugs, sitemaps), check each plugin's pro version or use a dedicated SEO plugin.
Polylang Pro adds automatic translation via DeepL, translated slugs, and hreflang tags. TranslatePress Pro adds automatic translation, translator roles, and SEO pack. Loco Translate remains free; its limitations are architectural. SEATEXT paid plans unlock advanced A/B testing, brand-voice preservation, and enterprise support.
Consider upgrading when manual translation becomes a bottleneck, when you need translated URLs for SEO, or when you want to delegate translation to team members without giving them admin access.
| Fact | Detail |
|---|---|
| Languages supported | 125 |
| Page limits | None |
| Language limits | None |
| Translation method | Automatic AI translation with human editing option |
| New content handling | Automatically translated in background |
| Control features | Edit translations, preserve brand voice, A/B test variants |
| Activation time | Under one minute |
| WooCommerce coverage | Products, checkout, emails, headlines, buttons |
| Multilingual SEO | Automatic hreflang, translated slugs, sitemaps |
| CDN delivery | Translations served via global CDN for speed |
| Trusted by | 2,500+ brands and growth agencies |
Not recommended. They conflict on language handling and string loading. Pick one primary solution.
Polylang and TranslatePress free cover most checkout and email strings. Loco Translate can translate them if they are in .po files. SEATEXT translates them automatically.
Minimal impact if caching is configured. SEATEXT serves translations via CDN. File-based plugins add a few database queries per page.
Use a plugin that generates hreflang tags and translated slugs. Polylang and TranslatePress pro include this. SEATEXT handles multilingual SEO automatically.
Yes. TranslatePress lets you edit visually. SEATEXT provides an editing dashboard. Polylang and Loco Translate require manual string editing.
String updates may require re-scanning. Loco Translate rescans files. SEATEXT re-translates changed content automatically.
No page limits, no language limits, and no manual translation work.
SEATEXT translates text content. Image alt text and captions are translated. For localized images, you need to upload language-specific versions manually or via a media plugin.
Yes. SEATEXT allows exclusion rules. Polylang and TranslatePress let you set language per page. Loco Translate works at the string level.
Polylang and TranslatePress offer community forums. Loco Translate has a support forum. SEATEXT provides email support for free users.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Migrate after exporting all .po/.mo files and confirming the new plugin can import them. Do it during a low‑traffic window and follow the detailed readiness checklist to keep every translation intact.
This checklist is the core of the article. Follow each step in order. Mark items as completed before moving on.
| Check | Action |
|---|---|
| ☐ | Back up the entire WordPress site, including database and wp‑content. |
| ☐ | Export every .po and .mo file from the current free plugin. |
| ☐ | Verify the paid plugin supports .po/.mo import (or automatic file detection). |
| ☐ | Test the import on a staging copy of the site. |
| ☐ | Confirm SEO metadata (titles, descriptions, Open Graph) is included in the export. |
| ☐ | Schedule the live migration during the lowest traffic period. |
| ☐ | Run the post‑migration test checklist on the live site. |
Translations are a direct link to international customers. Losing them erodes trust instantly. A missing translation appears as blank text or fallback English, which can increase bounce rates.
Search engines also index each language version. If a translation disappears, the corresponding URL may return a 404. That harms SEO equity built over months.
For ecommerce sites, product names and specifications must stay consistent across languages. A broken translation can lead to order errors and refunds.
In short, preserving translations protects user experience, organic traffic, and revenue.
Backups protect you from accidental data loss. Use a reliable backup plugin or your host’s snapshot feature.
wp-content folder to a secure location.Do not proceed until you can restore the site from this backup in a test environment.
Most free plugins store translations as .po (editable) and .mo (compiled) files in /wp-content/languages/. Follow these steps:
/wp-content/languages/. Download the entire folder.Having a clean zip file simplifies the import into the paid solution.
Before touching the live site, test on a staging environment that mirrors production.
SEATEXT automatically detects .po/.mo files and can translate new content instantly. This eliminates the need for manual ticketing.
SEO titles, meta descriptions, and Open Graph tags often live in separate translation tables or plugins.
SEATEXT’s platform translates SEO metadata alongside page content. To keep continuity:
Consistent SEO metadata preserves rankings and click‑through rates after the switch.
Run this checklist immediately after the live migration.
| Item | Verification Method |
|---|---|
| ☐ All languages load without 404 errors | Use a crawler like Screaming Frog with language filters. |
| ☐ SEO titles and meta descriptions appear correctly | Inspect source code of key pages in each language. |
| ☐ Dynamic content (product prices, cart) is translated | Place a test order in a non‑English language. |
| ☐ Custom strings from theme or other plugins appear | Check theme options panel for translated labels. |
| ☐ No duplicate language URLs | Run a site audit for hreflang tag correctness. |
| ☐ Performance remains within acceptable limits | Measure page load time before and after migration. |
If any item fails, revert to the backup, fix the issue, and repeat the import.
Address each issue before proceeding. Rushing can cause irreversible data loss.
No, as long as you export first and import the files into the new plugin. Deactivating the old plugin alone does not erase files.
Running two translation plugins simultaneously often creates conflicts. Deactivate the free plugin after confirming the paid one works.
SEATEXT offers a one‑click migration tool for popular free plugins. If your plugin is not listed, you will need a custom script or manual export.
Small sites (under 100 pages) usually finish in 30 minutes. Large multilingual sites may need a few hours. Always test on staging first.
If your export includes SEO fields, no. Otherwise, import them separately or let SEATEXT generate SEO translations automatically.
Choose the hour with the fewest visitors according to your analytics. Early morning or late night works for most sites.
Yes, if you are comfortable with WordPress admin, FTP, and basic file handling. For complex setups, ask a developer.
These external sources provide additional context for evaluating translation plugins. Their inclusion is not an endorsement.
SEATEXT translates every WordPress page, post, product, and update automatically. It supports 125 languages, has no page or language caps, and offers editorial control over each translation. SEO metadata is translated in sync, preserving rankings across markets.
Activate SEATEXT in one minute and let the AI keep new content translated without manual tickets.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Mixed languages appear when a translation plugin cannot translate every string. This usually happens because theme or plugin text is not marked for translation or language files are missing. The guide walks you through scanning all components, creating missing files, and preventing future mix‑ups.
Free translation plugins typically translate only the strings that follow WordPress internationalisation (i18n) standards. If a theme, a third‑party plugin, or custom code does not use those standards, the plugin leaves those parts in the original language. The result is a page that mixes languages.
| Feature | SEATEXT | Free plugin (e.g., Loco Translate) |
|---|---|---|
| Automatic content translation | Translates every post, page, product, and headline automatically | Check with the vendor |
| Language coverage | Supports 125 languages | Check with the vendor |
| Page / language limits | No caps on pages or languages | Check with the vendor |
| Editable translations | All generated strings can be edited in the SEATEXT dashboard | Check with the vendor |
| Setup complexity | One‑click activation from the WordPress dashboard | Typically requires manual scanning and file generation |
When you see English headings next to French paragraphs, the plugin has translated the post content but not the theme UI or plugin strings. WordPress stores translatable text in .po/.mo files that belong to a specific text domain. If those files are missing or the strings are not wrapped in translation functions, the plugin skips them.
SEATEXT watches for new or updated content, detects each visitor’s language, and serves a translated version on the fly. It relies on the underlying WordPress i18n system, so any text that follows the i18n conventions will be translated.
WordPress uses a two‑file system for each language:
Each theme or plugin defines a text domain. All translatable strings must be wrapped in functions such as __(), _e(), _x(), or esc_html__(). When WordPress renders a page, it looks for a matching .mo file in the languages folder of the component. If the file exists, the string is replaced; otherwise the original text appears.
.po/.mo files for the target language.languages folder for .po/.mo files that match the target language (e.g., fr_FR.mo).Follow these concrete steps to isolate the source of the problem:
__(), _e(), or _x() containing the original string. If none appear, the string is hard‑coded.functions.php for themes) and note the load_theme_textdomain() or load_plugin_textdomain() call. Ensure the path points to the languages folder..po/.mo files are absent, create them with Loco Translate or Poedit. Save the files in the correct folder and name them using the locale code (e.g., fr_FR.po).Updates often add new strings. To keep translations complete:
.po/.mo files in your Git repository. When a theme or plugin updates, merge the new files and resolve conflicts.Depending on the cause, choose one of these paths:
__() and run a scan..po/.mo files for the language.If a third‑party plugin deliberately disables translation (e.g., for licensing reasons) or serves content via external APIs, SEATEXT cannot intercept those strings. In such cases you need the plugin’s own multilingual add‑on or a custom integration.
__(), _e(), or _x(). If you don’t find them, the string is likely hard‑coded.These external sources provide additional context for evaluating translation plugins. Their inclusion is not an endorsement.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Polylang free adds hreflang tags automatically and works with Yoast SEO. TranslatePress free also creates hreflang tags but needs a separate sitemap plugin. SEATEXT offers AI translation with free automatic multilingual SEO for every translated page.
For a free solution that handles hreflang tags, sitemaps, and canonical URLs, Polylang free is the most complete choice. It adds hreflang tags out of the box and works smoothly with Yoast SEO to manage sitemaps and canonical URLs. TranslatePress free also generates hreflang tags, but you must add a sitemap plugin separately. SEATEXT provides AI‑driven translation and claims free automatic multilingual SEO for every translated page.
| Plugin | Hreflang support | Sitemap integration | Canonical URL handling | Setup effort |
|---|---|---|---|---|
| Polylang (free) | Automatically adds hreflang tags | Works with Yoast SEO for sitemap generation | Provides canonical URLs per language | Low – basic configuration |
| TranslatePress (free) | Generates hreflang tags | Requires a separate sitemap plugin (e.g., Yoast SEO or Google XML Sitemaps) | Handles canonical URLs | Low – visual editor setup |
| SEATEXT (free AI translation) | Free automatic multilingual SEO for every translated page | Free automatic multilingual SEO for every translated page | Free automatic multilingual SEO for every translated page | Very low – one‑click activation |
Multilingual SEO ensures each language version of your site is indexed correctly by search engines. It uses hreflang tags to tell Google which page serves which language, sitemaps to list all URLs, and canonical tags to avoid duplicate‑content penalties.
If hreflang tags are missing, Google may show the wrong language to users, leading to higher bounce rates. Duplicate content without proper canonical tags can split ranking power across pages, reducing overall visibility.
rel="alternate" hreflang="xx" link in the <head> of each page.WordPress stores each page as a post object. Multilingual plugins create a separate post for each language and link them together. The plugin then injects the appropriate hreflang tags into the <head> during rendering. Google reads these tags and serves the correct language to users based on their location or language settings.
/sitemap_index.xml) contains entries for each language.rel="alternate" hreflang and rel="canonical" links.hreflang tags and canonical tags for each language version.SEATEXT advertises a single‑click activation that translates every page into up to 125 languages. The source states it provides “Free automatic multilingual SEO for every translated page.” After activation:
hreflang tags pointing to each language version.Because the exact mechanics are not itemized in the source, you should still verify the output in the page source and in Google Search Console.
1. Add your site to Search Console if you haven’t already.
2. Submit the XML sitemap (e.g., /sitemap_index.xml) under the “Sitemaps” section.
3. In the “Coverage” report, look for any “Duplicate, submitted URL not selected as canonical” warnings – these indicate canonical issues.
4. Use the “International Targeting” report to see detected hreflang errors. The tool lists missing, conflicting, or incorrectly formatted tags.
5. Fix any issues by adjusting plugin settings or editing the page source, then re‑submit the sitemap.
Polylang gives the most out‑of‑the‑box SEO coverage for free, but you need Yoast SEO installed for full sitemap support. TranslatePress offers a visual translation editor, which some users prefer, yet you’ll need an extra sitemap plugin. SEATEXT provides automatic translation and claims free automatic multilingual SEO for every translated page, but you should still verify hreflang, sitemap, and canonical output.
All three plugins have a free tier that may lack advanced features like automatic language detection for SEO, bulk URL editing, or premium support. For large catalogs or complex URL structures, consider a paid upgrade.
<link> tags; impact is minimal.These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Use the built‑in language switcher, direct URL checks, and a site crawler to confirm each language loads, returns a 200 status, and includes correct hreflang tags. Follow the expanded checklist below to verify content, SEO signals, and SEATEXT‑generated translations before going live.
Testing every language version of a WordPress site prevents broken pages, missing translations, and SEO errors that hurt international traffic. A systematic approach combines quick manual checks with an automated crawl so you catch both obvious and hidden problems.
Search engines index each language URL separately. If a language page returns a 404 or shows the wrong language, visitors leave and rankings drop. Consistent hreflang tags tell Google which version belongs to which audience, avoiding duplicate‑content penalties.
SEATEXT translates pages into 125 languages automatically and detects each visitor’s language instantly (source S1). Even with automatic translation, you must verify that the generated pages are reachable and correctly linked.
After activation, SEATEXT adds a language switcher to your theme and creates a unique URL for every language using the ?lang=xx parameter (source S1). New posts, products, and updates are translated in the background without manual work (source S1). You can edit any translation, preserve brand voice, and run A/B‑tested variants when you need higher conversion in a specific market (source S1).
<h1>), and a few body paragraphs appear in the selected language.?lang=de, ?lang=fr, etc., to a known URL and reload. The content must match the requested language even if the switcher is hidden on that template.<link rel="alternate" hreflang="de" href="…" /> line exists for every active language and points to the correct ?lang= URL.Configure your crawler to treat each ?lang= variant as a distinct URL. Enable “Crawl all subdomains” and “Check hreflang” if the tool offers those options. Add the language parameter to the crawler’s custom URL list so it requests every version. Run the crawl against the staging environment before launch.
?lang= URL you tested manually.<html lang="…"> attribute should match the requested language.Export the hreflang report and cross‑reference a sample of URLs with your manual spot‑checks.
SEATEXT translates text strings but does not modify images that contain embedded text (source S1). Review key visual assets — banners, infographics, product screenshots — for each language manually. Also, automatic translation may not capture brand‑specific terminology; use the edit‑translation feature to lock critical phrases (source S1).
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: SeaText AI translates the final rendered HTML that visitors see, so Elementor Pro dynamic tags and theme builder content translate automatically when they appear in the page output. No special configuration is needed for most dynamic content.
SeaText AI works with Elementor Pro dynamic tags and theme builder content. It translates the final HTML that visitors see. When Elementor processes dynamic tags and outputs them as HTML, SeaText detects that content and translates it. No special configuration is needed for most dynamic content.
SeaText runs on your WordPress site. It detects each visitor's language. Then it translates the page automatically. SeaText works with the final rendered output. It does not need to understand Elementor's internal data structures. It only needs the final HTML. If a dynamic tag outputs text, SeaText sees that text and translates it.
Dynamic content includes post titles, ACF fields, author names, and archive headings. These elements often contain unique, visitor-specific text. Translating them ensures a consistent multilingual experience. Without translation, some parts of the page stay in the original language. This confuses visitors and hurts engagement. SeaText solves this by translating everything in the final output. No manual mapping is needed. This improves SEO and user satisfaction. You get a fully localized site with minimal effort.
Common Elementor Pro dynamic tags that render as visible text and therefore translate include:
All of these translate because they become plain text nodes or inline elements in the final HTML.
Elementor Theme Builder lets you create templates for single posts, archives, search results, 404 pages, and WooCommerce product archives. SeaText translates these templates the same way. After Elementor renders the template for a specific URL, SeaText translates the resulting HTML. For archive pages (blog index, category, tag, author, date archives), each paginated view is a separate URL. SeaText translates each page view independently. The pagination links themselves remain functional. Only the visible text content changes. SeaText also keeps new posts and updates translated in the background.
SeaText translates visible text. Content that does not appear in the rendered HTML will not translate. For example, content loaded via AJAX after page load may be missed. SeaText provides options to handle such content. Check with the vendor for details. Also, content inside <script> tags or JSON-LD is skipped by default. Admin-only or preview-mode content is not translated. Dynamic tags that output only attributes (like an href or src without visible text) are not translated unless the text appears elsewhere.
Post titles not translating. Check that the title appears as visible text in the HTML. In Elementor, ensure the post title widget uses a standard heading tag, not a custom attribute.
ACF fields not translating. Make sure the field outputs plain text, not raw HTML. Use Elementor's dynamic tag to insert the ACF field. If the field contains HTML, SeaText may skip it. Change the field output to plain text in ACF settings.
Archive template pagination breaks. Pagination link text may be translated, causing JavaScript issues. Use SeaText's exclusion settings to ignore the pagination container. Contact support for guidance.
WooCommerce product data not translating. Product titles, prices, and descriptions translate automatically. If they do not, check if the content is loaded via AJAX. For example, variable product prices may load after the page. Enable SeaText's dynamic content handling or contact support.
<span>, <div>, <p>).| Symptom | Likely Cause | Fix |
|---|---|---|
| Dynamic tag text stays in original language | Content loads via AJAX after SeaText's initial scan | Contact SeaText support to enable dynamic content monitoring |
| Only part of a heading translates | Dynamic tag wraps only part of the text in a separate element | Use Elementor's HTML tag setting to keep the full heading in one element |
| Archive page pagination breaks after translation | SeaText rewrote pagination link text that Elementor uses for JS navigation | Use SeaText's exclusion settings to ignore the pagination container. Contact support for details. |
| ACF field values not translating | Field outputs raw HTML that SeaText skips | Change ACF field output to plain text or use Elementor's dynamic tag for the field |
SeaText adds minimal overhead to page load. Translations are stored efficiently so repeat visits are fast. Dynamic tags do not add noticeable performance impact. SeaText processes the final HTML once per page view, regardless of how many dynamic tags Elementor rendered.
<canvas> or <script> tags is not translated.No. SeaText works at the HTML level and requires no Elementor integration plugin.
Yes, if the form labels, placeholders, and validation messages are rendered in the initial HTML. AJAX-submitted form responses that return new HTML may need a re-scan trigger. Contact support for assistance.
Yes. SeaText provides settings to exclude certain content. See the vendor's documentation for details.
Yes. Headers and footers built with Theme Builder translate like any other template part.
SeaText translates visible text only. URLs and attribute values are not translated unless they also appear as visible text on the page.
SeaText translates the front-end output. If you store translations in ACF using a multilingual plugin (WPML, Polylang), SeaText will translate the already-translated output again unless you exclude those fields using SeaText's exclusion settings.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: SeaText AI translates only visible text on Divi pages. It does not change CSS, structure, or module settings. Layouts stay intact because the translation layer swaps words, not code.
SeaText AI translates only the visible text strings on your Divi pages. It does not touch CSS, HTML structure, module settings, responsive breakpoints, or Theme Builder templates. Your layouts stay pixel-perfect because the translation layer swaps words, not code.
SeaText installs as a WordPress plugin. Once activated, it scans every page, post, product, and custom post type for translatable text. It stores each string and serves translations when visitors arrive. The original Divi builder output is never rewritten. Divi's PHP rendering, dynamic CSS generation, and JavaScript module initialization all run before SeaText touches the page.
Any module that outputs visible text gets its strings translated. This includes headings, buttons, blurbs, testimonials, pricing tables, forms, and navigation elements. Labels, placeholders, button copy, alt text, and ARIA labels are included. Settings panels, design tabs, custom CSS fields, responsive visibility toggles, hover states, animation settings, and all other configuration options remain exactly as you configured them.
Because SeaText only replaces text strings, your column structures, spacing, sizing, positioning, and z-index values are untouched. Global modules, saved layouts, and library items keep their structure. When a global module is translated, the translation applies to every instance without duplicating or altering the module itself. Theme Builder templates, header layouts, footer layouts, and archive templates preserve their structure. Only the text content inside those templates is swapped.
Divi's responsive controls — column stacking order, tablet and phone visibility, custom spacing per breakpoint, font size scaling, and column width percentages — are defined in CSS that SeaText never touches. A three-column row that stacks to one column on mobile will do so in every language exactly as it does in English. Right-to-left languages like Arabic and Hebrew get automatic RTL handling. Divi's flexbox and grid layouts handle RTL natively. Column order reverses, margins flip, and text aligns right without extra work.
SeaText gives you a dashboard where you can review and edit any translated string before it goes live. You can lock brand terms, product names, or slogans so they never change. You can set glossary rules for consistent terminology across languages. You can enable A/B tested variants for high-traffic pages to find the copy that converts best in each market. You can exclude specific pages, modules, or CSS selectors from translation. These controls work at the string level and do not require rebuilding layouts.
Sources mention Divi Auto Translate as an alternative translation option for Divi sites. It is built into Divi and translates content within the Visual Builder. SeaText differs by offering automatic background translation of new content across 125 languages with a single dashboard for review and control.
Hard-coded strings in custom PHP or JavaScript may not be detected automatically. Text inside images, SVGs, or canvas elements is not translated. Dynamic content from third-party APIs that injects HTML after page load is outside SeaText's server-side filter. Extremely long translations in languages like German or Finnish can overflow narrow columns designed for English. Font support depends on your chosen fonts including glyphs for target languages; SeaText does not swap fonts.
| Fact | Detail |
|---|---|
| Translation scope | All WordPress pages, posts, products, custom post types, theme builder templates |
| Languages supported | 125 |
| Layout impact | Zero — CSS, structure, module settings, responsive rules untouched |
| RTL support | Automatic; Divi flex/grid handles reversal |
| New content | Translated automatically in background |
| Control features | Edit translations, lock brand terms, glossary, A/B variants, exclusion rules |
| Integration method | WordPress plugin; no shortcodes, no duplicate pages |
| Divi compatibility | All modules, Theme Builder, global modules, library items, responsive settings |
No. The URL stays the same. Language is detected from the visitor's browser headers, a cookie, or a query parameter. SEO tags such as hreflang and lang attribute are injected automatically so search engines understand the multilingual structure.
Yes. The dashboard lets you exclude pages by URL pattern, post type, or taxonomy. You can also exclude individual modules by adding a CSS class in the module's Advanced → CSS ID & Classes field.
It stays exactly as written. SeaText never parses or modifies CSS. If your custom CSS targets text content via pseudo-elements, those strings won't be translated — they are CSS, not HTML text nodes. Move translatable strings into the module's content fields instead.
Add them to the glossary as "do not translate" entries. SeaText will preserve them in every language.
Divi's fluid containers and responsive text settings handle most expansion. For extreme cases, use the dashboard's preview mode to spot-check tight modules. You can set a shorter approved translation for that specific string without changing the layout.
Yes. When you import a Divi Cloud layout, its text strings are indexed and translated like any other page. The layout JSON is never modified.
SeaText translates text only. For language-specific images, use Divi's conditional visibility features or dynamic content shortcodes that check the current language.
SeaText AI translates your Divi content by swapping text strings at render time. Your layouts, responsive rules, module configurations, Theme Builder templates, and custom code all remain exactly as you built them. The translation layer is additive, reversible, and invisible to the layout engine. You get 125 languages without maintaining 125 versions of every page.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.