Repository navigation
Growth
Hướng tăng trưởng của Zhesen: SEO (tối ưu để trang hiện trên Google), FTUE (first-time user experience, từ lần vào đầu tiên tới lần ôn đầu tiên), kênh thu hút, giữ chân, analytics (đo lượt vào), doanh thu, so với đối thủ. Production đo ngày 2026-10-04 bằng scripts/growth-probe.sh. Việc còn lại nằm ở bảng ZHESEN. Nghiên cứu ngày 2026-10-13 về SEO, kiếm tiền và Cloudflare, cùng các bước nối zhesen.net vào site, nằm ở folder ~/W/zhesen-docs/2026-10-research/ trên máy của owner, kèm script và số liệu gốc.
Tác động Cao là ảnh hưởng trực tiếp tới lượt vào từ Google hoặc tỉ lệ đăng ký. Công sức Thấp là sửa 1 tới 3 file, Trung bình là thêm route hoặc bảng, Cao là tính năng nhiều phần.
| # | Khuyến nghị | Tác động | Công sức | Trạng thái | Nguồn |
|---|---|---|---|---|---|
| 1 | Trang từ tiếng Trung hết lỗi 500 (吃, 水, 学习, 爱, 好) | Cao | Chưa rõ | Đã làm |
scripts/growth-probe.sh, commit fd2a461
|
| 2 |
/dictionary hết lỗi 500 lúc có lúc không |
Cao | Thấp | Chưa làm | scripts/growth-probe.sh |
| 3 | Title theo cách người Việt gõ, Open Graph (thẻ cho link chia sẻ) trên mọi trang, sitemap (file liệt kê URL) từ điển 213.089 URL, noindex (không đưa vào kết quả) cho entry không có nghĩa tiếng Việt, canonical (URL chính) cho ?q=
|
Cao | Trung bình | Đã làm |
lib/dictionary/entryMetadata.ts, app/dictionary/sitemap.ts
|
| 4 | Search Console (công cụ của Google cho chủ site), Bing Webmaster Tools và Cốc Cốc Search Console; zhesen.net đã chạy, tên miền chốt ở Decisions mục 5 | Cao | Thấp | #89 | Public Suffix List |
| 5 | Nút lưu của khách dẫn tới /register, giữ next, lưu từ sau khi đăng ký |
Cao | Thấp | Đã làm | components/lookup/AddToWordlistButton.tsx:29 |
| 6 | Vercel Web Analytics và Speed Insights | Cao | Thấp | Đã làm |
app/layout.tsx:82-83, Vercel
|
| 7 | Phân trang danh sách từ theo trình độ bằng link server vẽ | Trung bình | Thấp | Đang làm | components/vocabulary/LevelWordList.tsx |
| 8 | Đăng nhập bằng Google | Cao | Trung bình | #90 | SpanishDict |
| 9 | Manifest (file khai báo để cài site như app) | Trung bình | Thấp | Đã làm | app/manifest.ts |
| 10 | Web push (thông báo tới trình duyệt) nhắc ôn | Cao | Cao | #91 | WebKit |
| 11 | SMTP (máy chủ gửi mail) qua Amazon SES để đặt lại mật khẩu | Trung bình | Thấp tới Trung bình | #92 | infra/supabase/UPSTREAM.md:51 |
| 12 | Trang từ vẽ một bố cục thay vì sáu | Trung bình | Trung bình | Đang làm | components/lookup/WordLayouts.tsx |
| 13 | JSON-LD (dữ liệu có cấu trúc) BreadcrumbList; ảnh Open Graph riêng cho từng từ | Thấp tới Trung bình | Thấp tới Trung bình | Đang làm | |
| 14 | TOEIC theo chủ đề và theo part thành URL riêng | Trung bình | Trung bình | #93 | Google autocomplete |
| 15 | Streak freeze (giữ chuỗi khi nghỉ một ngày), mục tiêu ngày | Trung bình | Trung bình | Đang làm | Duolingo |
| 16 | Mỗi commit chỉ còn 1 deploy production (trước đó GitHub integration của Vercel deploy thêm 1 lần), robots.txt chặn crawler huấn luyện AI và crawler công cụ SEO. Còn mở: gom deploy theo ngày, ruleset AI Bots trên dashboard | Cao | Thấp | Đang làm |
vercel.json, app/robots.ts; mail Vercel ngày 2026-10-13: ISR Writes 300%, Fast Origin Transfer 100%, Fluid Active CPU 100% của Hobby |
| 17 | Index theo tầng chất lượng: bỏ khỏi sitemap cụm số nhiều trùng số ít, tên riêng không có cấp độ, entry chỉ có nghĩa trỏ hoặc dịch máy; tầng tốt nhất tách file sitemap riêng | Cao | Trung bình | Chưa làm | nghiên cứu 2026-10-13, 3-seo.md; Google
|
| 18 | Trang chiều Việt sang ngoại ngữ cho cụm "con mèo tiếng anh là gì", thí điểm khoảng 100 từ đã duyệt sau 4 tuần có dữ liệu Search Console | Cao | Cao | Chưa làm | nghiên cứu 2026-10-13, 3-seo.md; Google Trends |
| Tính năng | Đối thủ có | Trạng thái | Nguồn |
|---|---|---|---|
| Đăng nhập Google, Facebook, Apple | SpanishDict | #90 | SpanishDict |
| Nhắc ôn hằng ngày | MochiMochi, Duolingo | #91 | Mochidemy |
| Đặt lại mật khẩu | Mọi đối thủ có tài khoản | #92 | infra/supabase/UPSTREAM.md:51 |
| Cài như app | Glosbe, ZIM, VDict, Hanzii | Đã làm | scripts/growth-probe.sh |
| Ảnh chia sẻ theo từ | ZIM, VDict | Đang làm | scripts/growth-probe.sh |
| Streak freeze, mục tiêu ngày | Duolingo | Đang làm | Duolingo |
| Sổ từ chia sẻ công khai | Quizlet, Anki | #94 | Google autocomplete |
| Tra chữ Hán bằng nét vẽ hoặc bộ | Hanzii | #95 | Hanzii |
| Bộ đề luyện thi đầy đủ | Hanzii, hơn 100 đề HSK theo bên thứ ba | #96 | marlvel |
| Tiện ích trình duyệt | Laban, add-on Firefox | #97 | firefox-stats |
Người Việt tìm bằng cụm "take là gì" và "casa tiếng tây ban nha là gì"; ZIM và VDict đặt title theo cụm đó. Cầu lớn nhất lại là chiều Việt sang ngoại ngữ, như "con mèo tiếng anh là gì". Kết quả tra chiều Việt là trang tìm kiếm no-store có canonical về /dictionary (app/dictionary/page.tsx:7-12), nên chưa trang nào được index cho chiều này. Sitemap từ điển có 213.089 URL, lẫn 16.631 key viết hoa và cụm số nhiều trùng số ít. Chính sách spam của Google nêu việc dịch tự động nội dung lấy từ nguồn khác, nên index tầng chất lượng cao trước (khuyến nghị 17). Google gần như chỉ tới các từ qua link từ liên quan, vì danh sách A1 ghi 1.058 từ nhưng HTML có 40 link (suy luận). Lighthouse đo trên mobile ngày 2026-10-13 cho trang take 69 điểm và trang chủ 64 điểm; chưa có số liệu người dùng thật.
Khách tra từ không cần tài khoản; lưu từ và ôn cần email với mật khẩu từ 8 ký tự. Không tạo phiên ẩn danh vì middleware từng tạo 122 tài khoản mà chỉ 1 có dữ liệu (AGENTS.md), nên tường đăng ký đứng ở lần lưu đầu tiên. Nút lưu và link giữa đăng nhập, đăng ký đã giữ next. Owner quyết định hai việc: cho lưu tạm vài từ trong trình duyệt trước khi đăng ký, và nút Google có trái luật "không ghi cách đăng nhập" không.
SEO là kênh chính vì Google chiếm 92,94 phần trăm lượt tìm kiếm tại Việt Nam tháng 9/2026. Cốc Cốc chiếm 5,96 phần trăm, gấp 9 lần Bing, nên cần cả Cốc Cốc Search Console. Ngoài SEO, kênh có bằng chứng về độ phủ là video ngắn trên TikTok (Ms Hoa TOEIC 232.713 người theo dõi), nhóm Facebook về TOEIC và HSK (HSKclub 832.100 thành viên) và 1 bài giới thiệu tool miễn phí trên Voz (S English 28.046 lượt xem). Nội dung lý thuyết cắt được thành video 30 tới 60 giây dẫn về đúng trang (#93). Quảng cáo trả phí chưa đáng chạy vì chưa đo được tỉ lệ đăng ký (suy luận).
Streak đã có ở trang chủ và sổ tay. Chưa có nhắc ôn, và chưa gửi được mail vì GoTrue không có máy chủ SMTP (GOTRUE_SMTP_HOST không được đặt). Duolingo ghi nhận streak 7 ngày làm khả năng hoàn thành khoá cao gấp 3,6 lần. Web push trên iPhone chỉ tới web app đã thêm vào màn hình chính, nên manifest là điều kiện. Cần đo D1, D7, D30 (tỉ lệ quay lại sau 1, 7, 30 ngày) để biết nhắc ôn có tác dụng.
Vercel Web Analytics và Speed Insights đã gắn (app/layout.tsx:82-83). Hobby giới hạn 50.000 sự kiện mỗi tháng, và Vercel chỉ báo UTM với gói Web Analytics Plus trên Pro. Đăng ký theo kênh nên ghi tham số utm_source vào database lúc tạo tài khoản. D1, D7, D30 tính bằng SQL trên table review_events, nên dữ liệu không rời database. PostHog hay script bên thứ ba cần sửa CSP (danh sách nguồn mà trình duyệt cho trang tải) ở next.config.ts:50. Luật Bảo vệ dữ liệu cá nhân số 91/2025/QH15 yêu cầu đồng ý rõ ràng, nên chỉ ghi event gắn user id cho tài khoản đã đăng ký (suy luận, không phải ý kiến pháp lý).
Chưa thu tiền cho tới khi có 4 nhóm đăng ký theo tuần liên tiếp, mỗi nhóm từ 20 người, và đo được D7. Ủng hộ bằng VietQR ở trang tài khoản làm được ngay, với điều kiện không kèm quyền lợi. Điều khoản của Vercel cho site Hobby xin ủng hộ nhưng cấm mọi hình thức bán, nên bán bất cứ thứ gì cần Vercel Pro hoặc tự host app (Decisions mục 4). Sản phẩm trả phí đầu tiên là gói đề TOEIC Reading giá 149.000 tới 199.000 VND, mở danh sách chờ có ghi giá trước khi viết đề 2 tới 5. Plus đến sau, trả trước 6 tháng 199.000 VND hoặc 1 năm 299.000 tới 349.000 VND qua payOS hoặc SePay, vì Stripe không hỗ trợ Việt Nam. Nhắc ôn, ôn FSRS, sổ tay và export giữ miễn phí, vì chúng tạo ra việc quay lại.
Giá đối thủ đọc ngày 2026-10-13 xác nhận khoảng giá trên. Không đối thủ nào thu tiền tra từ; tiền nằm ở nội dung theo bộ (đề thi, bài học) và tính năng tốn chi phí vận hành (giọng nói, OCR, dịch).
| Sản phẩm | Giá | Sau paywall | Nguồn |
|---|---|---|---|
| Hanzii | Basic 249.000 tới 499.000 VND, trọn đời 599.000 tới 1.199.000 VND | Bỏ quảng cáo, đồng bộ sổ tay, đề HSK và TOCFL | App Store |
| MochiMochi | 749.000 tới 1.049.000 VND mỗi năm, giá năm 2021 | Toàn bộ bài học | Mochi |
| Prep | Khoá TOEIC 500.000 tới 2.000.000 VND | Khoá học, phòng thi ảo | Prep |
| ELSA Speak | Pro 829.000 VND mỗi năm | Luyện phát âm | ELSA |
| SpanishDict | 59,99 USD mỗi năm | Dịch giọng nói và ảnh, luyện nói, bỏ quảng cáo | SpanishDict |
| Pleco | Mua một lần, 24,99 tới 49,99 USD | OCR, flashcard, từ điển thêm | Pleco |
payOS nhận cá nhân đăng ký bằng CCCD, tiền chuyển thẳng vào tài khoản ngân hàng (payOS). payOS và SePay nhận chuyển khoản QR từng lần, không thu định kỳ tự động, nên gói Plus do Zhesen tự cộng hạn (suy luận). Paddle và Lemon Squeezy thu 5% cộng 0,50 USD mỗi giao dịch và tự nộp thuế cho người mua; chưa xác minh hai cổng này nhận cá nhân tại Việt Nam.
Quảng cáo hiển thị bị loại. RPM, tức doanh thu mỗi 1.000 lượt xem, khoảng 0,27 USD, nên cần 74.074 lượt xem mỗi tháng chỉ để trả Vercel Pro. Quảng cáo còn làm chậm trang và phá bảng màu đã chốt. AllSet Learning cấm site có quảng cáo dùng nội dung Chinese Grammar Wiki của họ; repo hiện không nạp nội dung đó (supabase/migrations/0020_grammar_points.sql:8-11).
Trước lần bán đầu cần mã số thuế cá nhân, thông báo website thương mại điện tử theo Luật Thương mại điện tử 122/2025/QH15, và trang giá, giao dịch vụ, hoàn tiền. Doanh thu dưới 1 tỷ VND mỗi năm không chịu VAT và thuế thu nhập cá nhân, và cá nhân không bắt buộc đăng ký hộ kinh doanh. Luật Bảo vệ dữ liệu cá nhân áp dụng ngay, không chờ lúc bán. Site cần chính sách bảo mật và câu đồng ý khi đăng ký, và có thể đã phải nộp hồ sơ chuyển dữ liệu ra nước ngoài vì dữ liệu nằm ở Seoul và đi qua Vercel (suy luận, không phải ý kiến pháp lý). Table lex.entry_patterns giữ 6.998 pattern chép từ Oxford Learner's Dictionaries; điều khoản của Oxford chỉ cho dùng cá nhân, nên phải xoá trước khi thu tiền.
| Khẳng định | Mức | Nguồn |
|---|---|---|
| 5 trên 10 trang từ tiếng Trung từng trả 500; 5 trang đó hiện trả 200 | đã kiểm chứng | scripts/growth-probe.sh |
/dictionary trả 500 ở 4 trên 12 lượt đo; hiện 12 trên 12 lượt trả 200 |
đã kiểm chứng | scripts/growth-probe.sh |
Sitemap từ điển có 213.089 URL, /sitemap.xml có 86 URL |
đã kiểm chứng | nghiên cứu 2026-10-13, scripts/3-seo/sitemap_stats.py
|
/manifest.webmanifest trả 200 |
đã kiểm chứng | scripts/growth-probe.sh |
Title trang take là "take là gì? Nghĩa tiếng Việt"; zymurgy, không có nghĩa tiếng Việt, có noindex; /dictionary?q= có canonical /dictionary
|
đã kiểm chứng | scripts/growth-probe.sh |
Trang take có 6 h1 và 8.661 element; danh sách A1 ghi 1.058 từ, HTML có 40 link |
đã kiểm chứng | scripts/growth-probe.sh |
| GoTrue không có máy chủ SMTP nên không có đặt lại mật khẩu | đã kiểm chứng |
infra/supabase/UPSTREAM.md:51, infra/supabase/docker-compose.yml
|
| Vercel Web Analytics và Speed Insights đã gắn | đã kiểm chứng |
app/layout.tsx:82-83, package.json:29,31
|
vercel.app nằm trong Public Suffix List |
đã kiểm chứng | publicsuffix.org, dòng 16265 |
| ZIM và VDict đặt title dạng "là gì?" | đã kiểm chứng | scripts/growth-probe.sh |
| Người Việt gõ "X là gì", "X nghĩa tiếng việt là gì", "X tiếng tây ban nha là gì" | đã kiểm chứng | Google autocomplete, scripts/growth-probe.sh
|
| Lighthouse mobile ngày 2026-10-13: trang take 69 điểm, trang chủ 64 điểm | đã kiểm chứng | Lighthouse 13.5.0, một lượt mỗi trang, nghiên cứu 2026-10-13 nguon/3-seo/lighthouse/
|
| AllSet cấm site có quảng cáo dùng nội dung của họ | đã kiểm chứng | AllSet |
| Google 92,94 phần trăm, Cốc Cốc 5,96 phần trăm, Bing 0,65 phần trăm lượt tìm kiếm tại Việt Nam tháng 9/2026 | lời người StatCounter | StatCounter |
| SpanishDict cho đăng ký bằng Google, Facebook, Apple | lời người SpanishDict | SpanishDict |
| Streak 7 ngày tăng 3,6 lần khả năng hoàn thành khoá | lời người Duolingo | Duolingo |
| Web push trên iOS chỉ tới web app đã thêm vào màn hình chính | lời người WebKit | WebKit |
| Google tới các từ khác chủ yếu qua link từ liên quan | suy luận | HTML trang A1 chỉ có 40 link |
| Quảng cáo trả phí chưa đáng chạy | suy luận | Chưa đo được tỉ lệ đăng ký theo kênh |
| Nút Google không trái luật "không ghi cách đăng nhập" | suy luận | Wiki UI style; cần owner xác nhận |
Kết quả tra chiều Việt là trang no-store có canonical /dictionary
|
đã kiểm chứng | app/dictionary/page.tsx:7-12 |
| Một lượt crawl toàn bộ sitemap tốn 4,3 tới 6,4 lần trần ISR write tháng của Hobby | suy luận từ kích thước trang đo trên production | nghiên cứu 2026-10-13, nguon/1-cloudflare/hobby-model.md
|
| Hobby chỉ cho dùng cá nhân phi thương mại; xin ủng hộ không tính là thương mại | đã kiểm chứng | Vercel |
| Stripe không hỗ trợ Việt Nam | đã kiểm chứng | Stripe |
| RPM quảng cáo khoảng 0,27 USD | lời một người làm nghề | lilys.ai |
| Website tự bán hàng phải thông báo trước khi hoạt động | đã kiểm chứng | Luật Thương mại điện tử 122/2025/QH15, Điều 3 khoản 3 và Điều 14 khoản 1 |
| Doanh thu dưới 1 tỷ VND mỗi năm không chịu VAT và thuế thu nhập cá nhân | lời người Thời báo Tài chính | Thời báo Tài chính |
| Cá nhân không bắt buộc đăng ký kinh doanh, chỉ đăng ký thuế | lời người Thời báo Tài chính | Thời báo Tài chính |
| Điều khoản Oxford chỉ cho "domestic and private use" | đã kiểm chứng | Oxford |
| Giá gói đề TOEIC và Plus, ngưỡng 4 nhóm 20 người | suy luận | nghiên cứu 2026-10-13, 4-kiem-tien.md
|
Ngoài wiki