结论:strong 表达语义重要性,影响SEO和屏幕阅读器;b 仅控制视觉加粗,无语义。两者默认虽都粗体,但 strong 被读屏软件加重音、被搜索引擎加权,b 则完全静默;滥用 strong 会降权,仅需样式时 b 更干净;CMS 默认“加粗”常输出 b,需配置为 strong 以保障可访问性与SEO。

直接说结论:用 strong 是为了告诉浏览器、搜索引擎和屏幕阅读器“这段文字很重要”,而 b 只是说“把它加粗显示”,别的什么也不承诺。
为什么不能只看渲染效果?
两者在默认 CSS 下确实都显示为粗体,但语义完全不同:
-
strong是逻辑标签,代表内容重要性——比如错误提示中的“必填项”、法律条款里的“免责”、SEO 中希望被搜索引擎加权的关键词 -
b是实体标签,纯视觉控制——比如文章摘要里产品型号iPhone 16 Pro需要突出但不强调其语义重要性;或古籍排版中需要加粗但无强调意图的专有名词 - 辅助技术(如屏幕阅读器)会为
strong添加语音重音或停顿,b则完全静默处理
SEO 和可访问性实际影响
搜索引擎不会因为用了 b 就给关键词加分;但多次合理使用 strong(尤其在正文关键位置包裹核心关键词),可能提升该词在页面内的权重信号:
- 过度使用
strong(比如整段都包)会被视为关键词堆砌,反而触发降权风险 - 用
strong包裹链接文字(<a href="#"><strong>点击下载</strong></a>)不如直接对链接本身加权,语义反而混乱 - 如果只是想让某段文字变粗,又不想传递任何语义,
b是更干净的选择——它不撒谎
CSS 覆盖时的行为差异
虽然都能被 CSS 改样式,但它们的“原始意图”会影响你后续维护的直觉:
- 给
strong设置font-weight: normal是合理的——你是在“取消强调的视觉表现”,但语义仍存在 - 给
b设置font-weight: normal就很奇怪——你命令它“加粗”,又立刻让它“不加粗”,逻辑自相矛盾 - 若需统一管理所有强调样式,建议用 class(如
<span class="highlight">...),而非依赖strong的默认行为
真正容易被忽略的是:很多 CMS 或富文本编辑器点“加粗”按钮,后台默认输出的是 b。如果你在意 SEO 或无障碍,得确认它是否可配置为输出 strong,或者加一层后处理替换逻辑。

















