在做企业官网、内容站、产品官网时,你可能经常会遇到一个需求:
「页面上不想显示这行字,但又希望保留结构、保留语义,最好还能对 SEO 友好。」
于是,很多前端同学下意识一行:
display: none;看上去问题解决了,但从 SEO 和可访问性 的角度,这一行代码,可能让你白白丢掉了一块很重要的内容权重。
这时候,visually-hidden 就登场了。
一、先说结论:两者最大的差别
用一句话概括:
-
visually-hidden: ✅ 对用户“看不见” ✅ 对搜索引擎 & 屏幕阅读器仍然“可见” 👉 适合需要保留语义结构、又不想占据视觉空间的内容 -
display:none: ❌ 对用户“看不见” ❌ 对搜索引擎 & 屏幕阅读器也“看不见” 👉 适合真正不需要参与布局和语义的内容(比如临时下线模块)
同样是“隐藏”,语义和 SEO 含义完全不同。

图 1:视觉上都隐藏,但在 DOM / 可访问性树里的表现完全不同
二、什么是 visually-hidden?
visually-hidden 不是浏览器自带的属性,而是一个 常见的辅助类名,通常这样写:
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}它的作用是:
- 元素仍然存在于 DOM 结构中
- 可以被 搜索引擎爬虫 抓取
- 可以被 屏幕阅读器 朗读(辅助阅读用户)
但对普通视觉用户来说,这段文字是“不可见”的。
典型使用场景
1. 补充标题结构但不占视觉空间
<h1 class="visually-hidden">有客赞 · 企业网站定制开发</h1>页面上主视觉可能是一张大 Banner + Slogan, 但 H1 里用一句完整、清晰、带关键词的标题,对 SEO 非常友好。
2. 给图标补充文本说明
<button>
<span class="icon-search" aria-hidden="true"></span>
<span class="visually-hidden">搜索</span>
</button>视觉只看到一个放大镜图标, 但屏幕阅读器会读出「搜索」,用户体验更完整。
3. “跳过导航”链接
<a href="#main" class="visually-hidden">跳到主要内容</a>对于键盘操作和屏幕阅读器用户,这个小细节非常重要。

图 2:常见的 visually-hidden 使用位置:标题、按钮辅助文本、跳过导航链接
三、display:none 对 SEO 的真实影响
display: none 的行为就简单粗暴多了:
.hidden {
display: none;
}效果就是:
- 元素不参与布局
- 在可访问性树中也被移除
- 很多搜索引擎会认为这段内容“不存在”
什么时候可以放心用 display:none?
✅ 真正不需要搜索引擎理解的内容,比如:
- 折叠面板里的 加载中动画
- 某个完全废弃的旧区域
- 一些 purely UI 的装饰元素
❌ 尤其不建议对这些内容使用 display:none:
- 标题(
h1~h3) - 关键业务文案(例如「网站定制开发」「软件开发解决方案」等)
- 导航、面包屑等结构性内容
如果你在做企业官网、产品站、或者希望长期积累 SEO 的网站,标题直接 display:none,相当于自己删掉了搜索引擎可用的信息。
四、企业站 SEO:visually-hidden 的正确用法
以一个典型的企业网站为例,你想兼顾:
- 好看的一屏大图 + 口号
- 完整、清晰、包含业务关键词的标题结构 (例如 “网站定制开发|软件定制开发|企业数字化解决方案|有客赞信息技术”)
你可以这样做:
<h1 class="visually-hidden">
网站定制开发|软件定制开发|企业数字化解决方案|有客赞信息技术
</h1>
<section class="hero">
<p class="hero-title">让你的企业网站,不只是“能打开”</p>
<p class="hero-subtitle">从架构到体验的一体化数字化解决方案</p>
</section>用户看到的是干净、简洁的 Slogan, 搜索引擎看到的是带有 核心关键词 的完整标题, 这对企业网站的 长期自然流量 帮助非常大。

图 3:视觉上只保留大图 + 口号,H1 用 visually-hidden 保留语义与关键词
五、会不会被当成“关键词堆砌”?
很多人会问:
“那我是不是可以在 visually-hidden 里塞一大堆关键词?”
不建议。
搜索引擎已经很聪明了,如果你写成这样:
<h1 class="visually-hidden">
网站制作 网站建设 网站定制 网站开发 软件定制开发 软件开发 青岛软件开发
青岛网站制作 青岛小程序开发 青岛app开发……
</h1>这类“生硬堆砌关键词”的做法,很可能:
- 降低页面质量评分
- 严重的话,会被视为作弊
正确的方式是:
- 写一段可读、自然、有语义的完整句子
- 适当出现你的核心业务关键词即可
例如:
<h1 class="visually-hidden">
青岛本地的网站定制开发与企业数字化解决方案服务商——有客赞信息技术(MUZINET)
</h1>既自然,又清晰传达了: 👉 地域(青岛) 👉 业务(网站定制开发、数字化解决方案) 👉 品牌(有客赞 / MUZINET)
这才是健康的 SEO。
六、实战建议:什么时候用谁?
可以简单记一个小决策表:
-
想隐藏,但还希望:
- 保留语义结构(H1/H2、导航、辅助文字)
- 对屏幕阅读器友好
- 对 SEO 仍然可见
👉 用
visually-hidden -
完全不想让用户 & 搜索引擎看到:
- 暂时不用的模块
- 仅用于逻辑控制的元素
- 纯装饰、无语义内容
👉 用
display:none
七、总结:前端的小细节,企业站的大差别
一句话收尾:
display:none 是“彻底消失”,visually-hidden 是“只对眼睛消失”。
当你在做:
- 企业官网建设
- 网站定制开发
- 软件开发解决方案展示
- 市场管理系统、SaaS 平台官网
- 以及有 SEO 诉求的任何站点
这些“小细节”,会在长期内容沉淀中,慢慢拉开差距。
如果你对 企业网站架构设计、SEO 友好的前后端实践、.NET + DDD 架构 感兴趣,欢迎持续关注:
MUZINET · 有客赞信息技术 记录企业项目落地中的技术选择与架构实践。