Mở đầu — vì sao bài này quan trọng
Hãy thử hình dung một tình huống rất đời thường: bạn mở app Tiki lúc 11 giờ đêm, gõ vào ô tìm kiếm "kem chống nắng cho da dầu", rồi ngón tay khựng lại nửa giây vì ô tìm kiếm chỉ trơ một dòng chữ xám "Tìm kiếm". Bạn không chắc mình nên gõ tên sản phẩm, tên thương hiệu, hay cả một câu dài. Nửa giây do dự đó — nhân với hàng triệu người dùng mỗi ngày — chính là nơi UX writer có thể tạo ra hoặc phá hỏng doanh thu.
Search và Discovery (tìm kiếm và khám phá) là hai hành vi khác nhau nhưng gắn chặt với nhau. Search là khi người dùng đã biết mình muốn gì và đi thẳng đến đó. Discovery là khi họ chưa biết chính xác, họ dạo quanh, để hệ thống gợi ý và dẫn dắt. Điều đặc biệt của mảng copy này là nó phải hoạt động trong những khoảnh khắc cực ngắn, với những khối chữ cực nhỏ — một placeholder, một nhóm gợi ý, một dòng thông báo "không có kết quả" — nhưng lại đứng ngay trên con đường chuyển đổi quan trọng nhất. Theo các nghiên cứu thương mại điện tử, người dùng chủ động search thường có tỷ lệ mua cao gấp 2–3 lần người chỉ lướt, vì họ đang ở trạng thái ý định rõ ràng (high intent). Viết sai một câu ở đây không chỉ khó chịu, mà là mất tiền.
Trong bài này, chúng ta sẽ đi sâu vào toàn bộ vòng đời của trải nghiệm tìm kiếm dưới góc nhìn ngôn từ: từ placeholder trong ô tìm kiếm, gợi ý khi gõ, kết quả, cho đến trạng thái "không tìm thấy gì". Đây là phần rất riêng, khác với microcopy chung chung hay error message tổng quát mà các bài khác đã bàn — ở đây mọi thứ xoay quanh một câu hỏi duy nhất: làm sao giúp người dùng đi từ "tôi đang tìm" đến "tôi tìm thấy rồi" nhanh và tự tin nhất.
Khái niệm cốt lõi
Ô tìm kiếm và placeholder — lời mời chứ không phải nhãn dán
Placeholder trong ô tìm kiếm là dòng chữ xám hiển thị khi ô còn trống. Sai lầm phổ biến nhất là dùng nó như một cái nhãn: chỉ viết "Tìm kiếm". Nhưng placeholder tốt phải làm một việc lớn hơn — nó dạy người dùng nên gõ gì và gõ như thế nào.
So sánh hai lựa chọn:
- "Tìm kiếm" — trung tính, an toàn, nhưng vô dụng về mặt dẫn dắt.
- "Tìm sản phẩm, thương hiệu, danh mục..." — cho người dùng thấy phạm vi tìm kiếm, mở ra khả năng họ chưa nghĩ tới.
Recent search và search history — trí nhớ giúp người dùng
Khi người dùng chạm vào ô tìm kiếm nhưng chưa gõ gì, đó là một khoảng trống vàng. Đây là lúc surface (hiển thị nổi lên) các recent search — những từ khóa họ đã tìm gần đây. Về mặt copy, phần này cần một tiêu đề nhóm rõ ràng: "Tìm kiếm gần đây" là chuẩn mực. Kèm theo đó thường có hành động "Xóa" hoặc "Xóa tất cả" cho từng mục — vì lịch sử tìm kiếm là dữ liệu nhạy cảm (ai đó có thể vừa tìm quà sinh nhật bất ngờ, hoặc thứ gì đó riêng tư).
Suggestions và autocomplete — thu hẹp khoảng cách gõ
Khi người dùng gõ, hệ thống nên gợi ý (suggest) để họ không phải gõ hết. Có mấy loại gợi ý cần phân biệt bằng nhãn:
- Trending / Phổ biến — "Đang thịnh hành", "Mọi người đang tìm". Dùng khi ô còn trống, mang tính khám phá.
- Autocomplete — hoàn thiện truy vấn đang gõ dở, thường không cần nhãn, hiển thị theo dòng.
- Gợi ý theo danh mục — "Trong Thời trang nữ", giúp người dùng khoanh vùng.
Kết quả và không có kết quả — hai đầu của sự thật
Trang kết quả cần một dòng tóm tắt: "Khoảng 240 kết quả cho 'kem chống nắng'". Con số này tạo cảm giác kiểm soát và tin tưởng. Nhưng phần thử thách thực sự về copy nằm ở no-results state (trạng thái không có kết quả) — sẽ nói kỹ ở phần lỗi thường gặp. Điểm cốt lõi: "không tìm thấy" không được phép là ngõ cụt; nó phải là một ngã rẽ có lối đi tiếp.
Tình huống thực tế
Tình huống 1 — Placeholder mơ hồ khiến người dùng gõ sai ở một sàn TMĐT
Một sàn thương mại điện tử tầm trung tại Việt Nam (gọi là "ChợViệt") có ô tìm kiếm với placeholder duy nhất: "Bạn cần tìm gì?". Nghe thân thiện, nhưng dữ liệu analytics cho thấy 18% truy vấn dẫn đến trang không có kết quả. Khi đội UX đào sâu, họ phát hiện người dùng đang gõ những câu hội thoại dài như "áo khoác nào ấm mà rẻ dưới 300k", vì placeholder mở kiểu câu hỏi khiến họ nghĩ có thể "hỏi" hệ thống. Trong khi đó, công cụ tìm kiếm của ChợViệt chỉ khớp theo từ khóa sản phẩm.
Đội ngũ đổi placeholder thành "Tìm sản phẩm, thương hiệu, danh mục..." và thêm helper hiển thị recent search ngay khi chạm vào ô. Kết quả sau một tháng: tỷ lệ truy vấn không có kết quả giảm từ 18% xuống 11%, và số phiên có ít nhất một lần chạm vào sản phẩm tăng rõ.
Bài học rút ra: Placeholder không chỉ mô tả ô nhập, nó định hình kỳ vọng về cách hệ thống hoạt động. Nếu bạn hứa hẹn một trải nghiệm hội thoại mà backend không đáp ứng được, bạn tạo ra thất vọng ngay từ ký tự đầu tiên.
Tình huống 2 — No-results state biến ngõ cụt thành cơ hội tại một app đặt đồ ăn
Một ứng dụng giao đồ ăn ở Đông Nam Á nhận thấy khi người dùng tìm món không có trong khu vực (ví dụ gõ "bún bò Huế" ở một quận chỉ có quán cơm), màn hình hiện dòng lạnh lùng: "Không có kết quả". Tỷ lệ người rời app ngay sau màn hình này rất cao.
Nhóm content design viết lại thành ba tầng. Dòng chính giải thích rõ ràng, thừa nhận và không đổ lỗi: "Chưa có quán nào bán 'bún bò Huế' gần bạn." Dòng phụ mở lối đi: "Thử tìm món khác, hoặc xem các quán đang mở gần đây." Bên dưới là danh sách gợi ý món phổ biến trong khu vực kèm nút "Xem quán gần bạn". Sau khi triển khai, tỷ lệ người dùng thực hiện một hành động tiếp theo (tìm lại hoặc chạm vào gợi ý) trên màn hình no-results tăng gần gấp đôi.
Bài học rút ra: No-results là một cuộc trò chuyện, không phải một dấu chấm hết. Ba tầng — thừa nhận (không tìm thấy gì), giải thích ngắn (vì sao/bối cảnh), và lối thoát (làm gì tiếp theo) — biến khoảnh khắc thất vọng thành khoảnh khắc được dẫn dắt.
Tình huống 3 — Recent search và trending giúp discovery tại một nền tảng học trực tuyến
Một nền tảng học trực tuyến giả định ("HọcNhanh") có kho hàng nghìn khóa học, nhưng người dùng mới thường không biết bắt đầu từ đâu. Ô tìm kiếm trước đây chỉ có placeholder "Tìm khóa học". Khi chạm vào, màn hình trống trơn — một cơ hội discovery bị bỏ phí.
Đội ngũ thiết kế lại trạng thái ô tìm kiếm khi rỗng: hiển thị nhóm "Tìm kiếm gần đây" (nếu có), rồi nhóm "Chủ đề đang hot tuần này" với các chip như "Excel cho người đi làm", "UX Writing", "Tiếng Anh phỏng vấn". Với người dùng hoàn toàn mới chưa có lịch sử, họ thay bằng nhóm "Học viên đang tìm nhiều nhất". Nhãn nhóm được viết cẩn thận để người dùng hiểu vì sao thấy các gợi ý đó. Kết quả: số phiên bắt đầu từ ô tìm kiếm dẫn đến trang chi tiết khóa học tăng đáng kể, và người dùng mới có tỷ lệ chạm vào chip gợi ý cao hơn nhiều so với việc tự gõ.
Bài học rút ra: Trạng thái ô tìm kiếm rỗng là bất động sản đắt giá cho discovery. Nhãn nhóm rõ ràng ("gần đây", "đang hot", "được tìm nhiều nhất") giúp người dùng hiểu ngữ cảnh và tin tưởng gợi ý.
Hướng dẫn từng bước
Đây là quy trình để thiết kế copy cho trải nghiệm search và discovery từ đầu đến cuối.
Bước 1 — Xác định loại hình tìm kiếm của sản phẩm. Hỏi rõ: người dùng tìm cái gì? Sản phẩm, người, tài liệu, địa điểm, đơn hàng? Hệ thống khớp theo từ khóa hay hiểu ngôn ngữ tự nhiên? Câu trả lời quyết định placeholder của bạn nên hứa hẹn điều gì. Đừng bao giờ để copy hứa hẹn nhiều hơn năng lực thật của công cụ tìm kiếm.
Bước 2 — Viết placeholder theo công thức "động từ ngầm + ví dụ phạm vi". Bắt đầu bằng "Tìm" rồi liệt kê 2–3 loại đối tượng có thể tìm, kết bằng dấu ba chấm để gợi ý còn nhiều hơn nữa. Ví dụ: "Tìm khóa học, giảng viên, chủ đề...". Giữ ngắn để không bị cắt trên màn hình mobile hẹp.
Bước 3 — Thiết kế trạng thái ô rỗng (empty focus state). Khi người dùng chạm vào ô nhưng chưa gõ, quyết định hiển thị gì: recent search trước (nếu có dữ liệu), rồi đến trending/gợi ý. Viết nhãn nhóm rõ: "Tìm kiếm gần đây", "Đang thịnh hành". Thêm hành động xóa lịch sử để tôn trọng quyền riêng tư.
Bước 4 — Chuẩn hóa gợi ý khi gõ (autocomplete). Quyết định thứ tự ưu tiên: khớp chính xác lên đầu, rồi gợi ý mở rộng. Nếu chèn danh mục, dùng cụm ngắn như "trong Điện tử". Tránh nhồi quá nhiều loại gợi ý cùng lúc gây rối mắt.
Bước 5 — Viết dòng tóm tắt kết quả. Cho người dùng biết họ đang xem gì: "240 kết quả cho 'từ khóa'". Nếu có lọc đang áp dụng, phản ánh điều đó: "36 kết quả · Đang giao nhanh". Con số và ngữ cảnh tạo cảm giác kiểm soát.
Bước 6 — Thiết kế no-results state theo ba tầng. Tầng 1 thừa nhận: "Không tìm thấy kết quả cho 'từ khóa'". Tầng 2 gợi lý do hoặc mẹo: "Thử kiểm tra chính tả hoặc dùng từ khóa ngắn hơn." Tầng 3 mở lối: gợi ý phổ biến, danh mục liên quan, hoặc nút quay về khám phá. Không bao giờ để màn hình này trống hoặc cụt.
Bước 7 — Kiểm tra với truy vấn thật. Lấy log truy vấn thực tế (đặc biệt các truy vấn dẫn đến no-results) và duyệt qua từng trường hợp. Đây là mỏ vàng để phát hiện khoảng cách giữa từ ngữ người dùng và từ ngữ hệ thống.
Lỗi thường gặp & mẹo
Lỗi 1 — Placeholder chỉ ghi "Tìm kiếm". Đây là mặc định lười biếng phổ biến nhất. Nó không dạy gì, không gợi mở gì. Mẹo: luôn thêm ví dụ phạm vi cụ thể theo đúng domain của sản phẩm.
Lỗi 2 — No-results state kiểu ngõ cụt. Chỉ hiện "Không có kết quả" rồi để trống là ném người dùng vào tường. Mẹo: luôn có ít nhất một lối đi tiếp — gợi ý, sửa chính tả, hoặc quay về danh mục.
Lỗi 3 — Đổ lỗi cho người dùng. Tránh giọng điệu như "Bạn đã nhập sai" hay "Truy vấn không hợp lệ". Hãy trung tính và giúp đỡ: "Không tìm thấy — thử từ khóa khác nhé." Ngôn từ đổ lỗi phá vỡ niềm tin nhanh chóng.
Lỗi 4 — Nhồi hướng dẫn quan trọng vào placeholder. Vì placeholder biến mất khi gõ, đừng đặt quy tắc bắt buộc ở đó. Dùng helper text bên dưới nếu người dùng cần nhớ cú pháp.
Lỗi 5 — Quên bối cảnh recent search nhạy cảm. Lịch sử tìm kiếm có thể lộ thông tin riêng tư. Mẹo: luôn cung cấp cách xóa từng mục và xóa tất cả, đặt nhãn rõ ràng.
Lỗi 6 — Nhãn nhóm gợi ý mơ hồ. Nếu hiển thị trending mà không nói rõ, người dùng tưởng đó là lịch sử của họ và bối rối. Mẹo: gắn nhãn trung thực — "Đang thịnh hành", "Được tìm nhiều nhất" — để người dùng hiểu ngữ cảnh.
Mẹo tổng quát: Viết copy search cho khoảnh khắc vội vã. Người dùng đang gõ nhanh, quét nhanh. Mọi từ thừa đều là ma sát. Ưu tiên ngắn, cụ thể, và luôn hướng về hành động tiếp theo.
Bài tập thực hành
- Viết lại placeholder. Chọn một app bạn hay dùng (Shopee, Tiki, Grab, hoặc app nội bộ công ty bạn). Ghi lại placeholder hiện tại, rồi viết 2 phiên bản mới theo công thức "Tìm + ví dụ phạm vi...". Giải thích ngắn tại sao mỗi phiên bản phù hợp với năng lực tìm kiếm của app đó.
- Thiết kế no-results ba tầng. Giả sử người dùng gõ "áo dài nam mùa đông" trên một sàn thời trang không có sản phẩm này. Viết đầy đủ ba tầng: dòng thừa nhận, dòng gợi mẹo/lý do, và mô tả lối thoát (loại gợi ý bạn sẽ hiển thị). Giữ toàn bộ dưới 40 từ.
- Đặt nhãn cho trạng thái ô rỗng. Liệt kê những nhóm gợi ý bạn sẽ hiển thị khi người dùng vừa chạm vào ô tìm kiếm nhưng chưa gõ, cho hai trường hợp: người dùng cũ (có lịch sử) và người dùng mới (chưa có lịch sử). Viết nhãn nhóm cho từng nhóm.
- Audit truy vấn. Nếu có quyền truy cập, lấy 10 truy vấn dẫn đến no-results gần nhất của một sản phẩm. Với mỗi truy vấn, ghi chú: đây là vấn đề của copy (từ ngữ không khớp), của dữ liệu (không có hàng), hay của công cụ tìm kiếm (không hiểu)? Đề xuất một hành động cho mỗi loại.
Tóm tắt
Search và Discovery copy là mảng ngôn từ nhỏ về khối lượng nhưng lớn về ảnh hưởng, vì nó đứng ngay trên con đường ý định của người dùng. Placeholder không phải cái nhãn mà là lời mời và bài hướng dẫn — hãy dùng công thức "Tìm + ví dụ phạm vi..." để dạy người dùng nên gõ gì. Trạng thái ô rỗng là bất động sản discovery quý giá: surface recent search và trending với nhãn nhóm trung thực để người dùng hiểu và tin. Dòng tóm tắt kết quả tạo cảm giác kiểm soát. Và quan trọng nhất, no-results state không bao giờ được là ngõ cụt — hãy viết theo ba tầng: thừa nhận, gợi mẹo, mở lối. Xuyên suốt, giữ giọng trung tính không đổ lỗi, viết cho khoảnh khắc vội vã, và luôn kiểm chứng bằng truy vấn thật của người dùng. Làm tốt mảng này, bạn giúp người dùng đi từ "tôi đang tìm" đến "tôi tìm thấy rồi" — và đó chính là lúc UX writing chạm trực tiếp vào chuyển đổi.