Short answer: Chinese is written in two main scripts: Simplified, used mainly in mainland China and Singapore, and Traditional, used mainly in Taiwan, Hong Kong and Macau. For hreflang, many sites use language-region codes such as zh-cn, zh-tw and zh-hk; others use script subtags such as zh-Hans and zh-Hant. Either approach can work if used consistently, but the content must genuinely match the audience: script conversion alone is not localization, because vocabulary and usage also differ between regions.
Why Chinese needs extra thought
For most languages, choosing an hreflang code is straightforward: de for German, fr for French, with an optional country code when versions differ by country. Chinese adds a layer: the same spoken and written language exists in two scripts, and readers in different regions strongly prefer the script they grew up with.
A reader in Taiwan can usually understand Simplified characters, and a reader in mainland China can usually understand Traditional ones, but a page in the “wrong” script feels foreign and less trustworthy. On top of script, vocabulary differs: many everyday and technical terms are different between mainland China, Taiwan and Hong Kong. Hong Kong also has Cantonese influence in informal writing.
So a Chinese strategy has to decide which audiences to serve, in which script, with which regional vocabulary, and how to express that in hreflang.
Script and region: who reads what
| Audience | Script | Common hreflang codes |
|---|---|---|
| Mainland China | Simplified | zh-cn, or zh-Hans |
| Singapore | Simplified | zh-sg, or zh-Hans |
| Taiwan | Traditional | zh-tw, or zh-Hant |
| Hong Kong | Traditional | zh-hk, or zh-Hant |
| Macau | Traditional | zh-mo, or zh-Hant |
| Chinese speakers elsewhere | Varies | zh plus x-default or a general version |
Chinese-speaking communities in other countries use both scripts, depending on their origin. There is no reliable way to guess from location alone, which is why a clear language switcher that names both options matters.
Region codes vs script subtags
Language tags on the web follow the BCP 47 standard, which allows a script subtag between the language and the region, such as zh-Hant-TW. In hreflang practice, two patterns are common:
- Language plus region, such as
zh-cn,zh-tw,zh-hk. This matches the standard hreflang format described in Google’s documentation (language plus optional region) and is widely used. It implies the script through the region. - Language plus script, such as
zh-Hansandzh-Hant. This describes the script directly and suits sites with one Simplified and one Traditional version for all regions.
Whichever pattern you choose, apply it consistently across the cluster and make sure it matches your lang attributes. A common practical approach for sites with two Chinese versions is to annotate each version with the region codes it serves, for example the Simplified version as zh-cn and zh-sg, and the Traditional version as zh-tw and zh-hk. The same URL can appear under several codes in one cluster, which is valid.
Avoid invented values such as zh-tr or cn, and do not use the region code alone. The language code for Chinese is always zh.
How many Chinese versions do you need?
That depends on your markets and resources:
- One Simplified version is enough if your target is mainland China or Singapore. Annotate it with the relevant region codes or with
zh-Hans. - One Traditional version is enough if your target is Taiwan or Hong Kong. Annotate accordingly.
- Two versions, Simplified and Traditional, are common for businesses targeting several Chinese-speaking regions.
- Separate regional versions, such as Taiwan and Hong Kong Traditional, make sense only when prices, products, legal terms or vocabulary differ enough to justify the maintenance.
Start with the smallest set that serves your real customers well, and expand only when there is a clear reason.
Your own data can guide the choice. Look at visitors and enquiries from each Chinese-speaking region in analytics, check the queries that bring impressions from those countries in Search Console, and ask existing customers which script they prefer. If most Chinese-speaking customers come from Taiwan, starting with a Traditional version is the obvious choice, even if mainland China looks larger on paper.
Script conversion is not localization
Automatic conversion between Simplified and Traditional characters is widely available and technically easy. It is a useful starting point, but it has limits:
- Vocabulary: many terms differ between regions, for words related to technology, software, food, transport and everyday objects. Character conversion does not change the words.
- Conversion ambiguity: some Simplified characters map to several Traditional ones depending on meaning, and simple converters can choose wrongly.
- Tone and conventions: formality, punctuation, date formats and marketing style differ.
- Keywords: searchers use local terms, so keyword research has to be done per region.
Treat converted text as a draft and have it reviewed by a native speaker from the target region, starting with the pages that matter most.
Market-specific considerations
Search behaviour differs between Chinese-speaking markets. In mainland China, Baidu and other local search engines lead, Google’s services are generally not accessible, and site speed and reachability from inside China depend heavily on hosting. In Taiwan, Hong Kong and Singapore, Google is widely used, and standard hreflang practice applies directly.
For mainland China in particular, the technical and legal set-up, such as local hosting and licensing, is often a bigger factor than hreflang. Many businesses run a separate site for mainland China for that reason, while serving Taiwan, Hong Kong and Singapore from their main international site.
URLs and the language switcher for Chinese versions
URL structure follows the same principles as for other languages, with a few practical choices specific to Chinese:
- Folder names. Common patterns are
/zh-cn/and/zh-tw/, or/zh-hans/and/zh-hant/. Match the folder names to your hreflang pattern, so the structure is easy to understand for editors and developers. - Slugs. Chinese characters in slugs are readable in the address bar but become long percent-encoded strings when copied into emails or tools. Many sites use short Latin or pinyin slugs, or keep English slugs, for Chinese versions. Choose one approach and apply it consistently.
- Switcher labels. Label the versions in their own script, for example 简体中文 for Simplified and 繁體中文 for Traditional. Avoid flags, which suggest countries and can be sensitive in this region.
- No automatic script switching. Do not convert pages between scripts on the fly based on the visitor’s location or browser; give each script its own URL.
Fonts deserve a check as well. Chinese fonts are large, and loading full font files can slow pages noticeably. Many sites rely on system fonts for Chinese text, or use subsetting to load only the characters needed.
Common mistakes with Chinese versions
- A single “Chinese” version in the wrong script for the main target market, for example Simplified text aimed at Taiwan.
- Mixed scripts on one page, where the body is converted but menus, buttons or product data remain in the other script.
- hreflang codes that do not match the content, such as zh-tw on a page written in Simplified characters.
- Invalid codes like zh-tr, ch or cn used alone.
- Automatic conversion without review, leading to wrong characters and mainland vocabulary on Taiwanese or Hong Kong pages.
- Missing return links between the two Chinese versions, because they were set up at different times by different people.
Most of these are easy to prevent with a short style guide per Chinese version, agreed with native reviewers from each target region before translation begins.
Checking your Chinese versions
- Confirm that each version’s lang attribute matches its hreflang pattern, for example
zh-Hantorzh-TWon the Traditional version. - Check that the visible text is really in the script the code claims; templates and plugins sometimes fall back to the other script or to English.
- Verify return links between both Chinese versions and all other languages.
- Make sure the language switcher labels both versions clearly in their own script.
Site SEO AI Audit checks hreflang return links, broken language versions, x-default and lang attributes on every crawled page, which quickly shows whether both Chinese versions are properly connected to the rest of the site. The first audit is free.
Related reading
- hreflang language and region codes: a practical reference
- Beyond Google: Bing, Baidu, Naver and other local search engines
- Translation vs localization for SEO: what actually changes
The bottom line
Chinese targeting starts with script: Simplified for mainland China and Singapore, Traditional for Taiwan, Hong Kong and Macau. Choose region codes or script subtags for hreflang, use them consistently with matching lang attributes, and remember that script conversion is only a draft: vocabulary and keywords differ by region. Decide how many versions you can maintain, and treat mainland China as a market with its own technical and legal requirements.
GYIK
Should I use zh-cn or zh-Hans?
Both patterns are used. zh-cn follows the common language plus region format and implies Simplified Chinese for mainland China; zh-Hans describes the script directly. Pick one approach and use it consistently.
Can one Chinese page have several hreflang codes?
Yes. A Simplified version can be listed as zh-cn and zh-sg, and a Traditional version as zh-tw and zh-hk, within the same cluster.
Is automatic Simplified to Traditional conversion enough?
It is a useful draft but not enough on its own. Vocabulary and usage differ between regions, so a native reviewer should adapt important pages.
Which script do Hong Kong users expect?
Traditional Chinese is standard in Hong Kong, with some vocabulary differences from Taiwan. Many sites serve both from one Traditional version unless content differs.
Does hreflang help with Baidu?
Baidu is widely reported not to use hreflang. For mainland China, clear Simplified Chinese URLs, good reachability and local set-up matter more.


