必须放在中,因为浏览器需在渲染前确定页面标题;写在中会被忽略或强制迁移,导致SEO和书签异常,且仅支持纯文本,禁止HTML标签与模板语法。

页面标题必须用 <title></title> 标签写在 里,其他地方加都无效。
为什么 <title></title> 必须放在 中
浏览器解析 HTML 是顺序执行的,<title></title> 的作用是告诉浏览器“这个页面叫什么”,它需要在页面渲染前就确定。如果写在 里,多数浏览器会忽略或强行挪到 ,但行为不可靠,SEO 和书签也会出问题。
- 写在
开头?—— 无效,Chrome/Firefox 会静默修复,但爬虫可能不认 - 用 JavaScript 动态改
document.title?—— 可以,但初始标题仍需<title></title>提供 - 多个
<title></title>?—— 后面的会覆盖前面的,但属于 HTML 错误,W3C 验证不通过
<title></title> 里不能写什么
它只接受纯文本,所有 HTML 标签、实体以外的特殊字符、JS 表达式都会被当作文本原样显示,甚至破坏页面结构。
- 别写
<strong>首页</strong>—— 浏览器标签页会真的显示“<strong>首页</strong>” - 别写
或{{ title }}—— 服务端没渲染时,用户看到的就是字面量 - 中文、emoji、破折号(—)、版权符(©)可以,但避免全角空格和不可见 Unicode 字符
动态设置标题的常见错误
单页应用(SPA)常依赖 JS 更新标题,但容易漏掉关键环节。
立即学习“前端免费学习笔记(深入)”;
- 只改
document.title,没同步更新<title></title>的 innerHTML?—— SSR 或爬虫看不到新标题 - 路由切换后立即改标题,但页面还没加载完?—— 某些浏览器(如旧版 Safari)可能丢弃这次修改
- 用
setTimeout延迟设标题?—— 不稳定,应监听history.pushState或使用框架的生命周期钩子
最稳妥的做法:服务端输出正确的初始 <title></title>,前端路由变化时同步调用 document.title = '新标题',并确保首屏 HTML 已包含语义化内容。标题长度控制在 50 字符内,过长会被截断,且影响搜索结果展示。



















