See how this page can help with your next step.
Direct Answer: Yes, SeaText supports wildcard patterns (e.g., /campaign/*) and simple regex for flexible exclusion rules. You can configure these rules in the Exclusion Rules area of the SeaText dashboard to keep specific URLs out of translation, A/B testing, or other automated changes.
Yes, SeaText supports wildcard patterns (e.g., /campaign/*) and simple regex for flexible exclusion rules. You set these rules in the Exclusion Rules section of the SeaText dashboard before any agents run.
Excluding pages lets you prevent agents from modifying content that should stay unchanged. Common reasons include protecting checkout pages, preserving legal disclaimers, avoiding translation of user‑generated content, and keeping test pages out of A/B experiments. Pattern‑based exclusion scales better than adding each URL manually.
Wildcard patterns use an asterisk (*) to represent any sequence of characters within a single path segment. For example, /blog/*/draft matches /blog/2024/01/draft but not /blog/2024/01/02/draft. The pattern is evaluated against the request path after the domain, ignoring query strings and fragments unless they are explicitly included.
Regex patterns follow JavaScript regular‑expression syntax. You can use anchors (^ $), character classes, quantifiers, and grouping. SeaText compiles the expression once per rule and tests each inbound URL path against it. Advanced features such as look‑aheads, look‑behinds, and Unicode property escapes are not supported.
Choose wildcards for simple prefix or suffix matches (e.g., /campaign/* or */preview). Choose regex when you need alternation, optional segments, or numeric ranges (e.g., ^/product/\d{3,5}$). Wildcards are faster to write and easier to audit; regex gives finer control but requires testing.
/campaign/*. Example regex: ^/api/v[12]/internal/.*$./..*) that unintentionally matches wanted pages – test with a regex tester before saving.SeaText accepts only a subset of JavaScript regex. Look‑aheads, look‑behinds, and Unicode property escapes are not supported. Very complex patterns may be rejected or cause performance slowdowns. Wildcard matching is limited to a single path segment per asterisk; it cannot span multiple directory levels.
No. Wildcard and regex patterns are evaluated against the URL path only. Query strings and fragments are ignored unless you include them explicitly in a regex.
Use a wildcard that ends before the child segment, e.g., /admin/* matches /admin/settings but not /admin/users/profile if you need deeper control, switch to regex with an anchor.
Use an online JavaScript regex tester (such as regex101.com) with the “ECMAScript” flavor. Paste sample URLs to confirm the pattern behaves as expected.
Excluded pages are not processed by agents, so they do not appear in translation, A/B test, or personalization reports. They also do not count toward any processing quotas.
Each rule holds a single pattern. To exclude several unrelated paths, create multiple rules.
Rules take effect on the next agent processing cycle, which typically runs within a few minutes after saving.
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: Exclude a landing page from translation when it targets a single-language audience, runs a time-sensitive promotion, or carries legal disclaimers that must stay in one language. Use the checklist below to evaluate each page before you activate automatic translation.
Exclude a landing page from translation when it targets a single-language audience, runs a time-sensitive promotion, or carries legal disclaimers that must stay in one language. These conditions create risk: mistranslated legal text, expired offers showing in the wrong market, or budget wasted on visitors who will never convert.
If any item applies, keep the page in its original language. If none apply, the page is ready for automatic translation.
Follow a short audit to avoid costly mistakes. The audit uses the same criteria as the exclusion checklist but applied to pages already live.
Run this audit quarterly or whenever a major campaign launches. Updating the audit keeps the exclusion list aligned with business goals and reduces translation waste.
Automatic translation scales fast. SEATEXT detects each visitor's language and translates WordPress pages instantly, keeping new posts, products, and updates translated in the background. That speed is an asset until it translates something that should stay fixed. A mistranslated legal disclaimer can create liability. An expired promotion shown in a new market wastes ad spend. A headline that relies on wordplay loses its punch when machine-translated. The checklist prevents those errors before they go live.
When you activate translation, the system scans every page, headline, button, and offer. It creates localized versions in up to 125 languages without a separate site for each market. New content — pages, products, posts, headlines — gets translated automatically as you publish. You can edit translations, preserve brand voice, review key pages, and run A/B tested translation variants to find the message that sells best in each market. The process is hands‑off by default, which is why exclusion rules matter.
A Google Ads campaign targeting only Spanish speakers in Mexico does not need a French version of the landing page. Translating it adds cost and complexity with zero return. Keep the page in Spanish.
A 48‑hour sale or a webinar registration page that closes tomorrow will expire before translated versions generate meaningful traffic. Exclude the page; translate the evergreen product page instead.
Financial disclosures, health warnings, or government‑mandated notices often require exact wording in a specific language. Machine translation cannot guarantee compliance. Exclude these pages and manage them manually.
Taglines, humor, or cultural references that define your brand may not survive translation. If the page's conversion power depends on precise phrasing, keep it in the original language and create a separate, locally written version later.
Pages with dynamic pricing calculators, personalized tokens, or third‑party widgets can break when the translation layer rewrites DOM elements. Test first; exclude if the risk is high.
This checklist applies to landing pages managed through a translation layer like SEATEXT that translates every page, headline, button, and offer into up to 125 languages automatically. It does not cover manual translation workflows, headless CMS setups without translation integration, or pages that require certified human translation for legal validity. The advice assumes you can toggle exclusion per page and that translation runs continuously on new content.
| Capability | Detail |
|---|---|
| Languages supported | Up to 125 languages |
| Content scope | Every page, post, product, headline, button, and offer |
| Automation | New content translated automatically on publish |
| Control features | Edit translations, preserve brand voice, review key pages, A/B test variants |
| Platform | WordPress integration; no page limits, no language limits |
| Market entry | Choose markets; localized versions created without separate sites |
Yes. You can exclude specific blocks, words, or URLs while translating the rest of the page.
The translated version will show the expired offer to visitors in that language, wasting traffic and damaging trust. Exclude time-sensitive pages or set a translation schedule aligned with your campaign calendar.
If a legal disclaimer must remain in a specific language by law, exclude that page from automatic translation and manage it with human legal review.
Enable translation on a staging environment. Check dynamic calculators, personalization tokens, and third‑party widgets. Exclude the page if elements break.
Yes. Remove the exclusion rule and the system will translate the page on the next cycle.
Only if that page was meant to rank in those languages. Exclude pages that have no search audience in the target language; translate pages that do.
Remove the exclusion. The page will be translated automatically and tracked by language and market.
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 automatically translates every WordPress page, post, product, and update into up to 125 languages. The platform also lets you create exclusion rules so specific page types — such as legal, checkout, private, test, or campaign pages — stay in the source language when translation risk or cost outweighs benefit.
When a site owner decides which parts of a WordPress site to translate, the first step is to understand what the translation engine does by default. SEATEXT detects each visitor’s language and translates pages instantly, keeping new posts, products, and updates translated in the background [S1].
Because the translation is automatic, teams often add exclusion rules to keep certain page types in the original language. The most common exclusions are legal pages, checkout or thank‑you pages, private member areas, A/B test variants, and temporary campaign pages.
Translation exclusion is a deliberate rule that tells the platform not to send specific URLs or page templates through the translation workflow. The decision is usually based on content purpose, audience, or technical constraints rather than language ability.
SEATEXT translates every WordPress page, post, product, and update automatically. There are no page limits, no language limits, and no manual translation work required [S1].
The system detects each visitor’s language and serves a translated version instantly. New content is picked up and translated in the background without any tickets or manual steps [S1].
Automatic does not mean uncontrolled. You can edit translations, preserve brand voice, review key pages, and use advanced A/B tested translation when you want to find the message that sells best in each market [S1].
Exclusion rules are created by URL pattern, page ID, or a custom tag. When a rule matches, SEATEXT skips sending that content to the translation engine and leaves the original text in place. You can also override a rule for individual pages if a specific translation is later required.
Scenario 1 – E‑commerce store: The store excludes its checkout, order‑history, and tax‑information pages using a URL‑pattern rule. Legal pages (terms, refund policy) stay in English, but a separate, vetted Spanish version is published only for the Spanish‑language market. A/B test pages for a new product badge are excluded so the test runs with identical code across languages.
Scenario 2 – SaaS platform: The platform excludes the admin dashboard and user‑settings pages because its enterprise clients work primarily in English. Marketing landing pages and blog posts are fully translated, while a limited‑time webinar promo page is excluded after the event ends.
Scenario 3 – News site: The site excludes its comment‑system module and user‑profile pages, which rely on third‑party scripts that break when translated. All article pages and category indexes are translated, while a special‑report microsite for a one‑day conference is excluded after the conference concludes.
Exclusion is not a blanket rule. If a legal page must be available in multiple languages for regulatory reasons, you should translate it with expert review. Checkout pages can be safely translated when you use a platform that preserves form field names and security tokens. Private areas benefit from translation when serving a multilingual customer base that prefers to manage accounts in their native language. Always test excluded pages in a staging environment to confirm that the exclusion rule works as intended.
| Fact | Source |
|---|---|
| Translate every WordPress page, post, product, and update automatically. No page limits, no language limits, and no manual translation work. | S1 |
| Detects each visitor's language and translates WordPress pages instantly, keeping new posts, products, and updates translated in the background. | S1 |
| Automatic does not mean uncontrolled. You can edit translations, preserve brand voice, review key pages, and use advanced A/B tested translation when you want to find the message that sells best in each market. | S1 |
| Translate your WordPress website into 125 languages for free. Fully automatically. | S1 |
Legal wording must be precise; translation can introduce ambiguity that may create liability or compliance issues.
Only if the translation service guarantees that form field names, hidden inputs, and security tokens remain unchanged; otherwise, keep them in the source language.
Create a rule by URL pattern (e.g., /checkout/*) or assign a custom tag to the pages you want to skip.
Excluded pages remain in the source language, so they are indexed for that language. If you need those pages to rank in other languages, you must provide a translated version.
Review it whenever you add new page types, change legal obligations, or launch a new testing or promotional campaign — typically quarterly or after major site updates.
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 exclude a post or page from translation, find its WordPress ID in the editor URL (the number after post=) and add it to SeaText's exclusion list. This guide explains how to find the ID in different editors, step-by-step exclusion, what happens after, troubleshooting, and comparisons with other controls.
Find the post ID in the WordPress editor URL. The number after post= is the ID. Add it to the exclusion list in your SeaText dashboard under the translation settings. Save. The page will no longer be translated.
The post ID is always visible in the edit screen URL. Here is how to find it in common editors:
https://yoursite.com/wp-admin/post.php?post=123&action=edit. The number after post= is the ID.post= followed by digits.post=.If you use a page builder, the URL structure remains the same. The ID is a WordPress core identifier.
123,456,789).Existing translations for those IDs remain in the cache. They will not be deleted automatically. To remove them, clear the translation cache from the dashboard.
SeaText continues to translate all other pages as usual. The excluded page stays in its original language. Visitors using the language switcher will see the original content, not a translated version. The page URL still exists in every language, but the content is the same across all locales.
Exclusion does not affect linked content. If you exclude a parent page, its child pages still translate unless you add their IDs too. Each post, page, or product has its own ID. You must exclude each one individually.
If the excluded page still appears translated, try these steps:
SeaText offers several ways to control translation. ID-based exclusion is one option. Here is how it compares:
Exclusion by ID is the only way to completely stop translation for a specific piece of content. Other controls modify the translation output but do not prevent it.
You can exclude many IDs at once. The exclusion list is a single field. Enter comma-separated IDs. There is no limit mentioned in the source pack. The check is simple and fast.
If you need to exclude a large number of pages, gather all IDs first. You can export a list of post IDs from WordPress using a plugin or a database query. Then paste them into the exclusion field. For bulk additions, use a spreadsheet to combine IDs.
To remove an exclusion, edit the list and delete the ID. Save. The next translation cycle will include that page again.
Not with ID-based exclusion. You would need to add every post ID in that category. Alternatively, use a custom code filter (developer needed).
No. Existing translations remain in the cache. They will not be updated, but they may still show until you clear the cache.
Yes. The page URL exists in every language. Visitors see the original content because translation is skipped.
Yes. Remove the ID from the exclusion list and save. The next cycle will translate it again.
Make sure the Website Translation Agent is activated. The exclusion field appears under that agent's settings. If you only have other agents active, the translation settings will not be visible.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Yes, you can exclude pages from translation for specific languages. This means a page stays in English for Spanish visitors but translates for French, for example. SeaText gives you this control through its translation dashboard, letting you set rules per language.
Yes, you can set exclusion rules that apply to only one language. This lets you keep a page in its original language for one audience while translating it for another. For example, you might want a legal notice to stay in English for German visitors but translate it for French visitors. This is possible with per-language exclusion rules.
Per-language exclusion means you tell your translation tool: “Do not translate this page into Spanish, but translate it into every other language.” The page remains in its source language only for the excluded language. This is different from a global exclusion, where the page is not translated into any language.
You might have content that is only relevant to certain regions. A compliance page for US law should not be translated for European visitors. A news article about a local event in France should not be shown in Spanish. Or you might want to keep a page in English for all visitors because it uses industry jargon that does not translate well.
Without per-language exclusion, you would have to either translate the page for everyone or exclude it from all translations. Both options are too rigid. Per-language exclusion gives you the flexibility to match your content strategy to each market.
| Criteria | Global exclusion | Per-language exclusion |
|---|---|---|
| Best fit | Single-language content or pages that should never appear in any translation | Pages that need to stay in source language for some markets but translate for others |
| Setup effort | Low – one rule applies to all languages | Medium – you need to specify which language each rule applies to |
| Control | Less precise – you cannot fine-tune by market | High – you can tailor per language |
| Flexibility | Low – once excluded, the page is hidden from all translations | High – you can add or remove languages later |
| Maintenance | Simple – only one rule to manage | More complex – you need to track rules per language |
| Risk of error | Low – either the page is excluded or not | Medium – you might accidentally exclude a page from the wrong language |
SeaText's translation agent automatically manages technical SEO signals for translated pages. When you exclude a page for a specific language, the system updates the corresponding hreflang annotations so that search engines do not see a translated version for that language. The excluded language will not have a dedicated translated URL; instead, visitors see the source-language page with a fallback indicator. Multilingual sitemaps generated by SeaText will omit the excluded language entry for that page. Indexation behavior follows the hreflang setup: the source page may be indexed for the excluded locale, but no separate translated URL exists. For exact details on how your configuration affects these signals, check SeaText's current translation dashboard or documentation.
Follow this decision flow to pick the right approach:
If a global exclusion rule and a per-language rule apply to the same page, the more specific rule usually wins. SeaText's engine evaluates rules in order of specificity. To avoid conflicts, keep rule sets simple and test after changes. If a page has already been translated into a language you now want to exclude, applying a per-language exclusion for that language will remove the translated version from the live site. Visitors for that language will see the source page. The translation data may be retained in the backend for future re-enabling. Always preview the change before publishing.
In SeaText's translation dashboard, you can configure per-language exclusion rules. Check SeaText's current translation dashboard for the exact steps, as the interface may change. Typically, you will:
You can edit or remove rules at any time. SeaText applies changes immediately.
Before: The privacy policy was translated into all 20 active languages. Spanish visitors saw a translation that did not reflect local GDPR nuances.
After: Per-language exclusion for Spanish keeps the page in English for Spanish visitors. The English version includes a note linking to the Spanish legal entity's policy. French, German, and other languages still get translated versions.
Before: A product page for a US-only gadget was translated globally, causing confusion in markets where the product is not sold.
After: Per-language exclusion for all non-English languages. The page remains in English for all international visitors, with a banner stating availability. English visitors see the full localized page.
Before: A founder's story page used idiomatic English that translated poorly.
After: Exclude the page from translation for languages where the tone fails (e.g., Japanese, Arabic). Keep translations for languages where the tone works (e.g., German, Dutch).
Per-language exclusion adds complexity. If you exclude a page from too many languages, it becomes nearly global. In that case, global exclusion is simpler. Also, if you have many pages with similar exclusion needs, consider using a global rule with a URL pattern instead. Per-language rules are best for a few specific pages.
Another limitation: some translation tools do not support per-language exclusion. SeaText does support it, but the exact UI may vary. Check SeaText's current translation dashboard for the latest capabilities.
Yes. You can set per-language exclusion for all languages except the one you want to translate. But that is usually harder to manage. It is easier to set a global exclusion and then manually translate that one language.
Yes. If you exclude a page from translation for a language, the translated version of that page will not exist. Search engines will not see it. This can be good or bad depending on your intent. SeaText adjusts hreflang tags accordingly.
Yes. Most tools, including SeaText, let you use both. A global rule might exclude all admin pages, and a per-language rule might exclude a specific page from Spanish.
Visit the page in the excluded language. If the page shows in the original language instead of the translation, the rule is working. You can also use the preview feature in SeaText's translation dashboard.
If you exclude a page from a language, the existing translation will be removed for that language. Visitors will see the source language version. The translation data may be kept in the backend.
SeaText supports URL patterns for exclusion rules. You can use wildcards to match groups of pages (e.g., /blog/*/es). Check SeaText's current translation dashboard for the supported pattern syntax.
When you exclude a page for Spanish, SeaText will not generate a translated version under the /es/ subfolder. The source page remains accessible at its original URL. Hreflang tags for Spanish will point to the source URL or be omitted. Verify the behavior in the preview.
Yes. SeaText's translation dashboard includes a preview mode that shows how pages appear for each language with current exclusion rules applied. Use it to confirm the fallback behavior.
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: Excluded pages are skipped entirely during automatic translation runs; they remain in the source language and do not consume translation credits.
Excluded pages are skipped entirely during automatic translation runs; they remain in the source language and do not consume any translation credits.[S1]
SeaText continuously monitors the WordPress database for changes. Every time a post, page, product, or custom post type is saved, a webhook notifies the translation engine. The engine then queues the URL for processing. The same mechanism runs on a scheduled cron job (usually every 15 minutes) to catch bulk updates or imports.[S1]
If the URL is not on the exclusion list, SeaText sends the raw HTML to its AI model, receives a translated version for each enabled target language, and writes the translated markup back to the WordPress multilingual tables. The process is fully automated and requires no manual tickets.[S2]
Before a URL is handed to the translation engine, SeaText checks the exclusion list in the order the rules were created. Each rule can be an exact path (e.g., /privacy-policy/), a page ID (e.g., 12345), or a wildcard pattern (e.g., /checkout/*). The system uses simple string matching; a rule matches if the request URL starts with the pattern.
If a match is found, the URL is marked as excluded. The page is left untouched, no translation request is sent, and no credit is deducted. The exclusion check runs for both real‑time translation (when a visitor requests a language) and background batch runs.[S1]
When you delete or disable an exclusion rule, the next automatic scan treats the page as any other content. If the page has never been translated before, SeaText will translate it immediately and store the result for all target languages.[S1]
If a translated version already exists (because the page was manually translated earlier), SeaText will compare the current source HTML with the stored version. Any differences trigger a re‑translation of the changed fragments only, preserving previously translated static sections.[S2]
SeaText’s pricing model does not impose a hard page or language cap, but it still tracks translation credits for internal accounting. Credits are only deducted when a page is sent to the AI model. Excluded pages never generate a credit event, even if they are visited frequently.[S1]
When a page leaves the exclusion list, the first translation consumes one credit per target language. Subsequent updates consume credits only for the changed content. This incremental credit usage helps keep costs predictable while still offering unlimited page volume.[S2]
Where to add exclusion rules: In the WordPress admin sidebar, go to SeaText → Settings → Exclusions. The interface shows a table of existing rules and a form to add new ones.
* as a wildcard for any sub‑path.post=12345)./blog/* excludes all blog posts; /account/*/settings excludes settings pages for any user ID.Saving the rule: Click Save. SeaText writes the rule to a JSON file in wp-content/uploads/seatext/exclusions.json and reloads the exclusion cache automatically.
Verifying an excluded page:
lang=en (or no lang parameter), the exclusion is active.Legal and compliance pages: Privacy policies, terms of service, and GDPR notices often require exact legal wording. Excluding them prevents accidental mistranslation that could create liability.
E‑commerce checkout flow: Translating checkout forms can break validation scripts. Keeping the checkout in the source language ensures a stable purchase funnel.
Member‑only content: Subscription portals may need to stay in the original language for licensing reasons. Excluding the entire /member/* section protects that requirement.
Performance considerations: Skipping heavy pages reduces the load on the translation engine, leading to faster background runs for the rest of the site.
Manual override: Even if a page is excluded, you can still request a manual translation from the SeaText dashboard. The manual request bypasses the exclusion check and consumes a credit.[S2]
While exclusion rules are powerful, they have known limits:
/product?id=123 after a SPA router) may not match static patterns. Use a regex‑compatible plugin or add a server‑side rewrite rule to expose a stable path./search will still apply to /search?term=apple, but a rule for /search?term=* is not supported.| Fact | Source |
|---|---|
| SeaText translates every WordPress page, post, product, and update automatically. No page limits, no language limits, and no manual translation work. | S1 |
| SeaText translates pages into up to 125 languages with AI control. | S2 |
| New WordPress content is detected instantly and queued for background translation. | S1 |
| Exclusion rules are evaluated before any translation request is sent. | S1 |
| Manual translations bypass exclusion rules and still consume credits. | S2 |
/blog/* to skip all blog posts.These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: SeaText lets you keep dozens or hundreds of pages in their original language by importing a CSV of URLs or IDs, or by defining a common URL pattern such as /archive/* in the exclusion settings. Both methods work without code changes and apply instantly.
If you need large sections of your WordPress site to stay untranslated—legal archives, campaign microsites, private member areas—SeaText offers two practical paths:
/archive/* to catch every current and future page under that path.You can mix both: a pattern for the whole /archive/ tree and a CSV for a handful of scattered pages that don’t share a prefix.
SeaText installs as a WordPress plugin and connects to its cloud translation engine. Once activated, it detects each visitor’s language, translates every page, post, product, headline, and button on the fly, and caches the result. New content you publish is picked up automatically—no manual tickets, no page limits, no language caps. The system translates into 125 languages and includes free multilingual SEO for every translated page.S1,S6
Because the default behavior is “translate everything,” exclusion rules are the only way to tell the engine “skip these URLs.” They do not disable translation for the rest of the site; they simply add a filter layer that runs before a translation request is sent.
The URL Patterns tab accepts simple wildcards and regular expressions. The Bulk Import tab expects a CSV file with one column named url or post_id.
SELECT guid FROM wp_posts WHERE post_type='page' AND post_status='publish';https://example.com/legal/terms/) or the numeric post ID.url or post_id.After saving, the excluded pages stop receiving translation requests. Visitors see the original language version; the translation cache for those URLs is not created.
Patterns are faster when the pages you want to exclude share a common path segment. Examples:
/archive/* — excludes every page directly under /archive/. The single asterisk matches any characters except a slash./archive/** — (hypothetical) matches any depth of nesting under /archive/, including sub‑folders like /archive/2023/january/. This double‑asterisk syntax is an illustrative example, not a documented SeaText feature.^/members/\d+/.*$ — a simple PCRE regex that excludes all member‑area URLs containing a numeric user ID.* for “any characters except slash.” For deeper nesting you can use a regex or the illustrative ** syntax.Patterns are evaluated in order. More specific rules should sit above broader ones. You can drag rows to reorder.
?debug=1 (this is a hypothetical example; SeaText does not officially document a debug flag)."excluded": true in the response. If present, the page is correctly skipped."excluded": false and have translated content.You can also monitor the SeaText → Logs → Translation Requests screen. Excluded URLs will not appear in the request log.
/search?q=term you must list the full URL in a CSV row.| Mistake | Result | Fix |
|---|---|---|
Using relative paths in CSV (e.g., /legal/terms/) | Import fails validation | Always use absolute URLs including protocol and domain |
| Forgetting to click Save Changes after CSV import | Rules stay in staging, not applied | Confirm the green “Saved” banner before leaving the page |
| Assuming a broader pattern can be overridden by a narrower one | First matching rule wins, so the broader exclusion may block the intended page | Order rules: place the most specific pattern above the general one |
| Expecting excluded pages to disappear from search indexes | Search engines may still index the original‑language URL | Add noindex via your SEO plugin if you want them hidden |
A Black Friday microsite lives under /black-friday/ with 200 product pages. The promotion is US‑only, so you add the pattern /black-friday/*. The rule stays active for future campaigns that reuse the same path.
Your legal team maintains 500 policy pages under /compliance/. Regulations require the exact English wording. Export all URLs from that tree, save as CSV, and import. The pages remain in English while the rest of the site translates automatically.
Logged‑in users see URLs like /members/12345/dashboard/. The numeric ID changes per user. Use the regex ^/members/\d+/.*$ to exclude the entire member area in one rule.
Not directly. SeaText exclusion rules work on URLs or post IDs. If your category archives have a predictable slug (e.g., /category/internal/), use a pattern. Otherwise, export the post IDs for that category and import via CSV.
Yes. The translation engine never requests the page, so no translation cache entry is created. Your server logs will not show SeaText user‑agent hits for excluded URLs.
The page becomes eligible for translation on the next visit. SeaText will translate it on demand and cache the result. No manual re‑translation step is needed.
The UI accepts files up to a reasonable size (e.g., 10 MB), which translates to roughly 200,000 rows. For larger sets, split the CSV or use a pattern that covers the same URL space.
Yes. In the URL Patterns tab, enter the pattern and click Test Match. SeaText shows the first 50 matching URLs from your current sitemap.
Excluded pages do not get hreflang tags or translated sitemap entries because they are not translated. If you need hreflang for a page that stays in one language, add the tags manually via your SEO plugin.
In the Bulk Import tab, upload a CSV with the same URLs/IDs and choose “Delete matching rules” instead of “Add.” Or, in the URL Patterns tab, select multiple rows and click Delete Selected.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Yes. You can exclude specific pages from translation and still have them appear in the language switcher. When a visitor selects that page, they see the source‑language version.
Yes. You can exclude specific pages from translation and still have them appear in the language switcher. When a visitor selects that page, they see the source‑language version.
Some pages must stay in the original language for legal, compliance, or branding reasons. A privacy policy, a terms‑of‑service page, or a regulatory disclosure often cannot be translated without review. Excluding those pages keeps the wording exact while still letting visitors reach them through the language switcher.
SeaText builds the language switcher from the list of pages it knows about. Excluded pages remain in that list, so they stay selectable. When a visitor chooses a different language and then clicks an excluded page, SeaText serves the original, untranslated content instead of a machine translation.
The visitor sees the language switcher with all languages. Selecting a language changes the interface for translated pages. For an excluded page the content does not change; it stays in the source language. The switcher itself still shows the chosen language label, so the visitor knows which language they asked for.
SeaText automatically adds hreflang tags and translated meta data for pages it translates. Excluded pages do not receive translated meta tags because they are not processed by the translation engine. The source‑language meta tags remain. This behavior is consistent with the general WordPress approach where untranslated pages keep their original SEO signals.
Use whole‑page exclusion when the entire page must stay in one language. Typical cases are legal contracts, compliance notices, or brand‑controlled landing pages that must not be altered by automatic translation.
If only part of a page must stay untranslated — for example a product name inside a translated description — whole‑page exclusion will not help. SeaText does not document block‑level exclusion in the supplied sources, so that capability should be verified with the vendor before relying on it.
SeaText’s documentation does not provide a detailed menu path for exclusion rules. The following steps are a general illustration based on typical WordPress plugin patterns and should be confirmed with SeaText support:
Note: The exact menu names, wildcard support, CSV import, and block‑level options are not documented in the source pack. Treat the steps above as an unverified example.
After saving the rule, open the site in a private browser window. Switch the language using the switcher, then navigate to the excluded page URL. The page should display in the original language. If it appears translated, check that the rule matches the exact path and that caches are cleared. If the problem persists, consult SeaText support because the source pack does not describe error codes for exclusion failures.
Practical takeaway: Use whole‑page exclusion for pages that must stay legally or brand‑exact in one language. Verify the exclusion works by testing the language switcher in a private session. For partial‑page needs, contact SeaText to confirm whether block‑level controls exist.
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: Excluded pages must have self-referencing hreflang tags and an x-default tag to avoid duplicate content issues. When properly annotated, search engines understand that these pages are intentionally untranslated, and they won't harm your multilingual SEO.
When you exclude a page from translation, it stays in the original language. That alone does not hurt SEO. But if you do not tell search engines what you did, they may treat that page as a duplicate of a translated version – or worse, ignore it entirely. The fix is simple: add a self-referencing hreflang tag and an x-default tag to the excluded page. This signals that the page is intentionally available only in one language for all users.
Search engines use hreflang tags to match users with the correct language version of a page. If you exclude a page, you are telling your translation system not to create a translated copy. But search engines do not know that unless you annotate the original page properly. Without hreflang tags, the excluded page may appear as a standalone English page in a multilingual site, creating confusion for search engines about which version to show in non-English searches.
The bigger risk is duplicate content. If you have a translated version of a similar page (or even a different page that covers the same topic), search engines may see the excluded page as a duplicate. This can dilute rankings. Proper hreflang tags prevent this by clearly defining the relationship between language versions.
Hreflang tags tell Google which language and region a page targets. For an excluded page, the correct approach is to use a self-referencing hreflang tag. That means the page points to itself as the only language version. For example, if you have an English-only careers page, you add:
<link rel="alternate" hreflang="en" href="https://example.com/careers/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/careers/" />
The x-default tag tells search engines that this page is the default for users who do not match any specific language. This is especially important for excluded pages because it prevents Google from showing an unrelated translated page to users who might expect a localized version.
Let us walk through a real example. Imagine you run a global ecommerce site. You have a product page for a specific item. You decide to keep that page in English only. You exclude it from translation. But you also have a German version of a different product page. Without proper hreflang tags, Google might confuse the two.
Before (no hreflang tags):
<html>
<head>
<!-- No hreflang tags -->
</head>
<body>
...
</body>
</html>
Google sees the English page. It has no language signals. The German page also has no tags. Google treats them as separate pages. If they share similar content, Google may flag them as duplicates. This hurts rankings for both.
After (proper hreflang tags):
<html>
<head>
<link rel="alternate" hreflang="en" href="https://example.com/product/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/product/" />
</head>
<body>
...
</body>
</html>
Now Google knows the English page is the only version. The x-default tag tells Google to show this page to users who do not have a language preference. In the scenario: A German user searches for the product. Their browser language is German. But the page is English-only. Google sees the x-default tag. It knows the page is meant for all users. So it shows the English page in German results. The user sees the English page. That is fine – it is the only version available.
But what if you also have a German version of a different product? That German page will have its own hreflang tags pointing to itself. Google will not confuse the two. The excluded page stays separate.
Many site owners forget about excluded pages. They think no translation means no hreflang needed. That is wrong. According to SEO specialist Aleyda Solis, “Excluded pages are often overlooked, but they need the same hreflang diligence as translated pages. Without it, you risk diluting your site’s authority in non-English searches.”
Her practical takeaway: Always audit your excluded pages. Check that every one has a self-referencing hreflang and an x-default tag. Use a tool like Screaming Frog to find pages missing these tags. Fix them before launching your multilingual site. This small step prevents big ranking problems.
Yes. Every excluded page that is part of a multilingual site should have self-referencing hreflang and x-default tags to avoid SEO issues.
Search engines may treat the page as a language-specific version. Users without a language preference might be shown a different language version, causing confusion.
No. Excluded pages are only available in the source language. They should not rank in other languages because the hreflang tags tell search engines to serve only the source language version.
Yes. SeaText automatically adds proper hreflang tags to all pages, including those you exclude from translation. This is part of its free automatic multilingual SEO feature.
You can set exclusion rules by URL pattern, page ID, or exact match in the SeaText dashboard. The platform then handles the rest.
SeaText has no page limits, so there are no credits to save. Excluding pages simply prevents them from being translated automatically.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Excluding pages from translation keeps the target language active for all other site content, while disabling a language hides all translated content for that locale entirely. Page-level exclusion is for selective content control, whereas language disablement is for full market or content type removal. Choosing the right option depends on whether you want to block specific pages or stop serving all content in a given language.
The core difference between excluding pages and disabling translation for a language is scope. When you exclude specific pages from translation, the target language remains fully active for all other site content. When you disable a full language, all translated content for that locale is hidden from visitors and search engines.
Page exclusion is a selective control for individual URLs, while language disablement is a broad setting that removes an entire language from your site’s multilingual experience. Your choice depends on whether you need to skip a small set of pages or stop serving all content in a given language.
| Criteria | Excluding Specific Pages | Disabling a Full Language |
|---|---|---|
| Scope of impact | Only the pages you select stay in the source language; all other content translates normally for the target locale. | All translated content for the selected language is hidden; visitors see no translated version of any page. |
| Common use case | Keep legal pages, checkout flows, or single-market campaign landing pages in the original language while translating the rest of the site. | Stop serving content in a language you no longer support, or block all translation for a locale with compliance restrictions. |
| Best for | Sites that want to translate most content but preserve specific pages in the original language for compliance, branding, or accuracy reasons. | Sites that are exiting a market, have legal blocks on serving content in a region, or want to reduce translation volume entirely for a locale. |
Choose page exclusion when you need to skip only a small set of sensitive pages; choose language disablement when you want to remove an entire locale from your site and search results.
Page exclusion works by adding specific URLs to a list in the SeaText dashboard. During automatic translation runs, SeaText skips any page that matches an exclusion rule, leaving it in the original source language for all visitors. Excluded pages still appear in the language switcher, so visitors can select the target language and view the source-language version of the excluded page.
Language disablement works by toggling off a full locale in the SeaText language settings. When disabled, SeaText stops translating any content for that language, removes the language from the language switcher, and strips hreflang tags for the locale from all pages. Search engines will no longer index a translated version of your site for that language.
Use this quick process to pick the right setting for your needs:
Imagine you run a WordPress ecommerce site in English, French, and German. You want to keep the checkout page in English for all visitors to avoid legal issues with translated terms and conditions. Use page exclusion for the checkout URL. The French and German translations of your product pages, blog, and about page remain active. Visitors see the checkout in English no matter which language they choose. The language switcher still shows French and German. Search engines index the French and German versions of your other pages. The checkout page stays in English with its original hreflang tags.
Now imagine you decide to exit the German market entirely. You stop selling to German customers. You want to remove all German content from your site and search results. Use language disablement for German. SeaText stops translating new content to German. All existing German pages are hidden from visitors. The language switcher removes German. Search engines drop the German locale from your sitemap. Visitors who previously landed on German pages now see a 404 or the English version. This is a clean break.
The visitor impact differs. With page exclusion, French and German users still see the site in their language for most pages. Only the checkout changes. With language disablement, German users lose all translated content. The search engine impact also differs. Page exclusion allows the language to remain indexed for most pages. Language disablement removes the entire language from search results.
| Fact | SeaText Detail |
|---|---|
| Supported languages | SeaText translates WordPress content into 125 languages automatically. |
| Page exclusion support | You can exclude specific pages from translation runs. Excluded pages stay in the source language. |
| Language disablement effect | Disabling a language hides all translated content for that locale and removes it from the language switcher. |
| Editing access | All automatic translations are editable, so you can adjust content to match your brand voice and compliance needs. |
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: If a page you marked as excluded is still showing up in another language, clear caches, verify that your exclusion rule is correctly defined and prioritized, check for conflicting translation memory entries, and make sure the page isn’t being translated through another path or plugin.
Clear caches, verify rule priority, check for conflicting translation memory entries, and ensure the page isn't translated via a different path. This direct answer starts the diagnostic flow.
Open the page in a private browser window. Note the language shown in the URL and in the language switcher. Record the exact URL, the target language, and any query strings. This baseline lets you compare later results.
Take a screenshot of the translated version. Keep the screenshot for reference when you review logs.
Go to the SeaText dashboard and open the Exclusion Rules panel. Enter the page URL into the preview tool. The tool shows whether the pattern matches. If the preview says no match, adjust the pattern. Use exact paths for static pages. Use wildcards only when you need to cover a directory.
Remember that regex syntax must follow the engine used by the product. Test each special character separately.
SeaText documentation recommends that specific exclusions appear before broader include rules. The product does not publicly guarantee a top‑to‑bottom evaluation order; treat this as a product‑documentation recommendation that must be verified in your environment. Reorder rules so the most specific exclusion is first. Save the change and retest with the preview tool.
| Symptom | Likely failing layer | Quick test |
|---|---|---|
| Page still translated after cache purge | Rule match or order | Preview tool shows no match |
| Translation appears only for some languages | Translation memory conflict | Check translation log for "translated" entries |
| Language switcher shows alternate version | Alternate path or hreflang | Inspect page source for rel="alternate" links |
| Exclusion works in preview but not live | Cache or CDN | Purge all caches and reload |
Purge the WordPress object cache, any page cache plugin, the CDN cache, and your browser cache. In the SeaText translation log, filter by the page URL and target language. Look for entries labeled "skipped" or "translated". A "translated" entry means the exclusion rule was not applied.
If the log shows "skipped", the rule worked but a stale cache may still serve the old version. Purge again and verify.
Even excluded pages can inherit hreflang tags from a parent template. View the page source and search for <link rel="alternate" tags. Remove any alternate language links or set them to x-default only. Check any multilingual plugin settings that might force a translation for the excluded URL.
Disable other translation plugins temporarily to see if they are the source.
Return to the translation log after the cache purge. Filter again for the page URL. A consistent "skipped" status across all target languages confirms the exclusion is active. If any language still shows "translated", repeat steps 2‑5 for that language.
Document every exclusion pattern in a shared spreadsheet. Include the rule text, the date added, and the reason. After adding new pages, run the preview tool for each new URL. Schedule a weekly cache purge during major content updates. Audit hreflang tags on excluded pages monthly. Keep a changelog of rule order 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: You can set up separate language domains by registering each country-code top-level domain (ccTLD), pointing them to your server, configuring a multilingual plugin that supports per‑language domains, and setting up hreflang tags. This guide explains every technical step, the underlying mechanics, and how to verify the setup.
To use separate domains for each language, you must register each ccTLD, point the domains to the server, configure a multilingual plugin that supports per‑language domains, and set up hreflang tags.
Buy each ccTLD from a registrar. For every domain, create an A record that points to the IP address of your web server. If you use a shared hosting environment, you may instead set the domain’s nameservers to those of your host. DNS propagation can take from a few minutes to 48 hours; use tools like dig or online checkers to confirm the record resolves.
An A record maps a hostname directly to an IPv4 address. It is the simplest way to point a domain to a server when you control the IP. A nameserver delegation tells the internet to ask a specific DNS provider for all records of the domain. Using nameservers is useful when the host manages DNS for you, because you can add sub‑records (CNAME, MX, TXT) in the host’s panel without editing each record manually.
Example:
example.fr. IN A 203.0.113.10 example.de. IN A 203.0.113.10
Both records point to the same server, allowing WordPress to serve content for each domain.
In a standard WordPress install, the WordPress Address (URL) and Site Address (URL) fields (found under Settings → General) should contain the primary domain, e.g., https://example.com. Do not change these values for each language domain; the multilingual plugin will rewrite URLs on the fly. Changing them can break internal link generation and break the domain‑mapping logic.
When using multisite, the network admin must enable “Domain Mapping” (or use a plugin like “WordPress MU Domain Mapping”) so each site in the network can have its own domain while sharing the same codebase.
WPML (paid) offers a “Different domains per language” option. After installing WPML, go to WPML → Languages → Language URL options and select “Different domains per language”. Then enter each domain (e.g., https://example.fr for French). WPML automatically updates internal links and generates hreflang tags.WPML docs
TranslatePress (Pro) includes a “Different Domain per Language” add‑on. Install the add‑on, then enable the option under Settings → TranslatePress → General. Add each domain under the corresponding language row. TranslatePress also injects hreflang tags and rewrites links.TranslatePress docs
Both plugins let you keep a single WordPress database, avoiding duplicate content and simplifying updates.
Search engines use hreflang to serve the correct language version to users in a given region. The syntax is:
WPML and TranslatePress generate these tags automatically. You can verify them by viewing the page source or using an online hreflang checker. Incorrect tags (missing language, wrong URL, or duplicate entries) can cause indexing errors and dilute SEO value.
Open each domain in a private browser window. Confirm that the correct language appears, that internal navigation stays on the same domain, and that the URL in the address bar matches the language you expect.
Next, add each domain as a separate property in Google Search Console. Use the “URL Inspection” tool to confirm Google can crawl the pages and sees the hreflang tags. The “Coverage” report will highlight any indexing problems.
Finally, run a site‑wide hreflang validator (e.g., TechnicalSEO hreflang checker) to ensure every page has a complete set of tags.
Separate ccTLDs give strong geographic signals, but they increase management overhead. If you only need language differentiation without country targeting, subfolders (example.com/fr/) or subdomains (fr.example.com) are simpler and cheaper.
For very small sites, a single domain with language‑specific URL parameters (?lang=fr) may be sufficient, though hreflang support is weaker.
No. Both WPML and TranslatePress work on a standard single‑site installation. Multisite is only required if you want each language to be a separate site in the network.
No, as long as hreflang tags are correct and each domain serves unique translated content. In fact, ccTLDs can improve rankings in the target country.
Yes. Add each domain as a separate site in Cloudflare, point the DNS records to Cloudflare’s nameservers, and keep the origin IP unchanged. The plugin’s domain mapping continues to work because the origin server receives the correct Host header.
Domain registration typically costs $10‑$15 per year per ccTLD. WPML licenses start at $79 per year; TranslatePress Pro starts at $79 per year as well. Hosting fees may increase if you need more addon domains.
Migrate the existing content using the plugin’s translation manager. Create 301 redirects from the old URLs (e.g., https://example.com/about) to the new language‑specific URLs (e.g., https://example.fr/a-propos) to preserve SEO equity.
Use third‑party validators like TechnicalSEO’s hreflang checker or Screaming Frog’s SEO Spider. Both will list missing or conflicting tags.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Country-code top-level domains (ccTLDs) send the strongest geo-targeting signal to search engines and build local trust, but they split authority across multiple domains and require more resources. Subdirectories consolidate all link equity under one domain, are easier to manage, and let you scale languages faster — though they rely on hreflang and Search Console settings for geo-targeting.
If you're expanding internationally, the URL structure you choose shapes how search engines understand your audience and how users perceive your brand. The short answer: ccTLDs (like example.de, example.fr) give you the clearest country signal and often higher local click-through rates, but they fragment domain authority and multiply technical overhead. Subdirectories (example.com/de/, example.com/fr/) keep authority pooled, simplify crawling and analytics, and let you launch new languages in hours instead of weeks — provided you implement hreflang correctly and set geo-targeting in Google Search Console.
| Criterion | ccTLDs (example.de) | Subdirectories (example.com/de/) | Takeaway |
|---|---|---|---|
| Geo-targeting signal | Strongest automatic signal; Google treats each ccTLD as a local site by default. | Relies on hreflang tags and Search Console geo-targeting; slightly weaker initial signal. | Choose ccTLDs when local trust is a primary conversion driver (e.g., finance, legal, healthcare). |
| Domain authority consolidation | Authority splits across each ccTLD; each domain builds its own backlink profile. | All links flow to one root domain; new languages inherit existing authority immediately. | Subdirectories win for faster SEO traction in new markets, especially with limited link-building budget. |
| Technical setup & maintenance | Separate hosting, SSL, Search Console properties, and often separate CMS installs per country. | Single CMS, single hosting, one Search Console property; hreflang is the main technical task. | Subdirectories reduce ops burden dramatically — ideal for lean teams or rapid expansion. |
| Local user trust & CTR | Users recognize local TLDs; higher click-through rates in SERPs for country-specific queries. | Generic TLD (.com, .net) may feel less local; can mitigate with local content, currency, and contact info. | ccTLDs edge out in trust-sensitive verticals; subdirectories work when brand is already known. |
| Scalability & cost | Each new country = new domain registration, renewal, hosting, and often legal entity requirements. | Add a language folder in minutes; cost is near zero beyond translation and hreflang. | Subdirectories scale to 20+ languages affordably; ccTLDs become expensive past 5-7 markets. |
| Analytics & reporting | Separate GA4/Search Console properties; cross-domain tracking needed for unified view. | Single property with language/content grouping; easier cohort analysis and attribution. | Subdirectories give cleaner data with less engineering effort. |
Start with subdirectories for 80% of expansion scenarios. They give you 90% of the geo-targeting power at 20% of the operational cost. Move to ccTLDs only when a specific market proves high revenue potential, demands local legal presence, or shows measurably lower conversion on a generic TLD. Many enterprises run a hybrid: subdirectories for long-tail languages, ccTLDs for top-3 revenue markets.
Google uses a hierarchy of signals: ccTLD > Search Console geo-targeting > hreflang > server IP > content language > user settings. A ccTLD sits at the top — it's a declarative signal that requires no configuration. Subdirectories depend on you telling Google "this folder targets Germany" via Search Console and reinforcing it with hreflang="de-DE" on every page. Miss one tag, and the signal weakens. That's why large sites often automate hreflang generation through their CMS or translation layer.
When your .com earns a backlink from a major publication, every subdirectory benefits. The German folder, the Japanese folder, the Arabic folder — all see a lift in crawl budget and ranking potential. With ccTLDs, that same link only helps the specific domain it points to. Over 12-24 months, this compounding gap widens. Multiple case studies show that subdirectory structures reach meaningful organic traffic in new languages faster than ccTLD counterparts, especially when the root domain already has strong authority.
| Mistake | Impact | Fix |
|---|---|---|
| Missing or incorrect hreflang (wrong language code, missing return tags) | Google serves wrong language version; duplicate content signals; ranking cannibalization | Automate hreflang generation; validate weekly with Screaming Frog or Sitebulb |
| Blocking language folders in robots.txt | Entire language invisible to search | Audit robots.txt per environment; use "Disallow:" only for admin/cart paths |
| Auto-redirecting by IP without user override | Googlebot (US IP) sees only English; other languages never indexed | Use JavaScript banner for language suggestion; let users (and bots) choose |
| Thin machine-translated content at scale | Panda/Helpful Content penalties; low engagement signals | Invest in human review for top 20% revenue pages; use AI translation with editorial control for long tail |
| Ignoring local keyword research | Translating English keywords misses local search intent (e.g., "handy" vs "mobile" in DE) | Run keyword research per market in native language; map to URL structure |
Team of 12, $2M ARR, strong .com authority (DR 68). Goal: launch DE, FR, ES, IT, NL in 90 days. Recommendation: subdirectories. Single WordPress install with SeaText's translation agent handles 125 languages automatically, generates hreflang, and keeps new pages translated in background. Marketing team manages one Search Console property. First international leads appear in week 3.
Regulated payments, requires BaFin license (DE) and FSA registration (JP). Local entities mandatory. Users expect .de and .jp for trust. Recommendation: ccTLDs for DE/JP; subdirectories for other markets. Run separate compliance, legal, and SEO workstreams for the two ccTLDs; use subdirectories for FR, ES, IT as test markets.
Migrating to subdirectories to consolidate authority. Risk: temporary traffic dip during migration. Mitigation: page-level 301 redirects, preserve hreflang, monitor Search Console crawl stats daily, keep old ccTLDs live for 180 days with canonical pointing to new subdirectory URLs. Expect 3-6 month recovery to prior levels, then growth from consolidated authority.
| Capability | Detail |
|---|---|
| Languages supported | 125 languages with automatic translation |
| WordPress integration | One-minute activation; detects new pages, posts, products and translates in background. Activate on WordPress |
| Translation control | Edit translations, preserve brand voice, review key pages, A/B test translation variants |
| SEO for translated pages | Automatic multilingual SEO for every translated page |
| Conversion impact | Up to +60% more international customers reported |
| Activation model | Free tier available; autonomous AI agents deploy in under 1 minute |
Yes. Many enterprises run ccTLDs for top revenue markets (DE, FR, JP) and subdirectories for long-tail languages. Ensure hreflang maps across both structures and canonical tags are consistent.
Minimal impact. Google says server IP is a weak signal. A global CDN (Cloudflare, CloudFront) with edge nodes in target countries matters more for Core Web Vitals than origin server location.
With strong root authority and proper hreflang, expect impressions in 2-4 weeks, meaningful traffic in 8-12 weeks. ccTLDs often take 4-6 months to build comparable authority from zero.
Works but weaker than ccTLDs. Use only when ccTLD unavailable or you're committed to subdirectory structure. Set geo-targeting per folder, not root domain.
Translate slugs for user experience and click-through rate (example.com/de/schuhe vs example.com/de/shoes). Use ASCII-safe characters; avoid URL encoding issues.
Use /ar/, /he/ folders. Ensure CMS outputs dir="rtl" and lang="ar" on HTML tag. Test layout mirroring; SeaText's translation agent preserves RTL formatting automatically.
ccTLDs: estimated $10-50/domain/year plus separate hosting, SSL, and dev ops per domain. For 15 markets, the baseline cost might be $5,000-15,000/year plus engineering time. Subdirectories: near-zero marginal cost per language; main cost is translation and hreflang maintenance.
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's Website Translation Agent works with both subdirectory and ccTLD WordPress structures, providing automatic translation into 125 languages with no page or language limits. The agent activates in one click, runs in the background, and lets you edit translations while preserving brand voice.
| Criterion | Subdirectory Structure | ccTLD Structure |
|---|---|---|
| Translation coverage | All pages, posts, products, and updates translated automatically | All pages, posts, products, and updates translated automatically |
| Language limits | Up to 125 languages, no caps | Up to 125 languages, no caps |
| Page limits | No page limits | No page limits |
| Setup activation | One-click activation on single WordPress install | One-click activation per WordPress install or multi-site network |
| Translation control | Edit translations, preserve brand voice, review key pages | Edit translations, preserve brand voice, review key pages |
| Background operation | Runs automatically after activation | Runs automatically after activation |
Choose a subdirectory structure if you manage a single WordPress install and want a unified translation workflow across all languages.
Choose a ccTLD structure if you operate separate WordPress installs or a multi-site network for regional domains and need the same translation capabilities on each.
SeaText's Website Translation Agent integrates with WordPress regardless of whether you use subdirectories or country-code top-level domains (ccTLDs). The agent detects new content — pages, posts, products, and updates — and translates it automatically into up to 125 languages. There are no page limits and no language limits. Activation takes one click, and the agent runs in the background continuously. You retain full control: you can edit any translation, preserve your brand voice, and review key pages at any time. This works identically for both URL structures because the agent operates at the WordPress content level, not the domain level.
With a subdirectory structure, all language versions live under a single domain (for example, example.com/es/, example.com/de/). You run one WordPress installation. SeaText installs as a plugin on that single install. Once activated, it sees every new page, post, product, and update across all subdirectories and translates them automatically. You manage translations from one dashboard. The agent handles hreflang tags and multilingual SEO for each subdirectory without extra configuration. Because there is only one WordPress instance, maintenance overhead stays low.
With a ccTLD structure, each region gets its own domain (for example, example.es, example.fr). Each domain may run a separate WordPress install or belong to a WordPress multi-site network. SeaText activates on each WordPress install individually. If you use a multi-site network, you can activate the agent network-wide. Each install gets the same automatic translation capabilities: up to 125 languages, no page limits, background operation, and full editorial control. The agent translates content for that specific domain. You manage translations per domain or centrally via the multi-site dashboard, depending on your setup.
SeaText supports both structures equally in terms of translation features. Your choice should depend on factors outside translation: regional legal requirements, branding strategy, hosting architecture, and team workflow. If you need separate data residency or distinct regional brands, ccTLDs may be required. If you prefer a single codebase, unified user management, and simpler maintenance, subdirectories are simpler. SeaText adapts to either. The agent does not impose additional costs or limits based on the structure you choose.
Scenario 1: Single brand, multiple languages, one team. A company targeting 5–10 languages with a centralized marketing team uses subdirectories. SeaText activates once, translates all content automatically, and the team reviews translations in one place.
Scenario 2: Regional compliance or distinct brands. An enterprise operating in regions with strict data laws (e.g., GDPR in EU, PIPL in China) uses ccTLDs. Each domain runs its own WordPress install. SeaText activates on each install, providing identical translation quality and control per region.
Scenario 3: Hybrid approach. A business uses a ccTLD for its primary market (e.g., example.co.uk) and subdirectories for secondary markets. SeaText works on the main install for subdirectories and on the separate install for the ccTLD, delivering consistent translation across both.
SeaText handles translation, not infrastructure. You must still provision domains, SSL certificates, hosting, and WordPress installs for each ccTLD. The agent does not manage hreflang across separate domains automatically; you may need to configure cross-domain hreflang manually or via SEO plugins. Translation quality is consistent across structures, but you must review key pages for each language regardless of structure. The source pack does not provide data on domain registration fees, SSL costs, hosting pricing, or maintenance labor differences between structures. Those factors vary by provider and region and should be evaluated separately.
No. SeaText's subscription covers the translation agent regardless of URL structure. The same plan works for a single WordPress install with subdirectories or for multiple installs across ccTLDs.
Yes. You can activate SeaText on each WordPress install connected to your account. Each install gets full translation capabilities.
SeaText manages hreflang for content within a single WordPress install. For separate ccTLD domains, cross-domain hreflang may require additional configuration.
No. SeaText supports up to 125 languages with no per-domain language caps.
Yes. Each WordPress install has its own translation dashboard. You can customize translations per domain to match regional brand voice.
You provision the new domain, set up WordPress, install SeaText, and activate it. The agent immediately begins translating all existing and new content on that install.
SeaText's Website Translation Agent works with both subdirectory and ccTLD WordPress structures, so you don't need to adjust your chosen URL setup to access automated multilingual translation. The agent automatically translates every WordPress page, post, product, and update into up to 125 languages with no page or language limits, and runs in the background after one-click activation. You can edit translations, preserve brand voice, and review key pages at any time, so you keep full control over your multilingual content without manual translation work.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Use a wildcard or multi‑domain (SAN) SSL certificate, or automate Let’s Encrypt renewal, to secure each language domain without manual per‑domain work. Then verify the chain and enable HTTPS on all domains. SeaText works with any SSL setup and recommends hosting partners that automate multi‑domain SSL.
When you run a WordPress site in multiple languages, you often use different domains for each language – for example, example.com, example.fr, example.de, or subdomains like fr.example.com. Each domain must have a valid SSL certificate to protect visitors and boost SEO. Without SSL, browsers show security warnings and search engines may penalize the site.
You have three main options: wildcard certificates, SAN (Subject Alternative Name) certificates, and Let’s Encrypt certificates. Each fits a different domain setup. The right choice depends on your domain structure, budget, and how much automation you want.
| Certificate Type | Cost | Coverage | Ease of Renewal | Compatibility with SeaText | Max Domains |
|---|---|---|---|---|---|
| Wildcard SSL | $50–$200/year | All subdomains of a single root domain (e.g., *.example.com) | Medium – manual renewal or hosting automation | Works with SeaText as long as every subdomain is covered | Unlimited subdomains, but only one root domain |
| SAN (Multi‑Domain) SSL | $100–$400/year | Up to 100 distinct hostnames (any domain or subdomain) | Medium – list all names in CSR; renewal may require re‑listing | Works with SeaText – list each language domain in the SAN field | Typically 5–100 names (vendor‑dependent) |
| Let’s Encrypt | Free | Any domain you control (SAN support) | High – automatic renewal via ACME clients or hosting panel | Works with SeaText – many hosts automate Let’s Encrypt for all domains | 50 certificates per domain per week (each can include multiple SANs) |
Check with the vendor for exact pricing and limits. Choose wildcard if all languages use subdomains. Choose SAN if you own separate ccTLDs. Choose Let’s Encrypt if you want free, automated renewal – especially with a SeaText‑compatible host.
*.example.com) if all languages are subdomains. Use a SAN certificate if you have separate domains like example.fr, example.de, etc. SeaText works with any certificate type, but automating renewal with a host‑managed solution saves time.wp-config.php set FORCE_SSL_ADMIN to true. Use a plugin like Really Simple SSL to handle mixed‑content fixes across all domains.https:// and check the padlock. Use SSL Labs for a full report.Some hosting providers make multi‑domain SSL setup nearly automatic. They handle certificate creation, renewal, and installation for all domains you point to your site. SeaText recommends these partners for their seamless SSL automation:
These partners simplify the steps above. Instead of manually generating CSRs and installing certificates, you can enable SSL with a few clicks. SeaText then works on top of the secure connection to translate and serve your content.
Adding a separate certificate for each language domain but forgetting to include the www or root version in the SAN list. The result is a valid certificate for example.fr but a warning for www.example.fr. Always list every hostname you intend to serve.
Another mistake is relying on a wildcard certificate for ccTLDs. Wildcards only cover subdomains, not separate root domains. For example.fr and example.de, you need a SAN certificate or use Let’s Encrypt for each domain.
Finally, failing to automate renewal. Let’s Encrypt certificates expire every 90 days. If you forget to renew, visitors see a security warning. Use a SeaText‑compatible host that automates renewal, or set up a cron job for the ACME client.
After installation, run an SSL test for each domain. Look for:
If any domain fails, re‑upload the correct chain or add the missing hostname to the SAN list and re‑issue.
Wildcard certificates only cover one level of subdomains; they cannot secure sub.sub.example.com. SAN certificates have a limit on the number of hostnames (usually 100) imposed by the CA. Let’s Encrypt limits renewals to 50 certificates per registered domain per week.
Also, if you use a CDN like Cloudflare, you must enable “Full (strict)” SSL and upload the same certificate to your origin server. SeaText still works behind the CDN as long as the connection is secure.
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, you can redirect visitors to their language‑specific domain based on location, but use a JavaScript‑based redirect with a fallback banner instead of a server‑side 302 to avoid Googlebot crawling issues. Always keep a manual language switcher so users can override the automatic choice.
Yes, you can automatically redirect visitors to their language‑specific domain based on location. The safest way is to run a short JavaScript snippet that reads the visitor’s IP‑derived country or browser language, then changes window.location to the appropriate country domain. Pair this with a visible fallback banner that lets the user stay on the current domain or choose another language, and never rely solely on a server‑side 302 redirect, which can confuse Googlebot and hurt indexing.
When a visitor lands on a domain that does not match their language, bounce rates rise and conversion chances drop. Showing the correct language immediately builds trust and reduces friction. Ignoring geo‑based redirection means you rely on users to find a language switcher, which many never see, especially on mobile.
Geo‑detection can be done in two ways: client‑side IP lookup services or browser language headers. A client‑side script calls a lightweight IP‑to‑country API (many are free for low volume) and returns a country code. The script then maps that code to a predefined domain (e.g., fr.example.com for France). If the API fails or the visitor is a known bot, the script falls back to the browser’s Accept‑Language header.
SeaText’s WordPress integration already detects each visitor’s language for translation (see S1). You can reuse that detection logic to trigger a redirect or a banner instead of translating the page.
JavaScript redirect with fallback banner
Server‑side 302 redirect
For SEO safety, the JavaScript method with a banner is recommended.
Even when you redirect users, search engines still need hreflang annotations to understand language‑regional relationships. Place hreflang tags in the <head> of every page, pointing to each language‑specific domain. Example:
<link rel="alternate" hreflang="en" href="https://example.com/">
<link rel="alternate" hreflang="de" href="https://example.de/">
<link rel="alternate" hreflang="fr" href="https://example.fr/">
Keep the tags on the source page even if a JavaScript banner later offers a redirect. This prevents Google from seeing duplicate content and ensures the correct URL appears in search results.
IP Lookup
Accept‑Language Header
Best practice: Use IP lookup as the primary signal, then fall back to Accept‑Language when the IP service fails or returns an unexpected result.
// Load after DOMContentLoaded
(async function() {
// 1. Skip if user already chose a language
if (document.cookie.includes('lang_pref')) return;
// 2. Get visitor country via IP API (free tier)
let response = await fetch('https://ipapi.co/json/');
if (!response.ok) return; // fallback later
let data = await response.json();
let country = data.country_code; // e.g., "DE"
// 3. Map country to domain
const map = {
'DE': 'example.de',
'FR': 'example.fr',
'ES': 'example.es'
};
let targetDomain = map[country];
if (!targetDomain) return; // no redirect needed
// 4. Compare with current host
if (window.location.host !== targetDomain) {
// 5. Show banner
let banner = document.createElement('div');
banner.id = 'geo-redirect-banner';
banner.innerHTML = `
We detected you might prefer the ${country} version.
`;
document.body.prepend(banner);
document.getElementById('go-now').onclick = function() {
// remember choice
document.cookie = 'lang_pref=' + country + ';path=/;max-age=' + 60*60*24*30;
window.location.href = 'https://' + targetDomain + window.location.pathname + window.location.search;
};
document.getElementById('stay').onclick = function() {
// remember stay choice to avoid future prompts
document.cookie = 'lang_pref=stay;path=/;max-age=' + 60*60*24*30;
banner.remove();
};
}
})();
The script is lightweight, runs asynchronously, and respects user choice via a cookie.
if (navigator.userAgent.includes('Googlebot')) return; prevents the redirect for crawlers.window.location. Also verify that the target domain does not run the same script without checking the cookie first.defer attribute) and cache the IP lookup response for a short period (e.g., 5 minutes) using sessionStorage.Googlebot/2.1 user‑agent; ensure no redirect occurs.| Fact | Source |
|---|---|
| SEATEXT detects each visitor's language, translates WordPress pages instantly, and keeps new posts, products, and updates translated in the background. | S1 |
| Seatext translates every page, headline, button, and offer into up to 125 languages, so visitors in new markets can read and buy. | S2 |
One common mistake is to rely only on server‑side 302 redirects, which can cause Googlebot to see a redirect loop and may prevent proper indexing of language‑specific content. Another mistake is to forget the manual override; users who are traveling or using a VPN may be sent to the wrong domain and have no way to return to their preferred language.
The JavaScript approach has limitations: it requires the visitor to have JavaScript enabled (rarely an issue today) and adds a tiny latency while the lookup resolves. If you block third‑party scripts for security, you must host the lookup service yourself or use a first‑party solution.
These recommendations do not apply if you are using a separate subdirectory structure (example.com/fr/) instead of distinct domains; in that case, hreflang tags and internal linking are sufficient and a redirect is unnecessary.
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: Common mistakes when setting up multiple language domains on WordPress include missing hreflang tags, wrong canonical URLs, robots.txt blocks, inconsistent content, hard redirects, and missing sitemaps. Each mistake can cause indexing problems, duplicate content, and a poor user experience. This guide explains why they happen and how to fix them.
Running one WordPress site across multiple language domains is powerful. It can also go wrong fast. The most common errors cause indexing problems, duplicate content, and a poor user experience. Here is how to spot each mistake, why it happens, and how to fix it.
This guide assumes your domains point to the same WordPress installation or to separate installations you control. The fixes work either way. Check each page after you make a change.
Why it happens. Hreflang tags are easy to forget. Many teams add a new domain and copy the header code from the old site. They also use the wrong language codes. For example, "en" is not the same as "en-gb" or "en-us".
Impact. Without hreflang, Google cannot match a searcher's language to the right page. The search result may show the wrong language. Google may also treat translated pages as duplicates. This lowers rankings and reduces clicks.
Step-by-step fix. Add hreflang tags to every page in every language. Use the full language-region code. Add an x-default tag. Make the tags reciprocal. If page A links to page B, page B must link back to A. Test with Google Search Console or a validator.
Practical scenario. A French visitor searches on google.fr. Your example.fr page has no hreflang. Google may show the English example.com page instead. The visitor bounces, and you lose the sale.
Takeaway. Treat hreflang as a required page element, not an optional extra.
Why it happens. Some WordPress themes output a canonical URL automatically. If the theme was set up for the main domain, it may point all canonicals to example.com. Other times, developers copy code from one language site to another and forget to update the canonical.
Impact. A canonical tells search engines which URL is the main version. If every language page points to example.com, Google may ignore the translated pages. Rankings go to the wrong URL, and duplicate content signals increase.
Step-by-step fix. Check the <head> of each page. Make sure the canonical points to the current URL. For example, example.fr/page should have canonical href="https://example.fr/page". Do not use canonical to point from one language to another. Use hreflang for language alternatives. After the change, resubmit URLs in Search Console.
Practical scenario. A product page on example.es has a canonical to example.com. Spanish users see the Spanish page, but Google indexes the English version. The Spanish page loses visibility.
Takeaway. Self-referencing canonicals are the safest rule for multilingual sites.
Why it happens. Developers often copy robots.txt from the primary domain. They may also add a noindex meta tag to stop duplicate content. Both are common shortcuts that cause big problems.
Impact. If robots.txt has "Disallow: /", Googlebot cannot crawl the domain. Pages disappear from search results. A noindex tag has the same result, but it is slower because Google must still crawl the page to read the tag.
Step-by-step fix. Open each domain's robots.txt. Remove any line that blocks the whole site. Allow Googlebot to crawl CSS, JavaScript, and images. In Google Search Console, use the robots.txt tester. Check for noindex tags in the page source. Remove noindex from language pages. Use hreflang and canonicals instead.
Practical scenario. You launch example.fr and copy robots.txt from example.com. The file contains "Disallow: /wp-admin/". That is fine. But if it contains "Disallow: /", Googlebot never reaches your French pages.
Takeaway. Test every domain before launch, not just the main one.
Why it happens. Manual translation is slow. Teams publish on the main domain first and update other domains later. Sometimes translations are incomplete. Headings, buttons, and product names may differ.
Impact. Users notice when the French page has different steps or a missing section. They may leave. Search engines also compare content quality. A thin translation can be seen as low-value. Internal links may point to the wrong language, which confuses crawlers.
Step-by-step fix. Create a content map that lists every page in every language. Publish translations at the same time. Use a translation tool that covers new posts, products, and updates automatically. Audit headings, metadata, and internal links. Keep the message the same, even if wording changes.
Practical scenario. Your English site adds a new pricing section. The Spanish site still shows old prices. A Spanish customer sees the wrong price and leaves. Consistency is not just SEO; it is trust.
Takeaway. Treat all language versions as one content system.
Why it happens. Some sites use IP detection to send visitors to a language version. For example, a visitor from France is redirected from example.com to example.fr. This seems helpful, but Googlebot crawls from US-based servers. It may get the English version or be redirected in a loop.
Impact. When Googlebot cannot follow the redirect, it may not crawl the French pages. Search results may only show the English domain. Users may be redirected to a language they do not want, increasing bounce rate.
Step-by-step fix. Avoid IP-based automatic redirects. Use a language selector instead. If you want to remember a choice, set a cookie after the user selects. Use 302 for temporary redirects and keep one hop. Test with a browser and with a crawler tool such as curl using a Googlebot user agent.
Practical scenario. A user in Germany visits example.com. The server redirects to example.de. The user actually wanted English. They cannot find the switch and leave.
Takeaway. Let users choose their language. Do not guess from an IP address.
Why it happens. A WordPress sitemap plugin may create one sitemap for the default language. When you add a new domain, you forget to generate a separate sitemap. Or the sitemap contains URLs from the main domain.
Impact. Search engines use sitemaps to discover pages. If the French sitemap is missing, Google may never find new French pages. If the sitemap points to the wrong domain, Google sees mixed signals. Indexing slows down.
Step-by-step fix. Create one XML sitemap per domain. Include only URLs from that domain. Add hreflang annotations inside the sitemap. Submit each sitemap in Google Search Console. Verify that URLs in the sitemap return a 200 status. Update sitemaps whenever you publish new content.
Practical scenario. You publish 50 French product pages. No French sitemap exists. Weeks later, only five pages are indexed. A sitemap would have made discovery immediate.
Takeaway. Sitemaps are your multilingual roadmap. Keep them current.
SeaText is a WordPress translation solution built for this problem. It translates every page, post, product, and update automatically. There are no page limits and no language limits. New content is translated in the background as soon as it is published.
Automatic translation. This prevents inconsistent content across domains. When you publish on the main site, SeaText creates the translated version. You do not have to wait for a translator or remember to update other domains.
Instant language detection. SeaText detects each visitor's language and translates WordPress pages instantly. This reduces the need for IP-based hard redirects. The visitor sees the right language version without a confusing redirect chain.
Control and editing. Automatic does not mean uncontrolled. You can edit translations, preserve brand voice, and review key pages. This keeps the content quality consistent while you scale.
Multilingual SEO. The source material says SeaText provides free automatic multilingual SEO for every translated page. That means the technical signals are handled as part of the translation process. You still need to check hreflang and canonicals after setup, but the main translation workflow is covered.
For a pre-launch review, visit the SeaText WordPress page. It shows how to activate translation and keep new content in sync.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Google treats ccTLDs as strong geo‑targeting signals and essentially separate sites, while subdirectories are part of the main domain and inherit its authority. Subdomains fall in between, receiving some authority but not as much as subdirectories. All three structures can rank well when hreflang tags are used correctly and content is locally relevant.
| Criterion | ccTLD (e.g., example.fr) | Subdirectory (e.g., example.com/fr/) | Subdomain (e.g., fr.example.com) |
|---|---|---|---|
| Geo‑targeting signal | Strong – Google treats it as a separate country site | Weak – relies on hreflang and local content | Moderate – some geo‑signal but not as clear as ccTLD |
| Authority inheritance | None – each ccTLD must build its own authority | Full – inherits the main domain's backlink profile | Partial – receives some authority but not full |
| Setup complexity | High – separate domain registration, SSL, hosting | Low – just add a folder to your existing site | Medium – need separate DNS and often separate hosting |
| Maintenance effort | High – manage each domain independently | Low – one site, one CMS, one set of tools | Medium – multiple properties but same domain ecosystem |
| Cost | High – multiple domains, SSL, hosting fees | Low – no extra cost beyond the main site | Medium – may need separate hosting but no extra domain |
| Best use case | Large brands with local offices and huge budgets | Sites that want fast international expansion with minimal effort | Brands that need a separate identity but cannot afford full ccTLDs |
Practical takeaway: Subdirectories are the easiest and most authority‑efficient choice for most sites. ccTLDs give the strongest local signal but require more resources. Subdomains are a compromise that often underperform both.
Google uses URL structure as one signal among many. The structure tells Google which country a page targets and how much authority it can use. The wrong choice can slow rankings or confuse search engines.
For example, a French user searching in France is more likely to see a .fr domain in results. But a subdirectory on a .com with strong backlinks can also rank well if Google understands the language and country targeting.
The choice affects crawl budget, indexing, and link equity. It is not just a technical detail. It shapes how fast your international pages appear in search results.
Google views a country‑code top‑level domain (e.g., example.fr) as a separate website. It passes a strong geo‑targeting signal, so the domain is more likely to rank for searches in that country. However, link equity does not automatically flow between the ccTLD and your main .com domain. Each ccTLD must earn its own authority.
In practice, this means you need separate SEO work for each domain. You must build backlinks, earn trust, and manage content independently. The upside is high local trust. Users and Google see the domain as native to that country.
Limitations: cost and complexity multiply. You need separate SSL certificates, hosting, and often separate content teams. Small sites may struggle to maintain authority across multiple domains.
Subdirectories (e.g., example.com/fr/) are considered part of the same domain. They inherit the main site’s backlink profile and authority, which can help new language versions rank faster. Google still needs hreflang to understand the language and country targeting.
This is the simplest structure. You add a folder to your existing site. All pages share the same domain authority. New language versions can start ranking quickly because they borrow from the root domain’s trust.
Limitations: the geo‑targeting signal is weaker. If you are competing against local ccTLD sites, a subdirectory may be at a slight disadvantage. Also, if your main domain gets penalized, all subdirectories are affected.
Subdomains (e.g., fr.example.com) are treated as somewhat independent. They receive some authority from the root domain but not as much as a subdirectory. Google may see them as separate sites for indexing, so hreflang and clear internal linking are important.
In practice, subdomains are a middle ground. They are easier to set up than a ccTLD but still require separate Search Console properties. They can be useful for brand‑specific microsites or when you want a separate identity without buying a new domain.
Limitations: authority dilution is common. Many site owners find that subdomain pages rank lower than subdirectory pages for the same content. Google has said that subdomains are treated as separate entities, so you must build authority for each subdomain.
Authority: Subdirectories win because they inherit all backlinks. ccTLDs start from zero. Subdomains get partial credit but not full.
Setup: Subdirectories are fastest. You add a folder and configure hreflang. ccTLDs require new domain registration, DNS changes, and often new hosting. Subdomains need DNS records and sometimes separate server configurations.
Maintenance: Subdirectories are easiest. One CMS, one set of plugins, one monitoring tool. ccTLDs require managing multiple domains, each with its own settings. Subdomains add complexity because you may need separate Search Console profiles and separate analytics.
Cost: Subdirectories are cheapest. ccTLDs are most expensive because of domain renewals, SSL, and potential hosting fees. Subdomains cost little extra if you use the same hosting plan.
No. Subdirectories share authority. They do not reduce the main domain’s power. In fact, they can strengthen it by adding more relevant content.
Yes, but it is risky. Changing URL structures can cause temporary ranking drops. Use 301 redirects, update hreflang, and monitor carefully. Plan ahead to avoid migration issues.
Google treats subdomains as separate sites, so each subdomain gets its own crawl budget. Subdirectories share the main domain’s crawl budget. If you have many language versions, subdirectories may be more efficient because Google crawls them together.
Hreflang tells Google which language and region a page targets. It does not change the URL structure. For subdirectories, hreflang is essential, but Google also uses other signals like local content, backlinks, and server location. A subdirectory can rank well with hreflang, but a ccTLD adds a stronger geo‑signal.
With ccTLDs, you need separate link building for each domain. With subdirectories, all links to the main domain benefit all language versions. Subdomains get partial credit, so you may need to build links to each subdomain separately.
Even with perfect technical setup, thin or duplicated content can hurt rankings. If local competition is strong, a ccTLD may still be needed despite higher cost. Some CMS platforms make subdirectory language routing more complex; test thoroughly before rolling out.
Another limitation: google may still interpret a subdirectory as targeting a specific country if the content is heavily localized and the server is in that country. But the signal is weaker than a ccTLD.
Finally, consider user trust. Users in some countries (e.g., Germany, France) prefer local domains. They may distrust a .com with a subdirectory. Research your target audience’s behavior before choosing.
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: Moving language versions from a single domain to separate country‑code top‑level domains (ccTLDs) splits link equity. Each ccTLD builds its own authority, so you must earn links for every new domain. This article explains how authority is calculated, compares ccTLDs, subdirectories, and subdomains, and gives a decision framework with a real‑world case study.
When you split languages into separate country‑code top‑level domains (ccTLDs), each domain starts with its own authority score. Links pointing to one ccTLD do not automatically pass authority to the others, so the total link equity of your brand is divided across the domains. You must build links for each ccTLD separately to reach the same authority you would have on a single domain.
Domain authority (DA) is a proxy for the quantity and quality of inbound links. Higher DA correlates with better rankings across all queries. For multilingual sites, a single strong domain can rank all language versions with fewer total links. Splitting into ccTLDs distributes that strength, making each language version harder to rank unless you invest in local link building.
Search engines treat each registered domain as an independent entity. Authority flows through internal links, but it does not cross domain boundaries unless you use 301 redirects or canonical tags that point to a primary domain[Google]. Metrics such as Moz DA and Ahrefs Domain Rating (DR) are computed from the link graph of each root domain[Moz][Ahrefs]. Therefore, a new ccTLD starts with a score near zero and only rises as it earns its own backlinks.
Three common structures exist for multilingual content:
The table below compares them on buyer‑relevant criteria.
| Criterion | ccTLD | Subdirectory | Subdomain |
|---|---|---|---|
| Authority consolidation | None – each domain builds its own DA | Full – all links boost the single root DA | Partial – some authority passes, but less than subdirectories |
| Geo‑targeting signal | Strong – native country code | Weak – relies on hreflang and Search Console settings | Moderate – can be set in Search Console per subdomain |
| Link‑building effort | High – separate campaigns per country | Low – one campaign benefits all languages | Medium – separate outreach but shared brand assets |
| Management complexity | High – separate hosting, SSL, CMS instances | Low – single CMS, one SSL, unified analytics | Medium – separate DNS, possible separate CMS installs |
| Technical SEO control | Full – independent robots.txt, sitemaps | Shared – single robots.txt, sitemap index | Independent – each subdomain can have its own config |
| Cost (hosting, certificates, tooling) | Higher – multiple accounts | Lower – single account | Medium – multiple subdomain configs |
A B2B SaaS company operated on example.com with a DA of 48. It launched French, German, and Spanish versions on example.fr, example.de, and example.es. After six months, each ccTLD had a DA of 12‑15, reflecting only brand mentions and a handful of directory listings. The company then invested in local PR, partner links, and localized content. After another twelve months, the three ccTLDs reached DA 35‑38 each, but the total link‑building budget was roughly three times the spend required to grow the single domain from 48 to 55. The subdirectory alternative would have kept the DA at 48 while adding language pages, saving an estimated 60 % in outreach costs.
This analysis assumes you are using ccTLDs for language targeting. If you use subdomains (fr.example.com) the authority split is similar but often treated as part of the root domain with some attenuation. The advice also does not apply if you implement proper cross‑domain canonicalization that consolidates authority, which is rare and can confuse geo‑targeting signals. Sites with strong existing brand searches may see less impact because navigational queries bypass authority metrics.
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Direct Answer: Deploy a consent management platform (CMP) that supports multi‑domain consent sharing, configure localized cookie policies for each EU domain, enable Google Consent Mode v2, and keep consent records auditable. Use SeaText’s automatic translation agents to keep every consent banner and policy up to date in 125 languages without page or language limits.
Handling cookie consent and GDPR compliance across .de, .fr, .it, and .es domains requires a single CMP that can share consent, localized banners, and auditable records. Non‑compliant consent can trigger fines up to 4 % of global revenue, so a systematic approach is essential.
Users move between your country sites during a single session. If consent is not shared, they must repeat choices on every domain, creating friction and legal risk. A unified consent layer ensures a single opt‑in or opt‑out respects the user across all EU properties and satisfies regulators who expect consistent treatment.
Before setting up cross‑domain consent, gather the following:
Not all CMPs support cross‑domain consent sharing. Prioritize platforms that let users set consent once and apply those settings across all owned EU domains. Verify native Google Consent Mode v2 integration, pre‑built consent templates for each EU country, and the ability to generate auditable consent records.
SeaText works with CMPs that offer multi‑domain consent sharing, Google Consent Mode v2 support, and local‑language consent templates. Recommended partners include Cookiebot, OneTrust, and Usercentrics when configured with SeaText’s translation agents. These combinations keep banners and policies synchronized across .de, .fr, .it, and .es without manual copy‑pasting.
Each EU language domain needs a consent banner and cookie policy translated accurately into the local language. Explain what data is collected, why, and how users can withdraw consent. Adjust cookie categories to match local rules: some countries require explicit opt‑in for all non‑essential cookies, others allow implied consent for basic analytics. Set the CMP to display the correct language per domain and apply domain‑specific rules where tracking differs.
Google Consent Mode v2 adjusts tracking based on user consent, preserving analytics data when users reject non‑essential cookies. Implement the Consent Mode v2 code on every EU domain and sync it with your CMP’s consent signals. Configure parameters such as ad_storage and analytics_storage per domain, then test that consent changes reflect instantly in Google’s systems.
Test each domain individually: confirm the banner loads in the correct language, preferences save and sync across domains, and tags fire only with explicit consent. Use Google Tag Assistant to verify Consent Mode v2. Run quarterly audits of consent records to meet GDPR storage and access requirements. Verify the withdrawal flow works without complex menus.
GDPR demands proof of consent: timestamp, user choices, and IP address stored for at least three years. Choose a CMP that writes immutable logs to a secure database or cloud storage. Export logs in CSV or JSON for regulator requests. Automate integrity checks (hash chains) to detect tampering. Document the retention schedule and deletion process in your data‑processing register.
| Criterion | Cookiebot | OneTrust | Usercentrics |
|---|---|---|---|
| Cross‑domain consent sync | Yes | Yes | Yes |
| Google Consent Mode v2 native | Yes | Yes | Yes |
| Pre‑built EU language templates | 27 languages | 30+ languages | 25 languages |
| Audit‑ready consent logs | CSV/JSON export | API + dashboard | API + dashboard |
| SeaText translation integration | Supported via API | Supported via API | Supported via API |
All three meet core requirements. Choose based on pricing, UI preference, and existing vendor relationships. SeaText’s translation agents connect through each CMP’s API to push localized banner copy automatically.
New pages, products, and blog posts appear constantly. SeaText’s WordPress translation agent detects every new post, product, or headline and translates it into 125 languages in the background. There are no page limits or language caps. When a new cookie is added on the .de site, SeaText instantly updates the German consent banner and the corresponding French, Italian, and Spanish versions. This continuous localization keeps every consent notice current without manual tickets.
| Requirement | Details |
|---|---|
| Consent language | All consent requests and cookie policies must be displayed in the official language of the domain's target country |
| Cross‑domain sync | Consent preferences only sync across domains if all sites use the same CMP and shared consent cookie configuration |
| Consent records | You must store auditable proof of user consent (including timestamp, consent choices, and IP address) for at least 3 years |
| Withdrawal access | Users must be able to withdraw consent as easily as they gave it, with no penalty for doing so |
Cross‑domain consent sharing only works if all domains are owned by the same entity and use the same CMP; different CMPs break sync, forcing users to set preferences per site. Older CMPs may lack Google Consent Mode v2, causing non‑compliant Google tracking. Some third‑party tags ignore consent signals, so audit all tags to ensure they pause when users reject non‑essential cookies. Local EU rules can change quickly; monitor regulatory updates and adjust CMP configurations and policies promptly.
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.