Cách xóa nhanh ảnh WebP hoặc / và ảnh backup do plugin nén ảnh tạo trong WordPress (yêu cầu tìm hiểu cách dùng SSH)

Các plugin có khả năng nén ảnh chuyên sâu như ShortPixel, LiteSpeed cache, Swift Performance,…có hai tính năng quan trọng mà nhiều người quan tâm đến hiệu suất, tốc độ rất thích đó là ảnh webp và backup ảnh gốc. Tuy nhiên có thể vì một lý do nào đó mà bạn không muốn lưu các ảnh này nữa (chẳng hạn vì bạn không thích dùng webp nữa, nó chiếm dung lượng ổ đĩa lớn, các tính năng này có khả năng làm thư mục ảnh của bạn phình gấp 3 lần).

Bài viết này sẽ hướng dẫn bạn cách xóa những ảnh như vậy.


Hãy cân nhắc cẩn thận trước khi xóa

Không phải ngẫu nhiên file ảnh backup tồn tại, chúng giúp bạn dễ dàng khôi phục lại ảnh gốc trong trường hợp nén ảnh có vấn đề, nhất là khi bạn sử dụng các phương pháp nén mất dữ liệu.

Còn với ảnh WebP, nó có thể giúp bạn giảm được 20 – 30% dung lượng, và Safari phiên bản mới cũng đã hỗ trợ, tức là giờ tất cả các trình duyệt lớn (trên cả máy bàn & di động) gồm Chrome/Cốc Cốc, FireFox, Opera, Safari, Edge đều hiển thị được webp rồi.

trình duyệt hỗ trợ webp
Các trình duyệt hiện hỗ trợ webp

Bạn chỉ nên cần nhắc xóa chúng trong các trường hợp sau:

  • Bạn sử dụng kiểu nén không mất dữ liệu và đã kiểm tra chắc chắn các ảnh trên trang không có vấn đề gì. Khi đó bạn xóa được file backup ảnh gốc (tôi có một site của khách tổng cộng gần 4000MB dữ liệu, trong đó có đến hơn 800MB ảnh backup);
  • Trung bình mỗi bài viết của bạn chỉ có 1 – 2 ảnh, lợi ích của ảnh webp khi đó không lớn, bạn không dùng webp cũng được;
  • Ổ cứng bạn thuê để host web sắp đầy, và bạn không có điều kiện để nâng cấp lên các gói cao hơn.

Nếu bạn vẫn muốn xóa thì hãy đọc tiếp!


Kiểm tra xem ảnh backup và ảnh webp lưu ở đâu & có định dạng như thế nào?

Bạn cần đăng nhập vào FTP hoặc bất cứ công cụ quản lý file nào để biết hai thông tin quan trọng trên.

Thường thì ảnh webp sẽ lưu chung với ảnh jpg, png. Trong khi ảnh backup có thể được đưa ra một thư mục riêng, hoặc cũng chung thư mục với ảnh gốc (/wp-content/uploads/năm/tháng).

Về định dạng. Ảnh webp chắc chắn sẽ có định dạng kiểu .webp, các plugin nén ảnh có thể nối thêm đuôi này vào ảnh gốc, chẳng hạn anh-cua-ban.jpg.webp hoặc anh-cua-ban.png.webp hoặc chỉ thay bằng phần mở rộng với kiểu anh-cua-ban.webp.

Có vẻ kiểu nối an toàn hơn nên tôi thấy hay được dùng hơn. Còn ảnh backup, nếu là thư mục backup riêng, tên ảnh thường được giữ nguyên, còn nếu là chung thư mục ảnh, nó thường được thêm hậu tố nào đó để phân biệt, chẳng hạn anh-cua-ban.jpg.bk

Nắm thông tin về vị trí lưu và định dạng là yêu cầu bắt buộc để bạn xóa được chính xác.


Tại sao xóa thủ công không hiệu quả?

Xóa thủ công thông qua FTP hoặc trình quản lý file (File Manager) của control panel thường không hiệu quả vì các ảnh cần xóa nằm chung với thư mục ảnh gốc và số lượng cũng rất nhiều. Có thể lên đến 5.000 – 10.000 ảnh với website chỉ độ 200 – 200 bài viết. Do vậy xóa thủ công sẽ rất vất vả, mất thời gian và dễ gây lỗi (quên không xóa đã may, lỗi nặng hơn là xóa nhầm ảnh jpg, png làm website của bạn không hiển thị được ảnh!).

Dù sao, nếu bạn không rành SSH, và không có plugin hỗ trợ, thì xóa thủ công vẫn là cách duy nhất có thể triển khai được, với một chút điều chỉnh, việc xóa thủ công sẽ đỡ lỗi & đỡ mất thời gian đi nhiều.


Cách làm

Về phương pháp xóa không có gì đặc biệt:

  • Bạn xác định các đuôi dư thừa cần xóa và vị trí của chúng;
  • Sử dụng lệnh để xóa hàng loạt các đuôi ảnh đó.

Nếu plugin nén ảnh bạn đang dùng có tính năng xóa những định dạng ảnh đó, như xóa file backup hoặc xóa ảnh webp mà nó đã tạo thì dùng chính plugin đấy sẽ tiện nhất.

Nhưng trong quá trình sử dụng WordPress chúng ta thường dùng nhiều plugin nén ảnh và việc nhớ trước đây dùng plugin ảnh nào hoặc cài lại nó để xóa không còn tiện nữa. Dẫn đến việc buộc bạn phải dùng các biện pháp khác.

Lưu ý: trước khi xóa dữ liệu kiểu như này (hoặc can thiệp database) thì giống như mọi biện pháp mà mặc định bạn không thể vãn hồi, thì bạn cần tạo file backup cho toàn bộ website để phòng khi bạn thao tác sai còn có cái để khắc phục. Các plugin tốt để làm việc này là UpdraftPlus & All in one WP migration.


Ở đây tôi sẽ hướng dẫn bạn dùng câu lệnh SSH để xóa.

PS: sau khi chia sẻ bài viết này lên nhóm WP của Thạch Phạm, bạn Nguyễn Xuân Bình Minh đã chỉ cách xóa ảnh rất nhanh, chỉ cần thông qua 2 lệnh là xóa được toàn bộ ảnh đuôi webp:

cd /home/trang-của-bạn.com/public_html/wp-content/
/home/trang-của-bạn.com/public_html/wp-content/ find . -type f -name "*.webp" -exec rm -f {} \;

Quả là lộc lá, khi chia sẻ một nhận lại hai ba bốn luôn <3.


Còn phần bên dưới là hướng dẫn cũ trước đây, bạn có thể tham khảo để hiểu rõ hơn thôi, còn câu lệnh cứ dùng của bạn Bình Minh sẽ nhanh hơn rất nhiều.


Sâu về SSH không dễ, nhưng xóa ảnh bạn chỉ cần biết 3 lệnh:

  • Để truy cập vào thư mục web chứa ảnh
cd thu-muc-web-chua-anh

Ví dụ:

cd /home/trang-của-bạn.com/public_html/wp-content/uploads/2017/08

Lệnh trên sẽ vào thư mục ảnh của tháng 8, năm 2017 trên website.

  • Lùi lên một cấp
cd ..

Ví dụ bạn đang ở thư mục ảnh tháng 8, năm 2017. Giờ bạn muốn chuyển vào thư mục tháng 9 thì bạn làm như sau:

/home/trang-của-bạn.com/public_html/wp-content/uploads/2017/08 cd ..
/home/trang-của-bạn.com/public_html/wp-content/uploads/2017/ cd 09
  • Xóa hàng loạt các ảnh

Ở thư mục chứa ảnh bạn (ví dụ wp-content/uploads/2017/08) bạn gõ lệnh sau:

/home/trang-của-bạn.com/public_html/wp-content/uploads/2017/08 rm *.webp
/home/trang-của-bạn.com/public_html/wp-content/uploads/2017/08 rm *.bk

Trong đó giả định .bk là đuôi ảnh của file backup (trường hợp cụ thể của bạn có thể khác).

Một điều quan trọng nữa. Trong khi cấu trúc wp-content/uploads/năm/tháng giống nhau trên hầu hết website WordPress thì cấu trúc /home/trang-của-bạn.com/public_html/ ở trên có thể rất khác nhau.

Để biết cấu trúc trang của bạn là gì, bạn đăng nhập vào FTP. Truy cập vào website của bạn, bạn sẽ thấy đường dẫn ở phần Remote site:

thư mục website

Đầu tiên bạn cần tải phần mềm PuTTy về rồi cài đặt (cái này dành cho Windows, tùy máy bạn là 32bit hay 64bit mà tải bản tương ứng về), link tải: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

Phần mềm này giúp cho việc thực hiện câu lệnh SSH đơn giản hơn, nó không khác việc bạn dùng Console trên trình duyệt với server VPS (tức là nếu bạn không thích cài phần mềm này thì đăng nhập thẳng vào consle của VPS qua trình duyệt).

Truy cập vào console của VPS thông qua PuTTY:

dùng PuTTY vào console của VPS

Sau đó có dấu nhắc, bạn nhập user (thường là root) và pass để đăng nhập vào Console (lưu ý cần tắt trình soạn thảo tiếng Việt, hoặc chuyển sang tiếng Anh khi đăng nhập, ví dụ UniKey). Đăng nhập thành công bạn sẽ thấy giống thế này:

đăng nhập thành công vào console của VPS

Sau đó bạn vào thư mục chứa ảnh bằng câu lệnh cd ở trên:

cd /home/trang-của-bạn.com/public_html/wp-content/uploads/2017/08

Tiếp đó xóa các ảnh .webp ở đây:

/home/trang-của-bạn.com/public_html/wp-content/uploads/2017/08 rm *.webp

Lên một cập thư mục rồi vào tháng tiếp theo:

/home/trang-của-bạn.com/public_html/wp-content/uploads/2017/08 cd ..
/home/trang-của-bạn.com/public_html/wp-content/uploads/2017/ cd 09

Tiếp tục xóa ảnh webp của tháng đấy:

/home/trang-của-bạn.com/public_html/wp-content/uploads/2017/09 rm *.webp

Bạn cứ làm như vậy cho đến hết các thư mục tháng chứa ảnh.

Với thư mục đầu tiên bạn xóa ảnh trong đó, bạn nên vào file manager để kiểm tra đã xóa thành công hay chưa.

Xong xuôi bạn kiểm tra lại website để xem có vấn đề gì xảy ra không. Cần nhớ là vì bạn đã xóa ảnh webp, bạn cần tắt tính năng tích hợp webp trên website (nếu bạn đang bật) mà đa số các plugin cache hiện nay đều có.


Ưu, nhược điểm

Ưu điểm dễ nhận thấy của cách làm này là nó nhanh hơn cách thủ công nhiều và tránh cho bạn xóa nhầm ảnh nếu dùng các plugin-xóa-ảnh-không-dùng để can thiệp.

Tuy nhiên cách làm này vẫn có thể khiến bạn mất 1 – 2 tiếng để xóa ảnh nếu bạn liên tục đăng bài trong 3 năm qua (tương đương với 36 thư mục ảnh theo tháng).

Tôi sẽ tìm hiểu thêm xem có cách nào nhanh hơn không.

Leave a Comment