搜索全站
百度SEO 8 分钟阅读

图片 ALT 怎么写?WordPress 图片搜索流量获取与批量补全方法

ALT 是无障碍属性,也是百度图片理解图片内容的唯一文本线索。本文讲清 ALT 写作规则、常见错误填法,并给出批量补全历史图片 ALT 的 SQL 与 PHP 方案。

U
UFO_PF 2021-08-10 · 阅读 8 分钟
图片 百度SEO
阅读提示
本文约 3,085 字,预计阅读 8 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:上传两百张截图,ALT 全是文件名

WordPress 上传图片时,如果不在媒体库里填”替代文本”,前台输出的 <img> 就只有 alt="",或者被主题填成文件名。常见的结果是页面里出现 alt="IMG_20240312_093214.png" 或 alt="截图 2024-03-12 上午9.32.14"。这些字符串对百度图片没有任何语义价值,图片搜索流量等于零。更常见的问题是反向的:站长意识到 ALT 重要后,把每个 ALT 都写成同一个核心词,形成堆砌。

原理分析:百度图片如何”看懂”一张图

百度图片的抓取与理解依赖三条线索,优先级大致如下:

线索 说明 可控性
ALT 属性 直接的文本描述 完全可控
文件名与路径 次级文本线索 可控
周边正文与标题 上下文语义 可控
图像识别 百度自身的视觉理解 不可控

也就是说,图像识别只是补充,文本线索才是主力。ALT 的第一职责是无障碍描述——当图片无法显示时告诉读者这是什么;SEO 价值是这一职责的副产品。这条原则决定了 ALT 的正确写法:描述图片内容,而不是塞关键词。

需要区分两类图片的 ALT 策略:内容性图片(截图、架构图、产品图)必须写具体描述;装饰性图片(背景纹样、分隔线、图标)应当留空 alt="",让屏幕阅读器跳过。把装饰图也写上关键词,是很多站点被判定为堆砌的原因之一。

保姆级实操

步骤1:建立 ALT 写作模板
推荐结构:对象 + 动作/状态 + 上下文。例如”WordPress 媒体库批量编辑替代文本的输入框截图”,而不是”WordPress 图片”。

步骤2:上传时顺手填写
在媒体库附件详情里填”替代文本”,这是最省事的路径,不要指望事后批量补。

步骤3:给主题兜底
让主题在 ALT 为空时,用附件标题作为兜底,避免出现纯文件名:

// functions.php:ALT 为空时用附件标题兜底,避免输出文件名或空值
add_filter( 'wp_get_attachment_image_attributes', function( $attr, $attachment ) {
    if ( empty( $attr['alt'] ) ) {
        $title = get_the_title( $attachment->ID );
        if ( $title ) {
            $attr['alt'] = $title;
        }
    }
    return $attr;
}, 10, 2 );

步骤4:批量补全历史图片
对于已经上传的大量截图,可以按”文章标题 + 序号”批量生成 ALT,比手工点快很多:

// 一次性脚本:为所属文章的附件批量生成 ALT(用完即删,务必先备份数据库)
add_action( 'init', function() {
    if ( ! current_user_can( 'manage_options' ) || ! isset( $_GET['fill_alt'] ) ) {
        return;
    }
    $attachments = get_posts( array(
        'post_type'      => 'attachment',
        'post_mime_type' => 'image',
        'posts_per_page' => 500,
        'post_parent__in' => get_posts( array(
            'post_type'      => 'post',
            'posts_per_page' => -1,
            'fields'         => 'ids',
        ) ),
    ) );
    $n = 0;
    foreach ( $attachments as $att ) {
        if ( get_post_meta( $att->ID, '_wp_attachment_image_alt', true ) ) {
            continue;
        }
        $parent = get_post( $att->post_parent );
        if ( ! $parent ) {
            continue;
        }
        update_post_meta( $att->ID, '_wp_attachment_image_alt',
            $parent->post_title . ' 配图' );
        $n++;
    }
    wp_die( '已补全 ' . $n . ' 张图片的 ALT' );
} );

步骤5:控制长度
ALT 控制在 20–50 个字符,超过后屏幕阅读器体验变差,百度也可能截断。

步骤6:装饰图留空
主题里的图标、背景图在模板里显式写 alt="",避免被兜底逻辑填上无意义文字:

<!-- 装饰性图片:留空 alt,让辅助技术跳过 -->
<img src="/wp-content/themes/mytheme/assets/divider.svg" alt="" class="deco-divider" width="120" height="8">

步骤7:验证输出
在前台查看源代码,确认 <img> 标签都带上了合理的 alt。百度图片的收录情况可以在百度搜索资源平台的”图片”相关数据中观察,也可以在百度图片里直接搜你的图片描述文字。

常见踩坑

  1. ALT 全填核心词:两百张图 ALT 都是”WordPress建站”,属于典型的属性堆砌。
  2. ALT 等于文件名:IMG_2381.jpg 对任何人都没意义。
  3. 每张图都写 ALT:装饰图也写,反而稀释了内容图的语义权重。
  4. 中文 ALT 与英文站混用:外贸站正文是英文却写了中文 ALT,语义不匹配。
  5. 案例:某技术博客把历史 400 多张截图的 ALT 批量改成”文章标题 + 配图”后,三个月内百度图片来源的访问从每天不到 10 次涨到 200 多次。但同期他们把站点的图标也批量填了 ALT,结果正文里出现大量重复的图标描述文本,后来回滚了装饰图的 ALT 才稳定。
  6. 忽略图片周边正文:ALT 只是线索之一,图片前后有说明文字,效果远好于孤零零一张图。图片文件名与路径的处理可以参考 图片文件名SEO处理。

总结

ALT 的正确写法只有一句:把图片内容描述给看不见它的人听。做到这一点,SEO 价值自然产生;做不到,堆多少关键词也没用。行动上分三步:上传时填写、主题兜底防止空值、装饰图显式留空。历史图片用一次性脚本批量处理,处理前务必备份数据库。配合 WordPress图片压缩与WebP 一起做,图片既能被搜到,也不拖慢速度。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。