这类问题我又碰上了一次。企业站把 logo 和图标全部换成内联 SVG,文件里没有 title 和 desc,页面 img 也没有 alt。图片搜索里站名相关的图片结果为零。试过在外层加 aria-label,仍然没有收录。

第一反应是「img 引用 SVG 时 alt 为空,等于放弃唯一的文本信号」,验证下来不成立。

排查方向其实有限,先把可能性排一排。内联 SVG 不是独立资源,图片搜索没有可索引的文件地址;SVG 缺少 title 与 desc,蜘蛛拿不到图像语义;SVG 被当成脚本或样式资源,抓取优先级低于位图。

上来先确认 logo 是内联还是外链

curl -s https://www.example.com/ | grep -o '<svg[^>]*>' | head -3

给 SVG 补标题与描述

sed -i 's/<svg /<svg role="img" aria-label="公司标识">/' /var/www/html/logo.svg

外链引用时补 alt

printf '<img src="/logo.svg" alt="某某科技标识" width="180" height="48">\n' >> /var/www/html/footer.html

提交图片 sitemap 后复核

curl -s https://www.example.com/image-sitemap.xml | grep -c 'logo.svg'

恢复的判定其实很直接。logo 改成外链 SVG 并补上 alt 后,品牌词图片结果里出现了标识,图标类长尾也开始有展现。

这里还有个坑。内联 SVG 对无障碍友好,但对图片搜索几乎是黑盒,需要曝光的图形还是用外链文件更稳。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189