Vietnamese Website Localization Checklist (2026)
💡 To localize a website into Vietnamese, you need three coordinated layers: a correct technical foundation (UTF-8, a vi language tag, subdirectory URLs, bidirectional hreflang), locale-aware formatting (DD/MM/YYYY dates, period as thousands separator, VND currency), and native-quality copy that uses the right Sino-Vietnamese register. This checklist covers all three.
Key takeaways
- Declare UTF-8 encoding and set
lang="vi"on the<html>element of every Vietnamese page - these are the non-negotiable technical foundations. - Use subdirectory URLs (example.com/vi/) not parameters; Google Search Central explicitly marks URL parameters as not recommended for multi-regional sites.
- Implement bidirectional hreflang: every page lists itself and all alternate language versions, and each alternate page must reciprocate the link.
- Vietnamese strings run about 10-20% longer than English equivalents; test button labels, navigation items, and card titles at mobile widths before launch.
- Use machine translation plus post-editing for large volumes of structured content; hire a native Vietnamese specialist for UI copy, marketing text, and domain-specific terminology.
What does Vietnamese website localization actually involve?
Localization (l10n) is the adaptation layer that sits on top of internationalization (i18n). Internationalization is the engineering work you do once: UTF-8 encoding everywhere, no hard-coded strings, locale-aware date and number formatting. Localization is what you repeat for each target market: translate the content, adapt the tone, verify the layout, and route the right URL to the right audience.
For Vietnamese, that means handling a tonal language with 6 tones and 29 letters, all encoded in modern Unicode. It means choosing between Sino-Vietnamese (Han-Viet) and native Vietnamese terms - a distinction that matters in finance, technology, and medicine. And it means deploying a URL structure that Google can crawl and index reliably.
The complete Vietnamese website localization checklist
Work through this list before launch. It covers engineering, content, and SEO in one pass.
- Encoding: Declare
charset="UTF-8"in every HTTP response and in the HTML<meta charset>tag within the first 1,024 bytes. The W3C Internationalization Activity identifies this as the single most important step for correctly rendering Vietnamese diacritics. - Language attribute: Add
lang="vi"to the<html>tag of every Vietnamese page. Uselang="vi-VN"only when you need to distinguish Vietnam-based Vietnamese from diaspora variants. - URL structure: Use a subdirectory path (example.com/vi/). Avoid URL parameters (?lang=vi). Google Search Central explicitly flags parameter-based internationalization as not recommended because crawlers cannot reliably segment parameterized language variants.
- hreflang: Add a
<link rel="alternate" hreflang="vi">tag for every Vietnamese page. Implement bidirectional links: every page lists all its alternates, and each alternate page reciprocates. Includehreflang="x-default"on your root URL for users whose language has no specific version. - String externalization: Move all user-visible strings into locale files (JSON, XLIFF, or PO format). Hard-coded strings in templates are the most common cause of incomplete localization.
- Layout testing: Vietnamese text runs about 10-20% longer than English. Test navigation labels, button text, and card titles at multiple viewport widths before launch, especially on mobile.
- Date and number formats: Vietnam uses DD/MM/YYYY for dates, a period as the thousands separator (1.000.000), and a comma as the decimal separator (3,14). The Unicode CLDR under locale
viis the authoritative reference for all Vietnamese formatting data. - Currency: Vietnamese Dong (VND, symbol ₫) appears after the number: 500.000₫. VND has no decimal subdivision.
- Translation: Translate all user-facing strings, meta titles, meta descriptions, alt text, and form labels. Do not skip alt text: it affects both accessibility and Vietnamese image search.
- Vietnamese keyword research: Research Vietnamese keywords separately. Direct English-to-Vietnamese keyword translations often miss how Vietnamese speakers actually search. Google operates normally in Vietnam; monitor Search Console impressions after launch.
- User language choice: Provide a visible language switcher. Google advises against automatic IP-based redirects and recommends letting users select their language manually.
- QA review: Have a native Vietnamese speaker review the complete Vietnamese version before launch. Automated spell-checkers miss tonal errors that completely change meaning.
Which URL structure works best for a Vietnamese site?
Google's guidance on managing multi-regional sites presents four options: country-specific domains (example.vn), subdomains (vi.example.com), subdirectories (example.com/vi/), and URL parameters. For most businesses adding Vietnamese for the first time, subdirectories are the pragmatic starting point.
Subdirectories consolidate domain authority, need no additional hosting infrastructure, and work out of the box in every major framework. The tradeoff: you cannot geotarget the Vietnamese subdirectory independently in Google Search Console (unlike a .vn ccTLD). If Vietnam is a primary market where local ranking signals matter, a .vn domain is worth the added overhead.
For Next.js, the App Router pattern uses an [lang] segment at the root of the app/ directory. Each locale gets a static route via generateStaticParams, and locale detection runs in a proxy middleware that reads the Accept-Language header and redirects to the matching subdirectory. See the Next.js internationalization documentation for the complete routing pattern.
Vietnamese language and encoding: what developers need to know
Vietnamese is written in a Latin-based alphabet extended with additional letters and 5 diacritic classes that mark tone. The 6 tones are phonemically distinct: "ma" (ghost), "ma" with rising accent (mother), "ma" with grave (but), "ma" with hook (tomb), "ma" with tilde (code), and "ma" with dot below (rice seedling) are 6 entirely different words. A missing diacritic is not a minor typo - it changes meaning completely.
All Vietnamese characters are in Unicode and render correctly in UTF-8. The common failure is saving files in legacy encodings like Windows-1258 or VISCII, which causes garbled text. Always declare UTF-8 explicitly; do not rely on browser auto-detection.
String sorting is locale-specific. The Vietnamese alphabet has 29 base letters (not 26) and sorts differently from ASCII order. Use ICU collation with locale vi for any dropdown lists or search results that require correct Vietnamese alphabetical ordering.
Handling date, number, and currency in Vietnamese
Vietnamese locale formatting differs from both English and French defaults and can trip up teams that copy EU or US locale settings:
- Dates: DD/MM/YYYY. Write "23/09/2026", not "09/23/2026".
- Thousands separator: a period. One million is written 1.000.000.
- Decimal separator: a comma. Pi is written 3,14159.
- Currency: VND (₫), placed after the number: 250.000₫. No decimal subdivision.
- Time: 24-hour format is standard in formal and business contexts.
In JavaScript: new Intl.NumberFormat('vi-VN', { style: 'currency', currency: 'VND' }).format(250000) returns "250.000 ₫". Use the platform's built-in Intl APIs rather than hand-rolling formatters. The CLDR data they rely on is maintained by the Unicode Consortium and updated with each CLDR release.
In-house vs. specialist: where is the real boundary?
Machine translation (MT) and post-editing work well for large volumes of structured content: product descriptions with predictable sentence patterns, help center articles, and support documentation. Google Translate and DeepL both support Vietnamese, and output quality has improved considerably since 2022. For this category, MT plus a native reviewer spot-checking quality is a cost-effective approach.
MT consistently underperforms for Vietnamese in four areas: marketing copy, product UI labels, legal or medical text, and content that relies on cultural register. Vietnamese has distinct formal and informal registers; the wrong register in a B2B SaaS UI reads as unprofessional to Vietnamese users. Sino-Vietnamese terms (vocabulary borrowed from Classical Chinese over centuries of contact) signal domain expertise in finance and medicine; a general MT engine will default to plain Vietnamese equivalents that sound imprecise to specialists.
The practical boundary: use MT for volume and speed, and hire a native Vietnamese subject-matter specialist for anything a prospect will judge you on. For professional Vietnamese website localization covering English, French, and Chinese source languages, the service on this site handles both translation and technical review.
FAQ
Do I need a separate .vn domain to rank in Vietnam?
No. Google can index Vietnamese-language content hosted under any domain, including .com with a /vi/ subdirectory. A .vn ccTLD gives a geotargeting signal and may build local trust, but subdirectory URLs with correct hreflang are sufficient for Google to rank your Vietnamese pages for searchers in Vietnam.
Can I use Google Translate or DeepL for my Vietnamese website?
For high-volume structured content (FAQs, product specs, support articles), MT is a reasonable starting point if a native Vietnamese reviewer checks the output. For UI labels, marketing copy, and technical text, MT output needs substantial editing and is often slower than fresh translation by a specialist. MT accuracy for Vietnamese has improved, but register and terminology choices still require expert review.
What is Sino-Vietnamese and why does it matter for localization?
Sino-Vietnamese (Han-Viet) refers to Vietnamese vocabulary borrowed from Classical Chinese over centuries of contact. These words dominate formal registers in law, medicine, and finance. For example, the Vietnamese word for "economy" (kinh te) is Sino-Vietnamese, while "buy" (mua) is native Vietnamese. Using the wrong register can make technical or professional content sound informal or imprecise to Vietnamese readers.
How do I implement hreflang for a Vietnamese site?
Add <link rel="alternate" hreflang="vi" href="https://example.com/vi/page/"> in the <head> of the English page, pointing to the Vietnamese URL. Add the reverse tag on the Vietnamese page pointing back to English. Both pages must also include a self-referential hreflang tag. Use hreflang="x-default" on the fallback page for users whose language has no specific version. All alternate URLs must be fully qualified (https://...).
Official Sources
- Google Search Central: Tell Google about localized versions of your page - hreflang implementation, bidirectional linking requirements, and language code format. Verified Sep 2026.
- Google Search Central: Managing multi-regional and multilingual sites - URL structure options and crawling guidance. Verified Sep 2026.
- W3C Internationalization: Language tags in HTML and XML - BCP 47 language tag structure and use of vi vs. vi-VN. Verified Sep 2026.
- W3C Internationalization: Authoring HTML - UTF-8 encoding requirements and lang attribute guidance. Verified Sep 2026.
- Next.js documentation: Internationalization - subdirectory routing patterns and generateStaticParams for multilingual Next.js apps. Verified Sep 2026.
Written by Dao Huy (Lucas), Vietnamese translator & localization specialist (EN · ZH · FR → Vietnamese). See translation services →
