index.html 的默认网页标题必须通过 标签在 中静态声明且唯一,搜索引擎和浏览器仅识别此源码标题;动态设置、重复声明、错放位置或构建工具覆盖均会导致失效。

index.html 的默认网页标题必须通过 <title></title> 标签在 中静态声明,这是唯一被搜索引擎和浏览器标签页识别的初始标题。
title 标签必须写在 head 里且只能有一个
浏览器只认 内第一个 <title></title>,写在 里会被忽略或触发不可控修复;重复出现时,后续的全部失效。常见错误包括:
- 模板拼接时意外插入了两个
<title></title>(比如 CMS 或构建工具二次注入) - 复制代码带入隐藏 BOM 或注释,导致解析器跳过首个
<title></title> - 用
document.write('<title>xxx</title>')动态插入——这不生效,也不合法
Vite / Webpack 等构建工具会覆盖你写的 title
很多项目用插件(如 @vitejs/plugin-html 或 html-webpack-plugin)自动注入 <title></title>,此时你在 index.html 里手写的 <title></title> 只是占位符,最终以插件配置为准。验证方法:构建后打开 dist/index.html 查看真实源码。
- Vite 推荐用
<title></title>+createHtmlPlugin({ inject: { data: { title: 'xxx' } } }) - Webpack 需检查
new HtmlWebpackPlugin({ title: 'xxx' })是否启用 - 若两者共存(比如 Vite 配了插件又在 HTML 里写死),以插件输出为准
服务端渲染或 PHP/Jinja 模板中 title 容易漏掉或错位
当 被拆成多个片段(如 {% include 'meta.html' %}),<title></title> 可能被遗漏、放在了 <meta> 后面但未显式写出,或被条件逻辑跳过。
- 务必确保每个环境(dev/prod)下生成的 HTML 源码里,
内紧贴<meta charset>后就有且仅有一个<title></title> - 用 curl 或浏览器“查看页面源代码”确认,别依赖开发者工具里的 DOM 树(它可能已被 JS 修改)
- 空
<title></title>或全空白会导致标签页显示文件名,SEO 彻底失效
最常被忽略的是:搜索引擎只读取 HTML 源码里的 <title></title>,JS 后调用 document.title 对首次收录完全无效——它只影响用户看到的标签页文字和 SPA 路由切换体验。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











