U N E S T

Group

Trong 20 cách tăng tốc WordPress có nhiều cách free, tuy nhiên đầu tư thêm tiền sẽ tốt hơn !

Tuy nhiên cũng có một thực tế khác dễ chịu 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 tuy vậy thì 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, dịch vụ đầu tiên là mình thích dùng hoặc đang dùng.

Biện pháp Dịch vụ, công cụ
Host tốt
Inet, Vultr, DigitalOcean, UpCloud, Dreamhost, SiteGround, Knownhost, Cloudways,
CDN
Cloudflare, BunnyCDN, CDNSun, KeyCDN,
Plugin cache
WP Super Cache, WP Fastest Cache, Swift Performance, W3 Total Cache, WP-Rocket
Plugin nén ảnh
WebP Express,EWWW, reSmush.it Image Optimizer, ShortPixel
Lazy load
a3 Lazy Load, Flying Images, 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.

**Những lưu ý quan trọng

  • 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ể.
  • Lưu ý thứ ba là: tốc độ website là một trong các yếu tố quan trọng trong bài viết chuẩn SEO. Google chính thức sử dụng tốc độ như một thành tố xếp hạng kể từ năm 2010.

Giờ đến lúc chúng ta cùng khám phá, bạn nhấn vào để mở nội dung tương ứng cho mỗi mục.

 

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 vốn cho host. Bên cạnh nội dung chất lượng cao, SEO, thì 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ứ, cái 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, tiết kiệm tiền 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 (Managed WordPress Hosting)
  • 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?. 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é.

Các công ty bán VPS có khoảng giá phong phú từ thấp nhất khoảng 5 USD cho đến vài trăm USD. Các công ty chuyên cho WordPress thường có giá khởi điểm từ 20 — 30 USD / tháng.

Hiện tại mình host trang này trên Clouflare, 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 

Các dự án hiện tại của mình thì thường thuê Host của Inet vì một số ưu điểm như máy chủ tại Việt Nam, có hỗ trợ định dạng webp, có hỗ trợ check malware

Ư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.

Những giải pháp trên có ưu điểm là bạn dễ làm, ít phải thao tác với dòng lệnh, control panel đầy đủ tính năng.

~~~

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.

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.

Còn nếu trang của bạn làm về tin tức chia sẻ kiến thức thì ưu tiên hàng đầu là nội dung của bài viết.

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ó.

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ó.

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.

UNEST 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.

Một điểm cần lưu ý nữa đó là: giữa nhiều plugin khác nhau, có những cái được thiết kế tốt hơn những cái khác ở khía cạnh tốc độ (có thể do trình độ lập trình, hoặc người ta chủ động thiết kế để tối ưu hiệu suất). Cái này tùy vào mục đích mà bạn cân nhắc đánh đổi giữa tính năng và tốc độ để chọn cái phù hợp.

~~~

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 2 MB chẳng hạn, có thể 1,4 MB đã là hình ảnh rồi.

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/ above the fold, 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, bạn đỡ mất công hơn nhiều).

Một số plugin mình thấy khá ổn là:

  • WP Smush
  • EWWW Image Optimizer
  • reSmush.it
  • Imagify Image Optimizer
  • ShortPixel

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

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 vậy thì một khuyết điểm của nó là không hỗ trợ trên trình duyệt safari. WebP đặc biệt hữu ích cho những website bán hàng và cần đưa số lượng ảnh sản phẩm lớn lên website.

Lưu ý: Triển khai chính xác WebP là một nhiệm vụ phức tạp nên bạn cần cẩn trọng. Nếu bạn không chắc chắn không nên làm. Với những website mà lưu lượng truy cập chủ yếu đến từ Safari thì chuyển sang WebP hầu như không có tác dụng. Tuy vậy nếu bạn sử dụng dịch vụ của UNEST có thể hoàn toàn yên tâm, chúng tôi kết hợp cả nén ảnh thông thường và nén bằng webp nên ngay cả trình duyệt Safari trang web của bản vẫn tối ưu nhất.

~~~

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?

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.

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

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:

  • Cloudflare (nhiều PoP nhất, có dịch vụ miễn phí, cài đơn giản)
  • CDNSun (có PoP ở Việt Nam)
  • KeyCDN (dễ dùng, nhiều chức năng chuyên sâu)
  • BunnyCDN (giá rất hấp dẫn, hiệu suất không thua kém KeyCDN)
  • MaxCDN (cá nhân không ấn tượng với nó lắm, tuy nhiên MaxCDN khá nổi trong cộng đồng)

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

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 2020, 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.

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. Bạn có thể điều chỉnh thời gian bằng cách sửa trong file .htaccess tuy nhiên nếu cũng có một số plugins hỗ trợ bạn điều này và sẽ đề cập ở phần sau.

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 cơ sở dữ liệu, thực hiện các câu lệnh PHP để 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), dạo gần đây còn có Swift Performance (có cả bản miễn phí và có phí).

Đ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.

Bonus: hiện có plugin tạo trang tĩnh thú vị có tên WP2Static. Nó thú vị và khác biệt so với các plugin cache khác ở chỗ nó tạo ra một website tĩnh hoàn toàn, loại bỏ nhu cầu phải sử dụng MySQL và thực thi các đoạn mã PHP. Nó vừa giúp tăng tốc, vừa giúp giảm chi phí hosting với một cấu hình tương đương. Tuy nhiên tạo ra website tĩnh hoàn toàn vừa là ưu điểm cũng là nhược điểm của nó. Bạn có thể click vào bài giới thiệu trên để tìm hiểu rõ 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, Redis, Nginx FastCGI, 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ỹ.

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.

~~~

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.

Để 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/

Đ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).

Đâ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.

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.

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.

***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.

~~~

Đâ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.

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 và tốn kém thời gian.

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 Medium 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. 

Để đả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.

Gần đây mình mới biết một plugin Lazy Load ảnh rất hay, nó có tên Flying Images, giúp giải quyết rất tốt vấn đề “giật cục” của Lazy Load ảnh. Đặc biệt hiệu quả nếu người dùng của bạn chủ yếu sử dụng trình duyệt Chrome vì nó sử dụng thẻ lazy load mà trình duyệt này hỗ trợ cho kết quả rất tuyệt vời. Với các trình duyệt khác nó vẫn sử dụng JS nhưng có một cải tiến vô cùng quan trọng đó là tải trước ảnh khi nó kịp đến khung nhìn, và gần như loại bỏ hoàn toàn hiện tượng “giật cục, đột ngột” (trừ khi đường truyền quá chậm). Phần lớn website mình quản lý đã chuyển sang Flying Images.

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.

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 (nhất là khi bạn có ý định defer hoặc async file jQuery).

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), hoặc đợi khi người dùng cần đến mới tải.

Để 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.

  • 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.

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

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

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.

Lưu ý quan trọng: Dù function.php rất hay được dùng làm nơi chứa các mã tùy biến, nhưng nó có nhiều nhược điểm như cập nhật theme sẽ phải cập nhật lại mã hay một lỗi nhỏ sẽ làm cả website bị lỗi. Gần đây tôi biết cách hay hơn để thêm mã tùy chỉnh vào WordPress, bạn nên tham khảo nếu áp dụng phương pháp tăng tốc này. Các bạn có thể tham khảo link 

https://unestgroup.com/huong-dan-chen-code-vao-wordpress-theo-cach-an-toan-goi-y-su-dung-plugin/

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ờ ra đời sớm, 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://unestgroup.com/10-meo-giup-cai-thien-ttfb-trong-wordpress/.

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 host 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.

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.

Cách trên áp dụng theo cách của Varvy, nhưng nó có thể không tiện nếu bạn có rất nhiều video hoặc bạn không biết một chút về code.

Nói chung với WordPress mình nghiêng về cách sử dụng plugin, vì nó tiện, không tốn kém chi phí cũng như không đòi hỏi phải tìm hiểu quá sâu để sử dụng. Một số plugin bạn có thể tham khảo:

  • Lazy load by WP Rocket – Lazy load ảnh, iframe, và video YouTube, nó có dung lượng chưa đến 10 KB
  • WP YouTube Lyte – Được phát triển bởi cùng tác giả plugin rất nổi tiếng Autoptimize
  • Lazy Load for Videos – Lazy load cả cho video trên Vimeo và YouTube

Bạn cần thận trọng khi sử dụng lazy load cho video, nếu không làm khéo nó có thể ảnh hưởng tiêu cực đến SEO.

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 (cả tốc độ phân giải lẫn tốc độ cập nhật địa chỉ IP mới).

P/S: Tốc độ cập nhật địa chỉ IP mới rất quan trọng khi bạn đổi host, CloudFlare có thể chỉ mất vài phút để cập nhật đầy đủ, trong khi một số dịch vụ DNS của nơi bán tên miền có thể mất từ 24 — 48h, điều này sẽ ảnh hưởng xấu đến khả năng truy cập trong giai đoạn chuyển host.

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à bạn 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 thiết lập nhiều nhặn gì.

Ở 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 độ hàng đầu thế giới, không giới hạn số lượng bản ghi, và có độ ổn định rất cao. Nó thậm chí được nhiều người đánh giá tốt hơn các dịch vụ DNS trả phí.

Ảnh lớn đầu bài viết đem lại tính thẩm mỹ cho trang web. 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.

Đâ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 trước các liên kết nội bộ: Tận dụng thời gian rảnh rỗi khi người dùng đang xem trang để tải các liên kết khác trên trang đó mà người dùng có thể click để xem tiếp (những liên kết nằm trong khung nhìn). Hiện chỉ có một plugin mà mình biết hỗ trợ làm công việc này là Flying Pages (cùng tác giả phát triển plugin Flying Images). Ưu điểm của cách làm này là nó có thể tăng tốc độ lên rất cao nhưng nó cũng có nhược điểm không nhỏ là đòi hỏi hosting phải mạnh mẽ, vì nếu trang có nhiều liên kết, host sẽ phải hoạt động tăng lên nhiều so với không sử dụng tính năng tải trước. Nếu bạn dùng các hình thức tăng tốc phía máy chủ như Redis hoặc Nginx FastCGI cache, nơi mà cache được lưu trên RAM, việc sử dụng plugin này sẽ làm bạn tốn RAM máy chủ rất nhanh, như blog của mình là tăng từ 2 — 3 lần. Do vậy đây có thể là con sao 2 lưỡi nếu bạn dùng tùy tiện. Với cache trên disk như các plugin cache WP-Rocket hay Cache Enabler, vân vân thì plugin này mình tin sẽ không ảnh hưởng nhiều như là đối với cache kiểu RAM. Khi nào có cơ hội kiểm tra thực tế mình sẽ bổ sung sau…
  • Perfmatters hoặc Gonzales hoặc Asset CleanUp: Mình biết đến các plugin này khoảng 1 năm trước trong nhóm chia sẻ về WP trên Facebook. Nói chung nó thú vị vì đây là kiểu tăng tốc khá lạ: thông qua việc tắt bỏ các chức năng không cần thiết. Đặc biệt là tắt các chức năng mà chỉ cần trên một số trang, trong khi toàn trang web lại không cần. Nói cách khác plugin này giúp bạn chỉ bật chức năng trên những trang cần thiết, qua đó tăng tốc cho những trang còn lại. 2 Plugin này không được biết đến nhiều có lẽ vì để sử dụng nó hiệu quả, người dùng phải tương đối có hiểu biết về chức năng của plugin, mình tin rằng ai không biết sơ qua về CSS, JS thì không nên dùng. Tìm hiểu thêm về Perfmatters bạn có thể đọc bài viết này của Bibica (tiếng Việt).
  • 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. 
  • 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.
  • 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. P/S: Hóa ra tối ưu hóa cơ sở dữ liệu trong WordPress phức tạp hơn tôi nghĩ nhiều. Và để tối ưu sâu bạn nên nâng cấp lên các plugin trả phí,… Một cản trở nữa là bạn cần phải am hiểu nhất định về plugin, theme thì việc tối ưu mới tránh được lỗi. Nếu bạn cần một cái tên làm tốt công việc này thì plugin Advanced Database Cleaner là lựa chọn xứng đáng.
  • 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://unestgroup.com/toi-thieu-hoa-chuyen-huong-trong-tang-toc-website/

Bonus: Các kỹ năng, công cụ tăng tốc WordPress thay đổi thường xuyên, bạn có thể ghé thăm một số nhóm Facebook hoặc trang web sau để tìm hiểu thêm nhiều thông tin bổ ích (tất cả là tiếng Anh, nhưng là tiếng Anh kỹ thuật, đơn giản là phần nhiều nên các bạn cứ tự tin nhé).

~~~

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. 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ư:

  • Tận dụng OpenLiteSpeed
  • Các app cài cắm miễn phí như GridPane
  • 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, công sức, 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.

Related Post

Leave a Comment