International B2B Site Build: Lock Language, URL, and Code Ownership First
Most multilingual problems on an export-focused B2B site are not caused by bad translation. They come from URL decisions left open before launch. Is each language version on a subdomain or in a subdirectory? What does each language page's canonical tag point to? Get those wrong and changing translators or servers later will not fix it.
Decide language count from market data, not sales staff
Language count should follow market evidence, not how many salespeople speak a language. Use Google Keyword Planner to check monthly search volume for three to five core product terms in each candidate language. Then look at how many result pages are already in that language. German, Spanish, and Japanese often show lower competitor page density than English. That is an opening only if people search the terms. The second signal is inbound inquiry countries over the past twelve months. If the same country appears twice or more, that language deserves a project.
CSA Research's 2020 Can't Read, Won't Buy survey covered 8,709 consumers in 29 countries. 76% prefer buying products with information in their own language; 40% never shop on sites in other languages. Those numbers are often used to argue for ten languages. The conclusion should be the opposite. Spread resources across ten languages and each gets a homepage and three product pages in local language. The buyer opens a detail page and sees English. Trust breaks at the second step.
Four URL structures; pick once
| Structure | Typical form | Cost |
|---|---|---|
| Subdirectory | example.com/de/ | Inherits domain authority, one codebase, one certificate; lightest maintenance |
| Subdomain | de.example.com | Search engines treat it as a new site; Search Console, SSL, and monitoring multiply |
| Country domain | example.de | Strongest regional signal; higher registration and renewal costs |
| URL parameter | ?lang=de | Shared links lose the parameter; analytics gets chopped up |
For most small and mid-sized B2B sites, use subdirectories and fix the language prefix as the first path segment. A subdomain makes sense only when there is a local team, a different tech stack, or separate deployment. A country domain fits a market where the company has a local entity and plans to stay long term. Some countries require a local entity to register a ccTLD. [TO VERIFY: ccTLD registrant and local presence requirements by target market.]
Wrong structure costs money. Moving from a subdomain to a subdirectory means a full 301 pass, and English rankings start again from zero. Changing /en/products to /en/catalog three months after launch is the same full 301. Freeze the URL matrix in the first week of development. Later path changes go through a change order. Put that in the contract, not only in the proposal.
hreflang is a group, not a tag
There are three placements: a link in the page head, an HTTP response header, or an XML sitemap. Search engines process them similarly. Pick one and do not mix them. Two rules decide success.
First, reciprocity. If the German page's hreflang group includes the English page, the English page's group must include the German page. Miss one side and the whole group is ignored. The page stays indexed and never ranks. This is an acceptance item, not a development detail.
Second, canonical self-reference. Each language version's canonical points to its own language URL. Setting /de/'s canonical to /en/ tells search engines the German page is duplicate content, consolidates signals into English, and wastes the German work. x-default points to a language selector or the default version. There can be only one.
Use ordinary links for the language switch. Do not use JavaScript to change the address and redirect. Google's documentation on multi-regional and multilingual sites advises against automatic redirects based on visitor IP or browser language. Crawlers usually come from the United States without Accept-Language. With a redirect, they only fetch the default language version. This is violated more often than people think. Many sites that call themselves multilingual look like a single-language site to a crawler.
Translation workflow decides whether content can continue
Freeze a version number for source copy. Build the glossary first: product names, model numbers, certification names, units of measure, and banned terms. Translate, review, put content back, then have two people check the return. Machine translation is allowed, but a native-language reviewer must sign off and own the glossary. A more common trap is an undefined fallback rule: when a language lacks a field, does the template render blank or the source language? Neither is acceptable. Fall back to English and flag the missing item in the admin. Without that rule, new product pages six months later will show Chinese product names inside German pages.
Localization also covers non-copy items: tax-inclusive or net price display (EU B2B usually shows net price and states VAT), local certifications such as CE, UL, and FCC, the German Impressum, cookie consent and privacy policy, address and phone formats, and local payment icons. Miss these and the native-language copy feels less credible, not more.
Overseas payments and tax belong in the build decision
Open the merchant account under the company entity. A personal account can be frozen by risk controls, taking money and orders down together. Confirm Stripe's country and industry restrictions before promising a launch date. Pre-orders, dropshipping, and virtual goods are high-risk categories. PayPal disputes lean toward the buyer, and B2B large-ticket chargebacks hurt directly. Local default payment methods decide conversion: iDEAL in the Netherlands, Pix and Boleto in Brazil, Klarna in the Nordics, SEPA direct debit in Germany. These are not extras. They are what local buyers expect.
Tax treatment should be costed during selection. EU imports valued at no more than 150 EUR can use IOSS to collect VAT. EU B2C distance sales above 10,000 EUR a year require OSS filing in the destination country. The United States has no single sales tax system; state nexus rules differ. A self-hosted site does not collect tax the way a marketplace does. [TO VERIFY: VAT rates, low-value import thresholds, and state nexus rules by market and product category.]
Attribution has to survive the language switch
GA4 needs the linker configured across subdomains. The language switch link must keep the current query parameters. If it drops them, a UTM chain breaks at the switch button. When a form is submitted, store lang, country, and source channel server-side in the CRM. If you only keep GA4 events, sampled data will not reconcile with orders.
Test CDN and performance in the target market
Run speed tests from Frankfurt, São Paulo, and Singapore, not from a domestic office connection. Look at Core Web Vitals at the 75th percentile: LCP at or under 2.5 seconds, INP at or under 200 milliseconds, CLS at or under 0.1. More CDN nodes do not automatically mean faster. Common bottlenecks are hero images not served as WebP or AVIF, fonts blocking render, and third-party chat widgets loading synchronously.
Code ownership has one test: can it run without the vendor?
The delivery list should include the repository's full commit history, build scripts, database schema and migrations, deployment documentation, and an environment variable list without plaintext secrets. The domain registrar, DNS, CDN, payment merchant account, GA4, and Search Console must sit under the client's entity. The vendor should be a collaborator only. Acceptance is direct: on a machine with no vendor accounts, follow the deployment document and get the site running.
In our custom projects at WANFENG TECHNOLOGY, these items go into the delivery list: no templates, full source code delivery, a dedicated advisor, three months of maintenance, and a late-delivery penalty if acceptance fails.
Before launch, print the language list, URL matrix, and hreflang groups on one sheet. Have technical and business sign the same page. Do not translate pages that are not on that sheet. Thirty days after launch, check Search Console impressions by country for each language. If German pages get impressions almost entirely from English-speaking markets, the hreflang group or canonical is still wrong. That re-test has not been done here; wait for the first batch of data.