ciyon_ai/aiskill/ciyon-网站seo.md
2026-04-15 17:28:46 +08:00

816 lines
27 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Ciyon网站开发Skill指南 - AI驱动的SEO/GEO优化系统
## 项目概述
Ciyon框架采用原生PHP+JS开发专注SEO优化和搜索引擎友好性。通过AI自动生成文章、定时发布、关键词管理等功能实现网站的自动化SEO优化适合快速搭建企业官网、博客、内容管理系统。
- **AI自动生成文章**关键词自动生成、推广方向设计、文章可读性与SEO结合
- **SEO优化**针对传统搜索引擎Google、百度
- **GEO优化**针对AI搜索引擎ChatGPT、Claude、Bing AI
### 核心模块
1. **栏目管理**www_list_cate- 定义内容分类和SEO策略
2. **已发文章**www_list_art- 已发布并在前台显示的文章
3. **待发文章**www_list_preart- AI生成的文章池
4. **单页管理**www_single- 独立页面(关于我们、联系我们等)
5. **SEO规划**www_seoplan- 制定SEO优化计划
6. **关键词库**www_keyword- 存储SEO关键词
7. **锚内关键词**www_seoword- 自动插入的关键词链接
8. **文章模版**www_tmplart- SEO专用文章模板
9. **浓缩知识**www_content- 与产品相关的浓缩信息
10. **用户线索**www_customer- 收集访客咨询
## 核心架构
### 网站内容管理四大模块
#### 1. 栏目管理www_list_cate
**功能**定义网站的内容分类每个栏目可配置独立的SEO策略
**核心字段**
```sql
CREATE TABLE `www_list_cate` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '栏目ID',
`name` varchar(180) NOT NULL COMMENT '栏目名',
`precnt` int(11) NOT NULL COMMENT '储备文章数(待发文章池)',
`daysent` int(11) NOT NULL COMMENT '日发布量(每天自动发布多少篇)',
`bprenow` int(11) NOT NULL COMMENT '直发否(是否直接发布,无需审核)',
`promptcute` text NOT NULL COMMENT 'AI生成文章的提示词',
`seotitle` varchar(180) NOT NULL COMMENT 'SEO标题',
`keyw` varchar(180) NOT NULL COMMENT '关键词',
`descs` varchar(250) NOT NULL COMMENT '摘要',
`addtimes` bigint(20) NOT NULL COMMENT '添加时间',
`uptimes` bigint(20) NOT NULL COMMENT '更新时间',
`vadmin` int(11) NOT NULL COMMENT '操作人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
```
**使用场景**
- 普通栏目公司动态、产品列表、技术文档FAQ等
- SEO栏目专门用于SEO优化的栏目配置AI自动生成文章
**配置示例**
```php
// 普通栏目
{
'name' => '公司动态',
'precnt' => 5,
'daysent' => 1,
'bprenow' => 1,
'promptcute' => '生成一篇关于公司产品更新的新闻稿',
'seotitle' => '公司动态 - xx科技有限公司',
'keyw' => '公司动态,产品更新,新闻资讯',
'descs' => '了解公司最新动态和产品更新信息'
}
// SEO栏目
{
'name' => '技术文章',
'precnt' => 30,
'daysent' => 3,
'bprenow' => 0,
'promptcute' => '生成一篇关于{关键词}的技术文章要求1.内容原创 2.结构清晰 3.包含实战案例',
'seotitle' => '技术文章 - 全栈开发框架',
'keyw' => 'PHP开发,Golang开发,全栈框架',
'descs' => '分享PHP、Golang、全栈开发技术文章和实战经验'
}
```
#### 2. 已发文章www_list_art
**功能**:已发布并在网站前台显示的文章
**核心字段**
```sql
CREATE TABLE `www_list_art` (
`id` int(11) NOT NULL COMMENT '文章ID',
`cateid` int(11) NOT NULL COMMENT '所属栏目ID',
`clickcnt` int(11) NOT NULL COMMENT '点击量',
`icon` varchar(250) NOT NULL COMMENT '缩略图',
`name` varchar(180) NOT NULL COMMENT '主标题',
`seotitle` varchar(180) NOT NULL COMMENT 'SEO标题',
`keyw` varchar(180) NOT NULL COMMENT '关键词',
`author` varchar(100) NOT NULL COMMENT '作者',
`descs` varchar(250) NOT NULL COMMENT '摘要',
`content` text NOT NULL COMMENT '内容Markdown格式',
`csort` int(11) NOT NULL COMMENT '排序',
`uptimes` bigint(20) NOT NULL COMMENT '更新时间',
`vadmin` int(11) NOT NULL COMMENT '操作人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
```
**自动发布流程**
1. AI生成文章存入 `www_list_preart`(待发文章表)
2. 定时任务根据栏目配置的 `daysent`(日发布量)
3. 将待发文章移动到 `www_list_art`(已发文章表)
4. 更新网站的sitemap.xml
5. 通知搜索引擎索引
#### 3. 待发文章www_list_preart
**功能**AI生成的文章池等待审核或定时发布
**核心字段**
```sql
CREATE TABLE `www_list_preart` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '文章ID',
`cateid` int(11) NOT NULL COMMENT '所属栏目ID',
`preartstatus` int(11) NOT NULL COMMENT '文章状态10.草稿 20.待发 100.已发',
`icon` varchar(250) NOT NULL COMMENT '缩略图',
`name` varchar(180) NOT NULL COMMENT '主标题',
`seotitle` varchar(180) NOT NULL COMMENT 'SEO标题',
`keyw` varchar(180) NOT NULL COMMENT '关键词',
`author` varchar(100) NOT NULL COMMENT '作者',
`descs` varchar(250) NOT NULL COMMENT '摘要',
`content` text NOT NULL COMMENT '内容Markdown格式',
`uptimes` bigint(20) NOT NULL COMMENT '更新时间',
`vadmin` int(11) NOT NULL COMMENT '创建人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
```
**文章状态流转**
```
10.草稿AI生成→ 20.待发(人工审核)→ 100.已发(发布到前台)
```
**AI生成文章流程**
```php
// 1. 读取栏目配置
$cate = $db->getone("SELECT * FROM www_list_cate WHERE id = {$cateid}");
// 2. 读取关键词库
$keywords = $db->get("SELECT * FROM www_keyword WHERE cateid = {$cateid}");
// 3. 随机选择关键词
$keyword = $keywords[array_rand($keywords)];
// 4. 替换提示词中的关键词
$prompt = str_replace('{关键词}', $keyword['name'], $cate['promptcute']);
// 5. 调用AI生成文章
$article = ai_generate_article($prompt);
// 6. 保存到待发文章表
$db->insert('www_list_preart', [
'cateid' => $cateid,
'preartstatus' => 10,
'name' => $article['title'],
'seotitle' => $article['title'],
'keyw' => $keyword['name'],
'content' => $article['content'],
'descs' => mb_substr(strip_tags($article['content']), 0, 250),
'uptimes' => time(),
'vadmin' => 0 // 0表示AI生成
]);
```
#### 4. 单页管理www_single
**功能**:独立页面,如关于我们、联系我们、隐私政策等
**核心字段**
```sql
CREATE TABLE `www_single` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '页面ID',
`name` varchar(180) NOT NULL COMMENT '主标题',
`seotitle` varchar(180) NOT NULL COMMENT 'SEO标题',
`keyw` varchar(180) NOT NULL COMMENT '关键词',
`author` varchar(100) NOT NULL COMMENT '作者',
`descs` varchar(250) NOT NULL COMMENT '摘要',
`content` text NOT NULL COMMENT '内容Markdown格式',
`addtimes` bigint(20) NOT NULL COMMENT '添加时间',
`uptimes` bigint(20) NOT NULL COMMENT '更新时间',
`vadmin` int(11) NOT NULL COMMENT '创建人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
```
### 辅助SEO优化模块
#### 5. SEO规划www_seoplan
**功能**制定SEO优化计划管理不同阶段的推广策略
**核心字段**
```sql
CREATE TABLE `www_seoplan` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cateid` int(11) NOT NULL COMMENT '所属栏目ID',
`starttimes` bigint(20) NOT NULL COMMENT '开始日期',
`endtimes` bigint(20) NOT NULL COMMENT '结束日期',
`promptseo` text NOT NULL COMMENT '推广方向提示词',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
```
**使用场景**
- 制定月度SEO计划
- 定义阶段性推广主题
- 指导AI生成文章方向
#### 6. 关键词库www_keyword
**功能**存储SEO关键词供AI生成文章时使用
**核心字段**
```sql
CREATE TABLE `www_keyword` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cateid` int(11) NOT NULL COMMENT '所属栏目ID',
`name` varchar(100) NOT NULL COMMENT '关键词',
`usetime` int(11) NOT NULL COMMENT '使用次数',
`addtimes` bigint(20) NOT NULL COMMENT '添加时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
```
**关键词管理策略**
- 从百度指数、Google Trends等工具获取热门关键词
- 使用长尾关键词提高转化率
- 定期更新关键词库
#### 7. 锚内关键词www_seoword
**功能**:在文章中自动插入的关键词链接,提升内链权重
**核心字段**
```sql
CREATE TABLE `www_seoword` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cateid` int(11) NOT NULL COMMENT '所属栏目ID',
`name` varchar(100) NOT NULL COMMENT '关键词',
`url` varchar(180) NOT NULL COMMENT '链接地址',
`rank` int(11) NOT NULL COMMENT '权重0-100',
PRIMARY KEY (`id`),
UNIQUE KEY `title` (`name`)
) ENGINE=InnoDB;
```
#### 8. 文章模版www_tmplart
**功能**SEO自动生成的栏目专用。
文章模板主要是在顶部设置全图落地页。
SEO自动生成的文章用户阅读质量较差顶部放置全图片落地页吸引用户浏览。一般用户从搜索引擎直达本页
底部AI自动生成的文字主要给搜索引擎收录用。
**核心字段**
```sql
CREATE TABLE `www_tmplart` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cateid` int(11) NOT NULL COMMENT '所属栏目ID',
`name` varchar(180) NOT NULL COMMENT '模版主题',
`content` text NOT NULL COMMENT '模版内容Markdown格式',
`qutime` int(11) NOT NULL COMMENT '引用次数',
`addtimes` bigint(20) NOT NULL COMMENT '添加时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
```
**模版示例**
```markdown
!图片链接
!图片链接
!图片链接
!图片链接
!图片链接
!图片链接
!图片链接
!图片链接
{{text}}
```
#### 9. 浓缩知识www_content
**功能**:主要是与网站相关产品、服务有关的信息,浓缩成不同方向描述。
AI随机抽取几个浓缩知识结合SEO规划的推广方向提示词生成可发布的文字再套用文章模版替换{{text}},完成生成。
**核心字段**
```sql
CREATE TABLE `www_content` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cateid` int(11) NOT NULL COMMENT '所属栏目ID',
`name` varchar(180) NOT NULL COMMENT '内容主题',
`content` text NOT NULL COMMENT '浓缩内容',
`qutime` int(11) NOT NULL COMMENT '引用次数',
`addtimes` bigint(20) NOT NULL COMMENT '添加时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
```
#### 10. 用户线索www_customer
**功能**:收集网站访客的咨询和需求信息
**核心字段**
```sql
CREATE TABLE `www_customer` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`fromurl` varchar(180) NOT NULL COMMENT '来源页面',
`mobile` varchar(50) NOT NULL COMMENT '手机号',
`demandinfo` text NOT NULL COMMENT '需求信息',
`addtimes` bigint(20) NOT NULL COMMENT '提交时间',
`contacttimes` bigint(20) NOT NULL COMMENT '接待时间',
`memo` varchar(180) NOT NULL COMMENT '接待备注',
`contactadmin` int(11) NOT NULL COMMENT '接待人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
```
## AI自动生成文章系统
### 定时任务配置
**创建自动化任务**
```php
// 插入任务到 zc_autotask 表
$db->insert('zc_autotask', [
'name' => 'SEO文章生成',
'runfunc' => 'web\admin\autotask\seo::generate_articles',
'runparam' => '',
'nexttimes' => time() + 3600, // 1小时后执行
'runcycle' => 3600, // 每小时执行一次
'autotaskstatus' => 20, // 等待执行
'runtimes' => 0
]);
```
**任务执行函数**
```php
namespace web\admin\autotask;
class seo {
// 生成SEO文章
static function generate_articles() {
// 1. 读取所有需要自动生成的栏目,一般文章储备不足开始生成
$cates = $db->get("SELECT * FROM www_list_cate WHERE precnt < 5");
foreach ($cates as $cate) {
// 2. 读取SEO规划
$promptseo = $db->get1("SELECT promptseo FROM www_seoplan WHERE cateid = {$cate['id']} and starttimes>{$now} and endtimes<{$now}");
for ($i = 0; $i < 5; $i++) {
// 生成文章
self::generate_one_article($cate, $promptseo);
}
}
return ['code' => 0, 'errmsg' => '文章生成完成'];
}
// 生成单篇文章
static function generate_one_article($cate, $promptseo) {
// 1. 如果有,则按$promptseo提示词用AI从www_keyword中提取几个相关关键词。
// 2. 如果$promptseo为空则随机提取几个关键词。
// 3. 用$promptseo + $cate['prompt'] + 关键词作为提示词调用call_ai接口生成文章内容。
// 4. 随机取出一个文章模板,将模板内容与文章内容结合,保存到待发文章表。
// 5. 更新栏目的待发文章数量。
}
// 调用AI接口
static function call_ai($ai_key, $prompt) {
// 使用框架的AI接口
$result = \ciy\openai::chat([
'model' => $ai_key['model'],
'messages' => [
['role' => 'system', 'content' => '你是一个专业的SEO文章写作助手'],
['role' => 'user', 'content' => $prompt]
],
'api_key' => $ai_key['aikey'],
'base_url' => $ai_key['baseurl']
]);
return $result;
}
}
```
## GEO生成式引擎优化Generative Engine Optimization
### 概念说明
**GEO vs SEO**
- **SEOSearch Engine Optimization**针对传统搜索引擎Google、百度优化目标是提高在搜索结果中的排名
- **GEOGenerative Engine Optimization**针对AI搜索引擎ChatGPT、Claude、Bing AI优化目标是让AI训练爬虫收录内容在用户提问时引用和推荐
**AI爬虫的喜好特点**
1. **结构化内容**:清晰的标题、段落、列表结构
2. **权威性**:引用数据、案例、专家观点
3. **完整性**:全面覆盖主题,提供深入分析
4. **原创性**:独特见解和原创内容
5. **时效性**:更新及时,信息准确
6. **可验证性**:提供来源链接
7. **实用性**:解决实际问题,提供可操作建议
### 1. AI收录优化策略
#### A. 内容结构优化
**AI友好的文章结构**
```markdown
# 主标题(明确、具体、包含核心关键词)
## 摘要
提供文章概要帮助AI快速理解内容要点
## 背景介绍
说明问题的背景和重要性,建立上下文
## 核心概念
### 概念1
- 定义
- 特点
- 应用场景
### 概念2
- 定义
- 特点
- 应用场景
## 实战案例
### 案例一xxx公司实施xxx
- 背景
- 挑战
- 解决方案
- 结果
### 案例二xxx项目实践
- 背景
- 挑战
- 解决方案
- 结果
## 实施步骤
1. 第一步xxx
2. 第二步xxx
3. 第三步xxx
## 常见问题
### Q1: xxx
**A**: 详细解答...
### Q2: xxx
**A**: 详细解答...
## 总结
总结文章要点,提供核心结论
```
**GEO栏目配置**
```php
{
'name' => '技术教程',
'precnt' => 50,
'daysent' => 5,
'bprenow' => 0,
'promptcute' => '生成一篇关于{关键词}的深度技术文章要求1.结构清晰,包含背景、概念、案例、步骤、问答、总结 2.提供可操作的实施建议 3.引用实际数据和案例 4.内容原创且有独到见解 5.字数2000-3000字',
'seotitle' => '{关键词} - 全栈开发技术教程',
'keyw' => '{关键词},技术教程,实战案例,解决方案',
'descs' => '深入讲解{关键词}的技术原理、实施步骤和实战案例,提供可操作的建议和最佳实践'
}
```
**更多GEO优化提示词示例**
```php
// 1. 行业分析类文章
{
'name' => '行业洞察',
'promptcute' => '生成一篇关于{关键词}的行业分析文章要求1.包含市场数据、趋势分析、竞争格局 2.引用权威数据源和行业报告 3.提供未来3-5年的发展预测 4.分析对企业和从业者的启示 5.字数2500-3500字',
'seotitle' => '{关键词}行业分析与发展趋势',
'keyw' => '{关键词},行业分析,市场趋势,发展预测'
}
// 2. 最佳实践类文章
{
'name' => '最佳实践',
'promptcute' => '生成一篇关于{关键词}的最佳实践文章要求1.基于真实项目经验 2.列出常见错误和避坑指南 3.提供可复制的成功模式 4.包含检查清单和工具推荐 5.字数2000-3000字',
'seotitle' => '{关键词}最佳实践指南',
'keyw' => '{关键词},最佳实践,经验总结,避坑指南'
}
// 3. 问题解决类文章
{
'name' => '解决方案',
'promptcute' => '生成一篇关于{关键词}的问题解决方案文章要求1.明确问题描述和影响范围 2.分析根本原因 3.提供多种解决方案对比 4.给出实施步骤和预期效果 5.包含预防措施 6.字数2000-3000字',
'seotitle' => '{关键词}问题解决方案',
'keyw' => '{关键词},问题解决,方案对比,实施指南'
}
// 4. 工具评测类文章
{
'name' => '工具评测',
'promptcute' => '生成一篇关于{关键词}的工具评测文章要求1.评测5-8个主流工具 2.从功能、性能、成本、易用性等多维度对比 3.提供选择建议和适用场景 4.包含实际使用体验 5.字数2500-3500字',
'seotitle' => '{关键词}工具评测与选择指南',
'keyw' => '{关键词},工具评测,对比分析,选择建议'
}
```
### 5. 让AI引用和推荐的核心策略
#### A. 建立内容权威性
**成为领域专家的必备要素**
1. **内容深度**:每个主题提供全面深入的分析,而非浅尝辄止
2. **原创见解**:提供独特的观点和见解,避免人云亦云
3. **数据支撑**:引用真实数据、案例、研究报告
4. **持续更新**:定期更新内容,保持信息的准确性和时效性
5. **专业审阅**:邀请行业专家审阅内容,确保专业准确性
#### B. 提升内容可引用性
**让AI更容易引用的内容特征**
1. **结构化格式**:使用清晰的标题、列表、段落结构
2. **明确观点**:直接陈述观点,避免模糊表达
3. **可操作建议**:提供具体的实施步骤和检查清单
4. **案例验证**:用实际案例验证观点的有效性
5. **引用来源**:提供权威来源链接,增强可信度
#### C. 品牌价值植入
**在内容中自然植入品牌价值**
1. **解决方案提及**:在讨论解决方案时提及品牌方案
2. **经验分享**:分享品牌在相关领域的实践经验
3. **数据证明**:用品牌相关的数据证明观点
4. **客户案例**:引用品牌客户的成功案例
5. **行业地位**:在行业分析中提及品牌的行业地位
#### D. 多维度覆盖
**覆盖AI可能询问的各种问题**
1. **是什么**:概念定义、基本原理
2. **为什么**:重要性、必要性、价值
3. **怎么做**:实施步骤、最佳实践、工具推荐
4. **常见问题**FAQ、错误处理、避坑指南
5. **未来趋势**:发展方向、预测、建议
### 6. GEO最佳实践总结
**内容创作原则**
1. **深度优先**每个主题提供2000+字的深度分析
2. **结构清晰**:使用标准化的文章结构
3. **数据支撑**:引用真实数据和案例
4. **专家背书**:邀请行业专家撰写或审阅
5. **持续更新**:定期更新内容,保持时效性
**品牌植入技巧**
1. **自然植入**:在解决方案、最佳实践等部分自然提及
2. **价值导向**:强调品牌带来的价值,而非硬性推销
3. **证据支持**:提供案例、数据、客户证言等证据
4. **多样化表达**:从不同角度、场景展示品牌价值
**AI收录策略**
1. **结构化标记**使用Schema.org等标准格式
2. **知识图谱**:构建领域知识图谱,明确概念关系
3. **版本控制**记录内容演进帮助AI理解更新
4. **跨平台分发**在多个平台发布增加AI训练数据来源
## 前台页面开发
### 1. 首页www/index.php
```php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>xxx</title>
<meta name="keywords" content="aa,bb,cc" />
<meta name="description" content="xxxxx" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="/jscss/web.css" />
</head>
<body>
<header>
<nav>
<a href="/">首页</a>
<?php
$cates = $db->get("SELECT * FROM www_list_cate ORDER BY id");
foreach ($cates as $cate) {
echo '<a href="/wlist/' . enid($cate['id']) . '">' . $cate['name'] . '</a>';
}
?>
</nav>
</header>
<main>
<section class="hero">
<h1>xxx</h1>
<p>xxx</p>
</section>
<section class="latest-articles">
<h2>最新文章</h2>
<?php
$articles = $db->get("SELECT * FROM www_list_art ORDER BY uptimes DESC LIMIT 10");
foreach ($articles as $art) {
echo '<article>';
echo '<h3><a href="/wlist/' . enid($art['cateid']) . '/art/' . enid($art['id']) . '">' . $art['name'] . '</a></h3>';
echo '<p>' . $art['descs'] . '</p>';
echo '</article>';
}
?>
</section>
</main>
<footer>
<p>&copy; <?php echo date('Y'); ?> 众产科技. All Rights Reserved. 网站备案号</p>
</footer>
</body>
</html>
```
### 2. 栏目列表页www/listpage.php
```php
<?php
$cateid = deid(get('cate'));
$pageno = getint('pageno', 1);
$pagecount = 20;
// 读取栏目信息
$cate = $db->getone("SELECT * FROM www_list_cate WHERE id = {$cateid}");
// 读取文章列表
$csql = new \ciy\sql('www_list_art');
$csql->where('cateid', $cateid);
$csql->limit(($pageno - 1) * $pagecount, $pagecount);
$csql->order('uptimes desc');
$csql->column('id,name,descs,uptimes');
$count = -1;
$articles = $db->get($csql, $count);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title><?php echo $cate['seotitle']; ?></title>
<meta name="keywords" content="<?php echo $cate['keyw']; ?>" />
<meta name="description" content="<?php echo $cate['descs']; ?>" />
</head>
<body>
<header>
<h1><?php echo $cate['name']; ?></h1>
</header>
<main>
<?php foreach ($articles as $art): ?>
<article>
<h2><a href="/wlist/<?php echo enid($cateid); ?>/art/<?php echo enid($art['id']); ?>">
<?php echo $art['name']; ?>
</a></h2>
<p><?php echo $art['descs']; ?></p>
<time><?php echo date('Y-m-d', $art['uptimes']); ?></time>
</article>
<?php endforeach; ?>
<!-- 分页 -->
<div class="pagination">
<?php
\web\cwebcomon::www_showpage(
$count,
$pageno,
$pagecount,
'/wlist/' . enid($cateid),
function($pageno) {
if ($pageno < 2) return '';
return '/p/' . $pageno;
}
);
?>
</div>
</main>
</body>
</html>
```
### 3. 文章详情页www/listart.php
```php
<?php
$id = deid(get('id'));
$cateid = deid(get('cate'));
// 读取文章
$article = $db->getone("SELECT * FROM www_list_art WHERE id = {$id}");
// 更新点击数
$db->update("UPDATE www_list_art SET clickcnt = clickcnt + 1 WHERE id = {$id}");
// 读取SEO关键词
$seowords = $db->get("SELECT * FROM www_seoword WHERE cateid = {$cateid}");
// 转换内容SEO关键词+Markdown
$content = \web\cwebcomon::www_convertseoword(
$seowords,
\ciy\web::markdown_convert($article['content']),
$article['keyw']
);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title><?php echo $article['seotitle']; ?></title>
<meta name="keywords" content="<?php echo $article['keyw']; ?>" />
<meta name="description" content="<?php echo $article['descs']; ?>" />
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "<?php echo $article['name']; ?>",
"datePublished": "<?php echo date('c', $article['uptimes']); ?>",
"author": {
"@type": "Person",
"name": "<?php echo $article['author']; ?>"
}
}
</script>
</head>
<body>
<article>
<h1><?php echo $article['name']; ?></h1>
<div class="meta">
<time><?php echo date('Y-m-d', $article['uptimes']); ?></time>
<span>阅读:<?php echo $article['clickcnt']; ?></span>
</div>
<div class="content">
<?php echo $content; ?>
</div>
</article>
<!-- 相关文章 -->
<section class="related">
<h3>相关文章</h3>
<?php
$related = $db->get("SELECT * FROM www_list_art WHERE cateid = {$cateid} AND id != {$id} ORDER BY RAND() LIMIT 5");
foreach ($related as $art) {
echo '<a href="/wlist/' . enid($cateid) . '/art/' . enid($art['id']) . '">' . $art['name'] . '</a>';
}
?>
</section>
</body>
</html>
```
## 开发规范
### 1. 数据库操作规范
- 使用 `\ciy\sql` 类进行数据库操作
- 所有输入必须过滤:`get()`, `post()`, `deid()`, `enid()`
- 避免SQL注入使用参数化查询
### 2. 安全规范
- XSS防护输出时使用 `htmlspecialchars()`
- CSRF防护表单添加token验证
- 文件上传:验证文件类型和大小
### 3. 性能规范
- 合理使用索引:`cateid`, `uptimes`, `preartstatus`
- 避免N+1查询使用JOIN优化
- 启用页面缓存和CDN
### 4. SEO规范
- 每个页面必须有title和meta标签
- URL必须静态化使用 `webpoint.php` 路由
- 图片必须添加alt属性
## 检查清单
### SEO检查项
- [ ] 所有页面都有title和meta标签
- [ ] URL结构清晰且静态化
- [ ] 图片添加alt和title属性
- [ ] 使用语义化HTML标签
- [ ] 实现面包屑导航
- [ ] 配置robots.txt
- [ ] 实现结构化数据
- [ ] 移动端适配良好
- [ ] 页面加载速度<3秒
### GEO检查项
- [ ] 文章结构清晰包含标题摘要背景概念案例步骤问答总结
- [ ] 内容长度充足2000字以上
- [ ] 提供真实案例和数据支撑
- [ ] 添加结构化数据标记Schema.org
- [ ] 建立知识图谱明确概念关系
- [ ] 自然植入品牌信息解决方案最佳实践
- [ ] 引用专家观点和行业报告
- [ ] 提供可操作的实施建议
### AI自动化检查项
- [ ] 配置定时任务
- [ ] 栏目配置AI提示词
- [ ] 关键词库维护
- [ ] 待发文章池充足
- [ ] 自动发布流程正常
## 最佳实践
1. **内容为王**AI生成内容+人工审核确保内容质量和原创性
2. **定期更新**配置日发布量保持网站活跃度
3. **关键词优化**使用长尾关键词提高转化率
4. **内链建设**自动插入关键词链接提升权重
5. **数据分析**监控文章点击量优化热门内容
6. **GEO优化**针对AI搜索引擎优化建立品牌权威让AI在用户提问时引用和推荐
## 总结
Ciyon框架的网站开发核心是
- **AI驱动**自动生成文章减少人工工作量
- **SEO优先**所有开发决策都以SEO为出发点
- **GEO优化**生成式引擎优化让AI训练爬虫收录内容在用户提问时引用和推荐网站内容
- **自动化**定时任务自动发布保持网站活跃度
- **可扩展**模块化设计易于扩展功能
通过以上规范和最佳实践可以快速搭建一个SEO友好性能优秀自动更新的网站