Total Blocking Time là gì? Tối ưu hiệu suất web và trải nghiệm người dùng

Trong thế giới kỹ thuật số ngày nay, tốc độ tải trang không còn là một yếu tố phụ mà đã trở thành nền tảng quyết định sự thành công của một website. Một trang web nhanh không chỉ giữ chân người dùng hiệu quả hơn mà còn được các công cụ tìm kiếm như Google đánh giá cao, góp phần cải thiện thứ hạng SEO. Tuy nhiên, nhiều chủ sở hữu website phải đối mặt với một vấn đề phổ biến: trang web tải nhanh nhưng lại phản hồi chậm chạp khi người dùng tương tác. Thủ phạm đằng sau hiện tượng này thường là chỉ số Total Blocking Time (TBT) cao. Hiểu rõ TBT là gì và cách tối ưu hóa nó chính là chìa khóa để giải quyết triệt để vấn đề này, mang lại trải nghiệm mượt mà cho người dùng. Bài viết này sẽ đi sâu vào định nghĩa TBT, cách đo lường, ảnh hưởng của nó đến hiệu suất, và các phương pháp tối ưu hiệu quả nhất.

Định nghĩa Total Blocking Time (TBT) trong tối ưu hóa hiệu suất web

Tổng quan về Total Blocking Time

Vậy Total Blocking Time (TBT) chính xác là gì? Đây là một chỉ số hiệu suất quan trọng của Google, dùng để đo lường tổng thời gian mà một trang bị “chặn” không thể phản hồi lại các tương tác của người dùng như nhấp chuột, cuộn trang, hoặc nhập liệu bàn phím. Khoảng thời gian bị chặn này xảy ra giữa hai mốc quan trọng: First Contentful Paint (FCP) và Time to Interactive (TTI). FCP là khi nội dung đầu tiên (văn bản, hình ảnh) hiển thị trên màn hình, còn TTI là thời điểm trang đã sẵn sàng để người dùng tương tác một cách mượt mà.

Hình minh họa

Hãy tưởng tượng luồng chính (main thread) của trình duyệt như một con đường một chiều. Khi các tác vụ nặng như xử lý JavaScript được thực thi, chúng giống như những chiếc xe tải lớn chiếm trọn con đường, khiến các phương tiện khác (tương tác của người dùng) không thể đi qua. TBT tính tổng thời gian mà con đường này bị tắc nghẽn bởi các tác vụ kéo dài hơn 50 mili giây (ms). Thời gian vượt quá 50ms của mỗi tác vụ sẽ được cộng dồn để ra chỉ số TBT cuối cùng. Do đó, TBT cao là dấu hiệu cho thấy trang web của bạn đang bắt người dùng phải chờ đợi một cách không cần thiết.

Tầm quan trọng của TBT trong trải nghiệm người dùng

Total Blocking Time ảnh hưởng trực tiếp đến cảm nhận của người dùng về tốc độ và độ nhạy của trang web. Khi TBT cao, người dùng sẽ gặp phải tình trạng “đơ” hoặc “giật lag”. Họ có thể nhấp vào một nút bấm nhưng không thấy bất kỳ phản hồi nào ngay lập tức, hoặc cố gắng cuộn trang nhưng giao diện bị khựng lại. Trải nghiệm tồi tệ này dễ gây ra sự thất vọng và khiến họ nhanh chóng rời khỏi trang.

Điều quan trọng là phải phân biệt TBT với các chỉ số Core Web Vitals khác. Trong khi Largest Contentful Paint (LCP) đo tốc độ tải nội dung chính và Cumulative Layout Shift (CLS) đo sự ổn định của giao diện, TBT tập trung vào khả năng tương tác. Một trang có thể có LCP tốt (tải nhanh) và CLS tốt (giao diện ổn định) nhưng TBT lại kém, dẫn đến một trải nghiệm tổng thể không hoàn hảo. TBT được xem là một chỉ số “trong phòng thí nghiệm” (lab metric) phản ánh chặt chẽ First Input Delay (FID) và Interaction to Next Paint (INP) – những chỉ số “thực tế” (field metric) mà Google dùng để đánh giá trải nghiệm người dùng thực tế.

Cách đo lường và ý nghĩa của TBT đối với trải nghiệm người dùng

Các phương pháp và công cụ đo TBT phổ biến

Để cải thiện Total Blocking Time, trước tiên bạn cần biết cách đo lường nó. May mắn là có rất nhiều công cụ mạnh mẽ và miễn phí giúp bạn thực hiện việc này. Các công cụ phổ biến nhất bao gồm Google PageSpeed Insights, Lighthouse, WebPageTest và Chrome DevTools. Với người mới bắt đầu, PageSpeed Insights và Lighthouse là lựa chọn lý tưởng vì giao diện thân thiện và cung cấp các khuyến nghị rõ ràng.

Hình minh họa

Để sử dụng PageSpeed Insights, bạn chỉ cần dán URL trang web của mình vào và chạy phân tích. Trong báo cáo kết quả, chỉ số Total Blocking Time sẽ được hiển thị ở mục “Performance” (Hiệu suất). Kết quả được phân loại theo màu sắc để bạn dễ dàng nhận biết: Xanh (Tốt – dưới 200ms), Cam (Cần cải thiện – từ 200ms đến 600ms), và Đỏ (Kém – trên 600ms). Báo cáo cũng sẽ chỉ ra các tác vụ cụ thể đang làm tăng TBT, giúp bạn xác định được nguồn gốc của vấn đề.

Ý nghĩa của TBT trong việc tối ưu trải nghiệm người dùng

Chỉ số TBT không chỉ là một con số kỹ thuật vô nghĩa. Nó có ý nghĩa sâu sắc đối với trải nghiệm và sự hài lòng của người dùng. Một chỉ số TBT cao là nguyên nhân trực tiếp gây ra hiện tượng trang web phản hồi chậm. Bạn đã bao giờ nhấp vào nút “Thêm vào giỏ hàng” và phải chờ vài giây mà không thấy gì xảy ra chưa? Đó chính là tác động của TBT cao, khi trình duyệt đang bận rộn xử lý các tác vụ trong nền và “phớt lờ” yêu cầu của bạn.

Hình minh họa

Sự chậm trễ này tạo ra một rào cản lớn trong hành trình của người dùng. Nó không chỉ gây khó chịu mà còn làm giảm niềm tin vào thương hiệu của bạn. Hậu quả trực tiếp là tỷ lệ thoát trang (bounce rate) tăng vọt, vì người dùng thiếu kiên nhẫn sẽ nhanh chóng tìm đến một trang web khác hoạt động tốt hơn. Đối với các trang thương mại điện tử, TBT cao có thể dẫn đến việc khách hàng từ bỏ giỏ hàng, làm giảm tỷ lệ chuyển đổi và ảnh hưởng tiêu cực đến doanh thu. Tối ưu TBT không chỉ là cải thiện hiệu suất kỹ thuật, mà còn là đầu tư vào sự hài lòng và lòng trung thành của khách hàng.

Ảnh hưởng của JavaScript và các tác vụ trên luồng chính đến TBT

Vai trò của JavaScript trong tăng TBT

JavaScript là một công nghệ không thể thiếu để tạo ra các trang web động và có tính tương tác cao. Tuy nhiên, nó cũng chính là “thủ phạm” hàng đầu gây ra chỉ số Total Blocking Time cao. Khi trình duyệt tải một trang web, nó sử dụng một luồng xử lý duy nhất gọi là “luồng chính” (main thread) để thực hiện hầu hết các công việc, bao gồm phân tích HTML, xây dựng cây DOM, thực thi CSS và chạy JavaScript. Nếu một đoạn mã JavaScript quá lớn hoặc được viết không hiệu quả, nó có thể chiếm dụng luồng chính trong một thời gian dài.

Hình minh họa

Trong khi luồng chính đang bận rộn thực thi JavaScript, nó không thể làm bất cứ việc gì khác, kể cả việc phản hồi lại tương tác của người dùng. Các tác vụ JavaScript phổ biến gây ra sự chậm trễ này bao gồm: phân tích (parsing) và biên dịch (compiling) mã, thực thi các hàm phức tạp, hoặc các thao tác DOM kéo dài. Các mã JavaScript từ bên thứ ba như mã theo dõi, quảng cáo, hoặc các widget mạng xã hội cũng là những nguồn gây tăng TBT đáng kể vì chúng thường không được tối ưu hóa cho hiệu suất trang web của bạn.

Cách xác định và xử lý các tác vụ trên luồng chính

Để giảm TBT, bạn cần xác định chính xác những tác vụ nào đang chiếm dụng luồng chính. Công cụ mạnh mẽ nhất cho việc này là tab “Performance” trong Chrome DevTools. Bằng cách ghi lại một hồ sơ hiệu suất (performance profile) trong khi tải trang, bạn có thể thấy một biểu đồ thác nước chi tiết về tất cả các hoạt động trên luồng chính.

Hình minh họa

Trong biểu đồ này, hãy tìm kiếm các “Long Tasks” – những tác vụ được đánh dấu bằng một tam giác nhỏ màu đỏ. Đây là những tác vụ chạy quá 50ms và trực tiếp góp phần vào chỉ số TBT. Khi nhấp vào một Long Task, bạn có thể xem chi tiết về nó ở bảng phía dưới, bao gồm loại tác vụ (ví dụ: “Function Call”, “Script Evaluation”) và đoạn mã JavaScript nào đã gây ra nó. Một khi đã xác định được các “kẻ gây rối”, bạn có thể bắt đầu xử lý chúng. Các giải pháp phổ biến bao gồm: chia nhỏ các tệp JavaScript lớn (code splitting), trì hoãn tải các script không cần thiết (lazy loading), và sử dụng thuộc tính defer hoặc async để tối ưu hóa cách trình duyệt tải và thực thi chúng.

Các phương pháp giảm Total Blocking Time để nâng cao tốc độ tải trang

Tối ưu hóa và phân bổ lại tài nguyên JavaScript

Giải pháp hiệu quả nhất để giảm Total Blocking Time là tập trung vào việc tối ưu hóa cách trang web của bạn xử lý JavaScript. Thay vì bắt trình duyệt tải một tệp JS khổng lồ ngay từ đầu, bạn nên áp dụng các kỹ thuật thông minh hơn. Một trong những kỹ thuật mạnh mẽ nhất là “Code Splitting”. Kỹ thuật này cho phép bạn chia nhỏ tệp JavaScript thành nhiều mẩu nhỏ hơn. Sau đó, trình duyệt chỉ cần tải những mẩu cần thiết cho trang hiện tại, giúp giảm đáng kể thời gian xử lý ban đầu.

Hình minh họa

Bên cạnh đó, hãy tận dụng thuộc tính deferasync cho các thẻ <script>. Sử dụng async cho các script độc lập không ảnh hưởng đến việc hiển thị trang (ví dụ: script phân tích, quảng cáo). Trình duyệt sẽ tải chúng song song và thực thi ngay khi có thể. Sử dụng defer cho các script cần thiết cho chức năng nhưng không quan trọng cho lần hiển thị đầu tiên. Trình duyệt sẽ tải chúng song song nhưng chỉ thực thi sau khi đã phân tích xong toàn bộ tài liệu HTML. Kỹ thuật “Lazy Loading” (tải lười) cũng cực kỳ hữu ích cho các script hoặc tài nguyên không cần thiết ngay lập tức, chẳng hạn như video nhúng hoặc chatbot. Chúng chỉ được tải khi người dùng cuộn đến phần đó của trang.

Giảm thiểu và tối ưu hóa các tác vụ trên luồng chính

Ngoài JavaScript, các yếu tố khác cũng có thể gây áp lực lên luồng chính và làm tăng TBT. Việc tối ưu hóa chúng cũng góp phần quan trọng vào việc cải thiện hiệu suất tổng thể. Hãy bắt đầu với CSS. Một tệp CSS quá phức tạp với nhiều quy tắc lồng nhau có thể buộc trình duyệt phải tính toán và “vẽ” lại bố cục nhiều lần, gây chặn luồng chính. Hãy đơn giản hóa các selector, loại bỏ CSS không sử dụng, và ưu tiên tải các CSS quan trọng (critical CSS) trước.

Hình minh họa

Hình ảnh cũng là một yếu tố cần quan tâm. Mặc dù việc tải hình ảnh không trực tiếp chặn luồng chính, nhưng hình ảnh có kích thước lớn và không được tối ưu hóa có thể tiêu tốn băng thông và tài nguyên CPU để giải mã và hiển thị, gián tiếp ảnh hưởng đến hiệu suất. Hãy đảm bảo bạn nén hình ảnh và sử dụng các định dạng hiện đại như WebP. Cuối cùng, hãy kiểm soát các “render-blocking resources” – những tài nguyên như script và stylesheet trong thẻ <head> mà trình duyệt phải tải và xử lý xong trước khi có thể hiển thị bất kỳ nội dung nào. Giảm thiểu số lượng các tài nguyên này sẽ giúp trang web của bạn hiển thị nhanh hơn và sẵn sàng tương tác sớm hơn.

Tầm quan trọng của TBT trong SEO và tối ưu hóa tốc độ trang web

Mối quan hệ giữa TBT và các yếu tố xếp hạng Google Core Web Vitals

Total Blocking Time không chỉ là một chỉ số về trải nghiệm người dùng, nó còn có mối liên hệ mật thiết với SEO. Google đã nhấn mạnh rằng trải nghiệm trang là một tín hiệu xếp hạng quan trọng, và các chỉ số Core Web Vitals là thước đo chính cho yếu tố này. Mặc dù TBT là một chỉ số “lab” (đo trong môi trường giả lập), nó lại có tương quan rất cao với First Input Delay (FID) và người kế nhiệm của nó là Interaction to Next Paint (INP) – những chỉ số “field” (đo từ người dùng thực tế) nằm trong bộ Core Web Vitals.

Hình minh họa

Một chỉ số TBT cao gần như chắc chắn sẽ dẫn đến chỉ số FID/INP kém. Khi Googlebot thu thập dữ liệu và đánh giá trang của bạn, nó sẽ đo lường các chỉ số hiệu suất này. Một trang có TBT thấp báo hiệu cho Google rằng trang web của bạn cung cấp một trải nghiệm tương tác nhanh chóng và mượt mà. Điều này được xem là một tín hiệu tích cực, có thể góp phần cải thiện thứ hạng của bạn trên trang kết quả tìm kiếm. Ngược lại, một trang có TBT cao sẽ bị đánh giá là có trải nghiệm người dùng kém, gây ảnh hưởng tiêu cực đến nỗ lực SEO của bạn.

Lợi ích dài hạn khi chú trọng tối ưu TBT

Việc đầu tư thời gian và nguồn lực để tối ưu hóa Total Blocking Time mang lại những lợi ích to lớn và bền vững. Lợi ích rõ ràng nhất là cải thiện trải nghiệm người dùng. Một trang web phản hồi nhanh chóng sẽ giữ chân khách truy cập lâu hơn, khuyến khích họ khám phá nhiều nội dung hơn và tương tác sâu hơn với thương hiệu của bạn. Điều này trực tiếp dẫn đến việc giảm tỷ lệ thoát trang (bounce rate) và tăng thời gian trên trang – những chỉ số quan trọng mà Google cũng theo dõi.

Đối với các doanh nghiệp, lợi ích còn mang tính thương mại trực tiếp. Trên một trang thương mại điện tử, việc giảm TBT có thể làm giảm tỷ lệ từ bỏ giỏ hàng và tăng tỷ lệ chuyển đổi. Trên một blog hoặc trang tin tức, nó giúp tăng số lượt xem trang và doanh thu quảng cáo. Bằng cách chú trọng tối ưu TBT, bạn không chỉ làm hài lòng các công cụ tìm kiếm mà còn xây dựng một nền tảng kỹ thuật số vững chắc, tạo ra một môi trường thân thiện cho người dùng, và cuối cùng là thúc đẩy các mục tiêu kinh doanh của mình một cách hiệu quả.

Công cụ kiểm tra và phân tích Total Blocking Time phổ biến

Lighthouse và PageSpeed Insights

Đối với hầu hết các chủ sở hữu website, nhà phát triển và chuyên gia SEO, Lighthouse và PageSpeed Insights là hai người bạn đồng hành không thể thiếu trong việc kiểm tra và tối ưu hóa TBT. Lighthouse là một công cụ mã nguồn mở của Google được tích hợp sẵn trong trình duyệt Chrome (truy cập bằng cách nhấn F12 > tab Lighthouse). Nó cho phép bạn chạy một bài kiểm tra toàn diện về hiệu suất, khả năng truy cập, SEO và nhiều yếu tố khác ngay trên trình duyệt của mình.

PageSpeed Insights (PSI) sử dụng công nghệ của Lighthouse ở phía máy chủ và kết hợp dữ liệu “lab” này với dữ liệu “field” từ Báo cáo Trải nghiệm Người dùng của Chrome (CrUX). Ưu điểm lớn của PSI là nó cung cấp một báo cáo dễ hiểu, chấm điểm TBT của bạn và quan trọng hơn là đưa ra các “Cơ hội” (Opportunities) và “Chẩn đoán” (Diagnostics) cụ thể. Nó sẽ chỉ ra chính xác các đoạn mã JavaScript, các tác vụ dài, hoặc các tài nguyên của bên thứ ba đang làm tăng TBT, kèm theo các hướng dẫn chi tiết để bạn khắc phục.

Các công cụ hỗ trợ khác như WebPageTest, Chrome DevTools

Khi bạn cần phân tích sâu hơn và “mổ xẻ” vấn đề tận gốc, đó là lúc cần đến các công cụ chuyên sâu hơn như WebPageTest và Chrome DevTools. WebPageTest là một công cụ cực kỳ mạnh mẽ cho phép bạn kiểm tra trang web từ nhiều địa điểm và trên nhiều loại trình duyệt, thiết bị khác nhau. Nó cung cấp các biểu đồ thác nước chi tiết, phân tích việc chặn hiển thị, và một tính năng độc đáo là quay video quá trình tải trang, giúp bạn thấy chính xác những gì người dùng trải nghiệm.

Hình minh họa

Chrome DevTools, đặc biệt là tab “Performance”, là công cụ tối ưu dành cho các nhà phát triển. Nó cho phép bạn ghi lại và phân tích từng mili giây trong quá trình tải và chạy của trang. Bạn có thể xác định chính xác các “Long Tasks” (tác vụ dài), xem xét chồng lệnh gọi (call stack) để truy tìm nguồn gốc của các hàm tốn thời gian, và phân tích hoạt động của luồng chính một cách chi tiết. Mặc dù đòi hỏi kiến thức kỹ thuật cao hơn, nhưng khả năng phân tích sâu của Chrome DevTools là vô giá trong việc tìm ra và giải quyết các vấn đề TBT phức tạp nhất.

Common Issues/Troubleshooting

TBT cao do tải JavaScript quá nặng

Một trong những vấn đề phổ biến nhất gây ra Total Blocking Time cao là việc tải các tệp JavaScript có kích thước quá lớn. Điều này thường xảy ra khi bạn sử dụng nhiều thư viện, framework, hoặc plugin mà không qua tối ưu hóa. Các đoạn mã từ bên thứ ba như Google Analytics, Facebook Pixel, các nền tảng quảng cáo, hoặc công cụ chatbot cũng là những “thủ phạm” quen thuộc. Chúng thường không được tối ưu cho trang của bạn và có thể chứa các tác vụ chạy dài, chiếm dụng luồng chính.

Giải pháp cho vấn đề này là kiểm tra và đánh giá lại tất cả các script đang chạy trên trang. Sử dụng tab “Coverage” trong Chrome DevTools để xác định các đoạn mã JavaScript hoặc CSS không được sử dụng và loại bỏ chúng. Áp dụng kỹ thuật “code splitting” để chia nhỏ các tệp JavaScript lớn thành các phần nhỏ hơn, chỉ tải khi cần thiết. Đối với các script của bên thứ ba, hãy cân nhắc xem chúng có thực sự cần thiết hay không. Nếu có, hãy tìm cách tải chúng một cách không đồng bộ (async) hoặc trì hoãn việc tải chúng cho đến sau khi trang đã tương tác được.

Sử dụng sai hoặc thiếu các kỹ thuật defer, async cho script

Một lỗi phổ biến khác là không sử dụng hoặc sử dụng sai các thuộc tính deferasync cho thẻ <script>. Nhiều nhà phát triển đặt tất cả các script trong thẻ <head> mà không có hai thuộc tính này. Điều này buộc trình duyệt phải dừng việc phân tích HTML, tải và thực thi xong script đó rồi mới tiếp tục, gây ra tình trạng chặn hiển thị (render-blocking) và làm tăng TBT một cách không cần thiết.

Để khắc phục, hãy tuân thủ quy tắc đơn giản sau: Nếu script đó độc lập và không phụ thuộc vào DOM (ví dụ: script theo dõi), hãy sử dụng async. Nếu script đó cần DOM nhưng không quan trọng cho việc hiển thị ban đầu (ví dụ: một số hiệu ứng tương tác), hãy sử dụng defer. Việc đặt các script defer ở cuối thẻ <body> cũng là một thực hành tốt. Bằng cách quản lý thứ tự và phương thức tải script một cách thông minh, bạn có thể giải phóng luồng chính, cho phép trang hiển thị và trở nên tương tác nhanh hơn đáng kể, từ đó giảm TBT hiệu quả.

Best Practices

Để duy trì chỉ số Total Blocking Time ở mức thấp và đảm bảo hiệu suất web tối ưu, hãy biến những thực hành tốt nhất sau đây thành một phần trong quy trình làm việc của bạn.

  • Ưu tiên giảm thiểu kích thước và độ phức tạp của JavaScript. Trước khi thêm bất kỳ thư viện hoặc plugin nào, hãy tự hỏi: “Điều này có thực sự cần thiết không?”. Hãy thường xuyên kiểm tra và loại bỏ các đoạn mã không sử dụng.
  • Luôn chia nhỏ các tệp JavaScript lớn bằng kỹ thuật code splitting. Điều này đảm bảo rằng người dùng chỉ tải những gì họ cần cho trang họ đang xem, thay vì tải toàn bộ ứng dụng ngay từ đầu.
  • Tận dụng triệt để các thuộc tính deferasync. Đây là những công cụ đơn giản nhưng cực kỳ mạnh mẽ để ngăn JavaScript chặn việc hiển thị trang và giải phóng luồng chính.
  • Sử dụng các công cụ kiểm tra hiệu suất như LighthousePageSpeed Insights một cách định kỳ. Hãy lên lịch kiểm tra hàng tuần hoặc sau mỗi lần triển khai lớn để sớm phát hiện các vấn đề về TBT trước khi chúng ảnh hưởng đến người dùng.
  • Thận trọng với các framework và thư viện JavaScript. Mặc dù chúng có thể tăng tốc độ phát triển, nhưng chúng cũng có thể đi kèm với một chi phí hiệu suất không nhỏ. Hãy chọn những framework nhẹ và tối ưu.
  • Kiểm soát chặt chẽ các tài nguyên chặn hiển thị (render-blocking resources). Giảm thiểu số lượng các tệp CSS và JavaScript được tải đồng bộ trong thẻ <head> của trang.

Conclusion

Tóm lại, Total Blocking Time không chỉ là một chỉ số kỹ thuật khô khan, mà là một yếu tố then chốt phản ánh trực tiếp trải nghiệm tương tác của người dùng trên trang web của bạn. Một chỉ số TBT cao có thể gây ra sự chậm trễ, giật lag, khiến người dùng thất vọng và rời đi, đồng thời ảnh hưởng tiêu cực đến thứ hạng SEO. Ngược lại, việc tối ưu hóa TBT giúp tạo ra một trang web nhanh nhạy, mượt mà, giữ chân khách truy cập và được Google đánh giá cao.

Hình minh họa

Đừng xem việc tối ưu TBT là một công việc chỉ dành cho các chuyên gia kỹ thuật. Với các công cụ như PageSpeed Insights và những phương pháp đã được trình bày trong bài viết này, bạn hoàn toàn có thể bắt đầu hành trình cải thiện hiệu suất trang web của mình. Hãy bắt đầu ngay hôm nay! Thường xuyên đo lường, phân tích và áp dụng các kỹ thuật giảm TBT. Bằng cách đầu tư vào trải nghiệm người dùng, bạn đang đầu tư vào sự thành công lâu dài của website và thương hiệu của mình.

5/5 - (1 Đánh giá)
Tác giả

Mạnh Đức

Có cao nhân từng nói rằng: "Kiến thức trên thế giới này đầy rẫy trên internet. Tôi chỉ là người lao công cần mẫn đem nó tới cho người cần mà thôi !"

Chia sẻ