name="description"必须严格书写且不可省略,否则搜索引擎无法识别;content值需独特、简洁(≤155字符)、含核心关键词,并确保真实输出到HTML源码中。

name 属性在 <meta> 标签里和 description 是绑定关系,不是“配合使用”——它就是用来标识这条元数据类型的,写错或漏写就等于没声明。
为什么 name="description" 必须写对,且不能省略
搜索引擎靠 name 值识别元数据用途。如果写成 name="desc"、name="meta-description" 或漏掉 name 只留 content,Google 就不会把它当描述摘要处理,大概率直接忽略。
-
name的值必须严格是"description"(全小写,无空格、无连字符) - 不能和
http-equiv混用:同一<meta>标签里出现name和http-equiv会触发浏览器解析冲突,部分渲染引擎直接丢弃整条标签 - 多个
<meta name="description">标签时,只有第一个生效;后边的被静默忽略,哪怕内容不同
content 写什么,name 都救不了
name="description" 只是“挂号”,真正起作用的是 content 值本身。常见失效场景:
- 所有页面共用同一段
content,比如 CMS 模板里硬编码了content="欢迎访问我们的网站" -
content超过 155 字符(含中文、空格),Chrome 搜索结果页会截断,关键信息被砍掉 - 开头 60 字没塞进核心关键词,比如产品页写“我们是一家很棒的公司”,而不是“iPhone 15 Pro 256GB 深空黑|A17 Pro 芯片|官网直供”
-
content里混入 JS 注释、后台路径(如/admin/dashboard)、模板变量残留(如{{ page.title }})
别把 name 当 data-* 用
有人试图用 name="description-v2" 或 name="seo-desc" 来做版本控制或区分用途,这是无效的。搜索引擎只认标准值 "description",其他任何变体都不参与索引或展示逻辑。
立即学习“前端免费学习笔记(深入)”;
-
name不是自定义字段,它是 HTML 规范中预定义的枚举值之一 - 需要额外语义信息(比如描述来源、更新时间),应该用
data-属性挂载在<body>或容器元素上,而非篡改<meta>的name - 想动态生成描述?确保服务端或构建工具输出的是标准
<meta name="description" content="...">,而不是拼错、套错模板
真正容易被忽略的点是:你写的 <meta name="description"> 很可能根本没进最终 HTML —— SSR 框架(Next.js、Nuxt)默认注入描述,手写的一行常被覆盖;得打开“查看页面源代码”确认,而不是只看开发者工具 Elements 面板。



















