迅睿CMS 主题里的 SEO 输出:title、description、canonical 到底在哪配

· 迅睿CMS · 阅读 12
摘要

迅睿模板里输出 SEO 三件套,很多人的做法是直接在模板里写死一串字符串,或者在 header 模板里自己拼。能显示,但后台的「SEO 设置」就废了,改 SEO 还得进模板改代码。 系统提供了什么 迅睿在内容模型和栏目设置里都有 SEO 字

迅睿模板里输出 SEO 三件套,很多人的做法是直接在模板里写死一串字符串,或者在 header 模板里自己拼。能显示,但后台的「SEO 设置」就废了,改 SEO 还得进模板改代码。

系统提供了什么

迅睿在内容模型和栏目设置里都有 SEO 字段,模板侧一般通过 {dr_seo()} 这类标签或者栏目的 SEO 变量来取。关键在于:先确认后台填了没有。

后台没填 description 的时候,标签输出的是空字符串,页面源码里就是一行空的 meta,等于没写。不少站上线很久才发现描述一直空着,就是因为模板写对了、后台没填。

推荐的输出方式

<title>{dr_seo('title')}</title>
<meta name="description" content="{dr_seo('description')}">
<meta name="keywords" content="{dr_seo('keywords')}">
<link rel="canonical" href="{dr_seo('canonical')}">

这里的关键是:这些值来自后台,改内容不用动模板。

列表页的特殊情况

首页、栏目列表页、搜索结果页,title 的来源不一样。栏目页通常取栏目名,列表翻页时最好带上页码,但注意 canonical 在翻页页面上要指向当前页,不要全部指回第一页——那会让后续页永远进不了索引。

一个判断是否配置成功的方法

打开任意一个详情页,看源码:

  • title 是否包含后台填的关键词
  • description 长度是否在 60–160 字之间
  • canonical 是否等于当前页面的真实 URL

三条都过,基本就是对的。三条里有一条是空的,先查后台字段,再查模板标签名,顺序不要反。