一、检查并修复phpcms默认的robots文件错误
1.1 查看网站根目录下的robots.txt
首先用FTP工具(如FileZilla,下载地址:https://filezilla-project.org/download.php?show_all=1)登录服务器,进入网站根目录(public_html/wwwroot等,看面板设置)。
1.2 修复phpcms默认robots漏洞
很多phpcms默认robots.txt会屏蔽带`?`参数的动态URL,而搜索引擎抓取初期主要识别动态URL,必须删除或注释这两行:
```
Disallow: /?
Disallow: /index.php?m=
```
1.3 添加基础收录友好规则
修改后的完整可复制robots.txt:
```
User-agent:
Allow: /
Allow: /index.php
Disallow: /caches/
Disallow: /phpcms/
Disallow: /statics/
Disallow: /uploads/attachment/
Disallow: /install/
Sitemap: 你的网站域名/sitemap.xml
```
注意:替换“你的网站域名”为实际带https/http的地址,install目录如果已安装要删除或改名。
二、开启phpcms全站伪静态并优化规则
2.1 确认服务器支持伪静态
- Linux宝塔面板:先在软件商店确认Apache/Nginx已安装rewrite模块(默认已开)
- Windows IIS:需在控制面板→程序和功能→启用或关闭Windows功能中勾选IIS的URL重写模块
2.2 开启phpcms后台伪静态开关
登录phpcms后台→设置→站点管理→点击对应站点的修改→下拉找到URL规则设置→URL模式选伪静态→保存。
2.3 配置对应服务器的伪静态规则
(1)Nginx伪静态规则(宝塔用户复制到站点配置的「伪静态」区域)
```
location / {
if (!-e $request_filename) {
rewrite ^/([0-9a-z_-]+)/([0-9]+)\.html$ /index.php?m=content&c=index&a=show&catid=$2 last;
rewrite ^/([0-9a-z_-]+)/([0-9]+)/([0-9]+)\.html$ /index.php?m=content&c=index&a=show&catid=$2&id=$3 last;
rewrite ^/([0-9a-z_-]+)/list_([0-9]+)_([0-9]+)\.html$ /index.php?m=content&c=index&a=lists&catid=$2&page=$3 last;
rewrite ^/([0-9a-z_-]+)/list_([0-9]+)\.html$ /index.php?m=content&c=index&a=lists&catid=$2 last;
rewrite ^/([0-9a-z_-]+)/$ /index.php?m=content&c=index&a=lists&catdir=$1 last;
}
}
```
(2)Apache伪静态规则(宝塔用户自动生成,手动复制到根目录.htaccess)
```
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([0-9a-z_-]+)/([0-9]+)\.html$ index.php?m=content&c=index&a=show&catid=$2 [L,PT]
RewriteRule ^([0-9a-z_-]+)/([0-9]+)/([0-9]+)\.html$ index.php?m=content&c=index&a=show&catid=$2&id=$3 [L,PT]
RewriteRule ^([0-9a-z_-]+)/list_([0-9]+)_([0-9]+)\.html$ index.php?m=content&c=index&a=lists&catid=$2&page=$3 [L,PT]
RewriteRule ^([0-9a-z_-]+)/list_([0-9]+)\.html$ index.php?m=content&c=index&a=lists&catid=$2 [L,PT]
RewriteRule ^([0-9a-z_-]+)/$ index.php?m=content&c=index&a=lists&catdir=$1 [L,PT]
```
(3)Windows IIS伪静态规则(复制到根目录web.config)
```
```
三、修复phpcms默认的sitemap插件(V9为主)
3.1 下载官方最新版修复的sitemap模块
地址:https://www.phpcms.cn/download/module/1.html (注意选对应V9/V10版本)
3.2 安装并配置模块
1. 解压下载的压缩包,将`sitemap`文件夹上传至服务器根目录的`phpcms/modules`下
2. 登录后台→扩展→模块管理→找到sitemap点击安装
3. 安装后点击设置:生成频率选每天,生成数量调至全站最大文章数+1(比如有1000篇就填1001),勾选所有需要生成的内容模型→保存
4. 点击生成sitemap,生成后检查根目录是否有`sitemap.xml`和`sitemap.txt`
四、设置并提交百度/360的站长平台链接
4.1 验证站点所有权
- 百度站长平台:https://ziyuan.baidu.com/ →登录后点击「站点管理」→「添加站点」→按提示选择https/http、提交主域名→用HTML标签验证法最稳定,复制验证的`
`标签,粘贴到phpcms后台→设置→站点管理→对应站点修改→SEO设置→其他头部信息→保存,刷新网站首页后点击百度验证
- 360站长平台:https://zhanzhang.so.com/ →流程类似,同样用HTML标签验证
4.2 提交sitemap和主动推送配置
1. 提交sitemap:在两个平台的「链接提交」→「sitemap提交」处,填写根目录的`sitemap.xml`地址
2. 配置主动推送(核心快速收录):
- 百度获取推送token:「链接提交」→「普通收录」→「主动推送」→复制token值和推送接口地址
- 修改phpcms主动推送代码:打开`phpcms/modules/content/classes/content_tag.class.php`,找到`public function content_list($data)`函数,在函数末尾(`return $data;`之前)或者单独新建一个定时任务插件(新手建议用现成的,也可以修改发布时触发)
- 发布时触发的临时修改代码(复制到`phpcms/modules/content/content.php`的`public function add()`和`public function edit()`函数的发布成功后`showmessage`之前):
```php
$urls = array(APP_PATH.$r['url']);
$api = '百度主动推送接口地址';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
curl_close($ch);
```
注意:临时修改升级phpcms会覆盖,长期使用建议购买或写个简单插件。
五、优化phpcms内容页的TDK和内链
5.1 自动生成精准的TDK
登录后台→内容→内容模型管理→点击文章模型的修改→字段管理:
1. 标题字段已经是必填,但建议限制长度在20-30汉字,添加提示「建议包含核心关键词」
2. 描述字段:修改默认类型为文本域(必填),限制长度在70-120汉字,添加提示「自然包含2-3次核心关键词,概括全文」
3. 关键词字段:修改默认类型为文本框(必填),添加提示「用英文逗号分隔,3-5个核心关键词」
5.2 开启phpcms自动内链功能
后台→设置→相关链接设置:
- 开启相关链接
- 最大显示数调至3-5个
- 替换次数调至2次/页
- 添加自己网站的核心关键词和对应链接(比如“网站建设”→对应栏目页)
六、清理phpcms冗余缓存并优化加载速度
6.1 一键清理后台缓存
登录后台→右上角清除缓存→全选所有缓存项→点击开始清除
6.2 优化phpcms前台加载速度(影响蜘蛛抓取体验)
1. 开启Gzip压缩:宝塔用户在站点设置→性能调整→开启Gzip压缩
2. 压缩上传的图片:在发布内容上传图片时,用在线工具(https://tinypng.com/)先压缩,或者安装phpcms的图片自动压缩插件
七、最后检查蜘蛛是否正常抓取
登录百度/360站长平台→抓取诊断→输入网站首页和几个文章页URL→点击抓取,如果返回200 OK且能看到完整内容,说明优化生效。