你点开自己辛辛苦苦优化的页面,搜索结果里标题栏却显示“□□□”或者干巴巴的“Home”——用户连点都不想点。不是关键词没排上,是第一眼就劝退了。

字体图标不是装饰品,它是网页里会“说话”的一部分。说错话,搜索引擎直接当哑巴;说清楚了,它才愿意把你的页面推给真正需要的人。

为什么搜索引擎看不懂你的字体图标?

搜索引擎爬虫不看图,只读文本。
它看到 <span class="fa fa-user"></span>,就像你看到一串乱码:\f007
没有文字,就没有语义;没有语义,就没有排名权重。
移动端加载失败时,图标变方块,用户以为页面崩了,直接关掉。

真实案例:一个电商网站首页的购物车图标纯靠 Font Awesome 渲染,没加任何文字说明。Google Search Console 显示,“购物车”相关词长期卡在第3页。补上 aria-label 和隐藏文本后,两周内相关词排名明显提升。

字体图标的3个隐藏SEO杀手

可访问性差
屏幕阅读器遇到没声明的字体图标,会硬读 Unicode 字符,比如“”,用户听到的是“私有使用区字符”,完全不知所云。该加 aria-hidden="true" 的地方没加,就是给视障用户设绊子。

拖慢加载速度
Font Awesome 这类字体包动辄几十KB,里面塞了上百个图标,但你可能只用其中5个。对4G信号不稳的用户来说,多等半秒,跳出率就高一分。

稀释链接价值
社交按钮、导航入口如果只是 <a><i class="fa fa-twitter"></i></a>,爬虫抓到的就是空链接。锚文本没了,外链带来的权重也跟着蒸发。

3个方法让字体图标被搜索引擎看懂

方法一:给图标加 aria-labelrole 属性
这是最轻量、见效最快的改法。
比如搜索按钮:

<button aria-label="搜索" role="img">
  <i class="fa fa-search"></i>
</button>

aria-label 告诉爬虫和屏幕阅读器“这是什么”,role="img" 明确告诉辅助工具“这是图形,别当文字读”。

方法二:用隐藏文本做备胎
不是所有场景都适合加 aria-label(比如图标嵌在链接里又不想影响链接语义),那就用 CSS 隐藏、爬虫可见的文本:

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

HTML 里这样写:

<span class="fa fa-home">
  <span class="sr-only">首页</span>
</span>

用户看不到,爬虫和读屏软件都能读到“首页”。

方法三:核心图标优先用 SVG
SVG 不是字体,是代码写的图形,天生支持 <title><desc> 标签。
比如用户头像图标:

<svg role="img" aria-label="用户">
  <title>用户</title>
  <desc>进入个人中心</desc>
  <path d="..."/>
</svg>

体积小、缩放锐利、语义清晰——尤其适合导航栏、按钮这类关键位置。

案例:社交分享按钮的SEO翻车现场

一个旅游博客底部有 Facebook、Twitter、Instagram 三个分享图标,全用 Font Awesome 写成:

<a href="..."><i class="fa fa-facebook"></i></a>

爬虫眼里:三个空链接,零锚文本,零语义。
我们改成:

<a href="..." aria-label="分享到Facebook">
  <i class="fa fa-facebook" aria-hidden="true"></i>
  <span class="sr-only">分享到Facebook</span>
</a>

aria-hidden="true" 让屏幕阅读器跳过图标本身,aria-label + 隐藏文本双保险确保语义完整。一个月后,这些按钮的点击率大幅增长,页面在“旅游攻略分享”类搜索中的曝光也明显上升。

测试工具:3分钟确认你的图标有没有被SEO忽略

打开 Chrome,右键点击任意图标 → “检查”,切换到“辅助功能”(Accessibility)面板。
看“名称(Name)”字段:

  • 是空的?→ 爬虫看不见
  • 是乱码或符号?→ 屏幕阅读器会念错

再进 Google Search Console → “网址检查” → 输入你的页面 URL → “测试已发布的网址” → 切到“HTML”标签,搜 fa- 或图标类名,确认附近有没有 aria-label.sr-only 文本。

顺手跑一次 Lighthouse(Chrome DevTools → Lighthouse → 选“SEO”和“可访问性”)——它会直接标出“链接缺少描述性文本”这类问题。

今天就能执行的一个操作

打开你网站首页,找一个导航栏里的字体图标,比如“首页”“搜索”或“购物车”。
如果它是 <i><span>,且没带 aria-label,也没包裹隐藏文本,现在就改:

<i class="fa fa-home" aria-label="首页"></i>

或者:

<span class="fa fa-home">
  <span class="sr-only">首页</span>
</span>

改完后,右键检查这个元素,看“辅助功能”面板里的“名称”是不是变成了“首页”。
就这一步,不用发版、不用等上线,搜索引擎下次抓取时,就能认出你的核心导航词了。