hreflang attribute cho Google biết trang nào dành cho ngôn ngữ/quốc gia nào — tránh duplicate content penalty khi có nhiều phiên bản ngôn ngữ. Format: <link rel='alternate' hreflang='vi' href='https://example.com/vi/page'>.
Quy tắc:
- Mỗi trang phải có hreflang trỏ đến TẤT CẢ phiên bản ngôn ngữ (kể cả chính nó — self-referencing).
- hreflang phải reciprocal (trang A trỏ B, trang B phải trỏ lại A).
- Dùng x-default cho fallback language.
Format language code: 'vi' (ngôn ngữ), 'en-US' (ngôn ngữ-quốc gia). Trong Next.js: cấu hình i18n routing trong next.config, generateMetadata() với alternates.languages.
Sai lầm: hreflang không reciprocal (Google bỏ qua), mixed signals (hreflang nói tiếng Việt nhưng content tiếng Anh), quên x-default.
The hreflang attribute tells Google which page is intended for which language or country — preventing duplicate content penalties when multiple language versions exist. Format: <link rel='alternate' hreflang='vi' href='https://example.com/vi/page'>.
Rules:
- Every page must have hreflang annotations pointing to ALL language versions (including itself — self-referencing).
- hreflang annotations must be reciprocal (if page A points to page B, page B must point back to page A).
- Use x-default as the fallback language.
Language code format: 'vi' (language only), 'en-US' (language-country). In Next.js: configure i18n routing in next.config.js and use generateMetadata() with alternates.languages.
Common mistakes: non-reciprocal hreflang (Google ignores it), mixed signals (hreflang says Vietnamese but content is in English), and forgetting x-default.