20 cách tăng tốc WordPress: Hướng dẫn toàn diện. Nhiều cách Free, tuy nhiên đầu tư thêm tiền sẽ tốt hơn!

tăng tốc wordpress

Có thể tiêu đề làm bạn tụt hứng phần nào, nhưng đó là thực tế phũ phàng. Nhưng cũng có một thực tế khác thú vị hơn nhiều mà chúng ta cần phải biết, và điều này có lợi cho tất cả mọi người:

Khi muốn tăng tốc WordPress thì có điều kiện về kinh tế chỉ làm bạn thuận lợi hơn thôi chứ nó không thể thay thế được các lựa chọn thông minh.

Điều hay ho nữa: Bài viết này sẽ cung cấp các cách hiệu quả nhất (trong hiểu biết của tôi), trong đấy có cả những cái không hề tốn một xu nào (nhưng dĩ nhiên có mất công tốn sức!).

Không phải dẫn những nghiên cứu quốc tế, từ kinh nghiệm cá nhân chúng ta đều biết rõ rằng:

Website chậm chạp không chỉ gây ảnh hưởng tiêu cực đến trải nghiệm người dùng, mà còn tạo ra hàng loạt hệ quả tai hại xoáy vòng, cộng hưởng khác như: người dùng đánh giá thấp năng lực của chủ web, giảm bớt nhu cầu xem tiếp trang thứ hai, thứ hạng trên máy tìm kiếm kém đi*, tỷ lệ chuyển đổi thấp, vân vân. Trong trường hợp xấu nhất, khách có thể rời khỏi website trước khi nó kịp tải xong.

Mặc dù bài viết này hướng đến việc tăng tốc WordPress nó cũng rất có ích cho những ai muốn tăng tốc website nói chung. Bởi vì các nền tảng cơ bản vẫn vậy, khác nhau chỉ là công cụ sử dụng mà thôi.

Vì bài rất dài, nên nếu bạn muốn có cái nhìn nhanh, tổng quan về 5 biện pháp và công cụ hiệu quả nhất (trong số rất nhiều cách thức bên dưới), thì nó đây. Bạn chỉ cần chọn một trong các công cụ để dùng, những cái bôi đậm là mình thích dùng hoặc đang dùng**, những cái in nghiêng là mình đã từng trải nghiệm:

Biện phápDịch vụ/Công cụ
Host tốtVultr, Dreamhost, Siteground, Knownhost
CDNCDNSun, KeyCDN, Cloudflare
Plugin cacheWP Super Cache, WP Fastest Cache, W3 Total Cache, WP-Rocket
Plugin nén ảnhEWWW, reSmush.it Image Optimizer
Lazy loada3 Lazy Load, hoặc dùng tính năng tương tự trong plugin cache

(**): Lưu ý, những gì mình thích dùng hoặc đang dùng chưa chắc là cái phù hợp nhất với trường hợp của bạn.

Nghe nếu bạn muốn:

(*)Tránh hiểu lầm quan trọng: Google đánh giá tốc độ website của bạn nhanh hay chậm không phải thông qua tổng thời gian để tải toàn bộ trang web, mà là thời gian để tải nội dung trong màn hình đầu tiên (above the fold), tức là nội dung mà người dùng thấy khi chưa cuộn chuột. Điều này công bằng hơn, vì nếu không thì những trang có nội dung dài sẽ bị mặc định là chậm, và cũng nhờ cách đánh giá này các kỹ thuật lazy load và trì hoãn tải rất quan trọng, giúp bạn cải thiện tốc độ web lên rất nhiều mà không cần quan tâm nhiều đến độ dài bài viết, cũng như các tài nguyên phong phú có dữ liệu lớn trên trang.

Lưu ý thứ hai là: khi bạn tăng tốc trang bạn phải để ý đến điểm tương tác trên trang. Mục tiêu không phải chỉ là thuần túy tăng tốc độ hiển thị website, suy cho cùng, mục tiêu cao nhất là để người dùng có thể làm được thứ mà họ muốn trên website nhanh nhất có thể.

Giờ đến lúc chúng ta cùng khám phá, bạn nhấn vào nút Xem thêm để mở nội dung tương ứng cho mỗi mục. Nút vàng cho mục có nền vàng. Nút đỏ cho mục có nền đỏ. Màu sắc để bạn dễ phân biệt, không có hàm ý cái nào quan trọng hơn.

1. Host phải tốt – tiền ít khó hít được đồ thơm #

Nhìn là biết cách tăng tốc WordPress này sẽ tốn thêm tiền rồi! Tuy nhiên…

…Host rẻ, web nặng, traffic nhiều đòi tốc độ WordPress cao thì khó lắm! Nếu bạn muốn web nhanh điều quan trọng nhất là phải chọn được host phù hợp.

Phù hợp ở đây ý mình là phù hợp với kiểu web của bạn và lưu lượng truy cập.

Nếu web bạn nhẹ, truy cập không lớn (dưới 3K view / ngày), bạn chọn host từ 5 đô – 10 đô / tháng vẫn CHẤP NHẬN ĐƯỢC. Nhưng nếu nhiều hơn bạn nên cân nhắc các gói host tốt hơn.

Đặc biệt, nếu là web bán hàng, web chạy Adsense đem lại thu nhập cao, đừng tiếc 1% – 2% tiền lãi cho host. Bên cạnh nội dung chất lượng cao, tăng tốc website là điều quan trọng thứ hai mà mình ưu tiên thực hiện. Trải nghiệm người dùng tốt thường đem lại nhiều lợi ích vượt hơn rất nhiều chi phí bạn phải bỏ ra để thuê host “ngon”.

Host xịn không chỉ có RAM khoẻ, chịu được truy cập lớn, mà phần lớn các host kiểu này đã được tối ưu sẵn nhiều thứ, mà nếu bạn không có chuyên môn thì rất khó tự mình thực hiện.

Các bạn có thể muốn hỏi mình nên mua hosting ở đâu? Cái này nó thay đổi theo thời gian, 12 tháng sau có khi đã khác nên mình sẽ cố gắng chỉ nêu vài cái tên đã ổn định lâu năm. Tuy nhiên kinh nghiệm chọn lựa là thế này:

  • Nếu hiểu biết một chút về công nghệ và muốn có host tốt, web nhanh, chịu traffic cao thì mua VPS. Nó còn là giải pháp giúp bạn có được cơ hội thử nghiệm nhiều loại CMS (hệ quản trị nội dung) khác nhau chứ không chỉ riêng WordPress, ví dụ như Magento, Drupal, hay ngay cả các đoạn mã tự code.
  • Nếu không rành công nghệ thì mua các loại host đã được tối ưu, kiểu ăn sẵn, ví dụ một số host được tối ưu riêng cho WordPress.
  • Nói chung thì tiền nào sẽ đi với của đấy. Host giá cao thường đi kèm một số dịch vụ gia tăng như cài đặt đơn giản, backup miễn phí hàng ngày, hỗ trợ nhanh 24/7, thời gian uptime rất cao, phòng trừ malware, vân vân.
  • Chọn công ty gia nhập thị trường đủ lâu, ít cũng phải được 3 năm. Nhiều đại gia ngành host đã có mặt ở đây 15 – 20 năm rồi.
  • Vào xem những trang web lớn, hoặc web mà bạn thấy nhanh xem họ dùng host của công ty nào, nếu dưới chân trang không thấy, bạn có thể dùng công cụ whoishostingthis để tìm xem web đó dùng host ở đâu? (Xem hướng dẫn kiểm tra host ở đâu tại bài viết này). Tuy nhiên cách này cùng có hạn chế, ở chỗ là dù cùng một công ty host nhưng họ cung cấp nhiều gói dịch vụ khác nhau, nếu web bạn thấy nhanh chọn dịch vụ cao cấp còn bạn chọn dịch vụ thông thường, thì dù là cùng công ty, vẫn có sự chênh lệch đáng kể về tốc độ.
  • Đa số các công ty host đều có chính sách hoàn tiền lại nếu cảm thấy không ưng í. Thời gian giới hạn thì còn tuỳ từng công ty, nhưng thường có thể lên đến 30 ngày trải nghiệm. Do vậy, khi bạn dùng thử một thời gian thấy tốc độ không ổn thì chuyển đi luôn, đừng ngại.
  • Cái cuối cùng quan trọng này, đọc review thật kỹ, gồm cả review ở các diễn đàn lẫn review của các blogger công nghệ. Các review của các blogger công nghệ có thể bị ảnh hưởng bởi việc họ được ăn % hoa hồng (affiliate) khi có người mua qua khuyến nghị của họ, nên bạn phải nghe bằng cả hai tai. Dù sao những tay blogger lớn bản thân họ cần giữ uy tín nên đa số là tin được, nhưng nên nhớ là những tay hàng đầu thôi nhé.

OK, giờ là một số cái tên mình thấy ổn.

  • Vultr (VPS/giá cạnh tranh, dễ dùng)
  • Dreamhost (VPS/share host/tối ưu WordPress/dễ dùng)
  • Siteground (VPS/share/tối ưu WordPress/giá khá đắt)
  • Knownhost (VPS/share host/tối ưu WordPress/dễ dùng)
  • DigitalOcean (VPS, Cloud/khá khó dùng)
  • Mediatemple (tối ưu WordPress/dễ dùng)
  • Lightning Base (tối ưu WordPress/dễ dùng)
  • Liquid Web (tối ưu WordPress/dễ dùng/tuy nhiên đăng ký cần xác nhận)
  • Linode (VPS, Cloud/tương đối khó)

Đa số các trang trên đều có gói thấp nhất là 20 USD / tháng phù hợp với đa số người dùng. Cũng có trang có gói 10 USD.

Hiện tại mình dùng gói VPS 15 USD của Dreamhost cho trang này, mình dùng kèm với vài trang khác nữa, tốc độ tương đối tốt.

Với host Việt Nam mình không có nhiều kinh nghiệm, nhưng thấy anh em bạn bè dùng và phản ánh khá tốt thì có một số nơi như:

Ưu điểm quan trọng nhất của host Việt Nam là vị trí máy chủ ở gần người dùng, do vậy tốc độ cải thiện đáng kể so với việc bạn đi nửa vòng trái đất để lấy dữ liệu từ host ở Hoa Kỳ.

Ngoài ra bạn còn thấy sự khác biệt rõ ràng trong trường hợp đứt cáp, host ở Việt Nam hầu như không ảnh hưởng gì về tốc độ, host ở nước ngoài (nhất là với các gói thấp) thì chậm hẳn.

Nếu bạn vẫn thích host ngoại nhưng ngại đường xa, hãy chọn host có máy chủ ở Singapore (ưu tiên địa điểm này), HongKong hoặc Nhật Bản.

Chim cắt đang thuê host ở đâu: Mình đang sử dụng host của Dreamhost, cả gói VPS lẫn Dreampress cho một số trang web. Ưu điểm của bạn này là trâu bò và uptime cao. Nhược điểm là vẫn sử dụng phần mềm máy chủ web Apache, cái vốn không phải là phần mềm máy chủ web nhanh nhất. Ngoài ra nó chỉ có máy chủ ở Hoa Kỳ. Ở thời điểm hiện tại bạn nên chọn host có máy chủ ở gần Việt Nam, thí dụ như Sing, Hongkong hoặc Nhật. Điều thứ hai là nên chọn host có phần mềm máy chủ web ưu tiên tốc độ, chẳng hạn sử dụng Nginx hoặc Litespeed. Theo mình biết thì Knownhost và Vultr là các ứng viên rất tốt ở thời điểm này.

~~~

2. Giao diện phù hợp – không phải website nào cũng cần lộng lẫy, bóng bẩy #

Cách thức tăng tốc WordPress này có thể tốn tiền hoặc không.

Rất giống áo quần ở chỗ nó là cái bề ngoài của bạn, tuy nhiên điểm khác biệt là bạn KHÔNG phải thay nó hàng ngày. Giao diện có thể sử dụng NHIỀU THÁNG, thậm chí là NHIỀU NĂM, do vậy, nếu cảm thấy cần đầu tư thì bạn cũng đừng tiếc tiền.

Ở đây lại nói đến tính phù hợp. Website càng màu mè, nhiều tính năng thì càng nặng vì nó sẽ cần nhiều ảnh, icon, JavaScript và CSS hơn,…Tính thêm cả những truy vấn đến cơ sở dữ liệu nữa (và dĩ nhiên điều này làm ảnh hưởng đến tốc độ web).

Do vậy hãy đơn giản tối đa, nghĩa là bạn cần mức nào thì chọn giao diện mức đấy. Bắt buộc cần tính năng nào thì vẫn phải dùng, không thì thôi.

Chẳng hạn như trang này của mình, giao diện không cần bắt mắt, nên mình chọn theme đơn giản với các chức năng cơ bản để tăng tốc WordPress (hiện tại thì trang này màu mè hơn nhiều rồi ạ, mình đã mua áo mới cho nó!).

sử dụng giao diện đơn giản giúp tăng tốc wordpress

Nói đi cũng phải nói lại, nếu bạn làm các trang yêu cầu bắt mắt như bán đồ mỹ phẩm, thời trang, đồ trang sức, nội thất…thì ưu tiên cho tính thẩm mỹ sẽ phải được tính đến.

Hiện mình đang rất thích giao diện này: https://wordpress.org/themes/astra/ nó được tối ưu hóa cho tốc độ, nhưng trông vẫn bắt mắt. Astra có cả phiên bản miễn phí lẫn có phí, đường link mình dẫn ở trên là phiên bản miễn phí.

Các theme tối ưu cho tốc độ bằng cách:

  • Tối ưu việc sử dụng font chữ, tốt nhất là dùng font có sẵn trên máy tính người dùng, hoặc tự host các font nhẹ, tránh sử dụng Google Font cho những font không phổ biến và nặng nề
  • Không sử dụng jQuery, cái thường được thay thế dễ dàng bằng các đoạn JS có tính năng tương tự nhưng nhỏ gọn hơn nhiều
  • Giản hóa thiết kế, trong đó bao gồm việc sử dụng CSS, JS đơn giản, gọn gàng, tránh việc chặn hiển thị nội dung màn hình đầu tiên

Tất cả những điều trên sẽ được mình nói kỹ hơn ở các phần sau, và cả các biện pháp khắc phục nữa. Thường ngay cả khi bạn chủ động chọn được theme tốc độ tốt thì nó vẫn có thể gây ra vấn đề tốc độ do các plugin mà chúng ta sử dụng sau này làm ảnh hưởng đến nó.

Chim cắt đang sử dụng giao diện nào: Mình sử dụng nhiều giao diện, từ mặc định của Automatic cho đến các theme miễn phí khác rồi các theme phải bỏ tiền ra mua. Trang web này mình đang dùng theme Soledad. Một theme khác mà mình thích là Newspaper, nó có vẻ chạy rất mượt và nhanh hơn Soledad. Trang không quá cầu kỳ về hình ảnh, mình thích dùng Astra, nó là theme chủ đích thiết kế cho tăng tốc, bản có phí của nó sử dụng không giới hạn website.

P/S: từ đầu năm 2019, mình tách các bài viết về tăng tốc website trên Đức Anh Plus ra một trang web riêng, đặt tên là chimcat.net, chính là trang bạn đang đọc đây. Chim cắt sử dụng theme của Astra.

~~~

3. Gỡ bỏ các plugin không dùng & hạn chế plugin quá nặng – vứt đồ thừa trong nhà #

Nó chỉ là việc bỏ đi gánh nặng mà thôi. Cũng như căn nhà trở nên chật chội, khó ở vì có quá nhiều đồ đạc rất ít khi dùng, hosting cũng ì ạch nếu nó phải gánh quá nhiều. Mình nghe đâu đó nguyên tắc rằng nếu một đồ vật không được dùng trong vòng 6 tháng hãy cân nhắc chào vĩnh biệt nó.

Plugin thường tạo ra hàng loạt các file CSS và JS bổ sung vào giao diện, nhiều trong số đó có dung lượng không nhẹ chút nào, có những cái lên đến hàng 100KB. Do vậy, mặc dù đa số plugin chúng ta dùng đều miễn phí, nhưng hãy tiết kiệm trong việc sử dụng nó.

Bản thân trang này mình cố gắng để nó tối thiểu hoá plugin cần xài, hiện tại vẫn chưa đến 20 plugin:

sử dụng ít plugin giúp giảm tải cho wordpress

Nguyên tắc sử dụng plugin, cũng giống như giao diện, xài đến đâu thì cài đến đó. Đừng thừa đừng thiếu.

Một nguyên tắc quan trọng khác để bạn tránh gặp các rắc rối liên quan đến lỗ hổng bảo mật là đừng cài plugin crack, chọn plugin uy tín và được cộng đồng đánh giá cao. Chẳng có gì chắc chắn 100%, nhưng chúng ta cố gắng làm thế nào để tránh được trong khả năng.

Chim cắt hạn chế lạm dụng plugin như thế nào: Mình cố gắng phát hiện các tính năng trùng lặp giữa các plugin hoặc của plugin và website để chọn chỉ dùng một cái mà thôi. Ví dụ JetPack có cái thống kê lưu lượng sử dụng rất hay, cũng như có CDN miễn phí. Tuy nhiên vì mình dùng Google Analytics rồi, cũng như đã có CDN dùng riêng nên mình không cần plugin JetPack nữa, mình đã xóa nó đi (plugin JetPack khá nặng, sắp tới mình sẽ tìm hiểu các plugin nặng phổ biến để chúng ta cân nhắc sử dụng nó hay không). Ví dụ thứ hai là các nút chia sẽ mạng xã hội, mình dùng riêng một plugin chia sẻ, nên không dùng tính năng tương tự mà theme cũng có. Do vậy mình vào tùy chọn theme và tắt nó đi.

~~~

4. Tối ưu hoá hình ảnh – hàng to nặng khéo gói buộc, sắp xếp cũng nhẹ đi nhiều #

Nếu bạn nhìn bảng phân tích lưu lượng tải xuống của một trang web bạn có thể thấy hình ảnh chiếm từ 30 – 70% dung lượng (tuỳ từng trang, bài viết). Có nghĩa là một trang web 2MB chẳng hạn, có thể 1,4MB đã là hình ảnh rồi.

hình ảnh được tối ưu sẽ giúp tăng tốc wordpress lên nhiều lần
Như trang web được thống kê, hình ảnh chiếm đến 85%. Nội dung văn bản chẳng đáng bao nhiêu, chưa đến 2%. Chiếm thứ nhì là JavaScript, khoảng 7%. Đây là thống kế ngẫu nhiên một trang khá nặng hình ảnh, các trang khác tỉ lệ sẽ khác đi nhiều

Do vậy tối ưu hoá hình ảnh tốt sẽ giảm được rất nhiều lưu lượng, tương ứng là giảm thời gian hiển thị website (gồm cả thời gian trong màn hình đầu tiên, lẫn tổng thời gian để tải cả trang).

Có hai cách giảm dung lượng ảnh:

  • Giảm không mất chất lượng: Dung lượng ảnh giảm nhưng độ nét vẫn thế, thường tiết kiệm được từ 10 – 15% với ảnh JPG và lên đến 30 – 70% với ảnh PNG. Cái này lúc nào bạn cũng nên làm vì bạn chẳng mất gì về độ nét cả.
  • Giảm mất chất lượng: Dung lượng giảm, độ nét cũng giảm theo. Ưu điểm là có thể giảm được rất lớn, đôi khi đến 50% với ảnh JPG và 90% với ảnh PNG. Tuy nhiên cái này cần cân đối để không bị giảm chất lượng ảnh quá nhiều. Và thực tế đây là cách mình không khuyên dùng trong hầu hết trường hợp.

Một cách đơn giản nhất để giảm dung lượng ảnh đó là chỉnh lại kích thước ảnh!

Thông thường kích thước web mà người dùng xem trên máy tính bàn giao động từ 600 – 800px, nên bạn chỉnh sửa ảnh lại chiều rộng như vậy sẽ đỡ đi nhiều. Chẳng hạn bạn có ảnh 1200px, bạn biết chiều rộng 600px là đủ thì hãy giảm kích cỡ này xuống, nó có thể giúp ảnh giảm dung lượng đi 3 đến 4 lần.

Một điều hay là nếu bạn lỡ up các ảnh lớn lên trang WordPress rồi thì vẫn có một số plugin cung cấp cho bạn khả năng thu gọn lại các ảnh đó về kích cỡ nhỏ hơn. Điều này hay là vì khi bạn có blog nhiều bài viết thì tìm thủ công các ảnh rất khó.

Để tìm các phần mềm tối ưu ảnh trên desktop bạn có thể tra từ khoá Image Optimization Software. Còn để tìm các plugin cho WordPress hãy tra Image Optimization Plugin WordPress. (Trừ khi bạn lấy ảnh chụp từ máy ảnh thưởng có kích thước rất lớn thì bạn nên tối ưu hóa trước bằng phần mềm desktop, còn các ảnh thông thường nhẹ nhàng khác thì cứ sử dụng plugin của WordPress là được).

Một số plugin mình thấy khá ổn (và có hướng dẫn đầy đủ cách dùng ở link kèm theo) là:

P/S: Xem thêm so sánh các plugin nén ảnh.

Bên dưới là ảnh chụp màn hình phần cài đặt của plugin Imagify:

Imagify - plugin tối ưu hoá hình ảnh

Nếu bạn cần trả lời nhanh một plugin khá tốt, dễ dùng mà miễn phí thì mình tiến cử EWWW.

Google cách đây vài năm đã đề xuất định dạng ảnh mới WebP thay thế một số định dạng ảnh cũ như JPG và PNG. Ưu điểm của WebP là dung lượng lưu trữ giảm khoảng 20 – 30% mà chất lượng không thay đổi.

Tuy nhiên điều khiến WebP chưa phổ biến là hiện mới có 2 trình duyệt lớn hỗ trợ nó (Chrome & Opera), ngoài ra các công cụ tiện lợi cho người dùng không rành kỹ thuật vẫn chưa nhiều.

(Cập nhật 2019: hiện WebP đã dùng được trên FireFox và Edge/Microsoft, chỉ còn Safari vẫn chưa hỗ trợ, và đây có thể là tiền đề để nó mở rộng sức ảnh hưởng mạnh mẽ hơn rất nhiều thời gian dài trước đây)

Mình từng thực hiện chuyển đổi cho một khách hàng cá nhân sang với hơn 12 ngàn bức ảnh sang định dạng WebP, bạn nào muốn tìm hiểu thì vào liên kết này. Tuy nhiên cách thức này đòi hỏi kha khá công sức và tìm hiểu kỹ thuật để thực hiện chính xác nhiệm vụ.

Chim cắt sử dụng plugin nào để tối ưu hóa ảnh: Mình dùng rất nhiều plugin, cả miễn phí lẫn trả phí. Hiện tại mình thích EWWW, vì dù nó miễn phí nhưng lại có khá nhiều tùy biến cũng như ít giới hạn như các plugin miễn phí khác. Nếu có kinh tế bạn có thể chọn Imagify hoặc ShortPixel…Sắp tới mình sẽ tìm hiểu sâu hơn vụ ảnh WebP + Lazy load + CDN, đây sẽ là cách cải thiện tốc độ ảnh trên web nhanh nhất có thể. Vướng víu ở chỗ tích hợp WebP với CDN hơi khó khăn vì nó cần viết lại thẻ ảnh để tùy vào trình duyệt mà load URL ảnh thích hợp. Các ứng cử viên tiềm năng để thực hiên công việc này bao gồm: CDN Enabler có khả năng tạo trang tĩnh riêng cho WebP và định dạng khác, WebP Express với khả năng can thiệp vào thẻ ảnh

~~~

5. Sử dụng CDN – đáng đồng tiền bát gạo #

CDN là viết tắt của từ Content Delivery Network – hay mạng phân phối nội dung.

Hiểu nôm na nó thế này. Có hai ô tô giống nhau, một cái xuất phát ở Sài Gòn, một cái xuất phát ở Hải Phòng, đường xá đều đẹp, xăng xe đầy đủ, giữa đường không có vấn đề gì đặc biệt. Hỏi xe nào đến Hà Nội trước?

xe nào đến Hà Nội trước
Ảnh của Google map

Câu trên không phải mẹo đâu. Xe ở Quảng Ninh sẽ đến trước, vì nó gần hơn đến gần 10 lần.

Điều tương tự cũng xảy ra với host. Bạn mua cái host ở Mỹ, ngay cả bạn mua host tốt (xe ô tô xịn), đã được tối ưu hoá ảnh và tính năng (hàng hoá không nặng lắm), nhưng quãng đường xa vậy thì cũng không thể chốc nhát là đến.

Thế thì cái CDN làm nhiệm vụ phân tán nội dung khắp thế giới, và nó sẽ lấy nội dung nào ở vị trí nào gần với người dùng nhất, qua đó giúp tăng tốc.

Để thử có xem có CDN thì tốc độ sẽ thay đổi như thế nào, bạn hãy truy cập vào trang dưới đây, nó có 2 ảnh giống y nhau về kích cỡ, dung lượng, nhưng một cái thì lưu ở host Hoa Kỳ, một cái lưu ở CDN có PoP tại Việt Nam (hoặc ở Sing):

Mắt thấy tai nghe: Xem tốc độ tải ảnh có và không có CDN.

Còn video bên dưới là quay lại, bạn có thể xem luôn cho tiện, ảnh mèo bên phải có sử dụng CDN

Ngày xưa thì CDN có giá khá đắt đỏ, rất ít website thực tế dùng trừ các trang lớn, nhưng ở thời điểm hiện tại, kỹ thuật CDN trở thành một dịch vụ phổ thông khi giá đã cạnh tranh hơn rất nhiều và triển khai cũng không quá khó khăn.

Một số dịch vụ hàng đầu cho website không có kinh phí lớn hoặc không rành về kỹ thuật:

(Xem thêm về các dịch vụ CDN hàng đầu tại đây)

cloud-flare-co-hang-tram-pop-tren-toan-cau
Cloudflare có hàng trăm POP (trung tâm dữ liệu – Data Center) trên toàn thế giới và là một trong các dịch vụ CDN hàng đầu. Ở châu Á, các POP của họ bao phủ hầu hết các nước, hiện tại đã có 2 POP ở Việt Nam (đầu năm 2019). Châu Mỹ, Châu Phi họ không có nhiều POP, đây là tình hình chung, số lượng thế này đã là khá hơn rất nhiều các dịch vụ khác rồi.

Người dùng nào ở Việt Nam vào web bạn thì ảnh không phải lấy ở host tận bên Hoa Kỳ mà là lấy ở Nhật, Singapore hay thậm chí ngay tại Việt Nam.

Có thể bạn quan tâm: Dịch vụ SEO Smash của Đức Anh Plus, chuyên tối ưu cho website WordPress: Báo cáo các lỗi SEO cơ bản, kết hợp với Tăng tốc web. Bạn có thể mua riêng dịch vụ tăng tốc (gói Speed) hoặc mua riêng báo cáo lỗi SEO (gói Report) nếu muốn. Bạn tìm hiểu thêm ở liên kết này

Câu hỏi, nếu khách truy cập chủ yếu ở Việt Nam thế sao không thuê host luôn ở Việt Nam đi cho tiện, bày vẽ sang tận Hoa Kỳ, Nhật, Sing thuê host làm gì bây giờ lại phải khổ.

Lý do là thế này: Về nhiều mặt, trong đó có chất lượng kỹ thuật, dịch vụ, bảo mật, phương thức thanh toán…hosting của Hoa Kỳ và nước ngoài nói chung tốt hơn Việt Nam khá nhiều. Buồn chứ vui gì đâu!

Ngoài ra với một số dịch vụ đặc biệt (ít thôi) mà khách hàng phân tán khắp thế giới thì yêu cầu dùng CDN là rất cần thiết. Chẳng hạn hầu hết các hãng tin hàng đầu thế giới mà người đọc rải khắp năm châu bốn bể thì họ đều sử dụng CDN để cải thiện tốc độ, và tránh quá tải cho máy chủ.

Nhược điểm khi sử dụng CDN là gì:

  • Không nhiều dịch vụ CDN có POPs đặt tại Việt Nam. (Cập nhật 2019, hiện có Cloudflare và CDNSun có PoP ở Việt Nam, mình đã dùng thử thấy tốc độ khá ổn).
  • Để dùng được CDN chất lượng, số tiền bỏ ra cũng không hẳn là nhỏ với đa số website, 5 – 10 đô / tháng để sử dụng CDN là chuyện bình thường. Giá đó tương đương với host nho nhỏ rồi. Tuy nhiên cái này cũng tùy quan điểm của từng người, lợi ích của CDN có thể quan trọng hơn nhiều lần mức giá đó, cái vốn chỉ là vấn đề với web nào quá eo hẹp về tài chính.
  • Triển khai CDN chuẩn chỉnh có thể gây khó khăn cho những ai không am hiểu về kỹ thuật và yêu cầu thời gian tìm hiểu cẩn thận. Một số trở ngại có thể kể đến như thiết lập https cho CDN, cài subdomain và chống trùng lặp nội dung khi sử dụng CDN.

Các dịch vụ CDN có nhiều cách tính giá:

  • Dùng đến đâu trả đến đấy – theo dung lượng: cách này hay được áp dụng nhất, dùng 1 tháng hay 1 năm hết cũng được, bao giờ hết mới phải mua tiếp.
  • Trả theo tháng, dùng bao nhiêu dung lượng thì dùng: mình biết có mỗi Cloudflare áp dụng cách này. Gói tầm trung của nó tầm 20 đô / tháng. Dịch vụ miễn phí nghe bảo cũng khá tốt.

Nếu web thông tin có 200K – 500K view / tháng có thể dùng host 20 đô + Cloudflare được đấy ạ (xem hướng dẫn cách cài đặt CloudFlare ở đây), có những người cho biết website của họ tiết kiệm đến 11 TB dữ liệu hàng tháng nhờ sử dụng gói CDN Pro của Cloudflare.

Nếu có mức chi tiêu 100 đô / tháng mà khách truy cập chủ yếu ở Việt Nam bạn có thể cân nhắc thuê một con host thật tốt tại Việt Nam, và không cần phải dùng CDN.

Vậy CDN hợp với ai?

  • Site nhỏ, hoặc tầm trung muốn tăng tốc và giảm tải host
  • Site lớn, lượng người truy cập phân tán khắp thế giới
  • Site kích thước bất kỳ, dùng host nước ngoài, muốn tăng tốc trong trường hợp đứt cáp ở Việt Nam
  • Site hay có lượng truy cập tăng bất thường, gây quá tải

Site lớn và lượng truy cập tập trung ở Việt Nam thì chi phí host sẽ cao có thể chọn một trong hai cách:

  • Sử dụng luôn host tại Việt Nam nếu được, với chi phí cao sẽ được ưu đãi, quan tâm chăm sóc nhiều hơn.
  • Mua host xịn nước ngoài ở gần Việt Nam mà không cần CDN (tuy nhiên đây không phải là cách tối ưu tốc độ tốt nhất. Một điều thú vị khác, nhiều host cao cấp hiện nay thường hợp tác với bên thứ 3 để cung cấp luôn CDN, ví dụ như Kinsta).

Ở thời điểm hiện tại có nhiều dịch vụ cao cấp cho host dùng WordPress, mình có thể kể vài cái tên vì họ cũng nổi tiếng và ổn định thời gian dài rồi, thí dụ như LiquidWeb, Pressidium, Kinsta, WebSynthesis, MediaTempate,…Những thằng này cỡ từ 50 – 200 đô / tháng

Có một số thằng giá chát quá mình không nêu ra, toàn 300 – 400 đô / tháng thì ghê quá à!

Từ khoá bạn có thể tra là: wordpress premium hosting

Nói thêm một chút về Cloudflare, vì mình cũng có kinh nghiệm sử dụng sản phẩm có phí của nó. Đánh giá chung của mình là khá tốt. Cloudflare không đơn giản chỉ là dịch vụ CDN, nó còn là dịch vụ giúp bạn tăng tốc website rất toàn diện + cả bảo mật cho web nữa.

Bên trong Cloudflare có hỗ trợ nén ảnh, nén HTML, CSS, JS & một số giải pháp tăng tốc mà bạn rất khó tìm ở nơi khác. Về bảo mật Cloudflare giúp hạn chế các cuộc tấn công, hack, bao gồm cả DDOS. Điểm hay nữa của dịch vụ này là nó giúp tăng tốc cho tất cả các nền tảng chứ không riêng gì WordPress.

Về dịch vụ CDN truyền thống, bạn có thể tham khảo 2 bài viết này:

Chim cắt đang sử dụng CDN như thế nào: Mình từng dùng CDNSun, KeyCDN, MaxCDN và Cloudflare. Hiện mình thích CDNSun nhất, tuy rằng nó khó sử dụng hơn KeyCDN và không có nhiều tính năng như Cloudflare nhưng bù lại nó có máy chủ ở Việt Nam, trong khi những cái khác không có, kể cả Cloudflare dù đã bổ sung PoP ở Việt Nam, nhưng dữ liệu thực tế vẫn lấy nhiều ở Hongkong (có thể chỉ dịch vụ cao cấp Cloudflare mới ưu tiên dữ liệu ở Việt Nam, còn không họ sẽ tối ưu hóa chi phí bằng cách lấy dữ liệu ở chỗ khác rẻ hơn). Trường hợp đặc biệt, khi bạn có trang web lưu lượng truy cập rất lớn, sử dụng Cloudflare có thể rất thích hợp.

Có dịch vụ CDN miễn phí nào không?

Để cung cấp dịch vụ CDN rất tốn kém, họ phải có máy chủ khắp thế giới nên nói thẳng ra rất khó tìm được hàng miễn phí. Nếu có miễn phí thường sẽ rơi vào tình cảnh giới hạn dung lượng rồi mồi nhử bạn mua gói cao hơn.

Thế thực sự không có gói miễn phí nào trọn đời dùng thoải mái à?

Thực ra là . Hiện tại mình biết có mỗi Automatic chính chủ WordPress cung cấp dịch vụ CDN miễn phí thông qua plugin Jetpack, trọn đời, không giới hạn dung lượng. Tuy nhiên nó không ngon như bạn tưởng!

dịch vụ CDN miễn phí của Jetpack có khi không làm tăng tốc WordPress

Nhược điểm của dịch vụ CDN Jetpack là tốc độ không được cao như các dịch vụ CDN khác, tức là cái quan trọng nhất để mọi người muốn dùng CDN thì nó lại không đáp ứng được!

Ngay cả người dùng nước ngoài đôi khi cũng kể lại rằng bị Jetpack làm cho trang web của họ load đến 8 – 10s.

Thứ hai do đặc thù ở Việt Nam nên việc tải ảnh qua máy chủ của CDN Automatic WordPress đôi khi rất chậm thậm chí bị chặn luôn! (đặc biệt là trên điện thoại di động).

Ngoài ra là một số vấn đề:

  • Ảnh CDN lưu trên photon của Jetpack bị giảm chất lượng, do vậy nếu ảnh nguồn chưa được tối ưu thì không sao, nếu nó được tối ưu tốt rồi thì việc giảm chất lượng này lại gây ra tác dụng ngoài mong muốn là chất lượng ảnh sẽ quá xấu.
  • Một số người nói rằng image CDN của Jetpack ảnh hưởng đến SEO của họ.

Đấy là lý do việc dùng CDN của Jetpack trong bối cảnh này trong nhiều trường hợp hại lại nhiều hơn lợi, duy nhất có cái lợi nhỏ là bạn tốn ít băng thông hơn & bớt được các request tới máy chủ mà thôi. Vậy nếu không quá túng thiếu thì không nên dùng.

~~~

6. Sử dụng cache – không thể bỏ qua cách tăng tốc WordPress này được #

Những tay mới lọ mọ WordPress có thể chẳng biết gì về CDN, hay tối ưu dung lượng ảnh để tăng tốc web, nhưng có khả năng cao là vẫn biết plugin cache nào đấy. Lý do ư? Vì đây là công cụ tăng tốc rất hiệu quả, và tương đối dễ dùng, ngoài ra đa số các biện pháp tăng tốc WordPress sử dụng cache đều có cách thức/gói miễn phí.

Có rất nhiều điều để nói về phần này, và nó cũng bao gồm nhiều thông tin kỹ thuật (và có những cái mình cũng không hiểu hết), nhưng bạn vẫn nên đọc để nắm được ý tưởng cơ bản.

Cache nghĩa là bộ nhớ đệm. Dưới đây là một số cách.

A. Cache phía trình duyệt

Bạn đã vào một trang web, các ảnh và JavaScript, CSS đã tải về. Ngày hôm sau, tuần sau, hoặc tháng sau bạn vào trang đó, thì trình duyệt sẽ không cần tải lại các thông tin đấy nữa, vì nó đã lưu ảnh (chẳng hạn ảnh banner), JS và CSS vào bộ nhớ của nó ở máy tính, điện thoại rồi, vì những cái này giống nhau giữa các trang (mình nghĩ vui vui thế này: đây là dịch vụ CDN rẻ nhất và hiệu quả nhất! Bạn chẳng tốn xu nào và thiết bị của người dùng thì lại lưu sẵn nội dung trang của bạn rồi).

Cái này đơn giản vậy mà tăng tốc rất nhiều lần đấy ạ. Khách truy cập các lần tiếp theo giảm tải có khi từ 30% đến 70%. Tất nhiên cái này ít có tác dụng trong lần truy cập đầu tiên (ý là vẫn có tác dụng phần nào nếu bạn dùng các host JS hoặc jQuery, Font quốc tế dùng chung).

Tuy nhiên cái này nếu bạn không điều chỉnh thì thời gian lưu của nó không dài, tức là tác dụng cache sẽ kém đi rất nhiều.

Để chủ động thời gian lưu dữ liệu phía máy khách bạn cần thêm các đoạn mã vào file .htaccess

File này có 2 cách truy cập, cách dễ nhất là thông qua plugin cho phép chỉnh sửa bằng giao diện trực quan của WordPress, ở đây bạn có thể dùng luôn plugin mà đa số người dùng WordPress đều xài đó là Yoast SEO:

Bạn vào Yoast > Tools > File editor

Copy – Paste đoạn code này vào phần chỉnh sửa .htaccess (đoạn code này là cho máy chủ dùng Apache):

EXPIRES CACHING ##

ExpiresActive On ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"

## EXPIRES CACHING ##

Sau đó nhấn nút Save…

(Bạn có thể muốn xem thêm hướng dẫn dùng Yoast SEO ở bài viết này và bài chi tiết về việc tận dụng bộ nhớ đệm/cache phía trình duyệt)

Bạn cần hết sức cẩn thận copy chính xác, bởi vì cái file này chỉ cần làm nó bị lỗi một chút là trang web sẽ KHÔNG TRUY CẬP được, cho nên bạn cần biết cách thứ hai phòng khi làm lỗi cách thứ nhất, nhưng trước đó ta thử giải thích sơ qua đoạn code trên đã nhỉ, với đoạn trên bạn sẽ bảo trình duyệt của người dùng:

  • Lưu trữ ảnh trong vòng 1 năm
  • Lưu trữ text, css, pdf, x-icon trong vòng 1 tháng
  • Còn mặc định những định dạng khác là 2 ngày

Nếu cách thứ nhất làm lỗi (và bạn không truy cập được website nữa) thì bạn chỉ còn duy nhất một phương án đó là truy cập vào thư mục gốc trên hosting của trang web.

Bạn có thể sử dụng công cụ như FileZilla để chỉnh sửa các file trên hosting. Khi đăng nhập bạn sẽ thấy các file và folder tương tự như thế này:

FileZilla đăng nhập hosting

Nói chung bước này cần bạn chịu khó hơn một chút, yêu cầu phải nắm được cả thông tin tài khoản hosting. Để rõ hơn về chỉnh sửa htaccess, bạn tham khảo bài viết này: https://www.ducanhplus.com/huong-dan-chinh-sua-htaccess-wordpress/

Chim cắt làm điều này như thế nào: Hầu hết các trang mình sử dụng plugin cache thì tự động làm điều này rồi nên mình không phải làm gì thêm. Một số trang không có thì mình thêm thủ công.

B. Kỹ thuật tạo trang tĩnh

Đại khái trang mà bạn nhìn thấy được tạo thành từ các truy vấn từ cơ sở dữ liệu, mỗi lần bạn yêu cầu, nó sẽ phải tạo truy vấn để lấy ảnh, tiêu đề, nội dung, phần chân trang…

Nó giống như để nhìn thấy cả đại gia đình bạn phải gọi cả ông bà, bố mẹ, con cháu nội ngoại ở khắp nơi về họp mặt. Nếu bạn không cần nói chuyện với họ, cách hay hơn để nhìn thấy mà đỡ tốn công nhiều người là…chụp một bức ảnh cả đại gia đình, phóng to như thật, hiệu quả về mặt hình ảnh là gần tương tự.

Trên thị trường hiện nay, đặc biệt là WordPress có vài plugin rất tốt hỗ trợ, như WP Super Cache (thích hợp cho share host, miễn phí), W3 Total Cache (thích hợp cho VPS và người có kinh nghiệm, miễn phí và bản premium), WP Rocket (thích hợp cho dân không chuyên vì rất dễ dùng, nhưng giá đắt 39 đô / năm).

Bản thân mình đang dùng WP Rocket cho trang này (tuy nhiên sau khi hết hạn 1 năm, mình chuyển sang đồ miễn phí là WP Fastest Cache và thấy nó ổn). Đa số các plugin vừa đề cập đều có khả năng điều chỉnh cả cache phía trình duyệt.

P/S: có thể bạn muốn xem bài viết hướng dẫn sử dụng WP Fastest Cache.

Các bạn lưu ý là các hosting tối ưu cho WordPress thường tích hợp sẵn các công cụ bộ nhớ đệm kiểu trang tĩnh ở phía máy chủ rồi nên bạn sẽ không cần phải cài thêm plugin nữa. Ví dụ như gói DreamPress của Dreamhost đã tích hợp đầy đủ cho mình. Tuy nhiên để cẩn thận bạn nên kiểm tra trước với công ty hosting của bạn.

Chim cắt đang sử dụng plugin tạo trang tĩnh nào: Mình có lịch sử sử dụng plugin tạo trang tĩnh khá phức tạp, chuyển qua chuyển lại khá nhiều lần. Hiện tại, các trang nào có kinh phí đầu tư tốt mình dùng WP-Rocket, các trang miễn phí mình dùng WP Super Cache. Còn WP Fastest Cache cũng rất tốt, tuy nhiên nó có nhược điểm là nếu theme có giao diện dành riêng cho mobile, phiên bản miễn phí sẽ không tạo cache cho phiên bản dành riêng cho mobile này (dù rằng phần lớn theme không cần giao diện dành riêng cho mobile vì thiết kế đáp ứng rất phổ biến, tuy nhiên việc sử dụng plugin có thể dẫn đến việc phải bổ sung thêm, và lúc này WP Fastest Cache tỏ ra bất lợi). Do vậy hiện tại mình ít dùng WP Fastest Cache hơn.

C. Kỹ thuật cache phía máy chủ

Kỹ thuật này đòi hỏi chuyên môn nếu bạn tự tay làm (một số VPS, ví dụ có lần mình mua bên LiquidWeb, họ không cài sẵn mà mình phải yêu cầu hoặc tự cài), ngược lại một số host khá xịn thì họ chủ động cài sẵn cho bạn rồi (thí dụ đã kể là DreamPress của Dreamhost).

Vài công nghệ có thể kể đến là Varnish, Memcached, PHP OPcache. Có thể có mâu thuẫn giữa kỹ thuật cache phía máy chủ và plugin cache (ví dụ giữa Varnish và WP-Rocket) nên bạn phải cẩn thận không nên dùng cả hai, nếu có dùng thì nên kiểm tra thật kỹ.

Chim cắt thực hiện điều này như thế nào: Mình có sử dụng gói DreamPress của Dreamhost trên một số website (không phải trang này, trang này sử dụng VPS). Đây là gói host được tối ưu hóa sẵn cache phía máy chủ, Dreamhost khuyên là mình không nên dùng plugin cache với Dreampress nên mình cũng áp dụng theo để tránh xung đột… Kiến thức về cache phía máy chủ của mình còn hạn chế nên không có nhiều điều để nói, sắp tới mình sẽ bổ khuyết vấn đề này.

D. Một vài lưu ý về kỹ thuật cache

  • Bạn nên sử dụng nó bởi vì đây là một trong các cách hiệu quả nhất để cải thiện tốc độ trang.
  • Khi cập nhật nếu bạn quên xoá cache trang đó thì thông tin hiện ra ngoài không thay đổi. Để phòng điều đó, các plugin cache tĩnh để thời gian sống của cache thường từ 1 ngày đến 1 tuần là nhiều (bạn có thể chủ động điều chỉnh thông số này) hoặc là họ ngay lập tức xoá cache chỉ của URL vừa mới cập nhật (cách này là tốt nhất, và thường là tính năng mặc định của nhiều plugin tạo cache).
  • Các kỹ thuật cache phía máy chủ không dành cho người không chuyên, nếu không thành thạo thì hại nhiều hơn là lợi.

~~~

7. Sử dụng nén Gzip – thường được các công ty host tích hợp sẵn rồi #

Nén Gzip là cũng là kỹ thuật tăng tốc WordPress miễn phí, theo đó máy chủ hosting sẽ nén một số file của bạn như HTML, CSS, JS, rồi mới gửi đến trình duyệt. Sau khi tải xong file nén (đã được giảm dung lượng), trình duyệt sẽ giải nén để hiển thị thông tin.

Dưới đây kết quả cho thấy Gzip hiệu quả thế nào với một số file thông dụng (JS & CSS):

Để kiểm tra trang web của bạn đã bật Gzip hay chưa, bạn có thể vào trang web: https://www.giftofspeed.com/gzip-test/

Kết quả thử với trang web của mình:

Nén Gzip cho trang này giúp tiết kiệm 70,8% dung lượng
Nén Gzip cho trang này giúp tiết kiệm 70,8% dung lượng

Đa số các hosting đều cho phép nén Gzip, thậm chí cài đặt sẵn tính năng này bởi vì nó giúp họ tiết kiệm băng thông đi nhiều.

Các plugin WordPress tạo cache trang tĩnh phần lớn đều tích hợp luôn tính năng bật Gzip (bên cạnh việc nó thường cũng hỗ trợ luôn điều chỉnh cache phía trình duyệt).

Nếu bạn không rơi vào các trường hợp kể trên có thể bật Gzip theo cách thủ công bằng cách chỉnh sửa file .htaccess.

Với máy chủ dùng Apache, thêm đoạn sau vào file .htaccess:

# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml

# Remove browser bugs (only needed for really old browsers)
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent

P/S: Cho bạn nào muốn đào sâu hơn. Tìm hiểu thêm về Gzip ở đây. Hoặc bài dịch này của mình: https://chimcat.net/bat-nen-gzip/

Ngoài nén Gzip rất phổ biến, hiện có kỹ thuật nén mới tên Brotli được phát triển bởi Google cho khả năng nén còn tốt hơn, tuy nhiên hiện không phải hosting nào cũng có. Để kiểm tra host nào đó có hỗ trợ Brotli hay không bạn có thể dùng công cụ này của KeyCDN: https://tools.keycdn.com/brotli-test

VPS này mình đang dùng cho website ducanhplus không hỗ trợ Brotli, gói DreamPress được tối ưu cho WordPress, cũng của Dreamhost thì có hỗ trợ nén Brotli.

host có hỗ trợ nén brotli

Chim cắt có sử dụng gzip không: dĩ nhiên là có, mặc định hosting mình thuê đã bật gzip rồi nên phần này mình không phải động tay động chân gì.

~~~

8. Các kỹ thuật tăng tốc của Google và Facebook – cân nhắc thiệt hơn #

Đây là một trong những cách thức đơn giản nhất và hiệu quả nhất để tăng tốc WordPress.

Không có biện pháp nào bên trên sánh được về mức độ cải thiện tốc độ bằng cách này. Tuy nhiên cái gì cũng có cái giá của nó (không phải tiền) nên bạn cần cân nhắc cẩn thận.

Cả Facebook và Google đều cung cấp các biện pháp mới nhằm tăng tốc tải trang trên nền tảng di động. Nguyên nhân là vì tốc độ truy cập internet trên di động không có tốc độ cao cũng như độ ổn định như internet truy cập tại nhà.

Về cơ bản biện pháp chính của họ là:

  • Rút gọn code của trang web. Cả hai sẽ thu gọn trang web lại, họ hầu như chỉ giữ lại nội dung chính yếu của website và loại bỏ các thông tin khác, chẳng hạn như thông tin cột bên phải, các thiết kế màu mè.
  • Lưu trang web trên máy chủ của Google và Facebook. Dĩ nhiên vì máy chủ của họ mạnh và gần người dùng hơn hẳn đa số các dịch vụ hosting mà bạn dùng nên tốc độ sẽ được cải thiện đáng kể.

Cách này không nên dùng nếu bố cục và chức năng của trang web bị thay đổi ngoài sự mong muốn của bạn. Còn nếu trang đặt trọng tâm vào nội dung thì mình rất khuyến khích. Thí dụ như trang này (Chim cắt) mình sử dụng công cụ tăng tốc của Google.

Google gọi chương trình tăng tốc của họ là AMP (Accelerated Mobile Pages). Với WordPress bạn có thể cài plugin AMP của chính chủ Automatic (xem hướng dẫn dùng ở bài này).

Khi người dùng tìm kiếm trên Google bằng điện thoại, nếu trang của bạn dùng AMP thì khả năng cao nó sẽ hiển thị kết quả ở định dạng này (có biểu tượng sấm sét bên cạnh đường link). Người dùng truy cập nhanh hơn đáng kể. Ông Jarrod Dicker người đứng đầu bộ phận sản phẩm & công nghệ của Washington Post nói rằng AMP làm tăng tỷ lệ click lên 50% vì người đọc biết rằng trang tải nhanh hơn, cụ thể ông chia sẻ thêm trang tải nhanh hơn 88% so với trang mobile truyền thống.

Sau khi vào trang AMP từ công cụ tìm kiếm, từ các click tiếp theo họ sẽ truy cập định dạng mobile thông thường.

Cũng có người khuyên rằng nên đợi AMP trở thành một trong các yếu tố xếp hạng và cần thời gian thử thách xem nó có được Google hỗ trợ dài lâu không? (cập nhật 2019: đến thời điểm này đã khẳng định được rằng AMP rất thành công)

Với Facebook họ gọi kỹ thuật của mình là Instant Articles, khi bạn đăng ký dùng sản phẩm tải trang nhanh của Facebook, mỗi khi bạn chia sẻ lên trang fanpage, Facebook sẽ chuyển nó sang định dạng của họ và làm trang tải nhanh hơn rất nhiều.

So sánh tốc độ thì FIA (Facebook Instant Articles) nhanh hơn Google AMP. Nhưng điều ấy không hàm ý là bạn chỉ nên dùng FIA vì đây là 2 nền tảng khác nhau, và thường là mình sẽ dùng cả hai nếu muốn đẩy tốc độ trang web lên tối đa.

So sánh tốc độ tải trang của AMP, FIA & trang web mobile thông thường
So sánh tốc độ tải trang của AMP, FIA & trang web mobile thông thường. Ảnh của Chartbeat

Chim cắt đang sử dụng AMP và FIA như thế nào: Hiện mình mới áp dụng AMP cho trang web này và một số trang khác, FIA vẫn chưa dùng, vì lưu lượng truy cập của mình chủ yếu qua tìm kiếm. Bạn nên thận trọng sử dụng AMP nếu trang của bạn là trang thương mại điện tử, vì AMP lược gọn đi rất nhiều tính năng.

~~~

9. Cắt giảm các thiết kế không cần thiết trên di động – nhỏ mà có võ #

Đây là cách tăng tốc WordPress mình thấy ít người nói đến nhưng thực sự nó có tác dụng.

Nếu bạn để ý có rất nhiều phần thiết kế trên desktop gần như vô ích trên di động. Không phải là nó vô ích theo nghĩa nó không có tác dụng gì mà vấn đề là người dùng có khả năng cao không xem đến chúng.

Chẳng hạn với cột phải, ở màn hình lớn, thông tin cột sẽ hiện ra trước mắt người dùng khi họ đọc tin, nhưng ở điện thoại thì khác, họ có thể phải kéo xuống tận cùng mới thấy các thông tin cột phải (hoặc trái), và hành vi kéo xuống tận cùng đó rất ít khi được sử dụng.

Do vậy nếu thông tin đó quan trọng, ở trên di động bạn nên xem xét đến việc chuyển nó gần hơn phía cuối bài viết. Còn nếu thông tin đó không quá quan trọng, và bạn nhận thấy khả năng nó được xem trên mobile là rất thấp hãy cân nhắc cắt giảm chúng trên di động.

Bản thân AMP cũng là việc cắt giảm rất nhiều yếu tố để giữ lại khung nền chính mà thôi. Còn ở đây là sự cắt giảm chủ động từ phía chúng ta dù bạn có cài AMP hay không.

P/S: plugin Ad Inserter được mình sử dụng để tùy chỉnh giao diện trên mobile. Bản miễn phí của nó là đủ dùng trong phần lớn trường hợp vì cũng có đến 16 khối code để bạn tùy chỉnh.

Chim cắt cắt giảm thiết kế như thế nào: Hiện trang bạn đang đọc, mình không phải cắt giảm thiết kế gì, vì cột phải không có nội dung gì cả. Tuy nhiên một số trang của khách hàng mình đã tiến hành cắt giảm vì cột phải trên desktop có khá nhiều thông tin mà hầu như sẽ không được xem trên di động.

~~~

10. Lazy Load ảnh – khi lười có lợi hơn chăm #

Tải chậm/tải lười ảnh, đây là mẹo này rất hay nếu trang của bạn có nhiều ảnh, video hoặc/và có lưu lượng truy cập lớn. Nó sẽ chỉ tải ảnh nếu ảnh hoặc video của bạn hiện ra trong tầm nhìn của người đọc.

Thí dụ nếu bài viết có 5 ảnh, mỗi ảnh 100KB, thì mới đầu nó chỉ tải văn bản và các thứ khác thôi, chưa tải ảnh vội, đến lúc người xem cuộn tới phần có ảnh thì nó mới tải, trong ví dụ trên, dung lượng trang web cho lượt tải đầu tiên có thể giảm được đến 500KB, website vì thế sẽ hiển thị cho người dùng nhanh hơn.

Trang càng có nhiều ảnh nằm phía dưới màn hình đầu tiên, cách thức này càng hiệu quả. Điều này dựa trên thực tế rằng không có nhiều người dùng đọc toàn bộ trang web, dẫn đến chuyện nếu bạn tải toàn bộ ảnh thì đây thường là sự phí phạm rất lớn.

Các bạn sẽ thấy khá nhiều trang tin tức có lưu lượng lớn dùng cách này, vì họ có nhiều ảnh và hàng triệu người dùng, ví dụ như trang BBC hay Wikihow. Lazy load vừa giúp tăng tốc, vừa làm giảm băng thông vô cùng hiệu quả (rất có ý nghĩa nếu bạn sử dụng CDN, nó sẽ tiết kiệm đáng kể tiền băng thông), các plugin phần nhiều lại miễn phí (vì kỹ thuật lazy load về bản chất không khó để thực hiện) cho nên mình khuyến khích các bạn sử dụng. Thực tế đây là cách đơn giản, rẻ tiền và hiệu quả nhất để cải thiện tốc độ website.

Có một số thông tin nói rằng cách làm này có thể ảnh hưởng tiêu cực đến SEO, cụ thể hơn, máy tìm kiếm có thể không index (lập chỉ mục) cho các ảnh được lazy load. Tuy nhiên đây đã là câu chuyện của quá khứ, Yoast nói rằng Google lập chỉ mục các ảnh lazy load hoàn toàn bình thường, và bạn không bị ảnh hưởng gì đến SEO khi triển khai lazy load, ngược lại nó còn tốt hơn cho SEO, vì tốc độ trang được cải thiện, đồng nghĩa với điểm số SEO tốt hơn.

Có vẻ mọi chuyện quá tốt nhỉ? Lazy load không có nhược điểm gì sao?

Thực tế là có, hai vấn đề có thể xảy đến là:

  1. Quá trình tải chậm bị “Lazy quá mức” – nói cách khác nhiều khi người dùng cuộn chuột qua rồi mà ảnh vẫn chưa hiện/hoặc hiện ra rất chậm – đây chắc chắn là phiền phức nghiêm trọng, và bạn nên kiểm tra thật cẩn thận trước khi dùng, đặc biệt là những trang có phần lớn người duyệt web trên thiết bị di động, vì mạng di động không có tốc độ cao và ổn định. Vấn đề bị lazy quá mức còn có thể có nguyên nhân từ công cụ sử dụng, nên bạn hãy thử nhiều plugin khác nhau để tìm kiếm được cái thích hợp nhất với website của mình. Nếu bạn thấy lazy load trên di động thực sự là vấn đề, hãy tắt chức năng này trên di động, trong khi vẫn bật nó khi người dùng sử dụng máy tính. Plugin WP-Rocket có các đoạn mã tắt/bật này cho bạn.
  2. Trải nghiệm người dùng có thể bị ảnh hưởng phần nào, vì ảnh đột ngột xuất hiện. Hiện đã có một số mẹo để hạn chế sự khó chịu đó, chẳng hạn như trang Medium đưa thuộc tính blur vào quá trình tải ảnh, tạo cảm giác dễ chịu, do ảnh xuất hiện từ từ, không bị giật cục. Bạn có thể tham khảo thêm bài viết khá hay về cách trang Medium cải tiến kỹ thuật lazy load: https://viblo.asia/p/medium-da-toi-uu-toc-do-load-hinh-anh-nhu-the-nao-1VgZv9XRKAw

Có vài plugin bạn có thể dùng cho nhiệm vụ lazy load và bản thân một số plugin cache cũng tích hợp sẵn luôn. Hiện tại thì mình đã áp dụng LazyLoad cho trang Chim cắt (từ đầu năm 2019), sử dụng plugin a3 Lazy Load, thấy rất tốt. Ưu điểm của plugin a3 là tính tùy biến rất cao. WP-Rocket cũng có plugin tương tự được đánh giá cao (hiện mình đã chuyển sang WP-Rocket, vì nó có sẵn trong plugin cache)

Điều quan trọng khi dùng plugin cho mục đích tải chậm ảnh là hãy test thật kỹ trên website của bạn.

Mắt thấy tai nghe: Thử xem tính năng Lazy Load hoạt động thế nào trong bài viết có 50 ảnh sau: https://chimcat.net/check-tinh-nang-lazy-load/

Để đảm bảo ảnh load mịn, mình khuyên các bạn nên kết hợp tính năng Lazy load với dịch vụ CDN (cặp đôi hoàn hảo). Nhờ CDN ảnh sẽ load rất nhanh khi người dùng cuộn chuột đến do máy chủ lưu trữ ảnh ở gần người dùng, tránh tình trạng ảnh load trễ (độ trễ sẽ tăng lên khi host ở xa người dùng).

P/S: theo Patrick Sexton chủ trang web về tối ưu hóa Varvy thì Lazy load mặc dù rất tốt vẫn chưa phải là kỹ thuật tối ưu, lý do thì cũng như phần trên có nói, nó tạo cảm giác giật cục, và có thể thành vấn đề trên di động. Vậy có cách nào khác hay hơn không?

Câu trả lời là CÓ. Đó là việc áp dụng trì hoãn tải ảnh. Nó giống và khác nhau thế nào?

Điểm giống là cả hai đều khiến tốc độ website tăng lên đáng kể nhờ việc không tải ngay lập tức ảnh nằm ngoài khung nhìn của người dùng. Nhưng cái hay hơn của trì hoãn tải ảnh là nó chỉ trì hoãn tải lúc ban đầu, sau khi nội dung thuộc màn hình đầu tiên tải xong. Sau giai đoạn này nó âm thầm tải ảnh, nghĩa là nó không để trống khoảng thời gian trong khi người dùng đọc thông tin phần đầu, ngược lại lazy load là “nước đến chân mới nhảy” – nói cách khác chỉ khi người dùng cuộn chuột đến phần có ảnh thì nó mới tải. Điều đó gây ra kết quả là lazy load có khả năng gây giật cục rất cao. Ở phía đối lập trì hoãn tải ảnh tạo ra độ mượt rất tốt, gần như không có gì thay đổi so với chế độ lướt web thông thường, vì nó thường đủ thời gian để tải các ảnh trì hoãn trước đó thuộc phần dưới của màn hình đầu tiên.

Nhưng cũng có vấn đề mà tôi cảm thấy với trì hoãn tải ảnh, là việc nó bổ sung thêm một ảnh giả bên cạnh ảnh thật, ảnh giả này rất nhẹ và được dùng để đánh lừa trình duyệt, sau khi trang tải xong (vốn rất nhẹ vì chỉ phải tải ảnh giả) thì một đoạn mã JS sẽ tráo ảnh giả này bằng ảnh thật. Liệu điều này có làm ảnh hưởng đến SEO hay không? Tôi e là có, nhưng vẫn chưa tìm hiểu sâu để đi đến kết luận cuối cùng. Hiện tại thì tôi chỉ thấy các plugin WordPress áp dụng kỹ thuật lazy load.

Chim cắt đang sử dụng Lazy load như thế nào: Hiện mình chỉ sử dụng lazy load trên các trang có nhiều ảnh, còn các trang có ít ảnh thì không dùng. Nhiều ở đây với mình là từ 2 cái trở lên. Mình cũng không dùng lazy load trên các trang thương mại điện tử, vốn là những trang mà người dùng cần đáp ứng nhu cầu xem ảnh càng nhanh càng tốt. Hiện có 2 plugin mà mình thấy thích, một cái của WP-Rocket, một cái của a3 lazy load, cả hai đều có khả năng tùy biến phong phú. Lazy load trên trang bạn đang xem là của WP-Rocket

~~~

11. Tối ưu hóa phân phối CSS – cần đến đâu tải đến đó #

Các trang WordPress vốn dĩ có rất nhiều CSS, không chỉ do theme bạn đang dùng, mà còn có rất nhiều CSS của plugin. Vấn đề ở đây là nếu bạn không tối ưu hóa phân phối CSS, thì các file này cần phải tải hết toàn bộ và phân tích xong thì trang web mới hiển thị cho người dùng được, trong khi có một thực tế rõ ràng là nhiều file trong số đó không bắt buộc phải tải ngay và luôn. Hiện tượng này được đặt tên là CSS chặn hiển thị.

Và để tăng tốc trong trường hợp này, người ta sẽ ưu tiên các CSS quan trọng nhất dành cho việc hiển thị nội dung, đặc biệt là ở màn hình đầu tiên, trong khi các CSS khác được trì hoãn để tải sau. Một số plugin cache có khả năng tối ưu phân phối CSS, chẳng hạn như WP-Rocket. Khi bật tính năng này, plugin sẽ tạo ra các tuyến hiển thị quan trọng – tức là những CSS đóng vai trò chủ chốt cho phần giao diện. Khi tối ưu hóa phân phối CSS thông qua plugin bạn cần kiểm tra kỹ lại, để đảm bảo nó không ảnh hưởng đến giao diện, bởi đôi khi plugin không nhận diện được những CSS chính, làm bố cục bị ảnh hưởng.

Chim cắt đang tối ưu CSS như thế nào: Hiện tại mình mới chỉ tối ưu hóa CSS qua việc nén nó, còn gộp CSS thì vì có HTTP/2 nên cũng không quá quan trọng (tuy nhiên có lời khuyên rằng bạn nên thử để xem cách nào hiệu quả hơn, tức gộp tốt hơn, hay không gộp tốt hơn, mình sẽ viết bài về cách kiểm tra sau). Còn tối ưu hóa cho CSS cho nội dung ở trong màn hình đầu tiên thì hiện WP-Rocket là plugin mình đang dùng mới cho phép làm điều đó trên desktop, còn di động vẫn chưa có nên thực tế mình không làm. Autoptimizer mới bổ sung tính năng này bằng plugin Autoptimize criticalcss.com power-up, có cả khả năng tối ưu CSS trên máy bàn lẫn di động cho màn hình đầu tiên, tuy nhiên cái này là có phí, với giá 7 bảng/tháng (một tháng dùng CDN trên trang web 50 ngàn view cũng chỉ tốn của mình khoảng 5$) – không rẻ tí nào, sắp tới mình sẽ dùng thử, vì họ cho dùng thử một tháng.

~~~

12. Trì hoãn tải JavaScript – vẫn là một dạng lười #

Cũng giống như trường hợp CSS, các website nói chung và WordPress nói riêng có rất nhiều đoạn mã javascript không cần phải tải ngay lập tức mới hiển thị được trang. Giả dụ trang của bạn có 20 file javascript, thì trong số đó có khi chỉ cần 2 file là đủ để hiển thị trang trong màn hình đầu tiên, còn những cái khác thì không cần thiết (còn được gọi là javascript chặn hiển thị). Khi ấy việc ưu tiên tải cho 2 file javascript quan trọng, còn trì hoãn 18 file còn lại sẽ giúp trang của bạn có tốc độ tải rất cao. Hiện có rất nhiều plugin giúp bạn trì hoãn tải javascript, nó cũng thường được tích hợp sẵn trong các plugin chuyên tạo cache. Khi kích hoạt tính năng này bạn cũng nên kiểm tra xem nó có gây ảnh hưởng đến tính năng không.

Lưu ý rằng với cả lazy load ảnh, tối ưu phân phối CSS, và trì hoãn tải javascript thì tổng thời giản tải trang của bạn không hề giảm xuống, cái nhanh hơn ở đây là khoảng thời gian để người dùng thấy nội dung đầu tiên kể khi họ click, truy cập vào website. Nếu không áp dụng các biện pháp trì hoãn tải, trang của bạn buộc phải tải toàn bộ tài nguyên mới được hiển thị, trong khi đó với trì hoãn tải bạn có thể chỉ cần tải 10% – 20% dung lượng của toàn trang để cho người dùng xem trước, sau đó trong khi họ đang xem nội dung, trình duyệt âm thầm tải phần còn lại (với CSS và JS).

Để dễ hiểu hơn, nó cũng giống như bạn xem video trực tuyến trên Youtube. Youtube không tải xong toàn bộ video rồi mới cho bạn xem, ngược lại họ cho bạn xem ngay lập tức khi chỉ cần tải được khoảng 10 giây video. Trong khi bạn xem, họ tiếp tục tải phần còn lại.

Chim cắt đang làm điều này thế nào: Có nhiều plugin cache hoặc tối ưu hóa khác (Autoptimzer) tích hợp sẵn tính năng này cho bạn. Chỉ việc bật lên là xong. Ngoài ra thì một số theme tối ưu cũng chủ động làm điều này nên bạn không cần phải làm gì (tuy nhiên bạn cần kiểm tra lại xem có đúng thế không). Mình đang dùng WP-Rocket và sử dụng tính năng này của nó trên trang bạn đang đọc. Các trang khác mình dùng Autoptimizer. Varvy bàn về kỹ thuật trì hoãn tải JavaScript hơi khác và rất thú vị ở đây: https://chimcat.net/tri-hoan-tai-javascript/

~~~

13. Rút gọn, gộp các file JavaScript, CSS, và nén HTML – cạo râu mọc lưa thưa #

  • Gộp file: nghĩa là kết hợp nhiều file lại với nhau thành một, chẳng hạn nhiều file CSS thành một file CSS. Nhiều file javascript thành một file javascript
  • Rút gọn: nghĩa là loại bỏ các ký tự thừa, chú thích trong CSS và JS để tối thiểu hóa dung lượng, cách này lúc nào bạn cũng nên làm

Điều đó đồng thời giảm số lượng yêu cầu về máy chủ, lẫn dung lượng tải về máy khách, qua đấy giúp tăng tốc. Tuy nhiên có khả năng gây ảnh hưởng bố cục, chức năng nếu bạn gộp nén quá mức, vì vậy hãy kiểm tra lại website sau khi sử dụng tính năng trên với từng mức độ chuyên sâu khác nhau.

Một trong các plugin mạnh nhất để thực hiện nhiệm vụ gộp, nén là Autoptimize – plugin miễn phí, ngoài ra nó còn có khả năng rút gọn HTML.

P/S: Gộp file có thể không cần thiết nếu host của bạn hỗ trợ http/2, vì công nghệ mới này cho phép tải song song nhiều file cùng lúc, ngoài ra gộp file có thể không tốt cho việc tối ưu hóa phân phối CSS hoặc trì hoãn tải javascript một cách hiệu quả nhất có thể. Bạn dùng công cụ của KeyCDN để kiểm tra xem http/2 có trên website hay không: https://tools.keycdn.com/http2-test.

Chim cắt hiện sử dụng tính năng gộp, nén JS, CSS như thế nào: Một số plugin tạo cache tĩnh có sẵn tính năng này thì mình sử dụng luôn của họ, ví dụ như WP-Rocket, và với plugin này mình chỉ nén chứ không gộp theo lời khuyên của chính chủ plugin vì host có hỗ trợ http/2. Với các trang khác mà không có plugin tích hợp sẵn thì mình dùng Autoptimizer để bổ sung, với việc tick chọn hầu hết các tính năng của nó. Việc bạn chọn theme ưu tiên cho tốc độ sẽ giúp bạn không phải lo lắng nhiều chuyện gộp file, hay js và css chặn hiển thị làm tăng thời gian render trang, vì các theme theo hướng này sẽ chủ động làm điều đó (tuy nhiên bạn nên kiểm tra lại, vì các plugin cài thêm có thể bổ sung vô số JS và CSS không được trì hoãn). Nén thì lúc nào cũng nên làm.

~~~

14. Loại bỏ việc sử dụng Google Fonts – đôi khi trang sức là gánh nặng #

Kho thư viện font dùng chung của Google giúp các nhà thiết kế giao diện có nhiều chọn lựa hơn trong việc tạo ra các font đẹp mắt cho web. Nhưng tất nhiên nó làm bạn tốn thời gian hơn do phải yêu cầu tải về font từ máy chủ của Google.

Về lý thuyết là vậy nhưng thông thường thì việc này chẳng tốn kém thời gian gì lắm đâu, vì máy chủ của Google đã rất mạnh rồi và thứ nữa, các font này vốn được rất nhiều website sử dụng cho nên trong phần lớn trường hợp đã được cache sẵn tại thiết bị của người dùng, nói cách khác là hầu như không làm bạn tốn thêm thời gian.

Tuy nhiên nó vẫn có thể trở thành vấn đề nếu:

  • Font trên web bạn dùng là font hiếm được dùng, do vậy khả năng được cache sẵn trên trình duyệt là rất thấp, hay nói cách khác, người dùng sẽ phải tốn thời gian tải font về
  • Những lúc đứt cáp thì bất kể dung lượng hay loại font, các liên kết hướng đến các máy chủ nằm ngoài Việt Nam đều có thể là gánh nặng về độ trễ

Lúc này có 2 biện pháp:

  • Tự host font lên hosting của bạn, và sau đó sử dụng CDN để truyền tải nhanh hơn. Khi ấy ngay cả khi đứt cáp hoặc/và font hiếm, font của bạn sẽ vẫn được tải từ máy chủ gần nhất với người dùng, và nếu PoP đó ở Việt Nam, nó sẽ hạn chế được tối đa độ trễ. Plugin có tên Self-Hosted Google Fonts sẽ giúp bạn làm việc này, nó tải toàn bộ font của Google mà web bạn dùng rồi đẩy nó lên host của bạn, web sẽ vẫn giữ được giao diện chữ như cũ. Nhược điểm của phương pháp này là nó sẽ làm bạn tốn thêm tiền lưu lượng (do dùng CDN), tuy rằng không nhiều, vì đa số font đều nhẹ thôi. Nhược điểm nữa là với biện pháp này nếu tình trạng cáp internet ổn định (hầu hết thời gian trong năm đều vậy) và web bạn dùng font Google phổ biến (nhiều web dùng) thì biện pháp tự host font về mặt tổng thể còn làm web chậm đi đôi chút, do không tận dụng được ưu thế cache sẵn trên trình duyệt.
  • Hoàn toàn loại bỏ font Google, nếu kiểu font chữ không thành vấn đề với bạn, bạn nên dùng biện pháp này, nó lúc nào cũng làm tốc độ website cao hơn, bất kể có đứt cáp hay không. Khi sử dụng cách loại bỏ font, web sẽ sử dụng font có sẵn trên thiết bị người dùng. Bạn có thể sử dụng plugin có tên Disable Google Fonts cho mục đích trên. Nhược điểm của nó là ở một số giao diện nhất định, plugin này không loại bỏ được font Google. Bạn nên kiểm tra kỹ để chắc chắn plugin này có tác dụng với theme của bạn.

Cách kiểm tra xem web có còn dùng Google Font hay không sau khi đã bật plugin:

  1. Sau khi cài plugin để can thiệp font, nếu bạn đạng dùng plugin tạo cache, hãy xóa cache của web (WP Super Cache, W3 Total Cache, WP Fastest Cache,…), bao gồm cả plugin như Autoptimize
  2. Nếu bạn đang dùng CDN thì cũng nên làm mới (Purge) cache
  3. Truy cập vào website, nhấn phím tắt Ctrl + U để xem mã nguồn của trang
  4. Nhấn Ctrl + F để thực hiên thao tác tìm kiếm
  5. Copy –  Paste nội dung fonts.googleapis.com vào ô tìm kiếm, nếu bạn không thấy tìm ra bất kỳ kết quả nào nghĩa là plugin đã kích hoạt thành công

Ví dụ về website sử dụng Google font:

website sử dụng Google Fonts

Ví dụ về website không sử dụng Google Fonts sau khi kích hoạt plugin:

không dùng Google Fonts

Tóm tắt các trường hợp dùng và không nên dùng từng plugin:

Tự host font lên hosting của bạn
Hosting tại nước ngoài & không dùng CDNKhông nên dùng
Cáp internet bình thường & font Google phổ thôngKhông nên dùng
Cáp internet bình thường & font Google dạng hiếm & không dùng CDNKhông nên dùng
Cáp internet bình thường & font Google dạng hiếm & có dùng CDNCó thể Nên dùng
Hosting tại nước ngoài & có dùng CDN & đứt cápNên dùng
Hosting tại Việt NamCó thể Nên dùng

Loại bỏ hoàn toàn font Google
Font quan trọng với giao diệnKhông nên dùng
Font không quan trọng với gian diệnNên dùng

Nếu bạn vẫn cảm thấy rối thì đây là kết luận chung, đúng trong phần lớn trường hợp:

  • Nếu loại bỏ hoàn toàn được font Google thì nên loại bỏ
  • Tự host font Google chỉ dùng khi cáp internet bị đứt và bạn có CDN

Đọc thêm về cách sử dụng font web sao cho tối ưu về mặt tốc độ.

Chim cắt đang sử dụng font như thế nào: Mình ưu tiên sử dụng các font có mặc định trên máy người dùng (font web an toàn) để web không cần tải font từ bất cứ đâu (host của bạn hoặc của bên thứ ba), như trang bạn đang xem có font-family như sau: Arial, Helvetica, sans-serif; đều là những font phổ thông có sẵn trên máy.

sử dụng font phổ thông

Tuy nhiên với những trang yêu cầu thẩm mỹ bạn có thể chọn các font nhẹ và lưu tại host của bạn. Các font phổ biến nhiều người dùng tốc độ có thể được cải thiện nếu bạn sử dụng Google font

~~~

15. Sử dụng các thư viện javascript dùng chung của Google – không nên xây công viên trong nhà #

Các theme WordPress hay dùng nhiều thư viện có dung lượng khá khủng, điển hình như jQuery, có dung lượng tới 90 – 100KB, và thường chúng được tự host (tức là file được tải từ hosting của bạn, do vậy bạn cần thêm kết nối và tốn băng thông).

Điểm thú vị của những thư viện này là có rất nhiều website dùng (theo thống kê của W3techs, có hơn 73% các website lớn dùng jQuery, trong đó phiên bản 1 chiếm hơn 85%). Cho nên khả năng nó đã được cache sẵn trước đó trong trình duyệt của người dùng là rất cao (lưu trong bộ nhớ đệm của trình duyệt), nói cách khác, nếu bạn thay thế việc tự host các thư viện phổ biến này bằng các thư viện lưu trên Google, tốc độ có khả năng cải thiện tốt hơn nữa (đó là chưa kể máy chủ của Google cũng rất mạnh và phân phối khắp toàn cầu, như một dạng thư viện CDN dùng chung). Google hiện lưu rất nhiều thư viện kiểu này, bạn có thể xem ở đây: https://developers.google.com/speed/libraries/

Còn để thay thế việc tự host bằng thư viện trên Google, bạn cần bổ sung một đoạn mã vào file function.php của theme, chi tiết đoạn mã mình để ngay bên dưới:

/**
* Making jQuery Google API
*
*
*/
function modify_jquery() {
if (!is_admin()) {
// comment out the next two lines to load the local copy of jQuery
wp_deregister_script('jquery');
wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js', false, '1.12.4');
wp_enqueue_script('jquery');
}
}
add_action('init', 'modify_jquery');

Bạn chú ý đến phiên bản của jQuery đang dùng trên WordPress, ở trong đoạn mã trên là jQuery phiên bản 1.12.4

Sau khi chỉnh sửa bạn kiểm tra lại bằng cách xem mã nguồn của trang để biết jQuery lưu tại Google có được tích hợp vào website không. Ngoài ra để cho chắc chắn cũng nên kiểm tra xem các tính năng trên website có bình thường không.

Chim cắt đang sử dụng jQuery như thế nào: Mình đã áp dụng cách trên cho hầu hết các trang, bao gồm cả trang bạn đang đọc đây.

thư viên jQuery của Google

Lưu ý là trong trường hợp đứt cáp quang internet ngoài biển, bạn không nên sử dụng jQuery Google mà nên sử dụng CDN có PoP ở Việt Nam và tự host lấy jQuery sẽ cho tốc độ tốt hơn. Tiến tới mình sẽ tìm hiểu cách loại bỏ hoàn toàn jQuery trên những trang thực sự không cần thiết (dù điều này thực sự khó vì rất nhiều plugin đang sử dụng nó, và có lẽ chỉ hợp với những trang rất đơn giản).

~~~

16. Chọn phần mềm máy chủ web tối ưu – bên cạnh xe phổ thông, luôn có xe phân khối lớn #

Hiện có 3 phần mềm máy chủ web chủ yếu là Apache (free), Nginx (free) và Litespeed (free & có phí). Trong đó Apache hiện chiếm lĩnh thị phần lớn nhất một phần nhờ tài liệu hướng dẫn phong phú và có nhiều module hỗ trợ đa dạng tính năng. Tuy nhiên nếu xét về tốc độ xử lý PHP thì Nginx và Litespeed có tốc độ tốt hơn hẳn.

Trang Varvy chuyên về tối ưu hóa tốc độ nói rằng, chỉ cần bạn chuyển từ Apache sang Nginx là rất nhiều vấn đề về tốc độ được giải quyết rồi. Bạn có thể đọc bài viết này để biết thêm chi tiết: https://chimcat.net/giam-thoi-gian-phan-hoi-cua-may-chu/.

Có một vấn đề về lựa chọn phần mềm máy chủ nhanh như Nginx là đôi khi công ty host mà bạn thích, quen thuộc lại chỉ có phần mềm máy chủ Apache hoặc chỉ ưu tiên cho nó. Ví dụ như Dreamhost là công ty host mình rất thích (chịu tải tốt và uptime cao) lại ưu tiên Apache hơn, dù họ có cho chọn Nginx (kèm thông báo rằng có khả năng bạn sẽ phải tự tùy chỉnh thêm, điều vốn chẳng dễ dàng gì với người dùng phổ thông hay chỉ biết sơ qua về máy chủ như mình!).

Nói tóm lại ở phần này là dù Apache là lựa chọn an toàn cho hầu hết trang web, nhưng nếu trang của bạn có lưu lượng lớn bạn nên chọn các công ty có máy chủ là Nginx hoặc các dạng tương tự nhanh hơn như Litespeed. Tuyệt nhất thì bạn có thể tự học Nginx hoặc thuê ai đó tùy chỉnh cho bạn.

Chim cắt áp dụng điều này như thế nào: Đáng tiếc host mình đang dùng lại ưu tiên Apache hơn nên thực tế mình vẫn chưa dùng Nginx hay Litespeed. Trong thời gian tới có thể mình sẽ sử dụng Vultr để trải nghiệm Nginx, còn Knownhost để trải nghiệm Litespeed.

~~~

17. Trì hoãn tải / Lazy load video – lười vẫn hoàn lười #

Nếu bạn nhúng video từ Youtube (hoặc Vimeo, vân vân) vào trang của bạn, website sẽ tải hàng tá tài nguyên về trước khi nội dung thuộc màn hình đầu tiên được tải, và điều này làm chậm tốc độ tải trang.

Trì hoãn tải video thực hiện nhiệm vụ ngăn không cho các tài nguyên nặng nề tải về cho đến khi trang được tải xong, cách thức thực hiện rất đơn giản, bạn chỉ cần sửa một chút phần thông tin src của iframe, rồi thêm một đoạn mã nhỏ javascript trước thẻ đóng body.

Nội dung chi tiết về cách thức thực hiện bạn xem ở đây: https://chimcat.net/tri-hoan-tai-video/

Chim cắt đang trì hoãn tải video như thế nào: Mình đang sử dụng cả hai cách, lazy load trong plugin cache có sẵn, và trì hoãn tải video theo theo cách thủ công trên một số trang trọng điểm. Trì hoãn tải video hay hơn Lazy load, tuy nhiên hiện không có plugin hỗ trợ cho cách làm này trong khi làm thủ công sẽ tốn rất nhiều công sức (đọc thêm bài viết ngay link trên).

~~~

18. Sử dụng DNS trung gian có tốc độ cao hơn – lúc nào cũng có con đường tắt bên cạnh đường chính #

DNS là dịch vụ phân giải tên miền, kết nối tên miền với địa chỉ IP của máy chủ lưu trữ web. Thường thì chúng ta sử dụng DNS của công ty bán tên miền hoặc DNS của công ty hosting, tuy nhiên DNS của cả hai nói chung chỉ có tốc độ ở mức trung bình.

Hiện có nhiều dịch vụ miễn phí có tốc độ rất cao là giải pháp thay thế mà chúng ta nên tận dụng, vì nó không tốn kém, cũng như chẳng tốn công sức gì lắm để thiết lập.

Ở thời điểm này mình khuyến nghị các bạn sử dụng DNS trung gian của Cloudflare, khi bổ sung tên miền vào bạn nên tắt đám mây màu vàng đi để chỉ dùng DNS, chứ không dùng CDN miễn phí của họ. Cloudflare hiện là DNS có tốc độ cao nhất thế giới, không giới hạn số lượng bản ghi, và có độ ổn định rất cao.

Chim cắt từng sử dụng DNS như thế nào: Ban đầu mình thường sử dụng DNS của công ty bán tên miền, chẳng hạn như Godaddy, tuy nhiên thi thoảng cũng gặp rắc rối vì DNS của Godaddy hay bị tấn công (có năm mình bị 2 lần, dù thời gian downtime chỉ vài giờ). Sau đó mình chuyển qua DNS của công ty bán hosting là Dreamhost, điểm lợi là nếu máy chủ web có cập nhật IP mới thì DNS cũng sẽ được phản ánh luôn chứ không làm gián đoạn truy cập nữa. Tuy nhiên cuối cùng thì mình chuyển sang dùng Cloudflare với ưu điểm nêu ở trên.

Ngoài chuyện sử dụng dịch vụ phân giải tên miền có tốc độ tốt hơn, bạn cũng nên hạn chế số lượng tra cứu DNS cần phải dùng, bạn có thể tham khảo bài viết này để biết cách thực hiện: https://chimcat.net/toi-thieu-thoi-gian-tra-cuu-dns/

Lo ngại: khoảng giữa năm 2019, CloudFlare bắt đầu bị tấn công, tuy nhiên khả năng phục hồi khá nhanh, và dù sao thì nhìn tổng thể nó vẫn tốt hơn DNS ở nơi khác cho nên mình vẫn tiếp tục dùng.

~~~

19. Không dùng ảnh lớn đầu bài viết (tính năng Featured Image) – nếu bạn không quá coi trọng hình thức #

Ảnh lớn đầu bài viết đem lại tính thẩm mỹ cho trang web, bản thân một số trang của mình như Đức Anh Plus, Chim cắt cũng dùng ảnh lớn đầu bài. Tuy nhiên nếu được, việc không dùng ảnh lớn đầu bài sẽ giúp cải thiện tốc độ trang web về mặt nhận thức một cách đáng kể.

Lý do nằm ở chỗ, ảnh lớn đầu bài thường nằm trong màn hình đầu tiên, tức là nó sẽ yêu cầu tải trước, dù bạn có dùng lazy load hay trì hoãn tải ảnh, trong khi dung lượng ảnh này thường không nhỏ.

Nếu bạn vẫn muốn cân bằng tính thẩm mỹ và tốc độ tải trang thì thay vì để ảnh minh hoạ nằm ở màn hình đầu tiên, bạn nên ẩn nó xuống màn hình thứ hai, nội dung màn hình đầu tiên do vậy sẽ tải nhanh hơn vì không phải load lượng dữ liệu lớn nữa.

Ngoài việc tăng tốc độ duyệt bài post, page, việc loại bỏ featured image còn giúp tăng tốc độ duyệt thư mục, tag, hay bất cứ dạng danh sách bài viết nào.

Chim cắt đang làm điều này thế nào: Trang bạn đang xem vẫn dùng featured image, tuy nhiên với một số trang của khách hàng không quan trọng tính năng này, mình đã bỏ nó đi và cho tốc độ tải trang nhanh hơn đáng kể. Thư mục của bạn có thể trông hơi đơn điệu nếu bỏ ảnh lớn đầu trang, nhưng điều này không nên quá lo lắng, vì phần lớn lưu lượng truy cập đều vào thẳng trang post hoặc page, nghĩa là bạn vẫn có ảnh minh họa trong bài viết là được, không nhất thiết ảnh đó phải là ảnh lớn đầu bài.

~~~

20. Một số kỹ thuật khác – không có giới hạn cuối cùng #

Đây có thể coi là các mẹo thì đúng hơn, vì nó khá là nhỏ và hơi tinh quái:

  • Tối ưu hóa tốc độ khu vực bình luận trên WordPress: Ở những trang web sôi động, bình luận có thể trở thành vấn đề làm chậm tốc độ tải trang, khi ấy bạn cần tối ưu cho nó. Cách làm rất đơn giản, không phức tạp và đều có plugin hỗ trợ sẵn miễn phí cho bạn. Về cơ bản triết lý chung vẫn là làm giảm tải càng nhiều yêu cầu càng tốt, và phân chia, cũng như lazy load ảnh đại diện để nó không trở thành gánh nặng trong lượt tải đầu tiên. Bạn có thể xem chi tiết cách tăng tốc khu vực comments ở đây.
  • Sử dụng ảnh mã hóa base64: Tăng tốc web site qua việc mã hóa ảnh bằng base64 rồi đưa mã trực tiếp vào HTML, giúp cho trang không cần tải ảnh từ liên kết ngoài nữa. Chỉ khuyến khích dùng cho ảnh nhỏ dưới 5K và không quan trọng, ví dụ như ảnh icon nút mạng xã hội.
  • Sử dụng phiên bản PHP tăng tốc: Một số hosting cho phép bạn chọn phiên bản PHP cho WordPress, thường thì phiên bản mới hơn sẽ giúp web của bạn chạy mượt hơn, nên bạn có thể chọn tính năng tự động nâng cấp lên phiên bản PHP mới nhất (nếu có). Ngoài ra, cùng một phiên bản PHP, họ có thể cung cấp cho bạn các biến thể có khả năng tăng tốc hơn nữa. Ví dụ dưới đây, mình chọn phiên bản mới nhất 7.2 và kết hợp FastCGI. Nhược điểm là nó yêu cầu bạn có RAM khỏe hơn.7.2 Fast CGI
  • Làm sạch Database, loại bỏ các dữ liệu dư thừa để quá lâu không còn cần thiết. Chẳng hạn những phiên bản cũ của bài viết (chức năng revision của WordPresss), cái này có ích khi mà bạn sửa chữa không đúng thì bạn có thể phục hồi nhanh chóng lại bài, tuy nhiên theo thời gian nó sẽ đầy lên rất nhiều, và tất nhiên có nhiều phiên bản cũ bạn không bao giờ dùng đến. Mình chỉ có 375 bài viết nhưng có đến hơn 5000 phiên bản lưu trữ! Mấy hôm trước vừa xoá hết rồi. Lưu ý luôn backup tài liệu trước khi dọn Database, phòng khi nhỡ tay hoặc có sai sót gì còn có cái phục hồi. Plugin được đánh giá tốt về khả năng làm điều này là WP-Optimize.
  • Hạn chế tối đa các liên kết ngoài không cần thiết. Chẳng hạn nếu cảm thấy không cần nút chia sẻ Twiter, Printest thì không nên gắn vào web. Những liên kết ngoài sẽ làm tăng thời gian tải trang.
  • Hạn chế các liên kết chuyển hướng. Mình từng phạm lỗi này khi chuyển từ không-www sang có-www, làm một số ảnh mình chưa chuyển bị vấn đề chuyển hướng, ảnh thì vẫn hiện ra thôi nhưng nó mất công chuyển hướng ngấm ngầm. Tự dưng thì không phát hiện được lỗi này đâu vì về mặt hiển thị không có gì thay đổi. Bạn nên dùng công cụ tối ưu tốc độ tải trang để kiểm tra, ví dụ như của tools.pingdom. Bạn vào những công cụ thế này có thể phát hiện được nhiều thứ hay ho hơn nữa. Từ khoá tra: Website speed test. Về ảnh hưởng của chuyển hướng đến tốc độ website, bạn tham khảo bài viết này: https://chimcat.net/toi-thieu-hoa-chuyen-huong/

~~~

#Kết luận#

Không có công cụ nào “tốt với tất cả mọi người”, luôn có cái gì đó thì hợp với bạn nhưng lại không hợp với người khác và ngược lại, đây là chuyện thường tình vì mỗi người có một nhu cầu riêng. Hãy thử nghiệm để tìm ra cái phù hợp nhất với bạn nhé.

Giờ chúng ta xem lại tiêu đề một chút nhé. Nếu có kinh phí ổn, bạn dễ dàng làm được các điều sau:

  • Chọn được host tốt, có RAM tốt, dung lượng tốt, cài cắm sẵn nhiều công cụ nền tảng giúp tăng tốc
  • Mua được plugin tăng tốc mà không phải ngại giá cả, có thể lên đến gần 100 đô với W3 Total Cache hay gần 50 đô như WP-Rocket
  • Trong trường hợp bắt buộc phải dùng CDN cũng không thành vấn đề

Đúng, mạnh vì gạo bạo vì tiền sẽ thuận lợi hơn, tuy nhiên ngay cả khi không có đồng nào trong tay bạn cũng dễ dàng tăng tốc được bằng các biện pháp như:

  • Xóa bỏ plugin dư thừa
  • Chọn theme đơn giản
  • Tối ưu hoá ảnh
  • Cache phía máy khách chỉ bằng một đoạn code
  • Plugin cache tĩnh miễn phí
  • Và một vài mẹo lặt vặt khác

Cuối cùng thì chuyện tăng tốc độ website cũng như chuyện làm giàu vậy. Bạn không phải trở thành người giàu nhất mới thoải mái, tương tự bạn không cần phải có website nhanh nhất thế giới, hay Việt Nam, hay ngay cả trong lĩnh vực của riêng bạn.

Tại sao lại như vậy? Có ai không muốn website nhanh nhất?

Bởi vì mọi thứ đều cần chi phí. Bạn càng muốn website nhanh và ổn định sẽ càng tốn tiền, và càng về sau chi phí bỏ ra để cắt giảm 0,1 giây sẽ càng đắt đỏ. Nó giống y như việc bạn sẽ hơi vất vả để vào tầng lớp trung lưu, rất vất vả để vào giới thượng lưu, nhưng gia nhập nhóm siêu giàu thì là chuyện vô vàn (x 100) khó khăn.

Hãy tăng tốc website trong khả năng của bạn, và nhớ là tốc độ chỉ là một phần trong giá trị tổng thể của website.

8 thoughts on “20 cách tăng tốc WordPress: Hướng dẫn toàn diện. Nhiều cách Free, tuy nhiên đầu tư thêm tiền sẽ tốt hơn!”

    1. Mình nghĩ phải tùy chỉnh mới ổn được. Mình chưa dùng nhiều WP Super Cache nên không tư vấn sâu cho bạn được, tuy nhiên thông tin về plugin này rất phong phú, bạn thử tìm trên mạng xem sao.

  1. Bài viết rất hữu ích. Mình đang sử dụng mã nguồn wordpress nhưng ngại nhất khoảng tối ưu về hình ảnh. Khi tối ưu ảnh nhìn quá xấu, mờ căm. Mà quan trọng nhất là ảnh nhẹ web mới nhanh được.

    1. Nếu ảnh tối ưu nhìn xấu, khả năng cao là do bạn nén ảnh mất chất lượng quá nhiều. Bạn giảm hệ số mất chất lượng lại, hoặc chỉ nén không mất chất lượng thôi. Ngoài ra chọn kích cỡ ảnh (px) thích hợp sẽ giúp bạn giảm được dung lượng rất nhiều.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top