INP đo lường khoảng thời gian từ khi người dùng thực hiện một tương tác (nhấp chuột, chạm màn hình, nhấn phím) cho đến khi trình duyệt có thể vẽ (paint) được khung hình tiếp theo để phản hồi tương tác đó.
Mục tiêu: Đạt mức INP $\le 200ms$.
Tài liệu trả phí
Bản chuyên sâu: INP dưới 200 ms: quy trình đo, tìm tương tác chậm, sửa và nghiệm thu
Bài đọc miễn phí giữ nguyên. Bản chuyên sâu là tài liệu viết riêng: quy trình từng bước, checklist, bảng lỗi và mẫu để làm theo.
- Đọc trên trang học: 6.137 chữ, viết riêng cho mục P1.02 của SQA-200
- PDF: 15 trang, tải về
- Excel: 9 bảng và 50 dòng checklist có cột đánh dấu
- Quyền dùng: mua một lần, sở hữu vĩnh viễn
399.000đ thanh toán 16 USD qua PayPal hoặc thẻ Visa, Mastercard
Xem trước bản đầy đủ: ba ảnh chụp từ chính tệp PDF và Excel bạn nhận sau khi mua.



1. Cấu trúc của một tương tác (3 giai đoạn của INP)
Cấu trúc của một tương tác trong INP gồm 3 giai đoạn. Input delay là thời gian chờ tác vụ nền trên main thread kết thúc. Processing time là thời gian chạy các event listener JavaScript. Presentation delay là thời gian trình duyệt tính lại bố cục và vẽ lại giao diện.
Để tối ưu INP, bạn cần can thiệp vào 3 giai đoạn mà trình duyệt phải xử lý:
- Input Delay (Trễ đầu vào): Thời gian chờ các tác vụ nền (background tasks) đang chạy dở trên Main Thread kết thúc.
- Processing Time (Thời gian xử lý): Thời gian thực thi các hàm JavaScript (Event Listeners) liên quan đến tương tác.
- Presentation Delay (Trễ hiển thị): Thời gian trình duyệt tính toán lại bố cục (Reflow) và vẽ lại giao diện (Repaint).
2. Kỹ thuật tối ưu hóa "Hardcore" cho INP
Kỹ thuật tối ưu hóa "Hardcore" cho INP gồm ba hướng giải phóng Main Thread. Chia nhỏ Long Task chạy trên 50ms bằng scheduler.yield() hoặc setTimeout. Đổi giao diện trước rồi mới xử lý dữ liệu, đẩy tracking vào requestIdleCallback. Tránh Layout Thrashing bằng cách đọc hết giá trị trước rồi ghi style một lượt.
Để xử lý “Kỹ thuật tối ưu hóa Hardcore cho INP” mà không phá vỡ phần đang chạy, Khóa Học SEO Master đi vào thứ tự thay đổi và cách theo dõi sau mỗi lần sửa.
2.1. Phá vỡ các tác vụ dài (Breaking up Long Tasks)
Bất kỳ tác vụ JS nào chạy liên tục trên 50ms đều bị coi là "Long Task", nó sẽ khóa Main Thread và khiến người dùng không thể tương tác.
- Kỹ thuật: Sử dụng
yieldhoặcscheduler.yield()(API mới) để chia nhỏ code. - Thực thi: Sử dụng
setTimeout(() => {... }, 0)để đẩy các tác vụ không quan trọng xuống hàng đợi, nhường chỗ cho phản hồi giao diện.
2.2. Tối ưu hóa Event Listeners (Xử lý sự kiện)
Hai kỹ thuật ở đây đều nhằm giải phóng luồng chính của trình duyệt. Đừng xử lý nặng ngay khi người dùng bấm mà nên đổi giao diện trước rồi mới tính, và đẩy các việc như gửi dữ liệu đo lường vào lúc trình duyệt rảnh. Người dùng cần thấy phản hồi, không cần thấy kết quả ngay.
- Tránh xử lý nặng trong Event: Đừng thực hiện các phép tính phức tạp ngay khi người dùng click. Hãy thay đổi giao diện trước (hiện loading), sau đó mới xử lý dữ liệu.
- Sử dụng
requestIdleCallback: Đẩy các logic như gửi dữ liệu tracking, analytics vào thời điểm trình duyệt đang rảnh rỗi.
2.3. Giảm thiểu "Layout Thrashing" (Xáo trộn bố cục)
Việc liên tục đọc và ghi các thuộc tính hình học (như offsetWidth, style.left) trong một vòng lặp sẽ ép trình duyệt phải tính toán lại bố cục nhiều lần.
- Hành động: Luôn đọc các giá trị trước, sau đó mới ghi (thay đổi style) một lượt để trình duyệt thực hiện Batch Update.
3. Tối ưu hóa phản hồi thị giác (Presentation)
Người dùng cảm thấy "mượt" khi họ thấy phản hồi ngay lập tức, dù tác vụ bên dưới chưa xong.
- Phản hồi tức thì (Immediate Feedback): Khi người dùng nhấp vào nút "Thêm vào giỏ hàng", hãy đổi màu nút hoặc hiện icon xoay ngay lập tức thay vì đợi API trả về kết quả thành công.
- Sử dụng
content-visibility: auto: Giúp trình duyệt bỏ qua việc render các phần tử nằm ngoài khung hình (off-screen), giải phóng tài nguyên cho các tương tác hiện tại.
4. Công cụ Debug INP chuyên sâu
Để tối ưu INP, bạn không thể chỉ nhìn vào điểm số, bạn phải tìm được "thủ phạm" gây lag:
- Web Vitals Extension: Theo dõi INP trực tiếp khi bạn tương tác trên trang web.
- Chrome DevTools (Performance Tab): Tìm các dải màu đỏ (Long Tasks) và xem "Main Thread" đang bị nghẽn ở hàm JS nào.
- PageSpeed Insights (Field Data): Xem dữ liệu thực tế từ người dùng (CrUX report) để biết trang nào trên site đang có INP kém.
5. Checklist thực hành đạt điểm xanh INP
Checklist thực hành đạt điểm xanh INP gồm năm điểm. Không tác vụ JS nào chạy quá 50ms, script quảng cáo và chatbot được defer, hàm onClick và onScroll dùng Debounce hoặc Throttle, người dùng thấy phản hồi thị giác trong vòng 100ms, và hiệu ứng chuyển động dùng will-change để GPU xử lý.
Một kỹ năng chỉ chắc khi lặp lại được trên website khác với website đã tập. Khóa Học SEO bố trí nhiều lần lặp như vậy.
- [ ] 1. Long Tasks: Đã quét toàn bộ trang để đảm bảo không có tác vụ JS nào chạy quá 50ms chưa?
- [ ] 2. Thư viện bên thứ ba: Đã trì hoãn (defer) các script quảng cáo, chatbot... để chúng không chiếm Main Thread lúc trang đang tải chưa?
- [ ] 3. Trình xử lý sự kiện: Các hàm
onClick,onScrollđã được tối ưu bằng kỹ thuậtDebouncehoặcThrottlechưa? - [ ] 4. Feedback: Người dùng có nhận được phản hồi thị giác trong vòng 100ms sau khi tương tác không?
- [ ] 5. CSS Animation: Các hiệu ứng chuyển động có đang sử dụng thuộc tính
will-changeđể ép GPU xử lý không?
6. Kết luận: INP và sự thống trị của Trải nghiệm (UX)
Google chuyển từ FID sang INP vì muốn đo lường trải nghiệm trong suốt phiên làm việc, không chỉ lần tương tác đầu tiên.
- Tín hiệu hài lòng: Một trang web có INP thấp tạo ra cảm giác tin cậy. Người dùng sẽ ở lại lâu hơn, đọc nhiều nội dung hơn.
- Lợi thế AI Overview: Google AI ưu tiên các nguồn tin mà người dùng có thể tương tác mượt mà. Nếu trang web của bạn bị treo khi người dùng cố gắng mở một menu hoặc xem ảnh, điểm chất lượng của trang sẽ bị hạ thấp nghiêm trọng.
Lời kết: Tối ưu INP là yêu cầu nâng cao trong SEO Kỹ thuật. Nó đòi hỏi sự phối hợp giữa tư duy lập trình tối ưu và sự tinh tế trong thiết kế giao diện. Khi bạn làm chủ được INP, bạn đã tạo ra một website không chỉ nhanh ở tốc độ tải, mà còn "nhạy" ở mọi lần chạm.
Bước tiếp theo
Muốn tự làm được việc này trên website của bạn?
SEO Master hướng dẫn làm SEO trong 24 buổi, từ tư duy nền tảng tới triển khai và đo lường trên website thật.
Tài liệu trả phí
Bản chuyên sâu: INP dưới 200 ms: quy trình đo, tìm tương tác chậm, sửa và nghiệm thu
Bài đọc miễn phí giữ nguyên. Bản chuyên sâu là tài liệu viết riêng: quy trình từng bước, checklist, bảng lỗi và mẫu để làm theo.
- Đọc trên trang học: 6.137 chữ, viết riêng cho mục P1.02 của SQA-200
- PDF: 15 trang, tải về
- Excel: 9 bảng và 50 dòng checklist có cột đánh dấu
- Quyền dùng: mua một lần, sở hữu vĩnh viễn
399.000đ thanh toán 16 USD qua PayPal hoặc thẻ Visa, Mastercard
Định nghĩaINP là chỉ số đo khoảng thời gian từ khi người dùng nhấp chuột, chạm màn hình hoặc nhấn phím cho đến khi trình duyệt vẽ được khung hình tiếp theo, giúp đánh giá khả năng phản hồi của trang web.
Cách tối ưu INP để đạt mức 200ms trở xuống
Các bước giúp bạn tìm đúng tương tác chậm, giải phóng Main Thread và đưa INP về mức 200ms trở xuống trên những trang người dùng hay tương tác.
- Xem dữ liệu thực tếMở PageSpeed Insights, xem Field Data từ CrUX report để biết trang nào trên site đang có INP kém cần xử lý trước.
- Tìm tương tác gây lagDùng Web Vitals Extension theo dõi INP khi tương tác, rồi mở tab Performance của Chrome DevTools tìm dải màu đỏ và hàm JS đang làm nghẽn Main Thread.
- Chia nhỏ các Long TaskTách mọi tác vụ JS chạy liên tục trên 50ms bằng scheduler.yield() hoặc setTimeout để trình duyệt có chỗ phản hồi tương tác.
- Làm nhẹ Event ListenerĐổi giao diện trước, ví dụ hiện loading, rồi mới xử lý dữ liệu. Đẩy tracking và analytics vào requestIdleCallback lúc trình duyệt rảnh.
- Tránh Layout ThrashingĐọc hết các giá trị hình học trước, sau đó ghi thay đổi style một lượt để trình duyệt thực hiện Batch Update.
- Rà lại theo checklistKiểm tra lại: không tác vụ JS nào quá 50ms, script quảng cáo và chatbot đã defer, hàm onClick và onScroll dùng Debounce hoặc Throttle, phản hồi thị giác trong vòng 100ms.
Câu hỏi thường gặp về INP
Giải đáp trực tiếp các câu hỏi thường gặp về INP dựa trên dữ liệu triển khai thực tế, quy trình kiểm thử kỹ thuật và kinh nghiệm thực chiến trên website thật để tối ưu hiệu quả tìm kiếm.
Vì sao trang đã tải xong mà bấm nút vẫn bị khựng, INP vẫn kém?
INP đo khả năng phản hồi suốt phiên làm việc, không chỉ tốc độ tải. Khi tác vụ nền còn chạy dở trên Main Thread, mỗi cú nhấp phải chờ tác vụ đó kết thúc, gọi là Input Delay. Script quảng cáo, chatbot chưa được defer cũng chiếm Main Thread lúc trang đang tải.
Làm sao biết hàm JavaScript nào đang gây lag khi người dùng tương tác?
Mở tab Performance trong Chrome DevTools, tìm các dải màu đỏ là Long Tasks và xem Main Thread đang bị nghẽn ở hàm JS nào. Chỉ nhìn điểm số thì không tìm ra thủ phạm. Web Vitals Extension giúp theo dõi INP trực tiếp khi bạn tương tác trên trang web.
Đọc và ghi style xen kẽ trong vòng lặp gây hại gì cho INP?
Đọc và ghi thuộc tính hình học liên tục trong một vòng lặp ép trình duyệt tính lại bố cục nhiều lần, gọi là Layout Thrashing. Việc tính lại bố cục làm tăng Presentation Delay. Cách sửa là đọc hết các giá trị trước, sau đó ghi thay đổi style một lượt để trình duyệt gom thành Batch Update.
Nút bấm phải chờ API trả kết quả thì người dùng có thấy trang bị treo không?
Có, nếu nút không đổi gì cho tới khi API trả về. Người dùng thấy mượt khi có phản hồi ngay, dù tác vụ bên dưới chưa xong. Với nút Thêm vào giỏ hàng, bạn đổi màu nút hoặc hiện icon xoay ngay khi nhấp, rồi mới chờ kết quả thành công.
Một tương tác trong INP gồm những giai đoạn nào?
Một tương tác gồm 3 giai đoạn. Input Delay là thời gian chờ tác vụ nền trên Main Thread kết thúc. Processing Time là thời gian chạy các Event Listener JavaScript. Presentation Delay là thời gian trình duyệt tính lại bố cục (Reflow) và vẽ lại giao diện (Repaint).
Tác vụ JavaScript chạy bao lâu thì bị tính là Long Task?
Bất kỳ tác vụ JS nào chạy liên tục trên 50ms đều bị tính là Long Task. Long Task khóa Main Thread khiến người dùng không thể tương tác. Cách xử lý là chia nhỏ code bằng setTimeout hoặc scheduler.yield(), đẩy các tác vụ không quan trọng xuống hàng đợi để nhường chỗ cho phản hồi giao diện.
Web Vitals Extension, Chrome DevTools và PageSpeed Insights dùng vào việc gì khi debug INP?
Mỗi công cụ trả lời một câu hỏi riêng. PageSpeed Insights cho dữ liệu thực tế từ CrUX report để biết trang nào có INP kém. Web Vitals Extension theo dõi INP trực tiếp khi bạn tương tác. Tab Performance của Chrome DevTools chỉ ra Long Tasks và hàm JS làm nghẽn Main Thread.
Checklist đạt điểm xanh INP cần kiểm tra những điểm nào?
Checklist gồm năm điểm. Không tác vụ JS nào chạy quá 50ms. Script quảng cáo, chatbot được defer. Hàm onClick và onScroll dùng Debounce hoặc Throttle. Người dùng thấy phản hồi thị giác trong vòng 100ms. Hiệu ứng chuyển động dùng will-change để GPU xử lý.
INP (Interaction to Next Paint) là gì?
INP (Interaction to Next Paint) là thước đo khoảng thời gian từ khi người dùng nhấp chuột, chạm màn hình hoặc nhấn phím cho đến khi trình duyệt vẽ được khung hình tiếp theo để phản hồi tương tác đó. Mục tiêu của INP là đạt mức 200ms trở xuống.
INP khác FID thế nào và vì sao Google chuyển từ FID sang INP?
INP đo trải nghiệm phản hồi trong suốt phiên làm việc, còn FID chỉ nhìn vào lần tương tác đầu tiên. Google chuyển từ FID sang INP vì muốn đo lường trải nghiệm của người dùng qua mọi lần nhấp, chạm và nhấn phím, không dừng ở cú tương tác đầu.
Website có cần tối ưu INP cho SEO không?
Có, website nên tối ưu INP vì INP thấp tạo cảm giác tin cậy, người dùng ở lại lâu hơn và đọc nhiều nội dung hơn. Google AI ưu tiên nguồn tin mà người dùng tương tác mượt mà. Trang bị treo khi mở menu hoặc xem ảnh sẽ bị hạ điểm chất lượng nghiêm trọng.
Nên bắt đầu tối ưu INP cho website từ đâu?
Bắt đầu tối ưu INP bằng việc tìm đúng chỗ chậm. PageSpeed Insights cho biết trang nào trên site có INP kém qua dữ liệu thực tế. Sau đó, tab Performance của Chrome DevTools chỉ ra Long Tasks và hàm JS làm nghẽn Main Thread, rồi bạn chia nhỏ các tác vụ chạy trên 50ms.
Làm tiếp trên chính website của bạn
Chọn theo điều bạn đang cần: người soi website, nền tảng để tự làm, hay người kèm tới nơi.
Phân tích SEO và GEO Online
Tìm đúng chỗ website đang nghẽn, bàn giao thứ tự sửa và bản đồ nội dung theo DLN™. Học tiếp Mentor thì phí này được trừ vào học phí.
Xem phạm vi phân tíchKhóa học SEO cơ bản Online
6 buổi online về Technical và On-page, đủ nền tảng để tự rà và sửa website của bạn.
Xem lộ trình họcMentor SEO 1 kèm 1 Online
12 buổi trong 4 tuần, làm trực tiếp trên website của bạn cùng Danh Nolan.
Xem cách kèm