Bỏ qua tới nội dung
Kiến thức Website· ·12 phút đọc

Tự động thêm alt cho ảnh hàng loạt trong WordPress

Trần Trọng Luân
Tự động thêm alt cho ảnh hàng loạt trong WordPress
Cỡ chữ

Một thư viện ảnh (media library) WordPress tích vài năm dễ phình lên hàng trăm, hàng nghìn tấm ảnh trống alt. Sửa tay từng tấm là việc bất khả thi. Bài này giải thích vì sao dòng mô tả đó đáng quan tâm, ba cách điền nó hàng loạt, và cái bẫy khiến nhiều người làm hỏng cả thư viện chỉ vì hiểu sai alt là gì.

Alt text dùng để làm gì

Alt text (văn bản thay thế) phục vụ hai nhóm người đọc khác nhau, và cả hai đều quan trọng.

Người dùng trình đọc màn hình. Người khiếm thị duyệt web bằng phần mềm đọc to nội dung. Khi gặp một tấm ảnh, phần mềm đọc đúng dòng alt bạn điền. Ảnh không có alt thì hoặc bị bỏ qua, hoặc đọc tên file vô nghĩa kiểu “IMG_4827 chấm jpg”. Đây là yêu cầu cốt lõi của chuẩn tiếp cận WCAG, và với web doanh nghiệp ở nhiều thị trường, đó còn là vấn đề pháp lý.

Công cụ tìm kiếm. Google không “nhìn” được ảnh theo cách con người nhìn. Nó dựa nhiều vào alt text để hiểu tấm ảnh nói về cái gì, từ đó xếp hạng ảnh trên Google Images và Google Lens. Một bài viết có ảnh được mô tả tử tế sẽ có thêm một kênh kéo lưu lượng mà nhiều người bỏ quên.

Điểm mấu chốt: alt text được viết trước hết cho người. Một dòng mô tả tự nhiên, đúng nội dung ảnh, vô tình cũng là dòng tốt nhất cho SEO. Bạn không phải chọn giữa hai mục đích này.

Alt được lưu ở đâu trong WordPress

Hiểu chỗ này thì ba cách bên dưới mới rõ ràng. Trong WordPress, mỗi ảnh upload là một bài viết kiểu “attachment” (đính kèm) nằm trong bảng wp_posts. Riêng dòng alt không nằm trong nội dung bài, mà được lưu thành một dòng meta trong bảng wp_postmeta, với khóa _wp_attachment_image_alt.

Đây là alt “gốc” của ảnh trong thư viện. Khi bạn chèn ảnh vào bài bằng block Image, WordPress chép alt gốc này vào thẻ <img alt="..."> ngay trong nội dung bài. Hai chỗ này từ đó độc lập nhau, một chi tiết quan trọng sẽ nói ở phần cuối.

Sơ đồ ba cách điền alt ảnh hàng loạt trong WordPress: plugin auto image attributes, WP-CLI và code functions.php
Ba cách điền alt hàng loạt: plugin cho người ngại code, WP-CLI cho người có dòng lệnh, và code hook cho ảnh upload mới.

Cách 1 — Plugin auto image attributes (sinh alt từ tên file)

Cách nhẹ nhàng nhất cho người không đụng code là dùng nhóm plugin auto image attributes (tự động điền thuộc tính ảnh). Phổ biến nhất là plugin “Auto Image Attributes From Filename With Bulk Updater” trên kho WordPress.org. Cơ chế của nó đơn giản: lấy tên file ảnh, bỏ phần đuôi và dấu gạch ngang, rồi điền vào ô alt, title, caption.

Plugin này làm được hai việc: tự điền cho ảnh upload mới về sau, và chạy “Bulk Updater” quét toàn bộ ảnh cũ đang trống alt để điền một lượt. Cấu hình cũng cho chọn chỉ ghi đè ô đang trống hay ghi đè tất cả.

Cách này hợp khi bạn đã đặt tên file ảnh tử tế trước khi upload, ví dụ cua-go-phong-khach.jpg thay vì IMG_2210.jpg. Nếu thư viện toàn tên máy ảnh tự đặt, plugin sẽ sinh ra một mớ alt vô nghĩa, lúc đó nó hại nhiều hơn lợi.

Một nhánh khác là plugin dùng AI (trí tuệ nhân tạo) như AltText.ai hay Image Alt Text Manager: chúng “nhìn” ảnh và sinh câu mô tả tự nhiên, thường ghép thêm focus keyword từ Rank Math hay Yoast. Chất lượng tốt hơn cách lấy tên file, nhưng phụ thuộc dịch vụ ngoài và thường tính phí theo số ảnh. Dù dùng loại nào, hãy đọc lại một mẫu kết quả trước khi cho chạy hàng loạt.

Cách 2 — Điền alt hàng loạt bằng WP-CLI

Nếu site có WP-CLI (công cụ dòng lệnh của WordPress), bạn không cần plugin nào cả. Vì alt chỉ là một dòng meta trên attachment, lệnh wp post meta sửa được trực tiếp. Ví dụ điền alt cho một ảnh có ID 1234:

wp post meta update 1234 _wp_attachment_image_alt "Cửa gỗ tự nhiên màu nâu lắp cho phòng khách"

Để xử lý hàng loạt ảnh đang trống alt, lấy alt từ tiêu đề ảnh (post_title) làm điểm xuất phát, rồi bạn rà lại sau. Đoạn dưới chạy qua WP-CLI bằng cờ --allow-root nếu cần:

wp post list --post_type=attachment --post_mime_type=image 
  --format=ids | tr ' ' 'n' | while read id; do
    alt=$(wp post meta get "$id" _wp_attachment_image_alt 2>/dev/null)
    if [ -z "$alt" ]; then
      title=$(wp post get "$id" --field=post_title)
      wp post meta update "$id" _wp_attachment_image_alt "$title"
      echo "Đã điền alt cho ảnh $id"
    fi
  done

Đoạn này liệt kê mọi ảnh, với mỗi ảnh kiểm tra alt hiện có; chỉ ảnh nào trống mới điền, lấy tiêu đề ảnh làm alt và bỏ qua ảnh đã có alt. Cách viết “chỉ ghi đè ô trống” này an toàn vì không đụng vào những dòng alt bạn từng viết tay tử tế.

Cách 3 — Code trong functions.php cho ảnh upload mới

Hai cách trên xử lý ảnh cũ. Để ảnh upload mới tự có alt mặc định, bạn móc vào hook khi WordPress tạo attachment. Đặt đoạn này trong file functions.php của child theme, hoặc gọn hơn là trong một plugin nhỏ:

add_action( 'add_attachment', function ( $post_id ) {
    if ( ! wp_attachment_is_image( $post_id ) ) {
        return;
    }
    $alt = get_post_meta( $post_id, '_wp_attachment_image_alt', true );
    if ( empty( $alt ) ) {
        $title = get_the_title( $post_id );
        update_post_meta( $post_id, '_wp_attachment_image_alt', $title );
    }
} );

Hook add_attachment chạy ngay sau khi một ảnh được thêm vào thư viện. Đoạn code kiểm tra đúng là ảnh, xem ô alt còn trống không, rồi điền tiêu đề ảnh vào khóa _wp_attachment_image_alt bằng update_post_meta(). Đây chính là cùng một khóa meta mà plugin và WP-CLI thao tác, chỉ là bạn tự kiểm soát. Web22 thường gom kiểu xử lý này vào một plugin riêng thay vì nhét vào theme, để alt không biến mất khi đổi giao diện.

Lưu ý sống còn — alt phải mô tả thật, không nhồi từ khoá

Đây là chỗ tự động hóa dễ làm hỏng mọi thứ. Mọi cách tự động ở trên chỉ cho bạn một dòng alt khởi điểm, không phải dòng alt cuối cùng. Vài nguyên tắc:

  • Mô tả đúng tấm ảnh. Alt là để người không thấy ảnh vẫn hình dung được. “Bộ bàn ăn gỗ sồi sáu ghế kê cạnh cửa sổ” tốt hơn “bàn ăn đẹp giá rẻ”.
  • Đừng nhồi từ khoá. Nhét “sửa khóa, sửa khóa quận 1, thợ sửa khóa giá rẻ” vào alt là tín hiệu spam, Google nhận ra và nó phản tác dụng. Mỗi ảnh một dòng mô tả tự nhiên, đủ rồi.
  • Ngắn gọn. Nhắm dưới khoảng 15 từ. Trình đọc màn hình đọc nguyên cả câu, dài dòng làm người nghe mệt.
  • Ảnh trang trí thì để alt trống có chủ đích. Đường kẻ, icon nền, hình minh họa thuần trang trí không mang thông tin nên để alt="" để trình đọc bỏ qua, đừng cố điền cho đủ.

Vì lý do này, quy trình lành mạnh là: dùng auto image attributes hoặc code để lấp khoảng trống trên diện rộng, rồi rà tay những ảnh quan trọng nhất (ảnh sản phẩm, ảnh trong bài chủ lực) để viết lại cho đúng.

So sánh alt mô tả thật và alt nhồi từ khoá khi tối ưu ảnh WordPress
Alt nên mô tả đúng tấm ảnh cho người không thấy ảnh; nhồi từ khoá là tín hiệu spam, phản tác dụng.

Bẫy phải biết — alt thư viện và alt trong bài là hai chỗ

Như phần “lưu ở đâu” đã nói, khi bạn chèn ảnh vào bài, alt được chép sang HTML của bài. Sửa alt gốc trong thư viện sau đó sẽ không tự cập nhật ngược vào những bài đã chèn ảnh từ trước. Plugin và code bên trên đều thao tác alt gốc trong thư viện, nên ảnh đã chèn vào bài cũ có thể vẫn giữ alt cũ (hoặc trống).

Với ảnh đã nằm trong nội dung bài, bạn cần sửa thẳng thẻ <img> trong từng bài, hoặc dùng plugin tìm-thay nội dung. Khi audit (rà soát) một site, đừng chỉ nhìn thư viện báo “đủ alt” rồi yên tâm, hãy mở vài bài thật ra xem mã nguồn ảnh.

Câu hỏi thường gặp

Điền alt hàng loạt có giúp lên top Google không?

Alt là một tín hiệu nhỏ, không phải nút thần kỳ. Nó giúp ảnh hiển thị trong Google Images và làm web dễ tiếp cận hơn, nhưng thứ hạng bài viết phụ thuộc rất nhiều yếu tố khác. Đừng kỳ vọng riêng việc này làm thay đổi vị trí.

Để alt trống vẫn hơn là điền sai chứ?

Với ảnh trang trí thuần túy thì alt trống đúng là lựa chọn chuẩn. Với ảnh mang thông tin, một dòng mô tả tạm còn hơn bỏ trống, miễn bạn quay lại rà cho đúng. Cái tệ nhất là alt nhồi từ khoá.

Dùng plugin AI sinh alt có an toàn không?

An toàn về kỹ thuật, nhưng luôn đọc lại mẫu. AI đôi khi mô tả sai chi tiết hoặc dịch ngượng nghịu sang tiếng Việt. Hãy coi nó là bản nháp, không phải bản chốt.

Nếu bạn muốn gom việc điền alt, tối ưu ảnh và dọn dẹp media thành một quy trình gọn cho cả site, tham khảo cách Web22 làm ở dịch vụ chăm sóc website WordPress định kỳ.

Cần làm web?

Dịch vụ liên quan
tới chủ đề bài này.

Tất cả dịch vụ
Đọc tiếp

Bài viết
cùng chủ đề.

Tất cả bài viết