Date: 2025-10-12 Status: ✅ Complete
This document outlines the SEO implementation for the Metaplex Developer Hub's multilingual documentation, following international best practices for language-specific content.
Updated from custom codes to ISO 639-1 standard:
| Old Code | New Code | Language | Reason |
|---|---|---|---|
/jp/ |
/ja/ |
Japanese | ISO 639-1 standard for Japanese |
/kr/ |
/ko/ |
Korean | ISO 639-1 standard for Korean |
Why This Matters:
src/config/languages.js)Central configuration for all language settings:
src/components/SEOHead.jsx)Comprehensive SEO meta tags including:
/src/pages/jp/ → /src/pages/ja/ (437 files)/src/pages/kr/ → /src/pages/ko/ (437 files)/src/locales/jp.json → /src/locales/ja.json/src/locales/kr.json → /src/locales/ko.jsonsrc/contexts/LocaleContext.js
jp/kr to ja/kosrc/components/LanguageSwitcher.jsx
ja and kosrc/shared/localizedSections.js
jp/kr to ja/kosrc/shared/productTranslations.js
ko) translationsjp to jasrc/i18n.js
['en', 'ja', 'ko']src/pages/_app.jsx
Each language version has a self-referential canonical URL:
https://developers.metaplex.com/pagehttps://developers.metaplex.com/ja/pagehttps://developers.metaplex.com/ko/pageEvery page includes alternate language links:
<link rel="alternate" hreflang="en" href="https://developers.metaplex.com/page" />
<link rel="alternate" hreflang="ja" href="https://developers.metaplex.com/ja/page" />
<link rel="alternate" hreflang="ko" href="https://developers.metaplex.com/ko/page" />
<link rel="alternate" hreflang="x-default" href="https://developers.metaplex.com/page" />
og:locale set to proper format (e.g., ja_JP, ko_KR)og:locale:alternate tags for other languagesdevelopers.metaplex.com/[page]developers.metaplex.com/ja/[page]developers.metaplex.com/ko/[page]| English | Japanese | Korean |
|---|---|---|
/core |
/ja/core |
/ko/core |
/candy-machine |
/ja/candy-machine |
/ko/candy-machine |
/umi |
/ja/umi |
/ko/umi |
To add a new language in the future:
Update Language Config (src/config/languages.js):
es: {
code: 'es', // ISO 639-1 code
urlPath: '/es', // URL prefix
name: 'Spanish',
nativeName: 'Español',
isDefault: false,
}
Create Locale File: /src/locales/es.json
Update i18n Config (src/i18n.js):
const locales = ['en', 'ja', 'ko', 'es'];
Add Translations to:
src/shared/localizedSections.jssrc/shared/productTranslations.jsCreate Pages Directory: /src/pages/es/
The SEO system will automatically:
<link rel="alternate" hreflang="..."After deployment:
✅ No Duplicate Content Penalties: Each language version properly identified ✅ Improved International SEO: Search engines serve correct language to users ✅ Better User Experience: Users see content in their preferred language ✅ Future-Proof: Easy to add more languages ✅ Standards Compliant: Follows W3C and Google best practices