Trì hoãn tải script của bên thứ ba (các dịch vụ của Facebook, Google, live chat…) trong WordPress để tăng tốc độ load web.
Trước đây, tôi đã từng rất nhiều lần phải giải thích với khách hàng rằng website của họ load chậm hay điểm test tốc độ thấp là do họ chèn quá nhiều script của bên thứ ba (Google, Facebook, live chat…). Những dữ liệu này không thể tối ưu được, chỉ có 1 trong 2 lựa chọn là dùng và chấp nhận chậm hoặc bỏ chúng đi. Tuy nhiên, giờ đây, mọi chuyện đã khác. Sau một thời gian dày công nghiên cứu, tôi đã tìm ra cách để giải quyết được vấn đề.
Tham khảo thêm:
Những dữ liệu tải từ server của bên thứ ba như Google (Google Ads, Google AdSense, Google Analytics, Google Tag Manager…), Facebook (Facebook Page Widget, Facebook Messenger, Faceboom Comments, Facebook Pixel…), hay các dịch vụ live chat (Tawk.to, uhChat…)… là những dữ liệu không thể tối ưu được. Bạn không thể nén, gộp hay thiết lập cache cho chúng. Nguyên nhân đơn giản vì chúng không nằm trên host của bạn. Những dữ liệu này thường rất nặng và gây ra các vấn đề nghiêm trọng liên quan đến tốc độ load của website. Để thấy rõ điều này, các bạn có thể dùng Google PageSpeed Insights, GTmetrix hay các công cụ test tốc độ.
Và vì không thể tối ưu được nên giải pháp duy nhất để tích hợp các dịch vụ kể trên vào website của bạn mà không gây ảnh hưởng tới tốc độ load chính là trì hoãn việc tải của chúng. Hiểu một cách đơn giản thì script của chúng chỉ được thực thi một khi các thành phần khác của website đã tải hoàn tất. Nghe đến đây nhiều bạn sẽ nghĩ ngay đến các kỹ thuật như async hay defer JS. Tuy nhiên, cái mà tôi đang nói đến là delay (trì hoãn). Chúng khác nhau ở chỗ async và defer JS được thực hiện ngay sau khi các thành phần khác được tải, còn delay thì có quãng thời gian nghỉ. Khoảng thời gian này có thể tính theo giây, theo phút, thậm chí là… theo giờ tùy theo nhu cầu của bạn.
Ví dụ: bạn chèn Facebook Messenger vào website của mình và thiết lập cho nó chỉ bắt đầu hiển thị sau 5 giây kể từ khi website đã hoàn tất việc tải những dữ liệu khác. WP Căn bản cũng đang chèn widget Facebook Messenger.
Tuy nhiên, khi test tốc độ với Google PageSpeed Insights, site của tôi vẫn đạt điểm gần như tuyệt đối và không có bất cứ lỗi nào liên quan đến Facebook được đề cập trong báo cáo. Widget Facebook Messenger cũng không xuất hiện trong ảnh chụp màn hình của Google.
Chúng ta cũng có thể làm điều tương tự với các dịch vụ khác, miễn là chúng sử dụng script để nhúng dữ liệu vào website.
Có 2 cách khác nhau để làm điều này. Tuy nhiên, về mặt nguyên lý thì chúng hoàn toàn giống nhau.
1. Đầu tiên, các bạn cần phải cài đặt và kích hoạt plugin Flying Scripts by WP Speed Matters.
2. Test tốc độ load website bằng Google PageSpeed Insights hoặc GTmetrix. Chúng tôi khuyên bạn nên sử dụng GTmetrix vì đôi lúc Google PageSpeed Insights không hiển thị đầy đủ danh sách các tài nguyên của bên thứ 3 đang load trên website của bạn. Mở tab Waterfall => xem cột Domain để biết tài nguyên nào được tải từ server của bên thứ ba (tên miền không giống với tên miền website của bạn) => click vào dấu +
tương ứng => copy tên miền của tài nguyên đó.
3. Truy cập Settings => Flying Scripts, các bạn sẽ thấy một số thiết lập như sau.
Trong đó:
Click vào nút Save Changes để lưu lại.
Lưu ý: trong trường hợp bạn đang sử dụng plugin LiteSpeed Cache, hãy truy cập LiteSpeed Cache => Page Optimization => [2] JS Settings.
Hãy đảm bảo:
Click vào nút Save Changes để lưu lại. Xóa cache và kiểm tra kết quả.
Nếu bạn đang sử dụng plugin WP Rocket để tối ưu tốc độ load cho website, hãy truy cập Settings => WP Rocket => File Optimization => tick vào mục Delay JavaScript execution.
Nếu bạn muốn loại trừ một script nào đó khỏi bị delay, hãy điền URL của nó vào khung Excluded JavaScript Files ở ngay bên dưới.
Click vào nút Save Changes để lưu lại. Xoá cache và kiểm tra kết quả.
Nếu bạn không có thời gian để nghiên cứu hoặc đã thử làm theo hướng dẫn nhưng không có tác dụng thì tại WP Căn bản, chúng tôi nhận làm dịch vụ (trả phí) cho những khách hàng có nhu cầu.
Các script của bên thứ ba mà chúng tôi có thể trì hoãn bao gồm:
Và tất tần tật các thể loại script của bên thứ ba khác, miễn là chúng được nhúng vào website WordPress của bạn thông qua file .js
hoặc inline script.
Số tiền mà khách hàng phải trả sẽ phụ thuộc vào số lượng script cần trì hoãn. Vui lòng liên hệ với chúng tôi để nhận được báo giá chi tiết. Xin cảm ơn!
Nếu bạn thích bài viết này, hãy subscribe blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất qua email nhé. Cảm ơn rất nhiều. :)