Cách chặn robot thu thập liên kết “thêm vào giỏ hàng” trên WooCommerce
Gần đây, Gini Webseo đã phát hiện một trang web WooCommerce với khoảng 500 khách truy cập mỗi ngày lại sử dụng nhiều CPU hơn so với một trang web có tới 40.000 khách truy cập. Mặc dù đã áp dụng các phương pháp tối ưu hiệu suất hàng đầu như bộ đệm Litespeed, bộ đệm đối tượng APCu và Google Cloud CDN, nhưng kết quả vẫn chưa đạt như mong muốn. Vậy giải pháp là gì? Thì cùng mình tìm hiểu ngay dưới đây nhé!
Vấn Đề Với WooCommerce và Liên Kết “Thêm vào Giỏ Hàng” Là Gì?
Khi quản lý một trang web WooCommerce, bạn có thể nhận thấy việc tối ưu hóa hiệu suất luôn là thách thức lớn. Một trong những vấn đề phổ biến chính là các trang “thêm vào giỏ hàng” không thể lưu vào bộ nhớ đệm. Đây không phải là lỗi của WooCommerce hay cấu trúc liên kết “add-to-cart”, mà là do đặc thù của các trang này.
Vậy vấn đề nằm ở đâu? Bộ nhớ đệm là một giải pháp tuyệt vời giúp giảm thiểu tài nguyên CPU và băng thông bằng cách lưu trữ và phân phát lại nội dung đã được xử lý trước đó. Tuy nhiên, các trang liên quan đến giỏ hàng trong WooCommerce như “thêm vào giỏ hàng” thường không thể lưu vào bộ nhớ đệm, dẫn đến việc sử dụng tài nguyên máy chủ nhiều hơn.
Các thông số chính của hệ thống bộ nhớ đệm
- Cache-Hit: Là số lượng yêu cầu đã được bộ nhớ đệm xử lý. Điều này giúp giảm thiểu việc tiêu tốn tài nguyên CPU và bộ nhớ, do đó, bạn nên luôn cố gắng tăng thông số này.
- Cache-Miss: Là số lượng yêu cầu không được lưu vào bộ nhớ đệm, nhưng sẽ được xử lý và lưu cho các lần truy cập tiếp theo. Cache-Miss không quá đáng ngại nếu nó được quản lý tốt.
- Uncacheable: Đây là những trang không thể lưu vào bộ nhớ đệm, như các trang giỏ hàng hoặc khi người dùng đăng nhập. Những yêu cầu này bắt buộc phải tiêu tốn CPU và bộ nhớ cho mỗi lần truy cập, làm tăng tải lên máy chủ của bạn.
Trong hầu hết các trường hợp, bạn cần đảm bảo rằng thông số Cache-Hit cao hơn Cache-Miss và Uncacheable, vì nếu không, trang web của bạn sẽ phải tiêu tốn rất nhiều tài nguyên CPU và bộ nhớ. Một ví dụ cụ thể là một trang WooCommerce mà mình đã kiểm tra, chỉ đạt tỷ lệ truy cập bộ nhớ đệm là 5,5%, khiến nó tiêu thụ nhiều tài nguyên hơn mức cần thiết.
Thông qua kiểm tra hiệu suất chúng ta có thể thấy rằng có đến 1.143 yêu cầu không thể lưu vào bộ nhớ đệm, nhiều hơn hẳn so với số lượng yêu cầu Cache-Hit hoặc Cache-Miss. Những yêu cầu này không chỉ tiêu tốn nhiều CPU và bộ nhớ mà còn ảnh hưởng đến băng thông, làm giảm hiệu suất trang web. Câu hỏi đặt ra là: Tại sao tất cả khách truy cập đều đăng nhập và chỉ truy cập các trang như “thêm vào giỏ hàng” hoặc “giỏ hàng”?
Để hiểu rõ hơn, mình đã tiến hành kiểm tra nhật ký truy cập và nhanh chóng nhận thấy nguyên nhân chính: các bot tìm kiếm như Googlebot và Bingbot đang lập chỉ mục các liên kết “thêm vào giỏ hàng”. Những liên kết này không thể được lưu vào bộ nhớ đệm và không cần thiết phải lập chỉ mục. Việc này không chỉ lãng phí tài nguyên máy chủ mà còn làm chậm tốc độ trang WooCommerce của bạn.
Để cải thiện vấn đề này, bạn có thể theo dõi cách làm ở phần nội dưới đây.
Làm thế nào để ngăn chặn robot thu thập thông tin từ các liên kết “thêm vào giỏ hàng”?
Bạn cần lưu ý rằng những chủ đề WooCommerce thực hiện chức năng “thêm vào giỏ hàng” thông qua Javascript và các bot thực tế không quen thuộc với các liên kết này, nhưng có những chủ đề WooCommerce thêm liên kết “thêm vào giỏ hàng” trực tiếp vào tệp HTML. Điều này có thể dễ dàng kiểm tra trong mã nguồn HTML.
Để kiểm tra điều này một cách dễ dàng, bạn chỉ cần mở mã nguồn HTML của trang bằng cách nhấp chuột phải và chọn “Xem Nguồn Trang” trong trình duyệt Chrome.
Tuy nhiên, cho dù liên kết “add-to-cart” của bạn được thực hiện thông qua Javascript hay được thêm trực tiếp vào tệp HTML, bạn nên tắt tùy chọn lập chỉ mục cho chúng. Tất cả những gì bạn phải làm là đặt tham số trong tệp /robots.txt để khai báo cho Google biết rằng liên kết “add-to-cart” bạn không muốn được lập chỉ mục.
Cách để chặn bot thu thập giỏ hàng trên WooComerce như sau:
Đầu tiên bạn hãy tìm tải Plugin Rank Math SEO trong WordPress sau đó hãy kích hoạt Plugin(bạn có thể tải rồi up file Zip Rank Math SEO tại đây)
Vào mục Rank Math SEO chọn Cài đặt chung > Chỉnh sửa robot.txt và dán mã lệnh chặn robot thu thập giỏ hàng trên WooComerce, sau đó ấn lưu thay đổi.
Mã lệnh chặn bot thu thập dữ liệu bạn có thể copy tại đây
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/
Disallow: /*add-to-cart=*
Việc thực hiện các tham số này sẽ ngăn chặn các robot lập chỉ mục các liên kết “thêm vào giỏ hàng” cũng như một số trang khác, từ đó giúp trang web của bạn tiết kiệm tài nguyên CPU, bộ nhớ và băng thông.
Lợi ích của việc ngăn chặn lập chỉ mục
Dươi đây là những lợi ích sau khi các bạn chặn bot lập chỉ mục ở giỏ hàng WooComerce vào tệp /robots.txt
Số lượng yêu cầu không cần lưu trữ được giảm đáng kể
Việc ngăn chặn lập chỉ mục các liên kết “thêm vào giỏ hàng” sẽ giúp giảm đáng kể số lượng yêu cầu không cần thiết, giúp trang web hoạt động hiệu quả hơn.
Giảm sử dụng CPU
Khi loại bỏ lập chỉ mục không cần thiết cho các liên kết “thêm vào giỏ hàng” và các liên kết khác, bạn sẽ thấy mức sử dụng CPU giảm. Điều này sẽ mang lại nhiều sức mạnh xử lý hơn cho các trang WooCommerce quan trọng khác trên trang web của bạn.
Việc sử dụng hệ thống giám sát bộ nhớ đệm không chỉ giúp bạn theo dõi hiệu suất trang web WooCommerce/WordPress mà còn tối ưu hóa việc sử dụng CPU và bộ nhớ. Một số lượng Cache-Hit cao là yếu tố quan trọng để đảm bảo trang web hoạt động trơn tru, tránh tình trạng tạm ngừng hay chậm lại không mong muốn.
Nếu bạn phát hiện những bất thường, hãy nhanh chóng phân tích nhật ký truy cập để xác định và xử lý các URL không được lưu trữ đệm. Bằng cách này, bạn có thể vô hiệu hóa những liên kết không cần thiết và giảm chi phí hàng tháng cho dịch vụ lưu trữ. Đừng để trang web của bạn bị ảnh hưởng bởi những vấn đề nhỏ hãy chủ động chăm sóc và tối ưu hóa hiệu suất ngay hôm nay!