赞片CMScanonical

liulian
liulian 初级会员超兽战士
发布于 2026-10-08 17:45 ·1 浏览 ·0 回复

照着这篇做,你能给赞片CMS整站加上正确的 canonical 标签,让百度、Google 不再把带参数的重复页面当成不同内容收录。

第一步:确认 canonical 要写在哪个文件

canonical 是一段放在页面 <head> 里的 link 标签,作用是指定"这一堆长得差不多的网址里,哪个才是正式版本"。赞片CMS 是模板驱动的前台,所有页面的 <head> 都来自同一个公共头部模板,所以只需要改一处。

登录后台(默认入口 /admin.php),进「模板 → 模板管理」,看当前启用的模板目录名,一般是 default。对应服务器上的物理路径是:

/www/wwwroot/你的站点/template/default/

里面通常有 head.html(或 header.html)、index.html、list.html、detail.html、play.html。要改的就是 head.html。

注意:改之前先把 head.html 复制一份改名成 head_bak.html,改错了能立刻换回来。

第二步:用 {php} 块生成通用 canonical

不用给每个页面单独写死地址,直接在 head.html 的 <title> 下面插入这段:

{php}
$host = 'https://www.example.com';
$uri  = strtok($_SERVER['REQUEST_URI'], '?');
$uri  = preg_replace('#/page/\d+#', '/', $uri);
echo '<link rel="canonical" href="' . $host . $uri . '">';
{/php}

三行逻辑分别是:固定站点主域名、砍掉 ?from= ?utm_source= 这类参数、把 /page/3 这种分页后缀还原成栏目首页。

把上面的 https://www.example.com 换成你自己站点的真实域名,必须带 https 前缀,结尾不带斜杠。

注意:如果你的赞片CMS版本在模板里不解析 {php} 标签,就去「系统 → 系统设置 → 模板设置」里把"允许模板使用 PHP 代码"打开,保存后清一次缓存。

第三步:分页页面单独处理

上一步的写法会把列表页第 2、3 页的 canonical 全部指向栏目首页,这对搜索引擎不友好——现在百度官方建议分页各自指向自己。

如果你的列表页 URL 是 /list/2.html 这种格式,把第二步的 preg_replace 那一行删掉即可,其余不动。

第四步:移动端页面的 canonical 指向

如果你开了 m. 开头的手机站,在手机模板的 head.html 里,canonical 要写成 PC 版地址:

{php}
$uri = strtok($_SERVER['REQUEST_URI'], '?');
echo '<link rel="canonical" href="https://www.example.com' . $uri . '">';
{/php}

同时别忘了在 PC 模板里加一句 <link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.example.com{$uri}">,两边配对才算完整。

第五步:改完必须验证

打开一个详情页,按 Ctrl+U 查看源代码,搜索 canonical,确认三件事:一是地址是 https 绝对路径;二是没有多出 ? 后面的参数;三是详情页 / 列表页 / 播放页各抽查一个,地址不能全指向首页。

也可以用命令行批量验证:

curl -s https://www.example.com/show/123.html | grep canonical

输出里如果出现 <link rel="canonical" href="https://www.example.com/show/123.html">,就说明写对了。

注意:改完模板记得在后台「系统 → 缓存管理」点一次"清除全部缓存",赞片CMS 会缓存编译后的模板文件,不清缓存前台看不到变化。

小结

  • canonical 只改公共头部模板 template/默认模板/head.html 一处,全站生效。
  • 用 strtok($_SERVER['REQUEST_URI'], '?') 干掉参数,是解决重复收录最直接的办法。
  • 分页页要自引用,不要全部指回栏目首页。
  • 手机站 canonical 指向 PC 版,PC 版加 alternate 指向手机站,两边配对。
  • 域名必须写 https 绝对地址,改完清缓存再验证。
版权声明:本文来自 GJ站长论坛《赞片CMScanonical》
原文链接:https://www.gj0.com/thread-1083.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~