Mobile SEO

Mobile Input Method Optimization

Tối ưu trường nhập liệu (input type, autocorrect, autocomplete) để hỗ trợ bàn phím ảo và giảm lỗi nhập liệu.

3 lượt xem Cập nhật: 29/05/2026

Mobile Input Method Optimization là gì?

Mobile Input Method Optimization (tối ưu phương thức nhập liệu trên thiết bị di động) là việc cấu hình đúng các thuộc tính HTML cho thẻ <input><textarea> để bàn phím ảo trên smartphone và tablet hiển thị phù hợp, dự đoán chính xác, tự động điền hiệu quả — từ đó giảm lỗi nhập, tăng tốc độ tương tác và cải thiện trải nghiệm người dùng.

Tại sao quan trọng trong SEO?

Google xếp hạng trang web dựa trên trải nghiệm người dùng (UX), đặc biệt trên thiết bị di động — yếu tố được đo lường qua Core Web Vitals và các chỉ số như Interaction to Next Paint (INP). Khi người dùng nhập liệu dễ dàng hơn, tỷ lệ thoát giảm, thời gian ở lại tăng, và khả năng hoàn tất hành động (đăng ký, tìm kiếm, đặt hàng) cao hơn. Điều này gián tiếp ảnh hưởng đến thứ hạng vì Google coi UX là tín hiệu chất lượng nội dung và độ tin cậy của trang.

Ngoài ra, tối ưu nhập liệu giúp cải thiện hiệu suất tìm kiếm nội bộ (site search): nếu thanh tìm kiếm không hỗ trợ autocorrect hoặc inputmode, người dùng dễ gõ sai từ khóa → kết quả trả về không liên quan → tăng tỷ lệ bounce. Đây là rủi ro trực tiếp với SEO kỹ thuật và SEO nội dung.

Cách hoạt động

Bàn phím ảo trên iOS và Android đọc các thuộc tính HTML để xác định loại dữ liệu người dùng sẽ nhập, từ đó điều chỉnh giao diện bàn phím (ví dụ: hiện bàn phím số khi nhập mã bưu điện, hiện nút ‘@’ khi nhập email). Các trình duyệt cũng dùng những thuộc tính này để kích hoạt chức năng gợi ý, tự động điền (autocomplete) từ bộ nhớ trình duyệt hoặc dịch vụ quản lý mật khẩu.

Quá trình gồm ba lớp tương tác:

  • Trình duyệt: phân tích type, inputmode, autocompleteautocorrect để chọn bàn phím phù hợp.
  • Hệ điều hành: cung cấp API bàn phím ảo với chế độ chuyên biệt (số, email, URL…).
  • Người dùng: nhận gợi ý, sửa lỗi tự động, điền nhanh — giảm thao tác chạm và sai sót.

Hướng dẫn thực hiện

Dưới đây là các bước triển khai chuẩn, tuân thủ Web Content Accessibility Guidelines (WCAG) và khuyến nghị của Google Developers:

  1. Dùng đúng type: Thay vì <input type="text"> chung chung, chọn kiểu cụ thể:
    • email → hiện bàn phím có dấu @ và .
    • tel → hiện bàn phím số, hỗ trợ định dạng quốc tế
    • number → hiện bàn phím số, chặn ký tự chữ (trừ dấu chấm, dấu trừ)
    • search → hiện nút ‘Tìm kiếm’ thay vì ‘Enter’
    • url → hiện bàn phím có dấu / và .
  2. Thêm inputmode: Thuộc tính bổ sung cho phép kiểm soát bàn phím chi tiết hơn type. Ví dụ:
    • inputmode="numeric" cho trường nhập mã OTP (không cần type="number" nếu giá trị không dùng toán học)
    • inputmode="decimal" cho giá tiền có phần thập phân
    • inputmode="email" khi type="text" nhưng vẫn muốn bàn phím email
  3. Kích hoạt autocomplete: Dùng giá trị chuẩn theo W3C để trình duyệt nhận diện mục đích trường. Ví dụ:
    • autocomplete="given-name"
    • autocomplete="email"
    • autocomplete="current-password"
    • autocomplete="one-time-code" (cho mã OTP — hỗ trợ trên Chrome 108+, Safari 16.4+)
  4. Tắt autocorrect khi cần: Đặt autocorrect="off" cho trường nhập mã, tên thương hiệu, mã sản phẩm — tránh sửa sai do từ điển hệ thống.
  5. Không dùng maxlength quá chặt: Với trường nhập số điện thoại quốc tế, giới hạn 10 ký tự sẽ cắt ngắn số Việt Nam (+84 9xx xxx xxx). Nên dùng minlength + xác thực phía máy chủ thay vì chặn đầu vào.

Lỗi thường gặp

Lỗi Hệ quả Cách khắc phục
Dùng type="text" cho mọi trường Bàn phím hiện đầy đủ ký tự → chậm nhập, dễ sai Thay bằng type phù hợp hoặc thêm inputmode
Đặt autocomplete="off" toàn cục Trình duyệt không lưu/gợi ý thông tin → tăng bỏ dở form Loại bỏ autocomplete="off"; dùng giá trị chuẩn thay vì tắt hoàn toàn
Không kiểm tra tương thích inputmode Một số trình duyệt cũ (Chrome < 66, Safari < 12.2) bỏ qua inputmode Dùng type làm fallback; kiểm tra qua feature detection nếu cần

Ví dụ thực tế

Một trang đăng ký tài khoản tại Việt Nam nên viết như sau:

<form>
  <label for="fullname">Họ và tên</label>
  <input type="text" id="fullname" name="fullname" autocomplete="name" inputmode="text">

  <label for="phone">Số điện thoại</label>
  <input type="tel" id="phone" name="phone" autocomplete="tel" inputmode="numeric" pattern="[0-9]{10,15}">

  <label for="otp">Mã xác minh</label>
  <input type="text" id="otp" name="otp" autocomplete="one-time-code" inputmode="numeric" autocorrect="off" spellcheck="false">

  <label for="password">Mật khẩu</label>
  <input type="password" id="password" name="password" autocomplete="new-password">
</form>

Kết quả: Người dùng nhập số điện thoại thấy bàn phím số ngay lập tức; nhập mã OTP không bị sửa thành từ tiếng Việt; trình duyệt gợi ý mật khẩu mới từ bộ quản lý mật khẩu.

Câu hỏi thường gặp

Inputmode và type khác nhau thế nào?

type xác định loại dữ liệu và kích hoạt xác thực HTML5 (ví dụ: type="email" kiểm tra định dạng); inputmode chỉ điều khiển bàn phím ảo — không ảnh hưởng đến xác thực. Hai thuộc tính có thể dùng song song và nên dùng cùng nhau để đạt hiệu quả tối đa.

Có nên dùng autocorrect="off" cho mọi trường?

Không. Chỉ tắt autocorrect khi nhập dữ liệu không phải ngôn ngữ tự nhiên (mã, mã vạch, tên sản phẩm viết hoa đặc biệt). Với trường nhập địa chỉ, họ tên, mô tả — nên để mặc định (autocorrect="on" hoặc không khai báo) để hỗ trợ người dùng nhập nhanh và chính xác hơn.

Autocomplete có ảnh hưởng đến bảo mật không?

Không — autocomplete chỉ là gợi ý từ bộ nhớ trình duyệt cá nhân, không gửi dữ liệu lên máy chủ. Tuy nhiên, không nên dùng autocomplete="current-password" cho trường nhập mật khẩu cũ trong form đổi mật khẩu nếu không đảm bảo HTTPS hoặc nếu trang có script độc hại. Trong hầu hết trường hợp tiêu chuẩn, tính năng này an toàn và được khuyến khích.