PbootBiz是独立维护的PbootCMS第三方资源与工具站,与官方无隶属关系;CMS版本、授权政策及公告请以官方信息为准。
操作指南

PbootCMS 标题、Keywords、Description 完整配置指南

PbootCMS标题、Keywords、Description完整配置指南。从源码层面拆解首页、列表页、内容页标题生成规则,副标题为空时的自适应机制,关键词描述三级继承回退逻辑,附后台配置截图与SEO最佳实践。

前言

PbootCMS 的 SEO 信息体系由站点基础信息标题样式规则两层构成。很多站长在使用过程中对标题的生成逻辑存在误解,比如"首页标题无法自定义""副标题不写会不会出现多余横线""栏目没填关键词会不会空着"等问题。

本文从源码层面拆解 PbootCMS 标题、Keywords、Description 的完整生成规则,配合后台实际配置界面,帮你彻底搞懂每一处配置的作用。

image.png


一、站点基础 SEO 信息设置

入口:后台 → 内容管理 → 站点信息

这是全站 SEO 的基石,所有页面的关键词和描述最终都会回退到这里。

字段

模板标签

说明

站点标题

{pboot:sitetitle}

网站名称,如"PbootBiz"

站点副标题

{pboot:sitesubtitle}

网站 slogan,如"PbootCMS建站资源与开发工具"

关键词

{pboot:sitekeywords}

全站默认关键词,逗号分隔

描述

{pboot:sitedescription}

全站默认描述,建议 80-120 字

关键点: 站点副标题不是必填项。如果不填写,系统会自动处理标题拼接时的多余横线(详见第三节)。


二、标题样式配置:各页面标题生成规则

入口:后台 → 系统配置 → 标题样式

这个页面允许你为不同类型的页面分别定义标题格式。所有输入框均支持使用动态标签组合,留空则使用系统默认规则。

2.1 首页标题

配置项:index_title

源码逻辑(IndexController.php 第258行):

$content = str_replace('{pboot:pagetitle}', 
    $this->config('index_title') ?: '{pboot:sitetitle}-{pboot:sitesubtitle}', 
    $content);

规则说明:

  • 填写了自定义标题 → 直接使用你填写的内容(支持动态标签)

  • 留空 → 默认使用 站点标题-站点副标题

示例配置:

PbootBiz - PbootCMS建站资源与开发工具

关于"首页标题无法自定义"的说明: 早期部分教程或低版本可能给人造成首页标题只能用默认值的印象。实际上从 v3.x 开始,后台"标题样式"中的"首页"输入框就是专门用来自定义首页标题的,完全支持静态文本和动态标签组合。如果你发现首页标题改了没生效,请检查是否开启了静态缓存,更新缓存后再看。

2.2 列表页标题

配置项:list_title

源码逻辑(IndexController.php 第278-279行):

$pagetitle = $sort->title ? "{sort:title}" : "{sort:name}";
$content = str_replace('{pboot:pagetitle}', 
    $this->config('list_title') ?: ($pagetitle . '-{pboot:sitetitle}-{pboot:sitesubtitle}'), 
    $content);

规则说明:

  • 栏目设置了"自定义标题"(title字段) → 用 {sort:title}

  • 栏目没设置自定义标题 → 用栏目名称 {sort:name}

  • 留空默认格式:栏目标题/栏目名 - 站点标题 - 站点副标题

示例配置:

{sort:title} - {pboot:sitetitle}

2.3 内容页标题

配置项:content_title

源码逻辑(IndexController.php 第310行):

$content = str_replace('{pboot:pagetitle}', 
    $this->config('content_title') ?: '{content:title}-{sort:name}-{pboot:sitetitle}-{pboot:sitesubtitle}', 
    $content);

规则说明:

  • 留空默认格式:内容标题 - 栏目名 - 站点标题 - 站点副标题

  • 这是默认标题最长的页面类型,SEO 上需要注意标题长度控制(建议不超过 60 个汉字)

示例配置:

{content:title} - {sort:name} - {pboot:sitetitle}

2.4 单页/专题页标题

配置项:about_title

源码逻辑(IndexController.php 第341-342行):

$pagetitle = $sort->title ? "{sort:title}" : "{content:title}";
$content = str_replace('{pboot:pagetitle}', 
    $this->config('about_title') ?: ($pagetitle . '-{pboot:sitetitle}-{pboot:sitesubtitle}'), 
    $content);

规则说明:

  • 栏目设置了自定义标题 → 用 {sort:title}

  • 没设置 → 用单页内容标题 {content:title}

  • 留空默认格式:栏目标题/内容标题 - 站点标题 - 站点副标题

2.5 其他页面标题

页面类型

配置项

默认行为

搜索结果页

search_title

搜索关键字 - 站点标题 - 站点副标题

会员注册页

register_title

系统默认

会员登录页

login_title

系统默认

个人中心页

ucenter_title

系统默认

资料修改页

umodify_title

系统默认

其它页

other_title

系统默认


三、副标题为空时的自适应机制(核心亮点)

这是 PbootCMS 设计得比较贴心的一个细节,很多人不知道它的存在。

源码位置:ParserController.php 第218-223行

// 页面自适应标题避免多横线
if (preg_match($pattern, $content)) {
    $data = $this->model->getSite();
    if (!$data->subtitle) {
        $content = str_replace('{pboot:sitetitle}-{pboot:sitesubtitle}', '{pboot:sitetitle}', $content);
    }
}

工作原理:

  1. 系统检测到模板中存在 {pboot:sitetitle}-{pboot:sitesubtitle} 这样的组合

  2. 查询站点副标题是否为空

  3. 如果副标题为空,自动把整个 站点标题-站点副标题 组合替换成只有 站点标题

  4. 最终输出不会出现 PbootBiz- 这种带尾巴横线的难看标题

这意味着:

  • 副标题写了 → 标题显示为 站点标题-站点副标题

  • 副标题没写 → 标题自动显示为 站点标题,不会有多余横线

  • 这个自适应对所有页面的默认标题规则都生效


四、Keywords 与 Description 的三级继承规则

PbootCMS 的关键词和描述采用逐级回退机制,确保任何页面都不会出现空的 keywords 和 description。

4.1 首页

源码逻辑: 首页直接使用站点全局设置的 keywords 和 description,没有单独的页面级覆盖。

首页 keywords = 站点关键词
首页 description = 站点描述

4.2 列表页

源码位置:IndexController.php 第280-281行 + ParserController.php 第702-714行

// 控制器中指定
$content = str_replace('{pboot:pagekeywords}', '{sort:keywords}', $content);
$content = str_replace('{pboot:pagedescription}', '{sort:description}', $content);

// 标签解析时回退
case 'keywords': // 如果栏目关键字为空,则自动使用全局关键字
    if ($sort->keywords) {
        $content = str_replace($matches[0][$i], $sort->keywords, $content);
    } else {
        $content = str_replace($matches[0][$i], '{pboot:sitekeywords}', $content);
    }
    break;

继承链:

列表页 keywords = 栏目关键词 ? 栏目关键词 : 站点关键词
列表页 description = 栏目描述 ? 栏目描述 : 站点描述

4.3 内容页

源码位置:IndexController.php 第311-312行 + ParserController.php 第4004-4016行

// 控制器中指定
$content = str_replace('{pboot:pagekeywords}', '{content:keywords}', $content);
$content = str_replace('{pboot:pagedescription}', '{content:description}', $content);

// 标签解析时回退
case 'keywords': // 如果内容关键字为空,则自动使用全局关键字
    if ($data->keywords) {
        $content = str_replace($search, $data->keywords, $content);
    } else {
        $content = str_replace($search, '{pboot:sitekeywords}', $content);
    }
    break;

继承链:

内容页 keywords = 内容关键词 ? 内容关键词 : 站点关键词
内容页 description = 内容描述 ? 内容描述 : 站点描述

4.4 继承规则汇总表

页面类型

Keywords 优先级

Description 优先级

首页

站点关键词(唯一来源)

站点描述(唯一来源)

列表页

栏目关键词 → 站点关键词

栏目描述 → 站点描述

内容页

内容关键词 → 站点关键词

内容描述 → 站点描述

单页/专题页

内容关键词 → 站点关键词

内容描述 → 站点描述

注意: 内容页的 keywords/description 不会回退到栏目级,而是直接回退到站点级。这是 PbootCMS 当前版本的设计,如果你需要"内容→栏目→站点"三级回退,需要通过二开或插件实现(详见本文后续插件方案思考)。


五、常用组合标签速查表

在"标题样式"配置中可以使用以下动态标签:

标签

含义

可用页面

{pboot:sitetitle}

站点标题

全部

{pboot:sitesubtitle}

站点副标题

全部

{pboot:sitekeywords}

站点关键词

全部

{pboot:sitedescription}

站点描述

全部

{sort:name}

栏目名称

列表页、内容页、单页

{sort:title}

栏目自定义标题

列表页、内容页、单页

{content:title}

内容标题

内容页、单页

{pboot:keyword}

搜索关键字

搜索结果页

{user:nickname}

会员昵称

会员中心页面


六、实际配置示例与 SEO 最佳实践

6.1 推荐配置方案

以资源下载站为例,推荐如下配置:

页面

标题样式配置

效果示例

首页

PbootBiz - PbootCMS建站资源与开发工具

PbootBiz - PbootCMS建站资源与开发工具

列表页

{sort:title} - {pboot:sitetitle}

PbootCMS插件 - PbootBiz

内容页

{content:title} - {sort:name} - {pboot:sitetitle}

安全卫士插件 - 插件资源 - PbootBiz

单页

{sort:title} - {pboot:sitetitle}

关于我们 - PbootBiz

搜索页

搜索结果 - {pboot:sitetitle}

搜索结果 - PbootBiz

6.2 SEO 最佳实践

  1. 标题长度控制:建议核心关键词前置,总长度不超过 60 个汉字(搜索引擎显示约 30 个汉字)

  2. 关键词分层:站点关键词放品牌词+核心业务词;栏目关键词放栏目主题词;内容关键词放文章长尾词

  3. 描述唯一性:每个内容页尽量单独填写 description,避免全站重复

  4. 副标题善用:副标题可以放 slogan 或核心业务描述,增强品牌识别

  5. 避免关键词堆砌:keywords 字段 3-5 个词即可,description 自然通顺地包含关键词


七、常见问题与注意事项

Q1:改了标题样式后前台不生效?

  • 检查是否开启了静态缓存模板缓存,到后台 → 系统配置 → 缓存配置中清理缓存

  • 如果生成了静态 HTML,需要重新生成

Q2:副标题不写,标题后面会出现"-"吗?

  • 不会。PbootCMS 内置了自适应处理,副标题为空时自动去掉横线和副标题部分

Q3:内容页没填关键词,会用栏目的关键词吗?

  • 当前版本不会。内容页 keywords/description 为空时直接回退到站点级,跳过了栏目级。需要三级回退需二开或使用插件

Q4:首页标题可以用动态标签吗?

  • 可以。首页标题输入框支持 {pboot:sitetitle}{pboot:sitesubtitle} 等所有站点级标签

Q5:栏目自定义标题在哪里设置?

  • 后台 → 内容管理 → 栏目管理 → 编辑栏目 → SEO设置 → 标题(非"栏目名称"字段)

Q6:模板中标题、关键词、描述用什么标签输出?

<title>{pboot:pagetitle}</title>
<meta name="keywords" content="{pboot:pagekeywords}">
<meta name="description" content="{pboot:pagedescription}">

八、当前体系的不足与改进空间

通过源码分析,PbootCMS 现有 SEO 体系存在以下可改进点:

  1. 首页缺少独立的 keywords/description:首页只能用全局站点的,无法针对首页单独优化

  2. 内容页缺少栏目级回退:内容关键词为空时直接跳到站点级,浪费了栏目关键词这一层

  3. 缺少标题长度预警:后台没有标题字数统计和超长提醒

  4. 缺少批量编辑能力:无法批量设置栏目/内容的 SEO 信息

  5. 缺少 SEO 诊断:没有自动检测空描述、重复标题、关键词堆砌等问题


本文基于 PbootCMS v3.2.14 源码整理,不同版本可能存在细微差异,以实际源码为准。


本文由PbootBiz整理发布,转载请保留来源信息。
在线客服
微信客服二维码 微信客服 工作日 9:00-18:30