Skip to content

SDD-029 · Ba thế giới, cổng chọn vai, sitemap và điều hướng ​

Một phần của SDD-029. Vì sao tách ba thế giới, cổng chọn vai, sitemap gốc, nội dung từng thế giới, điều hướng, SEO prerender, /start, ngôn ngữ và bảng trace.

1. Vì sao tách ở cấp website, không phải một bộ lọc trong /learn ​

Việc-cần-làm (Jobs-to-be-Done) của hai nhóm khác nhau tới mức không chung được một trang:

Học sinhBố mẹ
Câu trong đầu khi vào site"Tôi muốn giỏi hơn / vượt qua một kỳ thi.""Tôi muốn hiểu con và giúp con tiến bộ."
Điều hướng theomục tiêu (IELTS · Chuyên · Toán · AI)vấn đề (con lười học · học nhiều không tiến)
Ngôn ngữcủa học sinhcủa phụ huynh
Bằng chứng thuyết phụcthử ngay một Learning Experiencenhìn thấy hệ thống làm việc thật

Một trang chung phải nói cả hai giọng, và kết cục là không nói được giọng nào. Vì vậy /students và /parents là hai website nhỏ dùng chung một nền tảng phía sau.

Trang chủ / do đó không bán một khoá học nào.

1.1 Cổng chọn vai (chỉ đạo 2026-08-30, vòng hai) ​

Đã được §10.10 thay (SRC-746, 2026-09-16): trang chủ nay hỏi HAI câu (vai và mục tiêu) rồi mới đi tiếp bằng một nút; dải link cuối trang đã gỡ; và / không còn chuyển hướng đi đâu — câu "hỏi lại là bắt người ta trả phí cho quyết định đã đưa ra" ở dưới KHÔNG còn hiệu lực, vì lựa chọn cũ nay được chọn sẵn thay vì bị bỏ qua. Phần dưới giữ lại vì nó ghi lý do của những thứ vẫn còn: bố mẹ đứng trước, không menu không chân trang, và vì sao trang này cần link thật thay vì <button>.

Vòng một dựng / thành một trang giới thiệu có hai cửa vào, nhưng vẫn giữ một thanh điều hướng bày cả ba thế giới ở mọi trang. Chủ dự án bác cách đó: hai cửa mà menu vẫn chung thì chưa tách gì cả — một bố mẹ vẫn phải nhìn thấy "Thi thố" ở mọi trang, và một học sinh vẫn phải nhìn thấy "Con tôi...".

Luật thay thế, gồm bốn phần:

  1. / chỉ có đúng hai card, trần trụi. Không nav, không chân trang, không logo, không tiêu đề, không câu dẫn, không dòng đăng nhập. Mọi thứ thêm vào là một lối rẽ khỏi câu hỏi duy nhất mà trang này tồn tại để hỏi, và mỗi lối rẽ làm giảm số người trả lời nó.

    Vòng hai còn giữ logo, một tiêu đề và hai dòng chú thích; chủ dự án đọc lại và gọi đó là nhiễu (chỉ đạo vòng ba, 2026-08-30). Đã bỏ hết.

    Bố mẹ đứng trước và mang hình to hơn hẳn con. Đây là chủ ý chứ không phải sơ suất về cân đối: bố mẹ là người ra quyết định và là người trả tiền, nên khi phải ưu tiên một trong hai thì ưu tiên họ. Điều này đè lên luật "hai cửa ngang hàng nhau" của vòng hai.

    Thứ duy nhất còn lại ngoài hai card là băng chấp thuận cookie. Nó không phải nội dung mà là nghĩa vụ pháp lý gắn với GA và Pixel; gỡ nó đi là gỡ cơ sở hợp pháp của việc đo lường, nên nó ở lại. Đổi lại, người đã có tài khoản mất lối đăng nhập từ / — họ vào thẳng /login, hoặc chọn một vai rồi bấm Đăng nhập trên nav.

  2. Sau khi chọn, chỉ còn MỘT menu, của đúng vai đó. Không có thanh nào bày ra cả hai thế giới cùng lúc nữa.

  3. Lựa chọn lưu ở localStorage (nemo12.role). Lần sau vào / là đi thẳng vào thế giới của mình — hỏi lại cùng một câu ở mỗi lần vào là bắt người ta trả phí cho quyết định đã đưa ra rồi. Chuyển hướng dùng replaceState, nếu không nút Quay lại sẽ ném người dùng về / rồi bị đẩy đi ngay, thành một cái bẫy.

  4. Đổi vai ở CHÂN TRANG, không ở nav. Đó là việc làm một lần rồi thôi; đặt nó cạnh các mục dùng hàng ngày là đưa cả hai thế giới trở lại đúng chỗ vừa dọn đi. Ô đổi vai nói rõ đang ở vai nào, vì người dùng không nhớ mình bấm gì ba tuần trước. Bấm đổi thì lưu vai mới, không xoá vai cũ: đổi vai là một quyết định mới, không phải rút lại quyết định trước.

Hai điều localStorage kéo theo, đã xử lý:

  • Trình duyệt chặn lưu trữ (chế độ riêng tư) làm localStorage ném lỗi. Mọi lần đọc/ghi đều bọc try, và trường hợp xấu nhất chỉ là lần nào vào cũng gặp cổng chọn — không phải trang trắng.
  • Người tới từ Google rơi thẳng vào /parents/how-to-help/wont-study mà chưa qua cổng. Bắt họ chọn vai trước khi được đọc thứ vừa bấm là chặn đúng người đang muốn đọc. Vì vậy menu suy ra từ đường dẫn, và đường dẫn thắng vai đã lưu. Suy ra thì KHÔNG ghi vào localStorage: lưu là một quyết định, và quyết định phải do người dùng bấm.

Đây cũng không phải dữ liệu cá nhân: nó là sở thích hiển thị của một trình duyệt, không rời khỏi máy người dùng, nên không kéo theo nghĩa vụ nào về quyền riêng tư.

Vai đã chọn thắng đường dẫn ​

Vòng hai để đường dẫn thắng vai đã lưu. Chỉ đạo 2026-08-30 ("bố mẹ cũng cần xem được danh sách khoá của con") lật lại điều đó: danh mục khoá của con sống trong thế giới bố mẹ (/parents/courses), nhưng trang chi tiết từng lớp là bản duy nhất ở /students/courses/{slug} — nhân đôi thành 15 trang trùng nội dung là bắt công cụ tìm kiếm đoán bản nào chính.

Nếu đường dẫn thắng thì bố mẹ bấm vào một lớp là cả menu lật sang giao diện học sinh giữa chừng, đúng thứ luật "một menu" sinh ra để tránh. Nên từ nay: vai đã lưu thắng, đường dẫn chỉ quyết định khi chưa có vai nào được lưu — tức là người tới từ Google, và với họ đường dẫn là manh mối duy nhất. Suy ra thì vẫn không ghi vào localStorage.

Trang dùng chung đi đâu ​

/education, /how-it-works, /about phục vụ cả hai vai nên không thuộc menu nào. Chúng sống ở chân trang. Ngoại lệ có chủ đích: /education cũng nằm trong menu bố mẹ, vì "việc học vận hành ra sao" là câu hỏi bố mẹ thật sự hỏi khi đang cân nhắc chọn nơi học cho con; học sinh thì không vào site để đọc về pedagogy.

/start cũng chỉ hiện đúng vai đang xem, không bày cả hai cột — người đã chọn ở cổng vào không cần được hỏi lại ở đó.

2. Sitemap ​

Bản v1 — đã được §10 thay ở phần TRỤC điều hướng (SRC-746, 2026-09-16). Mọi URL dưới đây vẫn sống; thứ đổi là /students và /parents thôi làm trang mục lục và trở thành trang chọn mục tiêu. Giữ mục này vì nó là bản kiểm kê URL của v1.

text
/                         Home — hai cửa vào
├── /students             Student Home
│   ├── /students/courses         Course catalog (cấp 2 · cấp 3)
│   ├── /students/courses/{slug}  Một course
│   ├── /students/experiences     Learning Experiences (5–15 phút)
│   ├── /students/competitions    Orca — thi thố bên ngoài
│   └── /students/resources       Student Resources
├── /parents              Parent Home
│   ├── /parents/programs         Program cho bố mẹ
│   ├── /parents/programs/{slug}  Một program
│   ├── /parents/resources        Parent Resources
│   ├── /parents/how-to-help      Con tôi... (điều hướng theo vấn đề)
│   ├── /parents/how-to-help/{slug}  Một vấn đề
│   └── /parents/demos            Nhìn Nemo12 chạy
├── /education            Education Knowledge Library
│   ├── /education/competencies   Competency Frameworks
│   ├── /education/pedagogy       Pedagogy Library
│   └── /education/examples       Teaching & Learning Examples
├── /how-it-works         Bên trong Nemo12
├── /about                About
└── /start                Get Started

Bảy khu vực. Ba trong số đó (students, parents, education) có header và giọng riêng.

2.1 Mỗi trang một URL riêng ​

Chỉ đạo: tách URL rời hết ra, có làm SEO. Hệ quả bắt buộc, không phải tuỳ chọn:

  • Không có trang nào chỉ tồn tại dưới dạng tab hay accordion của trang khác. Một vấn đề trong /parents/how-to-help là một URL; một course là một URL; một pedagogy là một URL.
  • Mỗi URL có <title>, <meta name="description">, canonical, OG tag riêng, đặt vào HTML lúc build, không phải lúc chạy — xem §5.
  • sitemap.xml sinh bằng script từ cùng một bảng route, không gõ tay. Sổ tay là sổ sẽ lệch.

3. Ba thế giới nói gì ​

3.1 /students ​

Ngôn ngữ của học sinh, không nói về parenting, competency framework hay pedagogy. Hero hỏi: Bạn muốn giỏi hơn ở việc gì? → IELTS · Toán · AI · Viết · SAT · Chuyên.

Có (rút gọn theo chỉ đạo 2026-09-15, SRC-740): hero + CTA Bắt đầu học · hai lối vào IELTS và SAT · Learning Experiences · chuyện của học sinh. Không còn trên trang này: ba thẻ lớp ưu tiên khai giảng, ba thẻ "hiểu kỳ thi", tường school, dải ảnh lớp học, ảnh sản phẩm học sinh và hai thẻ cuối trang — chúng vẫn sống ở trang trong, chỉ thôi chen nhau ở cửa vào.

Course catalog chia bốn nhóm — English · Mathematics · Future Skills · Academic. Mỗi course dành cho cụ thể học sinh cấp 2 hoặc cấp 3, và có cùng một khung sáu phần:

Goal → Pains → What you'll learn → Units → Experiences → Assessment → Start

Pains thêm 2026-08-30 theo chỉ đạo chủ dự án: mỗi khoá liệt kê nỗi đau learner thường mang tới. Nó đứng trước "bạn sẽ làm được gì", vì người đọc phải nhận ra mình trong một dòng nào đó trước đã — nhận ra rồi thì danh sách kỹ năng bên dưới mới có nghĩa, còn đặt danh sách lên đầu thì nó chỉ là một danh sách.

Hai luật khi viết:

  • Ngôi thứ nhất, bằng đúng câu người học tự nói trong đầu. Không mô tả từ bên ngoài kiểu "học sinh thường gặp khó khăn trong việc…".
  • Cụ thể, kiểm chứng được bằng trải nghiệm. "Em học mãi không giỏi" không dùng được; "Em đọc hết passage 1 thì đã hết 25 phút" thì dùng được.

Đợt này lên thật: toàn bộ 12 lớp IELTS và AI 4 Teen. Course khác hiện dạng "sắp mở" và không có nút Start — một course rỗng có nút Start là một lời hứa sai (cùng luật với packages.ts: chưa chốt thì bỏ trống, không bịa số giữ chỗ).

Danh mục có hai tầng: cụm → lớp (chỉ đạo 2026-08-30) ​

Bản trước đổ thẳng 15 thẻ lớp ra trang danh mục, và hero liệt kê hết lớp đang mở. Chủ dự án bác: link quá chi tiết, đi thẳng vào từng course. Đúng — người vừa vào chưa biết mình cần "IELTS Reading 2" hay "IELTS Writing 1"; họ chỉ biết mình cần IELTS. Chọn bậc là việc của bước sau.

TầngURLNội dung
Danh mục/students/courses · /parents/courses4 thẻ cụm: IELTS · Mathematics · Future Skills · Academic, kèm số lớp đang mở
Cụm/students/courses/{cụm}Điểm nhấn của cụm, bộ lọc kỹ năng, rồi danh sách lớp
Lớp/students/courses/{lớp}Một lớp. Chỉ có MỘT bản, kể cả khi bố mẹ duyệt tới

Định tuyến thử cụm trước lớp: /students/courses/ielts là một cụm, không phải một lớp. Vì vậy slug cụm không được trùng slug lớp nào.

Hero có đúng HAI lối vào: IELTS và SAT (chỉ đạo 2026-09-15, SRC-740). Bản trước để ba thẻ lớp cụ thể ("IELTS Reading 1", "IELTS Writing 1", "AI 4 Teen") chọn bằng cờ featured. Chủ dự án bác với đúng lý do đã bác trang danh mục ngày 2026-08-30, chỉ chậm hơn một tầng: một người vừa vào biết mình cần IELTS hay cần SAT, chưa biết mình cần kỹ năng nào ở bậc nào. Chọn kỹ năng và bậc là việc bên trong mỗi khu. Cờ featured và hàm featuredCourses() xoá luôn — giữ lại một cơ chế không ai gọi là để lần sau có người tưởng nó đang chạy.

Cùng chỉ đạo ấy, hero mất luôn ba thẻ "hiểu kỳ thi" (ExamGuides, SRC-713): hai thẻ IELTS/SAT đã trỏ vào đúng những trang đó, và để cả hai khối trên một trang là bắt người đọc chọn giữa sáu thứ họ chưa đủ thông tin để phân biệt.

Ba điểm nhấn của cụm IELTS (chủ dự án chốt 2026-08-30) đứng NGAY DƯỚI phần dẫn, trước danh sách lớp, vì chúng là lý do người ta ở lại đọc tiếp:

  • Học thử 2 buổi miễn phí cùng cựu học sinh chuyên ngữ
  • Học online qua Zoom
  • Offline hàng tuần: picnic, xem phim tiếng Anh

Đây là cam kết công khai, nên chữ ở đó phải khớp đúng thứ lớp học thật sự có — sửa lớp mà quên sửa dòng này là hứa sai.

IELTS: bốn kỹ năng, mỗi kỹ năng ba bậc (chỉ đạo 2026-08-30) ​

Bốn lớp IELTS gộp tách thành 12 lớp: Reading · Listening · Writing · Speaking, mỗi kỹ năng bậc 1 · 2 · 3, bậc sau đứng ngay trên bậc trước.

Chia bậc để mỗi lớp có đúng một việc phải làm:

BậcViệc của lớp
1Dựng nền và làm quen dạng đề. Chưa ép thời gian — mục tiêu là hiểu đúng.
2Gánh phần khó đặc trưng của kỹ năng đó, và làm được đề trong đúng thời gian thi.
3Tốc độ và độ chính xác ở mức đề khó nhất; đo độ ổn định, không đo lần tốt nhất.

Thứ tự hiển thị: Reading → Listening → Writing → Speaking, rồi tới bậc 1·2·3. Thứ tự này do chủ dự án chốt, và nó khớp với việc hai kỹ năng tiếp nhận thường tiến nhanh hơn hai kỹ năng tạo ra ngôn ngữ. Nó nằm trong SKILL_ORDER và được sortCourses() áp cho cả trang danh mục, sitemap lẫn prerender — một nguồn, không có chỗ thứ hai để lệch.

Trang danh mục lọc theo kỹ năng. Bộ lọc giữ ở state trong trang, KHÔNG thành URL riêng: một bộ lọc không phải một trang, và bốn URL gần trùng nội dung là tự tạo nội dung trùng lặp cho công cụ tìm kiếm. Luật "mỗi trang một URL" (§2.1) nói về trang. Bộ lọc cũng chỉ áp cho nhóm có kỹ năng — lọc "Reading" mà làm biến mất luôn lớp Toán thì người dùng tưởng site hỏng, chứ không tưởng mình vừa lọc.

Khối lớp thôi làm trục. Thẻ lớp trước đây gắn nhãn "Lớp 8 – lớp 12"; từ nay nhãn là bậc và mức vào lớp (entry), vì với một lớp chia bậc thì "bạn đang ở đâu" mới quyết định chọn đúng lớp — hai học sinh cùng lớp 10 có thể cách nhau hai bậc. Khối lớp vẫn đúng và vẫn được ghi, nhưng lùi xuống một dòng phụ trong trang chi tiết.

Bốn slug cũ (ielts-reading, ielts-listening, ielts-writing, ielts-speaking) giữ làm bí danh trỏ về bậc 1.

Learning Experiences là chỗ Nemo12 khác nhất: học sinh không cần đăng ký course vẫn thử được ngay, 5–15 phút, và mỗi lượt thử sinh ra evidence về learner.

Competitions chính là Orca ở tầng trải nghiệm sản phẩm. Thông điệp không phải "Nemo12 dạy bạn" mà "đi thử sức đi" — olympiad, hackathon, robotics, contest lập trình, cơ hội bên ngoài.

3.2 /parents ​

Hero không nói "Xem các khoá học của chúng tôi". Nó nói: Giúp con học tốt hơn, rồi đi thẳng vào vấn đề có thật:

text
Con tôi...
├── không chịu học
├── không tập trung được
├── học nhiều nhưng không tiến bộ
├── đang chuẩn bị thi Chuyên
├── đang chuẩn bị thi IELTS
├── quá tải
└── không biết nên học gì

Đây là điều hướng theo vấn đề, khác hoàn toàn student site. Bấm vào một vấn đề mở ra một URL riêng theo bốn nhịp cố định:

Hiểu chuyện gì đang xảy ra → Nhận ra ở con mình → Bố mẹ làm được gì → Nemo12 làm được gì

/parents/how-to-help vì thế vừa là core value proposition với bố mẹ, vừa là một trong hai cỗ máy SEO chính (cỗ còn lại là /education).

/parents/resources không phải blog chung của Nemo12. Nó phải cho cảm giác "Nemo12 hiểu đúng vấn đề của mình" — tiêu đề là câu bố mẹ thật sự gõ vào ô tìm kiếm.

/parents/demos là cho xem thay vì giải thích: Understand My Child · Find the Gap · See a Learning Experience.

Đợt này demo chưa gọi engine thật. Ba demo chạy trên kịch bản dựng sẵn, bấm qua từng bước. Mỗi trang demo phải ghi rõ đây là ví dụ minh hoạ, không phải kết quả tính cho con bạn. Nối vào Learner/Readiness engine thật là việc của đợt sau.

3.3 /education ​

Students đến để học. Parents đến để giúp con. Education đến để hiểu việc học vận hành ra sao — giáo viên, phụ huynh, học sinh đều đọc được.

  • competencies — tra cứu Domain · Competency · Skill · Indicator · Mastery Level · Rubric. Mỗi framework bắt buộc ghi ba dòng: Nguồn / Giấy phép — ghi công / Cách Nemo12 diễn giải. Bốn khung Nemo · Marlin · Dolphin · Turtle đã sống ở b21.nemo12.com (SDD-028); trang này dẫn sang đó, không chép lại.
  • pedagogy — Competency-Based · Inquiry-Based · Concept-Based · Project-Based · Formative Assessment · Performance Assessment · Mastery Learning · Deliberate Practice · 5E · Socratic.
  • examples — không dừng ở "IB dùng inquiry" mà cho xem cả chuỗi: Câu hỏi → Learning Experience → Học sinh nghĩ gì → Đánh giá → Phản hồi; đặt cạnh bài truyền thống để thấy khác chỗ nào.

Vì sao /education đáng đầu tư hơn vẻ ngoài của nó: nó không phải "trang tài nguyên". Tích luỹ đủ lâu, Competency Frameworks + Pedagogy + Teaching Examples + Assessment Examples thành một Education Knowledge Graph — và chính nó là nguyên liệu để AI sinh Learning Experience tốt hơn:

text
Education Knowledge → Learning Experience → Learner Evidence → Better Learning → More Knowledge

4. Điều hướng: cái gì lên nav, cái gì không ​

Nav chỉ có menu của một vai (xem §1.1), gồm đúng bốn mục, cộng một nút Login (chỉ đạo 2026-08-30).

Bảy mục là quá nhiều cho một thanh: người đọc lướt qua chứ không đọc, và mục thứ sáu thứ bảy gần như không ai bấm. Bốn mục trả lời bốn câu khác nhau, không mục nào trùng việc với mục nào:

VaiBốn mụcBốn câu
Học sinhKhoá học · Learning Experiences · Chương trình · Tài nguyênhọc gì · thử ngay · đi cùng thế nào · tự dùng gì
Bố mẹCon tôi... · Khoá học cho con · Chương trình cho bố mẹ · Bài viếtvấn đề của con · con học gì · mình học gì · đọc gì

"Tổng quan" bỏ khỏi thanh vì logo bên trái đã về đúng trang đó — một lối đi hai chỗ bấm là một chỗ thừa. Mục bị rút (Thi thố, Trường chuyên, Xem thử, Tổng quan) xuống chân trang: rút khỏi thanh không có nghĩa là bỏ, và không trang nào được trở thành không tới được.

Đăng nhập và Bắt đầu gộp thành một nút Login. Hai nút cạnh nhau trông như hai việc khác nhau, nhưng cả hai đều dẫn người ta vào app — chỉ khác đã có tài khoản hay chưa, mà chính trang /login đã hỏi đúng câu đó rồi. /start vẫn sống và nằm ở chân trang.

Trong khu IELTS, Đăng nhập đi thẳng learn.nemo12.com/ielts (SRC-841, 2026-09-19). /login là ngã ba hỏi "bạn là ai" — câu ấy chỉ đáng hỏi khi chưa biết; người vừa đi qua mấy trang IELTS đã tự trả lời rồi, hỏi lại là thêm một cú bấm ngay trước cửa vào học. Luật tách thành hàm loginHref(path) có test riêng (siteNav.test.ts), tính cho cả hai nhánh /ielts/* và /{vai}/university/ielts*, và dùng ở cả thanh ngang lẫn menu mobile — menu mobile phải là <a> thật vì pushState sang tên miền khác bị trình duyệt từ chối im lặng. Phía learn giữ nguyên URL qua màn đăng nhập nên đăng nhập xong là ở lại đúng /ielts. (Ghi hộ từ commit 7477c2b4 khi cổng SRC-596 đỏ trên main; phiên làm SRC-841 sửa lời nếu cần.)

Turtle / Shark / Ray / Squid / Octopus / Orca không lên nav chính. Chúng là category bên trong Students:

NhãnLà gì
TurtleNền tảng
RaySAT · College Prep
SquidEnglish · IELTS
OctopusAI & Future Skills
OrcaCompetitions

Học sinh không phải học taxonomy của Nemo12 trước khi được học. Nhưng các trang /turtle, /shark, /octopus, /squid, /whale có nội dung thật (mục tiêu, lĩnh vực, cách làm), nên chúng giữ nguyên địa chỉ và giữ nguyên nội dung — chuyển hướng chúng đi là vứt nội dung. Chúng chỉ rút khỏi nav chính. /ray vẫn chuyển mềm sang /squid như cũ (SRC-081).

Các URL đang public khác cũng phải có đường về:

URL cũĐi đâu
/programs, /programs/{dive,swim,nemo-360}/students/programs và trang chương trình tương ứng
/marlin-programs, /programs/marlin-*/parents/programs và trang program tương ứng
/for-students/students
/for-parents/parents
/specialist-schools*giữ nguyên, đặt dưới /students trong nav
/turtle /shark /octopus /squid /whalegiữ nguyên, rút khỏi nav chính
/mentors, /community, /login, /privacygiữ nguyên

5. SEO: prerender lúc build ​

apps/web là Vite SPA. SPA render ở client thì <title> và mô tả của mọi URL đều giống nhau khi bot đọc HTML đầu tiên — với hai cỗ máy SEO ở §3.2 và §3.3 thì đó là hỏng chức năng chính.

Quyết định: giữ Vite, thêm một bước prerender tĩnh sau vite build. Mỗi route trong bảng route được render thành một file HTML riêng trong dist/, có sẵn <title>, description, canonical, OG, JSON-LD và nội dung chữ. Wrangler giữ nguyên not_found_handling: "single-page-application": Cloudflare phục vụ file tĩnh cho các route đã sinh, còn đường dẫn động chưa sinh (/mentors/{slug}, /specialist-schools/{slug}) vẫn rơi về index.html và SPA lo tiếp. Đổi sang 404-page sẽ giết đúng những đường dẫn đó.

Không chọn Next.js/Astro: đổi framework kéo theo cả Design System, analytics, CookieNotice và wrangler config đang chạy được — chi phí lớn hơn cái nó giải quyết.

7. /start ​

Điểm chuyển đổi, giao diện khác nhau theo người:

Câu hỏiĐi đâu
Học sinhBạn muốn đạt được điều gì? IELTS · Chuyên · Toán · AI · SAT · Khám phálearn.nemo12.com
Bố mẹBạn muốn được giúp việc gì? Hiểu con · Giúp con học · Thi Chuyên · IELTS · Xem chương trìnhmarlins.nemo12.com

Không có form thu số điện thoại ở bất kỳ đâu trên site (chỉ đạo 2026-08-30). Mọi lối ra đều là link sang app thật. Điều này cũng loại luôn nhu cầu lưu dữ liệu cá nhân trên apps/web.

5.1 Slug tiếng Anh ​

Mọi slug MỚI ở đây là tiếng Anh, kể cả slug của bài viết cho bố mẹ (when-to-start-ielts, should-i-push-extra-classes) — luật SRC-604, cổng REQ-PLT-21 chặn. Đánh đổi có thật: URL chứa từ khoá tiếng Việt sẽ hợp với truy vấn tìm kiếm của bố mẹ hơn. Chọn theo luật vì <title>, <h1> và nội dung — ba thứ ảnh hưởng tới tìm kiếm mạnh hơn slug — vẫn là tiếng Việt.

8. Ngôn ngữ ​

Chữ người dùng đọc: tiếng Việt, chỉ giữ nguyên thuật ngữ tiếng Anh đã là tên riêng của khái niệm — Learning Experience, Competency, Mastery, Rubric, Formative Assessment, IELTS, SAT, AP. Không dịch nửa vời kiểu "Trải nghiệm học tập có năng lực". Code và định danh 100% tiếng Anh như mọi nơi khác (SRC-604).

9. Trace ​

MụcYêu cầuCổng
§2 Sitemap · §2.1 mỗi trang một URLREQ-BRD-11QG-004
§5 Prerender SEOREQ-BRD-11QG-004
§6 Manifest ảnh thậtREQ-BRD-11QG-007
§4 Bí danh URL cũREQ-BRD-11QG-004
§5.4 Câu chuyện người học (SRC-676)REQ-BRD-11QG-004
§5.5 Bốn lỗi SEO kỹ thuật (SRC-694)REQ-BRD-11QG-004
§5.5 Lỗi 3 chỉ chạy được nhờ run_worker_first (SRC-695)REQ-BRD-11QG-004
§6.1 Họ trang nội dung (SRC-694)REQ-BRD-11QG-004
§6.2 Cổng chất lượng nội dung (SRC-694)REQ-BRD-11QG-004
§7.6 Họ trang IELTS · SAT · AP (SRC-713)REQ-BRD-11QG-004
§7.6 SAT Learner (SRC-714)REQ-BRD-11QG-004
§7.6 AP Learner (SRC-715)REQ-BRD-11QG-004
§7.6 Gộp trang chữ vào trang tương tác (SRC-716)REQ-BRD-11QG-004
§7.7 Landing page IELTS theo Job To Be Done (SRC-722)REQ-BRD-11QG-004
§7.7 Thanh điều hướng theo ngữ cảnh (SRC-722)REQ-BRD-11QG-004
§7.7 Nav ngữ cảnh cho SAT và AP (SRC-723)REQ-BRD-11QG-004
§10.11 Hai bản giới thiệu theo vai (SRC-766)REQ-BRD-11QG-004
§7.7 Ba lỗi hiển thị và mobile (SRC-724)REQ-BRD-11QG-004
§7.7 Khối JTBD trong trang nội dung (SRC-726)REQ-BRD-11QG-004
§7.7 Trang đội ngũ IELTS (SRC-727)REQ-BRD-11QG-004
§7.7 Ví dụ về Mục tiêu (SRC-728)REQ-BRD-11QG-004
§7.7 Đọc tiếp tối đa sáu mục (SRC-730)REQ-BRD-11QG-004
§7.7 IELTS Mentors tách thành trang độc lập (SRC-736)REQ-BRD-11QG-004
§7.7 Học phí IELTS theo mức đồng hành (SRC-735)REQ-BRD-11QG-004
§7.7 Thẻ đời trước dưới theme biển, Dolphins mở dần (SRC-734)REQ-BRD-11QG-004
§7.7 Check-point giữa bài đọc (SRC-729)REQ-BRD-11QG-004
§7.7 Footer theo khu IELTS và SAT (SRC-731)REQ-BRD-11QG-004
§7.7 Header + footer riêng cho khu SAT (SRC-846)REQ-BRD-11QG-004
§7.7 Năm cách học của một tuần (SRC-732)REQ-BRD-11QG-004
§10.2 Sitemap v2 Ai · Mục tiêu · Môn (SRC-746)REQ-BRD-11QG-004
§10.3 Nhân đôi theo vai chỉ ở tầng landing (SRC-746)REQ-BRD-11QG-004
§10.5 Mục tiêu thắng tên trường (SRC-746)REQ-BRD-11QG-004
§10.7 Bảng chuyển hướng sitemap v2 (SRC-746)REQ-BRD-11QG-004
§10.9 Nhớ vai và mục tiêu bằng localStorage (SRC-746)REQ-BRD-11QG-004
§10.10 Trang chủ là màn quyết định, bỏ menu/footer/section (SRC-746)REQ-BRD-11QG-004
§10.10 Màn quyết định vừa một màn hình, thẻ ngang trên điện thoại (SRC-746)REQ-BRD-11QG-004
§10.11 Nav và footer đổi theo sáu khu mục tiêu (SRC-746)REQ-BRD-11QG-004
§10.8 Đợt 2: chín môn có lớp thật; bảy môn chưa dựng (SRC-746)REQ-BRD-11QG-004
§10.7 Giữ /specialist-schools, nối hai chiều thay vì 301 (SRC-746)REQ-BRD-11QG-004
§10.10 / không chuyển hướng, chọn sẵn lựa chọn cũ (SRC-746)REQ-BRD-11QG-004
§10.12 Các bước có tên tiếng Anh, hiện một thẻ một lúc (SRC-746)REQ-BRD-11QG-004
§10.12 Preset Appear cho nội dung đổi tại chỗ (SRC-746)REQ-BRD-11QG-004
§10.11 Menu đổi khu, nhãn khu mờ, luật nav của môn (SRC-746)REQ-BRD-11QG-004
§10.15 Trang môn SAT bỏ ý "SAT có dành cho bạn không" (SRC-759)REQ-BRD-11QG-004
§10.15 Học phí SAT ra trang riêng, trang môn chỉ còn link (SRC-760)REQ-BRD-11QG-004
§10.15 Trang "Bài thi SAT thật ra đo cái gì" có trải nghiệm trong trang (SRC-761)REQ-BRD-11QG-004
§10.3 · §10.15 Vai bố mẹ của SAT cũng bỏ ý "con có cần SAT không" (SRC-762)REQ-BRD-11QG-004
§10.11 Trang đang xem luôn có mặt trên thanh (SRC-746)REQ-BRD-11QG-004
§10.3 Hai vai được phép khác cả câu hỏi mở đầu (SRC-746, SRC-759)REQ-BRD-11QG-004
§11.24 Trang sự kiện IELTS đọc community_events qua /v1/public/events (SRC-816)REQ-BRD-11QG-004
§11.24 Ba buổi sáng chủ nhật là một chuỗi, mỗi buổi một trọng tâm (SRC-817)REQ-BRD-11QG-004
§11.25 Trang môn và chân trang lược bớt element, chân trang trần năm dòng (SRC-820)REQ-BRD-11QG-004
§11.25 Trang học phí IELTS còn một tiêu đề, bỏ dải "Vì sao là 200 giờ" (SRC-820)REQ-BRD-11QG-004
§11.26 Eyebrow tiếng Anh, ba đích đến, dải nền cho vệt đường dẫn (SRC-820)REQ-BRD-11QG-004
§11.26 Khối dẫn sang trang chẩn đoán, thứ tự R·L·W·S (SRC-820)REQ-BRD-11QG-004
§11.26 Lộ trình 12 tháng bậc thang trên trang chẩn đoán (SRC-820)REQ-BRD-11QG-004
§11.26 Biểu đồ band cắt theo lộ trình học (SRC-820)REQ-BRD-11QG-004
§11.27 Bỏ cụm ba mốc, logo NEMO IELTS, crumb bấm được, phiếu đỏ trở lại (SRC-820)REQ-BRD-11QG-004
§11.30 Học phí IELTS ba mốc, đổi bằng UPDATE trên band_pricing (SRC-908)REQ-BRD-11QG-004
§11.30 Dải chính sách còn một câu hoàn tiền, bỏ ba thẻ (SRC-908)REQ-BRD-11QG-004
§11.30 Bỏ dòng terms_vi và hai câu rào; câu nguồn gọi thẳng "IELTS Band" (SRC-908)REQ-BRD-11QG-004
§11.31 Hero IELTS vai học sinh bỏ nút chính, ctaPrimary thành không bắt buộc (SRC-920)REQ-BRD-11QG-004
§11.31 Nút thanh trên đổi nhãn thành "Học thử (Free)", giữ nguyên đích (SRC-920)REQ-BRD-11QG-004
SRC-1020 Trang chủ về bộ màu IELTS, vai Giáo viên, họ trang CELTA · TESOL · TEFLREQ-BRD-11QG-004
SRC-1027 Trang chủ một khuôn thẻ chữ, không biểu tượng; cụm trang TESOL và TEFLREQ-BRD-11QG-004
SRC-1033 lastmod của sitemap theo ngày commit cuối của file nguồnREQ-BRD-11QG-004
SRC-1035 Giữ "Sắp mở" cho sáu môn chưa có giáo viênREQ-BRD-11QG-004

Lịch sử quyết định ​

Trang này chỉ chứa đặc tả đang hiệu lực; các vòng sửa của mảng này nằm ở những trang khác trong cùng thư mục, xem mục lục.