canonical标签必须放在内且紧邻之后;href值须为绝对URL,与当前页实际地址严格一致,服务端生成、禁止JS注入,并通过GSC验证生效。
canonical标签该加在哪个位置
必须放在
里面,且最好紧挨着
或其他元信息之后。放错位置(比如塞进
)会导致搜索引擎完全忽略它——不是警告,是静默失效。
常见错误包括:
动态模板里拼接出错,生成了空
值,如
服务端渲染时未区分移动端/PC端,把 PC 页面的 canonical 错误塞给了 m.site.com
用了相对路径(
),但站点同时支持 HTTP 和 HTTPS,结果混用协议导致归并失败
rel="canonical" 的 href 值怎么写才安全
必须是**绝对 URL**,协议、域名、路径全量写出,且与当前页面实际可访问地址严格一致(包括 trailing slash 是否存在、大小写、参数是否保留)。
例如当前页是
,那么:
立即学习
“
前端免费学习笔记(深入)
”;
✅ 正确:
❌ 错误:
(缺协议+域名+末尾斜杠)
❌ 错误:
(如果主域是
而非
,会触发跨域归并失败)
注意:不要试图用 canonical 解决分页、筛选、排序等动态参数问题。它只适合内容实质重复的页面(如带 UTM 参数的分享链接、HTTP/HTTPS 同页、www/non-www 镜像)。对参数页,优先用
或
控制。
PHP/Node.js 模板中怎么动态生成 canonical
核心原则:别依赖客户端 JS 拼接,canonical 必须由服务端在 HTML 输出前写死。JS 注入的 canonical 不会被主流搜索引擎识别。
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
示例(PHP):
Node.js(Express)中类似:
关键点:
用
而非
,避免被中间件修改路径
手动处理重定向链中的 canonical(比如 /old-path → 301 → /new-path),旧页仍需指向新页,不能留空或指回自己
避免在 canonical 中保留 session_id、_ga 等纯追踪参数
验证 canonical 是否生效的实操方式
别只看源码有没有那行 tag。真实生效要看 Google 如何理解它:
用 Google Search Console 的「URL 检查」工具,输入目标页,查看「页面索引状态」下的「规范网址」字段是否为你设置的值
搜索
,对比搜索结果中展示的 URL 和你设的 canonical 是否一致
检查服务器日志:如果大量 canonical 指向一个 URL,但该 URL 返回 404 或 500,Google 会退回使用原始 URL,且不报错
最容易被忽略的是缓存问题:CDN 或反向代理可能缓存了旧版 HTML(含过期 canonical),刷新源站后必须同步 purge 缓存,否则搜索引擎抓到的仍是错的。
hrefhref="/article/123"https://example.com/blog/post-1/example.comwww.example.comrobots.txtnoindex
res.locals.canonical = new URL(req.originalUrl, `https://${req.headers.host}`).href;req.originalUrlreq.urlsite:example.com "关键词"