Categories Cache Litespeed

Đảm bảo website có tỷ lệ cache cao trong các trang khắt khe về tốc độ khi dùng plugin LiteSpeed cache

Đảm bảo tỷ lệ cache cao

Bài này có ý nghĩa nhất trên các website có nhiều bài viết VÀ hay phải cập nhật, xuất bản nội dung. Các website có ít bài (dưới 300) HOẶC ít khi cập nhật, xuất bản (khoảng một tuần một lần) thì các cài đặt mặc định nói chung đủ ổn với bạn rồi…Còn nếu khó tính về mặt tốc độ thì dù ít hay nhiều bài viết, thường cập nhật hay không, các tùy chọn dưới đây đều đáng quan tâm.

Với các cài đặt thông thường của plugin LiteSpeed cache bạn đã có website có tốc độ tốt và cache ổn định.

Tuy nhiên với các trang có yêu cầu cao về thời gian tải trang, bạn có thể muốn để ý đến các tùy chọn sau để có tỷ lệ trang được cache cao nhất, nhờ đó có khả năng đem lại tốc độ tốt nhất cho người dùng.


#1. Crawler để xây dựng trước Cache: tốt nhưng đòi hỏi hosting phải thật trâu bò

Đây là tính năng quan trọng nhất mà bạn cần để ý. Crawler có nhiệm vụ xây dựng trước cache cho trang, do vậy mà ngay cả những người lần đầu tiên truy cập website vào lúc cache vừa purge (xóa) xong không lâu vẫn có thể truy cập trang vừa được tạo cache chủ động thông qua crawler.

Phương thức:

  • Tạo trước cache, thay vì để cache tạo theo cách thông thường là đợi người dùng đầu tiên vào mới tạo;

Ưu điểm:

  • Cung cấp cache mới nhất, cập nhật nhất cho người dùng;
  • Là cách chỉn chu nhất;

Nhược điểm:

  • Tăng sử dụng tài nguyên máy chủ, nên khi cài đặt bạn cần khéo léo để tránh quá tải. Thường các cài đặt mặc định của Crawler trong LiteSpeed cache là ổn, bạn chỉ việc bật nó lên là xong;
  • Không phải hosting nào cũng cho phép tính năng này. Thường chỉ khi VPS hoặc máy chủ là của riêng bạn, thì bạn mới chủ động hoàn toàn trong việc bật/tắt crawler;
  • Trên website có rất nhiều bài viết hoặc/và máy chủ không đủ mạnh, crawler vẫn mất thời gian nhất định để tạo trước cache, do vậy vẫn có khả năng người dùng truy cập vào trang chưa được cache;
  • Chỉ thực sự bật tính năng này khi bạn có hosting đủ khỏe, và biết bản thân đang làm gì.

Để bật crawler bạn vào Crawler > General Settings > Crawler và chọn ON.

Mẹo: bạn nên ưu tiên tạo trước cache cho các trang quan trọng. Đó thường là các post/page, chuyên mục. Còn các trang tag, trang tác giả, trang lưu trữ theo năm, tháng, ngày có thể bỏ qua việc prebuild cache. Tuy nhiên đây không phải tiêu chuẩn vàng, bạn cần tùy ý thay đổi dựa trên nhu cầu thực tế và cách người dùng tương tác với website.

Cập nhật: nếu vì lý do nào đó hosting khóa tính năng xây dựng trước cache, bạn có thể dùng 2 công cụ sau: (1) Optimus Cache Prime hoặc (2) Broken link checker, trong đó bạn nên ưu tiên cách (2) trước vì nó cực kỳ dễ dùng.


#2. Lựa chọn Purge tự động thông minh để tránh việc trang bị xóa Cache quá thường xuyên theo cách không cần thiết: đơn giản nhưng cực kỳ hiệu quả

Chú ý: đây là phần cực kỳ quan trọng trên các website có nhiều bài viết & hay cập nhật bài cũ cũng như xuất bản bài viết mới.

Khi bạn xuất bản bài viết mới hoặc cập nhật bài cũ, bạn sẽ làm cache trên trang bị lỗi thời. Tùy theo kiểu thiết kế (theme), kiểu cập nhật, xuất bản mà mức độ lỗi thời nhiều hay ít.

Phương thức:

  • Hạn chế xóa cache không cần thiết.

Ưu điểm:

  • Không tốn tài nguyên máy chủ.

Nhược điểm:

  • Tránh xóa cache quá mức có thể tạo ra nhiều bài viết, chuyên mục, tag lỗi thời.

Thí dụ khi bạn xuất bản một bài viết mới, nếu trang web của bạn đưa bài viết này ra trang chủ (homepage), và dĩ nhiên cả trang chuyên mục (category) tương ứng thì bạn sẽ làm hai trang này lỗi thời.

Nếu bạn có widget bài viết mới (thường ở cột phải hoặc trái / sidebar) thì xuất bản bài viết mới sẽ làm cho tất cả các trang có widget này lỗi thời (thường sẽ là cả website của bạn).

Thí dụ khác. Khi bạn cập nhật bài viết, bạn đổi ngày xuất bản của nó, bạn sẽ làm chuyên mục tương ứng lỗi thời và có thể là cả trang chủ nữa nếu bạn đẩy bài viết đó lên ngày tháng hiện tại. Khi bạn đổi chuyên mục của bài cập nhật bạn sẽ làm ít nhất 2 chuyên mục bị lỗi thời, đó là chuyên mục cũ của bài viết và chuyên mục mới mà nó chuyển đến.

Tiếp. Nếu bạn có widget bình luận mới nhất, và khi bạn phê duyệt bình luận mới của ai đó bạn sẽ làm tất cả các trang có widget này bị lỗi thời! (phê duyệt bình luận mới được coi như cập nhật bài viết).

Như vậy bạn có thể thấy khi một bài viết được xuất bản hay cập nhật, việc cache của bản thân bài viết đó được xóa và phải tạo cache mới là điều chắc chắn phải có, nhưng nó vẫn có thể làm nhiều khu vực khác liên quan trên website bị lỗi thời và cần yêu cầu tạo mới cache để có được thông tin cập nhật nhất.

Phần tùy chọn này nằm ở khu vực: Cache > Purge > Auto Purge Rules For Publish/Update

Vậy nên lựa chọn thế nào? Dưới đây là một số lời khuyên:

  • Bạn cần phải xác định chính xác trang nào sẽ thay đổi khi bạn xuất bản hay cập nhật bài viết. Chỉ trang chuyên mục, trang chủ hay toàn bộ post/page trên website? Nếu chỉ trang chủ & trang chuyên mục thay đổi nội dung thì dĩ nhiên bạn chẳng cần xóa cache của các post/page khác.
  • Dù trang có thay đổi bạn phải xác định được mức độ quan trọng của nó cũng như khả năng được người dùng click vào. Chẳng hạn các trang lưu trữ theo tác giả, năm, tháng, ngày hầu như không quan trọng và rất ít khi được click trên nhiều website, do vậy bạn có thể không cần phải xóa cache của nó. Việc không xóa cache của các trang này có thể giúp bạn có tốc độ truy cập tốt hơn nếu họ có bấm vào các trang như vậy, ngoài ra điều quan trọng hơn là có thể giảm tải cho quá trình tạo trước cache (crawler).
  • Xác định tầm mức quan trọng của việc đẩy cập nhật mới nhất theo thời gian thực. Đôi khi việc trễ một chút chẳng hại gì! (trừ trễ hẹn với người yêu). Ví dụ việc bình luận mới nhất không xuất hiện ngay ở cột bên phải trên tất cả các trang trên website trong nhiều trường hợp không có hại gì cả. Rút cuộc, thường thì chỉ người quản trị web mới là bên quan tâm nhiều đến bình luận mới nhất, những người đọc khác ít quan tâm. Trong khi nếu bạn liên tục xóa cache tất cả các trang khi phê duyệt bình luận, bạn có thể làm cho nhiều post/page chưa kịp tạo cache, nhất là trên website hay có bình luận.
lựa chọn purge tự động

Giải thích ý nghĩa:

  • All pages: tất cả các trang (post, page, tag, chuyên mục, lưu trữ, vân vân), thường không nên tick vì nó sẽ xóa cache của tất cả các trang trên website.
  • Font page: trang các bài viết mới nhất.
  • Home page: trang chủ.
  • Pages: các trang post/page.
  • All pages with Recent Posts Widget: tất cả các trang có widget bài viết gần đây.
  • Author archive: trang lưu trữ các bài viết của tác giả.
  • Post type archive: trang lưu trữ cho kiểu bài post.
  • Yearly archive: trang lưu trữ hàng năm.
  • Monthly archive: trang lưu trữ hàng tháng.
  • Daily archive: trang lưu trữ hàng ngày.
  • Term archive: trang lưu trữ chuyên mục, tag, tax.

Trên một số trang, thậm chí tôi chỉ tick chọn home page & front page.


#3. Để thời gian sống của Cache dài ra: phần mặc định dễ bị quên không sửa đổi

Mặc định thời gian sống cache của LiteSpeed chỉ một tuần. Tức là sau một tuần, cache hết hạn sẽ được xóa và tạo cache mới. Nếu trang có nhiều bài viết, ít cập nhật việc tạo mới này sẽ vô ích và có thể khiến người dùng truy cập vào trang chưa được cache.

Phương thức:

  • Kéo dài thời gian sống của cache ~ qua đó giảm xóa & tạo mới cache.

Ưu điểm:

  • Cache trang kéo dài, liên tục mà bạn không phải tốn kém tài nguyên.

Nhược điểm:

  • Không phù hợp với trang hay được cập nhật, viết mới. Nếu bạn rơi vào trường hợp này để như mặc định sẽ tốt hơn (tức là thời gian sống của cache là một tuần).

Chẳng hạn website của bạn có 1000 bài viết và cả tháng trang hầu như không thay đổi gì ngoại trừ việc thi thoảng có vài bình luận mới thì bạn có thể để thời gian sống của cache là một tháng. [Tuy nhiên cá nhân tôi nghĩ 1 tháng là thời gian sống của cache tối đa mà bạn có thể để. Để nhiều hơn có thể làm xuất hiện các đỗ trễ không lường trước, nhất là trên trang phức tạp.]

Để thay đổi tùy chọn này bạn vào mục Cache > TTL > Default Public Cache TTL rồi chuyển nó thành một tháng (2419200 giây).

Lưu ý: bất cứ chỉnh sửa nào liên quan đến toàn trang sẽ xóa cache của toàn bộ website. Một số ví dụ:

  • Chỉnh menu
  • Chỉnh footer
  • Chỉnh sidebar
  • Thay logo

Sửa tên categories hoặc các tag cũng sẽ xóa cache của các bài viết thuộc thư mục và tag đó.

Nói vậy không có ý bảo bạn không thay đổi khi cần thiết, mà chỉ để chúng ta ý thức được tác động của nó mà thôi.


#4. Tính năng Serve Stale trong tab Cache: một cơn gió lạ để cải thiện cache

Với các trang bận rộn, tính năng Serve Stale giúp bạn có khả năng phục vụ cache tới đa số người dùng.

Phương thức:

  • Phục vụ cache cũ hơn cho người dùng trong khoảng thời gian ngắn ngủi chờ đợi việc xây dựng cache mới.

Ưu điểm:

  • Không tốn tài nguyên máy chủ và đảm bảo đa số mọi người truy cập được vào trang đã được cache.

Nhược điểm:

  • Cache là phiên bản cũ gần nhất chứ không phải cập nhật nhất. Đây chính là lý do vì sao tôi nói crawler mới là cách chuẩn chỉnh nhất.
  • Hầu như không có tác dụng trên các trang có lưu lượng truy cập thấp- không có nhiều người cùng vào một post/page cụ thể.

Để bật Serve Stale bạn làm như sau: Cache > Purge > Serve Stale và để là ON.


#5. Bật Cache Commenters: một số trang đặc thù sẽ thích cách này

Mặc định để là OFF, và khi ấy trong trường hợp các bình luận cần xét duyệt thì mỗi khi có bình luận, người bình luận sẽ nhận được trang động thay vì trang tĩnh. Còn khi bật ON, người bình luận sẽ nhận được trang đã được cache.

Phương thức:

  • Tránh đưa trang động cho người bình luận.

Ưu điểm:

  • Không tốn tài nguyên máy chủ.

Nhược điểm:

  • Không thực sự có nhiều tác dụng trên đa số trang.

Điều này thực ra không có tác dụng nhiều, chỉ trừ trên các trang rất sôi động bình luận thì mới hiệu quả. Tôi đoán hầu hết người đọc bài này không có kiểu website như vậy (bao gồm cả tôi).

Để bật tính năng này, bạn vào Cache > Cache > Cache Commenters


#6. Lựa chọn thiết kế phù hợp sẽ giúp bạn rất nhiều: một lần nữa đơn giản là tốt

Bạn biết chức năng nào gây hoang phí cache nhiều nhất không. Nó có thể là cái này:  All pages with Recent Posts Widget

Thường chức năng bài viết gần đây gắn bên cột phải. Vì nếu bạn đặt widget này vào, mỗi khi bạn chỉ cần cập nhật bài viết nào đó thôi là gần như toàn bộ website của bạn sẽ xóa cache. Trong khi đáng ra thì nó không cần làm như vậy.

Với tôi nếu bạn muốn để người dùng cập nhật bài viết mới, hãy đẩy nó ra trang chủ, lúc này bạn chỉ cần xóa cache trang chủ. Đừng để nó ở dạng widget cột phải hay bất cứ đâu, nhất là khi trang của bạn có rất nhiều bài đăng. Tất nhiên đây là quan điểm cá nhân, bởi tôi có lựa chọn này vì cho rằng giá trị của việc biết website xuất bản bài viết mới ở cột phải (hoặc đâu đó) không quan trọng bằng việc giữ lại cache.

Những cái cập nhật khác như bình luận mới nhất cũng vậy (và thường cũng hay đặt ở sidebar), các trang có nhiều bình luận mà để tốc đổ phê duyệt bình luận tương ứng với tốc độ cập nhật cache (tức là bạn để xóa cache kiểu All pages) thì thời gian sống của cache chỉ tính bằng giờ mà thôi (trong khi bình thường có thể vài tuần hoặc cả tháng). Cho nên nếu theo hướng tối ưu thời gian sống của cache thì bạn nên chấp nhận chuyện bình luận mới nhất chậm hiển thị vài ngày. Hoặc nếu cho rằng tính năng này không quan trọng thì bỏ nó đi luôn cũng được.

Trên trang Kiến càng tôi bỏ hoàn toàn sidebar, đôi khi tôi cũng bật nhưng nó sẽ chỉ chứa tài nguyên tĩnh như banner hoặc đường link nào đó mà thôi. Để các thông tin động như bài viết mới nhất, bình luận mới nhất kiểu gì cũng bị xóa cache sớm với các thiết lập mặc định.


#7. Kết luận

Với các trang có giá trị cao, sự chậm trễ có thể phải trả bằng đơn hàng lớn (ví dụ giá cũ rẻ hơn vẫn hiện ở trang thư mục nào đó), rõ ràng bạn chẳng muốn bất cứ trang nào chưa được cache khi người dùng truy cập.

Bằng các cách trên, khi được làm khéo léo bạn sẽ gạt được hết lo lắng về chuyện này. Ưu tiên nhất vẫn là crawler để tạo trước cache, hãy nâng cấp máy chủ để tốc độ crawler cao nhất trong khả năng của bạn. Điều quan trọng thứ nhì là chọn purge tự động một cách thông minh, cuối cùng serve stale sẽ cứu giúp bạn nếu bạn không có crawler đủ mạnh.

Phần trên là cache phía máy chủ, bạn nào dùng OpenLiteSpeed có thể quan tâm đến phần thiết lập chuẩn chỉnh cache trình duyệt. Vì mặc định điều này không ổn thỏa trên OpenLiteSpeed (bản Enterprise thì tôi không thấy bị).

Xin chào & hẹn gặp lại các bạn trong bài viết khác.

Back to Top