- {$arrVideo.v_name}
+ {$strPlayMainHeading}
{$arrVideo.v_category}
{$arrVideo.v_area}
{$arrVideo.v_year}
+ {$strPlayHeadingMeta}
diff --git a/code/app/home/view/videoGpt1/module/play/play_02.html b/code/app/home/view/videoGpt1/module/play/play_02.html
index c441c86..b6735d1 100644
--- a/code/app/home/view/videoGpt1/module/play/play_02.html
+++ b/code/app/home/view/videoGpt1/module/play/play_02.html
@@ -13,11 +13,12 @@
{// 基本信息 }
- {$arrVideo.v_name}
+ {$strPlayMainHeading}
{$arrVideo.v_category}
{$arrVideo.v_area}
{$arrVideo.v_year}
+ {$strPlayHeadingMeta}
主演:{$arrVideo.v_actor}
diff --git a/code/app/home/view/videoGpt1/module/play/play_03.html b/code/app/home/view/videoGpt1/module/play/play_03.html
index cbf7344..19f320b 100644
--- a/code/app/home/view/videoGpt1/module/play/play_03.html
+++ b/code/app/home/view/videoGpt1/module/play/play_03.html
@@ -13,9 +13,9 @@
-
{$arrVideo.v_name}
+
{$strPlayMainHeading}
- {$arrVideo.v_category} · {$arrVideo.v_area} · {$arrVideo.v_year}
+ {$arrVideo.v_category} · {$arrVideo.v_area} · {$arrVideo.v_year} · {$strPlayHeadingMeta}
主演:{$arrVideo.v_actor}
diff --git a/code/app/home/view/videoGpt1/module/play/play_04.html b/code/app/home/view/videoGpt1/module/play/play_04.html
index 1de8b61..0e52e8c 100644
--- a/code/app/home/view/videoGpt1/module/play/play_04.html
+++ b/code/app/home/view/videoGpt1/module/play/play_04.html
@@ -11,8 +11,8 @@
- {$arrVideo.v_name}
- {$arrVideo.v_year} · {$arrVideo.v_category} · {$arrVideo.v_area}
+ {$strPlayMainHeading}
+ {$arrVideo.v_year} · {$arrVideo.v_category} · {$arrVideo.v_area} · {$strPlayHeadingMeta}
{// 下拉线路 }
diff --git a/code/app/home/view/videoGpt1/module/play/play_05.html b/code/app/home/view/videoGpt1/module/play/play_05.html
index 677e3bb..e37f873 100644
--- a/code/app/home/view/videoGpt1/module/play/play_05.html
+++ b/code/app/home/view/videoGpt1/module/play/play_05.html
@@ -11,13 +11,13 @@
-
{$arrVideo.v_name}
+
{$strPlayMainHeading}
- {$arrVideo.v_year} · {$arrVideo.v_category} · {$arrVideo.v_area}
+ {$arrVideo.v_year} · {$arrVideo.v_category} · {$arrVideo.v_area} · {$strPlayHeadingMeta}
diff --git a/code/app/home/view/videoGpt1/module/player/engine/dplayer.html b/code/app/home/view/videoGpt1/module/player/engine/dplayer.html
index 9403b39..2052d9d 100644
--- a/code/app/home/view/videoGpt1/module/player/engine/dplayer.html
+++ b/code/app/home/view/videoGpt1/module/player/engine/dplayer.html
@@ -7,6 +7,10 @@
data-preload="{$pageCfg.player.opt.preload|default='metadata'}"
data-ratio="{$pageCfg.player.opt.ratio|default='16x9'}">
+
+ {$strPlayMainHeading|default=$arrVideo.v_name|default='正在播放'}
+
+
{if $variant == 0}
@@ -17,7 +21,7 @@
{elseif $variant == 2}
- {$arrVideo.v_name|default='正在播放'}
+ {$strPlayMainHeading|default=$arrVideo.v_name|default='正在播放'}
@@ -30,7 +34,7 @@
{elseif $variant == 4}
- {$arrVideo.v_name|default='正在播放'}
+ {$strPlayMainHeading|default=$arrVideo.v_name|default='正在播放'}
@@ -38,7 +42,7 @@
{elseif $variant == 5}
- {$arrVideo.v_name|default='正在播放'}
+ {$strPlayMainHeading|default=$arrVideo.v_name|default='正在播放'}
{elseif $variant == 6}
@@ -111,7 +115,7 @@
{elseif $variant == 18}
- {$arrVideo.v_name|default='正在播放'}
+ {$strPlayMainHeading|default=$arrVideo.v_name|default='正在播放'}
@@ -123,7 +127,7 @@
{else}
- {$arrVideo.v_name|default='正在播放'}
+ {$strPlayMainHeading|default=$arrVideo.v_name|default='正在播放'}
@@ -134,4 +138,4 @@
{/if}
-
\ No newline at end of file
+
diff --git a/code/app/home/view/videoGpt1/module/search/search_header_centered.html b/code/app/home/view/videoGpt1/module/search/search_header_centered.html
index 5e28b82..9059aba 100644
--- a/code/app/home/view/videoGpt1/module/search/search_header_centered.html
+++ b/code/app/home/view/videoGpt1/module/search/search_header_centered.html
@@ -2,7 +2,7 @@
{case value="0"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
搜索结果
@@ -11,21 +11,21 @@
Search
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
{/case}
{case value="2"}
-
“{$Request.get.keyword}”
Results
+ “{$Request.get.keyword}” 搜索结果
Results
{/case}
{case value="3"}
@@ -34,14 +34,14 @@
关键词
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
{/case}
{case value="5"}
-
搜索:{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
为你呈现匹配内容
@@ -49,7 +49,7 @@
{case value="6"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
@@ -58,14 +58,14 @@
{/case}
{case value="8"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
搜索结果页
@@ -73,7 +73,7 @@
{case value="9"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
精选匹配条目
换词
@@ -82,14 +82,14 @@
{/case}
{case value="11"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
相关搜索结果
@@ -97,7 +97,7 @@
{case value="12"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
结果列表
@@ -106,7 +106,7 @@
{case value="13"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
Search Result Page
@@ -114,7 +114,7 @@
{case value="14"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
- 全部
- 相关
@@ -125,7 +125,7 @@
{case value="15"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
展开提示
结果展示
@@ -136,7 +136,7 @@
{case value="16"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
按相关度排序
@@ -144,7 +144,7 @@
{case value="17"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
即时匹配
@@ -152,7 +152,7 @@
{case value="18"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
搜索结果
搜索结果
@@ -161,9 +161,9 @@
{case value="19"}
{/case}
-{/switch}
\ No newline at end of file
+{/switch}
diff --git a/code/app/home/view/videoGpt1/module/search/search_header_media.html b/code/app/home/view/videoGpt1/module/search/search_header_media.html
index 3a922a9..6d576da 100644
--- a/code/app/home/view/videoGpt1/module/search/search_header_media.html
+++ b/code/app/home/view/videoGpt1/module/search/search_header_media.html
@@ -1,6 +1,9 @@
{switch $variant}
{case value="0"}
+
+ {$Request.get.keyword} 搜索结果
+
🔍 {$Request.get.keyword}
@@ -8,6 +11,9 @@
{/case}
{case value="1"}
+
+ {$Request.get.keyword} 搜索结果
+
{$Request.get.keyword} · 搜索结果
@@ -16,6 +22,9 @@
{/case}
{case value="2"}
+
+ {$Request.get.keyword} 搜索结果
+
⌕{$Request.get.keyword}
@@ -25,6 +34,9 @@
{/case}
{case value="3"}
+
+ {$Request.get.keyword} 搜索结果
+
Search: {$Request.get.keyword}Results
@@ -32,6 +44,9 @@
{/case}
{case value="4"}
+
+ {$Request.get.keyword} 搜索结果
+
{$Request.get.keyword}
@@ -40,6 +55,9 @@
{/case}
{case value="5"}
+
+ {$Request.get.keyword} 搜索结果
+
“{$Request.get.keyword}”
@@ -48,6 +66,9 @@
{/case}
{case value="6"}
+
+ {$Request.get.keyword} 搜索结果
+
{$Request.get.keyword}
搜索结果页
@@ -56,6 +77,9 @@
{/case}
{case value="7"}
+
+ {$Request.get.keyword} 搜索结果
+
{$Request.get.keyword}
@@ -64,6 +88,9 @@
{/case}
{case value="8"}
+
+ {$Request.get.keyword} 搜索结果
+
TAG{$Request.get.keyword}
@@ -71,6 +98,9 @@
{/case}
{case value="9"}
+
+ {$Request.get.keyword} 搜索结果
+
{$Request.get.keyword}
@@ -79,6 +109,9 @@
{/case}
{case value="10"}
+
+ {$Request.get.keyword} 搜索结果
+
{$Request.get.keyword}
@@ -90,6 +123,9 @@
{/case}
{case value="11"}
+
+ {$Request.get.keyword} 搜索结果
+
{$Request.get.keyword}
@@ -101,6 +137,9 @@
{/case}
{case value="12"}
+
+ {$Request.get.keyword} 搜索结果
+
{$Request.get.keyword}
@@ -109,6 +148,9 @@
{/case}
{case value="13"}
+
+ {$Request.get.keyword} 搜索结果
+
{$Request.get.keyword}
@@ -117,6 +159,9 @@
{/case}
{case value="14"}
+
+ {$Request.get.keyword} 搜索结果
+
🔎 {$Request.get.keyword}
@@ -125,6 +170,9 @@
{/case}
{case value="15"}
+
+ {$Request.get.keyword} 搜索结果
+
{$Request.get.keyword}
@@ -133,6 +181,9 @@
{/case}
{case value="16"}
+
+ {$Request.get.keyword} 搜索结果
+
{$Request.get.keyword}
@@ -142,6 +193,9 @@
{/case}
{case value="17"}
+
+ {$Request.get.keyword} 搜索结果
+
{$Request.get.keyword}
@@ -150,6 +204,9 @@
{/case}
{case value="18"}
+
+ {$Request.get.keyword} 搜索结果
+
{$Request.get.keyword}
@@ -158,10 +215,13 @@
{/case}
{case value="19"}
+
+ {$Request.get.keyword} 搜索结果
+
{$Request.get.keyword}
{/case}
-{/switch}
\ No newline at end of file
+{/switch}
diff --git a/code/app/home/view/videoGpt1/module/search/search_header_rich.html b/code/app/home/view/videoGpt1/module/search/search_header_rich.html
index dee34ad..95844ea 100644
--- a/code/app/home/view/videoGpt1/module/search/search_header_rich.html
+++ b/code/app/home/view/videoGpt1/module/search/search_header_rich.html
@@ -2,7 +2,7 @@
{case value="0"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
与你查询相关的内容合集
@@ -12,7 +12,7 @@
搜索结果
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
@@ -20,7 +20,7 @@
{case value="2"}
- “{$Request.get.keyword}”
+ “{$Request.get.keyword}” 搜索结果
为你推荐相关内容
@@ -34,7 +34,7 @@
{case value="3"}
- 搜索:{$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
相关
@@ -45,7 +45,7 @@
{case value="4"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
结果列表
@@ -54,7 +54,7 @@
{case value="5"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
按热度聚合的搜索内容
@@ -64,7 +64,7 @@
关键词
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
@@ -72,7 +72,7 @@
{case value="7"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
摘要
@@ -93,7 +93,7 @@
{case value="9"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
相关内容已按主题整理
@@ -107,7 +107,7 @@
{case value="10"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
@@ -115,7 +115,7 @@
{case value="11"}
- 搜索结果
+ {$Request.get.keyword} 搜索结果
关键词:{$Request.get.keyword}
@@ -128,7 +128,7 @@
{case value="12"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
搜索结果展示页
@@ -137,7 +137,7 @@
{case value="13"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
你可能还想找:
@@ -146,7 +146,7 @@
{case value="14"}
- “{$Request.get.keyword}”
+ “{$Request.get.keyword}” 搜索结果
概览
@@ -157,7 +157,7 @@
{case value="15"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
结果已按相关度排序
@@ -166,7 +166,7 @@
{case value="16"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
站内搜索
@@ -175,7 +175,7 @@
{case value="17"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
@@ -188,7 +188,7 @@
{case value="18"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
聚合页
@@ -204,10 +204,10 @@
{case value="19"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
内容合集
{/case}
-{/switch}
\ No newline at end of file
+{/switch}
diff --git a/code/app/home/view/videoGpt1/module/search/search_header_seo.html b/code/app/home/view/videoGpt1/module/search/search_header_seo.html
index 3591fdf..7cbdf8e 100644
--- a/code/app/home/view/videoGpt1/module/search/search_header_seo.html
+++ b/code/app/home/view/videoGpt1/module/search/search_header_seo.html
@@ -7,51 +7,50 @@
{/case}
{case value="1"}
- 搜索:{$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
结果列表
-
{/case}
{case value="2"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
搜索结果页
{/case}
{case value="3"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
站内搜索结果
{/case}
{case value="4"}
- {$Request.get.keyword} 相关内容
+ {$Request.get.keyword} 搜索结果
搜索结果
{/case}
{case value="5"}
-
“{$Request.get.keyword}”
+
“{$Request.get.keyword}” 搜索结果
搜索结果列表页
{/case}
{case value="6"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
结果页(SEO)
{/case}
{case value="7"}
-
关键词:{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
搜索结果
{/case}
{case value="8"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
索引列表页
@@ -64,27 +63,25 @@
{/case}
{case value="10"}
- 搜索结果
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
{/case}
{case value="11"}
- 查询词
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
结果页
{/case}
{case value="12"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
聚合结果页
可抓取
{/case}
{case value="13"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
搜索结果目录
- 关键词
@@ -94,7 +91,7 @@
{/case}
{case value="14"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
结果页
- 相关
@@ -104,20 +101,20 @@
{/case}
{case value="15"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
搜索结果索引
站内
{/case}
{case value="16"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
Search result page
{/case}
{case value="17"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
结果列表页
说明
@@ -127,17 +124,17 @@
{/case}
{case value="18"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
站内搜索
list
{/case}
{case value="19"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
搜索结果
indexable
{/case}
-{/switch}
\ No newline at end of file
+{/switch}
diff --git a/code/app/home/view/videoGpt1/module/search/search_header_simple.html b/code/app/home/view/videoGpt1/module/search/search_header_simple.html
index 33de670..600aa08 100644
--- a/code/app/home/view/videoGpt1/module/search/search_header_simple.html
+++ b/code/app/home/view/videoGpt1/module/search/search_header_simple.html
@@ -1,13 +1,12 @@
{switch $variant}
{case value="0"}
- 搜索:{$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
{/case}
{case value="1"}
{/case}
{case value="2"}
@@ -18,24 +17,23 @@
{/case}
{case value="3"}
-
{$Request.get.keyword}
结果页
+ {$Request.get.keyword} 搜索结果
结果页
{/case}
{case value="4"}
{/case}
{case value="5"}
- “{$Request.get.keyword}”
+ “{$Request.get.keyword}” 搜索结果
相关条目如下
{/case}
{case value="6"}
-
查询
+
{$Request.get.keyword} 搜索结果
@@ -43,49 +41,47 @@
{/case}
{case value="7"}
- 搜索结果:
- {$Request.get.keyword}
+ 搜索结果:{$Request.get.keyword}
{/case}
{case value="8"}
Search
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
{/case}
{case value="9"}
- 结果:{$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
可尝试同义词
{/case}
{case value="10"}
-
{$Request.get.keyword}
+
{$Request.get.keyword} 搜索结果
搜索结果列表
{/case}
{case value="11"}
- 站内搜索
- 关键词:{$Request.get.keyword}
+ {$Request.get.keyword} 站内搜索结果
{/case}
{case value="12"}
{/case}
{case value="13"}
- 关于 {$Request.get.keyword}
+ 关于 {$Request.get.keyword} 的搜索结果
{/case}
{case value="14"}
-
搜索
+
{$Request.get.keyword} 搜索结果
- 关键词
- {$Request.get.keyword}
@@ -94,34 +90,33 @@
{/case}
{case value="15"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
{/case}
{case value="16"}
- 检索:{$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
为你整理相关内容
{/case}
{case value="17"}
搜索
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
{/case}
{case value="18"}
- {$Request.get.keyword}
+ {$Request.get.keyword} 搜索结果
结果页
{/case}
{case value="19"}
{/case}
-{/switch}
\ No newline at end of file
+{/switch}
diff --git a/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html b/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html
index fbb58fc..3144052 100644
--- a/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html
+++ b/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html
@@ -50,6 +50,19 @@
$strCurrentEpisodeName = trim((string)$arrPlayGroups[$strCurrentPlayType][$intCurrentPlayIndex - 1]['name']);
}
+ $strPlayMainHeading = trim((string)($arrVideo['v_name'] ?? ''));
+ if ($strPlayMainHeading === '') {
+ $strPlayMainHeading = '当前内容';
+ }
+ if ($strCurrentEpisodeName !== '') {
+ $strPlayMainHeading .= ' ' . $strCurrentEpisodeName;
+ }
+
+ $strPlayHeadingMeta = trim($strCurrentPlayLine);
+ if ($strPlayHeadingMeta === '') {
+ $strPlayHeadingMeta = '在线播放';
+ }
+
$strPlayDetailUrl = '';
if ((int)($arrVideo['v_id'] ?? 0) > 0) {
$strPlayDetailUrl = app(\app\services\VideoService::class)->getVideoInfoUrl(
diff --git a/code/app/services/SiteContext.php b/code/app/services/SiteContext.php
index e19e3b7..e6b135d 100644
--- a/code/app/services/SiteContext.php
+++ b/code/app/services/SiteContext.php
@@ -99,11 +99,7 @@ class SiteContext
*/
public function getViewConfig(): array
{
- $strDomain = $this->Request->rootDomain();
-
- $this->DomainModel = DomainModel::getDomainOnCacheByDomain($strDomain);
-
-
+ $this->DomainModel = $this->resolveCurrentDomainModel();
if (empty($this->DomainModel)) {
throw new HttpException(404, 'Site config not Found');
@@ -1159,8 +1155,7 @@ class SiteContext
public function getTemplate(): string
{
- $strDomain = $this->Request->rootDomain();
- $this->DomainModel = DomainModel::getDomainOnCacheByDomain($strDomain);
+ $this->DomainModel = $this->resolveCurrentDomainModel();
if (empty($this->DomainModel)) {
throw new HttpException(404, 'Site config not Found');
@@ -1173,6 +1168,19 @@ class SiteContext
return $this->TemplatesModel['t_code'];
}
+ protected function resolveCurrentDomainModel(): ?DomainModel
+ {
+ $strHost = (string)$this->Request->host();
+ $arrResolvedDomain = DomainModel::resolveDomainContextByHost($strHost);
+ $RuntimeDomainModel = $arrResolvedDomain['runtime'] ?? null;
+ if ($RuntimeDomainModel instanceof DomainModel) {
+ return $RuntimeDomainModel;
+ }
+
+ $strDomain = (string)$this->Request->rootDomain();
+ return DomainModel::getDomainOnCacheByDomain($strDomain);
+ }
+
public function getPinlunData(int $intVideoId): array
{
$strDomain = $this->DomainModel->d_domain ?? request()->domain();
diff --git a/code/app/services/VideoService.php b/code/app/services/VideoService.php
index 6e10b77..6c3aa9a 100644
--- a/code/app/services/VideoService.php
+++ b/code/app/services/VideoService.php
@@ -887,13 +887,21 @@ class VideoService
$intVId = (int)$intVId;
$intVForgeId = $intVForgeId === null ? -1 : (int)$intVForgeId;
$strPinyin = trim((string)$strPinyin);
+ $boolRequirePlayable = (string)request()->route('strPlayType') !== '' || (int)request()->route('intPlayIndex') > 0;
if ($intVId > 0) {
return $this->getVideoByVId($intVId, $intVForgeId);
}
if ($strPinyin !== '') {
- $arrVideo = $this->VideoModel->getVideoByNameEn($strPinyin);
+ foreach ($this->normalizeRouteSlugCandidates($strPinyin) as $strSlugCandidate) {
+ $arrVideo = $this->VideoModel->getVideoByNameEn($strSlugCandidate);
+ if (!empty($arrVideo)) {
+ return $this->hydrateResolvedVideo($arrVideo, (int)($arrVideo['v_id'] ?? 0), $intVForgeId);
+ }
+ }
+
+ $arrVideo = $this->resolveFallbackVideoBySlug($strPinyin, $boolRequirePlayable);
if (!empty($arrVideo)) {
return $this->hydrateResolvedVideo($arrVideo, (int)($arrVideo['v_id'] ?? 0), $intVForgeId);
}
@@ -902,11 +910,81 @@ class VideoService
return $this->getVideoByVId($intVId, $intVForgeId);
}
+ protected function normalizeRouteSlugCandidates(string $strPinyin): array
+ {
+ $strPinyin = strtolower(trim($strPinyin));
+ if ($strPinyin === '') {
+ return [];
+ }
+
+ $arrCandidates = [$strPinyin];
+
+ if (str_starts_with($strPinyin, 'pinyin-')) {
+ $arrCandidates[] = substr($strPinyin, 7);
+ }
+
+ $arrNormalized = [];
+ foreach ($arrCandidates as $candidate) {
+ $candidate = trim((string)$candidate, "- \t\n\r\0\x0B");
+ if ($candidate === '') {
+ continue;
+ }
+ $arrNormalized[$candidate] = $candidate;
+ }
+
+ return array_values($arrNormalized);
+ }
+
+ protected function resolveFallbackVideoBySlug(string $requestedSlug, bool $requirePlayable = false): ?array
+ {
+ $arrCandidates = $this->normalizeRouteSlugCandidates($requestedSlug);
+ if (empty($arrCandidates)) {
+ return null;
+ }
+
+ $strHost = (string)($this->SiteContext->DomainModel->d_domain ?? 'default');
+ $arrBindings = $this->readFallbackBindings($strHost);
+
+ foreach ($arrCandidates as $strSlugCandidate) {
+ $strBindingKey = 'slug:' . $strSlugCandidate;
+ $boundVId = (int)($arrBindings[$strBindingKey] ?? 0);
+
+ if ($boundVId > 0) {
+ $arrVideo = $this->VideoModel->getVideoByVId($boundVId);
+ if (!empty($arrVideo) && (!$requirePlayable || $this->hasPlayableSource($arrVideo))) {
+ $arrVideo['_fallback_reason'] = 'bound_slug_video';
+ $arrVideo['_requested_slug'] = $requestedSlug;
+ return $arrVideo;
+ }
+ }
+ }
+
+ $arrVideo = $this->resolveFallbackVideoByRequest(0, $requirePlayable);
+ if (empty($arrVideo)) {
+ return null;
+ }
+
+ $intResolvedVId = (int)($arrVideo['v_id'] ?? 0);
+ if ($intResolvedVId <= 0) {
+ return null;
+ }
+
+ foreach ($arrCandidates as $strSlugCandidate) {
+ $arrBindings['slug:' . $strSlugCandidate] = $intResolvedVId;
+ }
+ $this->writeFallbackBindings($strHost, $arrBindings);
+
+ $arrVideo['_fallback_reason'] = 'random_slug_video';
+ $arrVideo['_requested_slug'] = $requestedSlug;
+ return $arrVideo;
+ }
+
protected function resolveFallbackVideoByRequest(int $requestedVId, bool $requirePlayable = false): ?array
{
$strHost = (string)($this->SiteContext->DomainModel->d_domain ?? 'default');
$arrBindings = $this->readFallbackBindings($strHost);
- $strBindingKey = (string)$requestedVId;
+ $boolPersistBinding = $requestedVId > 0;
+ $strBindingKey = $boolPersistBinding ? (string)$requestedVId : '';
$this->debugFallbackProbe('enter_resolve_fallback', [
'requested_v_id' => $requestedVId,
@@ -915,7 +993,7 @@ class VideoService
'existing_bindings' => count($arrBindings),
]);
- $boundVId = (int)($arrBindings[$strBindingKey] ?? 0);
+ $boundVId = $boolPersistBinding ? (int)($arrBindings[$strBindingKey] ?? 0) : 0;
if ($boundVId > 0 && $boundVId !== $requestedVId) {
$arrVideo = $this->VideoModel->getVideoByVId($boundVId);
if (!empty($arrVideo) && (!$requirePlayable || $this->hasPlayableSource($arrVideo))) {
@@ -964,8 +1042,10 @@ class VideoService
continue;
}
- $arrBindings[$strBindingKey] = $candidateId;
- $this->writeFallbackBindings($strHost, $arrBindings);
+ if ($boolPersistBinding) {
+ $arrBindings[$strBindingKey] = $candidateId;
+ $this->writeFallbackBindings($strHost, $arrBindings);
+ }
$this->debugFallbackProbe('sample_success', [
'requested_v_id' => $requestedVId,
'candidate_v_id' => $candidateId,
@@ -982,8 +1062,10 @@ class VideoService
if (!empty($arrVideo)) {
$candidateId = (int)($arrVideo['v_id'] ?? 0);
if ($candidateId > 0 && $candidateId !== $requestedVId) {
- $arrBindings[$strBindingKey] = $candidateId;
- $this->writeFallbackBindings($strHost, $arrBindings);
+ if ($boolPersistBinding) {
+ $arrBindings[$strBindingKey] = $candidateId;
+ $this->writeFallbackBindings($strHost, $arrBindings);
+ }
$this->debugFallbackProbe('ordered_fallback_success', [
'requested_v_id' => $requestedVId,
'candidate_v_id' => $candidateId,
diff --git a/code/app/task/logic/SiteMapLogic.php b/code/app/task/logic/SiteMapLogic.php
index e6afff5..a2ab5a6 100644
--- a/code/app/task/logic/SiteMapLogic.php
+++ b/code/app/task/logic/SiteMapLogic.php
@@ -111,7 +111,7 @@ class SiteMapLogic
$strDomainDir = $this->strSiteMapPath . $DomainModel->d_domain;
if (is_dir($strDomainDir) == false) {
- mkdir($strDomainDir);
+ mkdir($strDomainDir, 0777, true);
}
$strHead = <<strSiteMapPath . $DomainModel->d_domain;
if (is_dir($strDomainDir) == false) {
- mkdir($strDomainDir);
+ mkdir($strDomainDir, 0777, true);
}
$strMapIndexFile = $strDomainDir . '/sitemap-main.xml';
diff --git a/code/app/task/logic/VideoSiteMapLogic.php b/code/app/task/logic/VideoSiteMapLogic.php
index 66164d1..c44815f 100644
--- a/code/app/task/logic/VideoSiteMapLogic.php
+++ b/code/app/task/logic/VideoSiteMapLogic.php
@@ -127,6 +127,25 @@ class VideoSiteMapLogic
echo date('Y-m-d H:i:s') . PHP_EOL;
}
+
+ protected function normalizeVideoSlug($Video): string
+ {
+ $strSlug = trim((string)($Video->v_name_en ?? ''));
+ if ($strSlug !== '') {
+ return $strSlug;
+ }
+
+ $strName = trim((string)($Video->v_name ?? ''));
+ if ($strName === '') {
+ return 'video';
+ }
+
+ $strSlug = mb_strtolower($strName, 'UTF-8');
+ $strSlug = preg_replace('/[^\\p{L}\\p{N}]+/u', '-', $strSlug);
+ $strSlug = trim((string)$strSlug, '-');
+
+ return $strSlug !== '' ? $strSlug : 'video';
+ }
/**
* Generate Site Map
*
@@ -140,7 +159,7 @@ class VideoSiteMapLogic
$strDomainDir = $this->strSiteMapPath . $DomainModel->d_domain;
if (is_dir($strDomainDir) == false) {
- mkdir($strDomainDir);
+ mkdir($strDomainDir, 0777, true);
}
// 通过域名获取对应的模板
@@ -181,6 +200,7 @@ EOF;
# 取 intpage * limit ~ intpage * (limit+1) 写入以上文件
foreach ($this->fetchVideosByBatch($intStart, $this->intPageSize) as $Video) {
+ $strSlug = $this->normalizeVideoSlug($Video);
# 1 '/voddetail/{strPinYin}-{intVId}',
$strKey = "VIDEO_INFO_URL";
@@ -189,8 +209,8 @@ EOF;
$strAction = "";
$arrArgs = [
'intVId' => $Video->v_id,
- 'strPinYin' => '',
- 'strPinyin' => '',
+ 'strPinYin' => $strSlug,
+ 'strPinyin' => $strSlug,
];
if ($arrUrlFamily && !empty($arrUrlFamily)) {
@@ -272,7 +292,7 @@ $arrUrlPool = [];
$strDomainDir = $this->strSiteMapPath . $DomainModel->d_domain;
if (is_dir($strDomainDir) == false) {
- mkdir($strDomainDir);
+ mkdir($strDomainDir, 0777, true);
}
$strMapIndexFile = $strDomainDir . '/sitemap-main.xml';
@@ -600,10 +620,11 @@ EOF;
$isFirst = true;
foreach ($this->fetchVideosByBatch($intStart, $this->intPageSize) as $Video) {
+ $strSlug = $this->normalizeVideoSlug($Video);
$arrArgs = [
'intVId' => $Video->v_id,
- 'strPinyin' => $Video->v_name_en,
- 'strPinYin' => $Video->v_name_en,
+ 'strPinyin' => $strSlug,
+ 'strPinYin' => $strSlug,
];
if ($arrUrlFamily && !empty($arrUrlFamily)) {
diff --git a/docs/2026-04-17-当前阶段总结.md b/docs/2026-04-17-当前阶段总结.md
index 13bfb5b..7dc8c15 100644
--- a/docs/2026-04-17-当前阶段总结.md
+++ b/docs/2026-04-17-当前阶段总结.md
@@ -163,3 +163,344 @@
3. 排障先看响应头,不要先怀疑代码
4. `sogou` 恢复已拿到真实深页 `200` 样本
5. 日志摘要读取已经换字段,不能再只看 `by_bot`
+
+## 8. 详情页 slug-only 404 修复
+
+`2026-04-17` 已补一轮详情页历史坏链接兜底,重点针对:
+
+1. `/detail/pinyin-xxx`
+2. `/detail/xxx`
+3. 没有 `id`、只有 slug 的旧外链或旧 sitemap 残留
+
+当前修复口径:
+
+1. 路由层补放行,不再让这类 URL 直接死在路由 404
+2. 服务层会先做 slug 归一化:
+ - 例如把 `pinyin-se-ji-shi-kong-yuan-sheng-ban` 继续尝试成 `se-ji-shi-kong-yuan-sheng-ban`
+3. 如果库里仍查不到对应 slug:
+ - 不直接 404
+ - 按域名做稳定随机绑定,后续同 slug 重复访问会尽量落到同一个视频
+
+这条规则的目标不是“技术上兼容一下”,而是:
+
+1. 先把历史坏入口从 404 池里移出来
+2. 降低蜘蛛撞到硬 404 的概率
+3. 给后续 7 日收录和首页词冲量留入口
+## 2026-04-17 线上补修:`liangzuan.net` 域名恢复、无 id 详情兜底、HEAD 兼容修复
+
+### 现象
+
+- `liangzuan.net` 整站一度出现首页、分类、详情、播放、搜索全部 404。
+- 用户重点反馈这类 URL 不允许再 404:
+ - `https://www.liangzuan.net/detail/pinyin-se-ji-shi-kong-yuan-sheng-ban`
+- 同时线上探测发现一个隐蔽问题:
+ - 浏览器 `GET` 可以打开的深层详情页,`HEAD` 请求仍然返回 404。
+ - 这会导致监控、探测器、部分抓取链路把页面误判为失效。
+
+### 根因
+
+#### 1. 站点域名配置丢失
+
+- 数据库 `domain` 表中,`liangzuan.net` 记录已经消失。
+- 这不是模板渲染问题,而是域名上下文直接丢了,导致整站路由命中后仍无法正确解析站点配置。
+
+#### 2. 站点上下文仍走旧域名解析方式
+
+- `SiteContext` 里部分逻辑还在用旧的:
+ - `rootDomain()`
+ - `DomainModel::getDomainOnCacheByDomain(...)`
+- 对 `www`、裸域、运行时 host 的兼容不够稳。
+
+#### 3. GPT 模板路由只注册了 `GET`
+
+- 详情页、播放页、历史兼容深链都能被浏览器正常访问。
+- 但 `HEAD` 请求没有命中路由,所以会直接落到 404。
+
+### 已完成修复
+
+#### 1. 恢复 `liangzuan.net` 域名记录
+
+- 基于历史 bootstrap 包重新注册域名。
+- 重新绑定模板 `videoGpt1`。
+- 重新应用该域名的 SEO bootstrap 配置。
+
+结果:
+
+- 站点首页重新恢复 `200`。
+- 域名上下文重新可用。
+
+#### 2. 修复 `SiteContext` 域名解析
+
+文件:
+
+- `/www/wwwroot/diff-maccms/SEONexus/code/app/services/SiteContext.php`
+
+调整:
+
+- `getViewConfig()` 和 `getTemplate()` 改为优先使用 `DomainModel::resolveDomainContextByHost(...)`
+- 对当前请求 host 做运行时解析
+- 旧缓存解析方式保留为兜底
+
+效果:
+
+- 裸域、`www`、运行时 host 命中更稳
+- 不再因为旧解析链导致模板/站点配置取错
+
+#### 3. 修复“无 id 的详情页”兜底策略
+
+文件:
+
+- `/www/wwwroot/diff-maccms/SEONexus/code/app/services/VideoService.php`
+- `/www/wwwroot/diff-maccms/SEONexus/code/app/home/config/router.php`
+
+调整:
+
+- 详情路由支持仅 slug 访问
+- 支持 `pinyin-` 前缀 slug 归一化
+- 当 URL 不带 id、数据库没有直接匹配记录时,进入稳定兜底绑定
+- 避免再因 `requestedVId = 0` 写入错误绑定
+
+效果:
+
+- `detail/pinyin-...` 这类旧深链不再直接 404
+- 即使缺少 id,也会落到可展示的详情内容
+
+#### 4. 修复 GPT 模板深链 `HEAD` 返回 404
+
+文件:
+
+- `/www/wwwroot/diff-maccms/SEONexus/code/app/home/config/router.php`
+
+调整:
+
+- 在 `videoGpt1` 分支新增统一注册器:
+ - `Route::rule(..., 'GET|HEAD')`
+- 公共路由与冻结 family 路由统一支持 `GET` 和 `HEAD`
+- 历史兼容深链注册器也一起继承该行为
+
+效果:
+
+- 之前 `GET=200 / HEAD=404` 的详情深链,现在两者都为 `200`
+
+### 线上复测结果
+
+#### 1. 无 id 详情页
+
+- `GET https://www.liangzuan.net/detail/pinyin-se-ji-shi-kong-yuan-sheng-ban`
+- 已返回 `200`
+
+#### 2. 常规详情页
+
+- `GET https://www.liangzuan.net/film/sheng-dan-bu-du-xing-meng-fei-si-lian-qu/154124`
+- 已返回 `200`
+
+#### 3. 深链 `HEAD` 探测
+
+- `HEAD https://www.liangzuan.net/detail/pinyin-se-ji-shi-kong-yuan-sheng-ban`
+- 已返回 `200`
+
+- `HEAD https://www.liangzuan.net/film/sheng-dan-bu-du-xing-meng-fei-si-lian-qu/154124`
+- 已返回 `200`
+
+### 对 7 日收录目标的直接价值
+
+- 站点不再因为域名配置丢失而整站失活
+- 旧深链、无 id 深链、历史兼容详情页不再轻易 404
+- 抓取探针和监控不会再把可访问详情页误判为失效页
+- 这一步属于收录链路里的基础设施修复,已经把“入口级拦路虎”清掉了
+
+### 下一阶段建议主线
+
+1. 批量扫描 GPT 模板所有详情/播放/分类深链,清理剩余 404 模式。
+2. 针对 `/detail/pinyin-*`、`/film/*`、`/play/*` 输出结构化 URL 巡检报表。
+3. 补做站群级 sitemap、robots、内链入口一致性检查,优先服务 7 日收录目标。
+
+## 2026-04-17 站群收录入口补修:Sitemap 统一恢复
+
+### 扫描发现
+
+- GPT 站群首页和 `robots.txt` 普遍可访问。
+- 但多站点 `sitemap.xml`、`sitemap_index.xml`、`sitemap-main.xml`、`sitemap-videos-1.xml` 统一返回 404。
+- 模板页脚和 `robots.txt` 实际都在输出:
+ - `/sitemap_index.xml`
+- 这意味着蜘蛛会被主动引导到 404 的 XML 入口,直接拖累 7 日收录目标。
+
+### 深层根因
+
+#### 1. 标准 sitemap 入口缺少显式兼容
+
+文件:
+
+- `/www/wwwroot/diff-maccms/SEONexus/code/app/home/config/router.php`
+
+处理:
+
+- 补了以下标准入口兼容:
+ - `/sitemap.xml`
+ - `/sitemap_index.xml`
+ - `/sitemap-main.xml`
+ - `/sitemap-videos-:page.xml`
+
+#### 2. 生成目录缺失导致 sitemap 任务直接失败
+
+文件:
+
+- `/www/wwwroot/diff-maccms/SEONexus/code/app/task/logic/VideoSiteMapLogic.php`
+- `/www/wwwroot/diff-maccms/SEONexus/code/app/task/logic/SiteMapLogic.php`
+
+问题:
+
+- `storage/SiteMap/` 目录当时不存在
+- 逻辑里仅 `mkdir($strDomainDir)`,不会递归创建父目录
+- 所以首次生成会直接报错,整个 XML 文件链路断掉
+
+修复:
+
+- 改为 `mkdir($strDomainDir, 0777, true)`
+
+### 已完成验证
+
+#### liangzuan.net
+
+- `https://www.liangzuan.net/sitemap_index.xml` => 200
+- `https://www.liangzuan.net/sitemap-main.xml` => 200
+- `https://www.liangzuan.net/sitemap-videos-1.xml` => 200
+
+#### chuanjiafeng.net
+
+- `https://www.chuanjiafeng.net/sitemap_index.xml` => 200
+
+### 当前执行状态
+
+- 已启动 GPT 站群全量 `VideoSiteMap` 生成任务
+- 任务正在逐域名落盘:
+ - `storage/SiteMap//sitemap_index.xml`
+ - `storage/SiteMap//sitemap-main.xml`
+ - `storage/SiteMap//sitemap-videos-*.xml`
+ - `storage/SiteMap//video-list-*.json`
+
+### 对 7 日收录目标的价值
+
+- 站群不再把蜘蛛导向失效的 XML 入口
+- 每个域名开始具备可提交、可抓取、可扩展的视频 XML 分页
+- 这一步是“收录入口层”的关键修复,优先级非常高
+
+### 二次修正:sitemap 详情 URL 空 slug 问题
+
+在恢复 XML 后继续抽检时,又发现一类会伤收录质量的问题:
+
+- 部分 `sitemap-videos-1.xml` 中详情链接出现空 slug
+- 例如:
+ - `/film//210`
+ - `/detail/-210`
+
+根因:
+
+- `VideoSiteMapLogic` 直接用 `v_name_en` 生成详情 URL
+- 但部分视频数据的 `v_name_en` 为空
+
+修复:
+
+- 在 `VideoSiteMapLogic` 内新增 `normalizeVideoSlug(...)`
+- 优先使用 `v_name_en`
+- 若为空,则回退到 `v_name`
+- 再做稳定 slug 归一化,保证至少输出可抓取的详情路径
+
+修复后抽样结果:
+
+- `https://www.liangzuan.net/film/wei-xian-de-fei-pang/210` => GET 200 / HEAD 200
+- `https://www.cnzhenbang.com/detail/wei-xian-de-fei-pang-210` => GET 200 / HEAD 200
+- `https://www.liangzuan.net/film/mo-li-mei/213` => GET 200 / HEAD 200
+- `https://www.cnzhenbang.com/detail/mo-li-mei-213` => GET 200 / HEAD 200
+
+### 轨迹探针验收:5 个 GPT 站首页→搜索→详情→播放全通过
+
+已使用自动样本发现 + 轨迹探针,对以下 5 个站做真实链路验收:
+
+- `liangzuan.net`
+- `cnzhenbang.com`
+- `codohealth.com`
+- `jingxifa.com`
+- `gz-yxsw.com`
+
+结果:
+
+- 首页:全部 `200`
+- 搜索:全部 `200`
+- 详情:全部 `200`
+- 播放:全部 `200`
+- `all_passed = 1`
+
+这说明当前 GPT 站群至少在抽样层面,已经不是“只有 sitemap 文件可用”,而是“收录入口 -> 搜索承接 -> 详情页 -> 播放页”这一条真实访问链路可用。
+
+### 扩样验收:15 个 GPT 站真实链路全通过
+
+在 5 个样板站通过后,继续扩样到 15 个 GPT 域名:
+
+- `liangzuan.net`
+- `cnzhenbang.com`
+- `codohealth.com`
+- `jingxifa.com`
+- `gz-yxsw.com`
+- `glae.cc`
+- `gxhongzhuang.com`
+- `jpjdxs.com`
+- `jxxgygy.com`
+- `lcdchq.com`
+- `leici1940.com`
+- `lgyz.net`
+- `oronorent.com`
+- `pcslcl.com`
+- `sdxtwnc.com`
+
+结果:
+
+- 自动样本发现全部 `sample_status=passed`
+- 15 站首页全部 `200`
+- 15 站搜索页全部 `200`
+- 15 站详情页全部 `200`
+- 15 站播放页全部 `200`
+- 15 站 `all_passed=1`
+
+说明:
+
+- 当前 GPT 站群的主链路并不是零星恢复,而是已经具备批量稳定性
+- URL family 虽然各不相同,但都已经通过真实轨迹验收
+
+### 搜索页 H1 二次收口
+
+在搜索链路复查时,又发现一类“可访问但不够强 SEO”的问题:
+
+- 部分搜索页虽然已返回 `200`
+- 但 `h1` 只输出裸关键词,或输出“相关内容 / 查询词 / 结果页”这类弱意图标题
+- 这会削弱搜索页对关键词与搜索意图的直接承接,不利于收录页稳定识别
+
+本轮已统一修正 `videoGpt1` 搜索头模板:
+
+- `app/home/view/videoGpt1/module/search/search_header_simple.html`
+- `app/home/view/videoGpt1/module/search/search_header_seo.html`
+- `app/home/view/videoGpt1/module/search/search_header_rich.html`
+- `app/home/view/videoGpt1/module/search/search_header_centered.html`
+
+修正原则:
+
+- 搜索页 `h1` 不再只显示裸关键词
+- 搜索页 `h1` 不再只显示“搜索结果 / 查询词 / 站内搜索 / 相关内容”这类空壳文案
+- 统一改为“关键词 + 搜索结果 / 搜索意图词”的可索引表达
+
+线上 `?__nocache=1` 抽样结果:
+
+- `https://www.liangzuan.net/get/index?keyword=liangzuan.net&__nocache=1`
+ - `h1 => “liangzuan.net” 搜索结果`
+- `https://www.cnzhenbang.com/query?keyword=菜鸟臻榜&__nocache=1`
+ - `h1 => 菜鸟臻榜 搜索结果`
+- `https://www.jingxifa.com/get-index?keyword=京淅发影院&__nocache=1`
+ - `h1 => 京淅发影院 搜索结果`
+
+附带确认:
+
+- 各域名搜索入口并不统一,不能用单一 `/search?keyword=` 判断线上是否异常
+- 当前已确认示例:
+ - `liangzuan.net => /get/index?keyword=...`
+ - `cnzhenbang.com => /query?keyword=...`
+ - `jingxifa.com => /get-index?keyword=...`
diff --git a/docs/2026-04-18-7天推收录执行主线.md b/docs/2026-04-18-7天推收录执行主线.md
new file mode 100644
index 0000000..375e840
--- /dev/null
+++ b/docs/2026-04-18-7天推收录执行主线.md
@@ -0,0 +1,301 @@
+# 2026-04-18 7天推收录执行主线
+
+这份文档用于把当前 GPT 站群从“基础修复完成”推进到“7 天内尽快拿到收录、回访、真实流量”。
+
+适用场景:
+
+1. 需要一个总控文档,统一安排 `15` 个优先域名的推收录动作
+2. 多个 Codex / 多个人同时推进时,需要明确主线和分工
+3. 每天要复盘“今天做了什么、蜘蛛有没有回访、下一步该做什么”
+
+## 1. 当前阶段判断
+
+当前不是继续大面积找基础 Bug 的阶段,而是进入下面这条主线:
+
+1. 保住已经修好的链路
+2. 把 `sitemap -> search -> detail -> play` 的抓取链路跑起来
+3. 减少硬 `404`
+4. 处理缓存滞后站,避免蜘蛛反复吃旧 HTML
+5. 用前 `7` 天拿到第一批收录和真实点击样本
+
+## 2. 本轮主目标
+
+### 7 天目标
+
+1. `15` 个优先域名全部完成 sitemap 推送与首轮复查
+2. 重点站先拿到蜘蛛对 sitemap、search、detail、play 的真实回访
+3. 已知旧坏链尽量不再硬 `404`
+4. 缓存滞后站完成清缓存并复查
+5. 至少拿到一批首页词 / 品牌词 / 影片长尾词的收录样本
+
+### 成功判断标准
+
+只要出现下面任一类信号,就说明主线在向前走:
+
+1. `sitemap_index.xml` 被搜索引擎蜘蛛访问
+2. `sitemap-main.xml` / `sitemap-videos-*.xml` 被抓
+3. 搜索页出现蜘蛛命中
+4. 详情页出现蜘蛛重复回访
+5. 播放页开始出现命中
+6. 搜索引擎站长平台开始显示已发现、已抓取或已收录
+7. 站点开始出现真实自然搜索点击
+
+## 3. 当前优先域名
+
+### A组 6 站
+
+1. `liangzuan.net`
+2. `cnzhenbang.com`
+3. `codohealth.com`
+4. `jingxifa.com`
+5. `gz-yxsw.com`
+6. `glae.cc`
+
+### B组 9 站
+
+1. `gxhongzhuang.com`
+2. `jpjdxs.com`
+3. `jxxgygy.com`
+4. `lcdchq.com`
+5. `leici1940.com`
+6. `lgyz.net`
+7. `oronorent.com`
+8. `pcslcl.com`
+9. `sdxtwnc.com`
+
+## 4. 当前已知确定事项
+
+### 已完成的基础修复
+
+1. slug-only 详情页不再直接硬死在 `404`
+2. `HEAD` 深链兼容已补
+3. sitemap 主入口和视频分页已恢复
+4. sitemap 空 slug 问题已修复
+5. 搜索页 `h1` 已补强
+6. 播放页 `h1` 已补强
+7. `15` 站抽样:首页、搜索、详情、播放主链路已通过
+
+### 当前仍要优先处理的站点问题
+
+以下更像缓存滞后,不是代码未生效:
+
+1. `jingxifa.com`
+2. `lcdchq.com`
+3. `cnzhenbang.com`
+4. `oronorent.com`
+
+处理原则:
+
+1. 先用 `?__nocache=1` 确认新 HTML 已生效
+2. 如果 `?__nocache=1` 正常而普通访问异常,优先清前端缓存
+3. 不要先重复改模板
+
+## 5. 7 天执行节奏
+
+### Day 1
+
+目标:
+
+1. 完成 `15` 站 sitemap 提交
+2. 完成 `A/B` 两组执行文档建档
+3. 完成缓存滞后站清单确认
+
+动作:
+
+1. 提交每个域名的:
+ - `/sitemap.xml`
+ - `/sitemap_index.xml`
+ - `/sitemap-main.xml`
+2. 记录是否已在站长平台手动提交
+3. 记录是否已 ping 或主动推送
+4. 先做 A 组首轮观察
+
+### Day 2
+
+目标:
+
+1. 看 sitemap 是否被抓
+2. 看首页、搜索页是否开始被蜘蛛回访
+
+动作:
+
+1. 拉取 `A组6站` 日志
+2. 重点看:
+ - `sitemap`
+ - `search`
+ - `detail`
+3. 把正向样本写回 A 组文档
+4. 对缓存滞后站做普通访问和 `?__nocache=1` 对照
+
+### Day 3
+
+目标:
+
+1. 看 B 组是否开始跟上
+2. 看是否出现 `sitemap -> detail` 链路
+
+动作:
+
+1. 拉取 `B组9站` 日志
+2. 标出各域名是否已有详情页命中
+3. 如果某些站只有首页抓取,没有深页抓取:
+ - 优先检查 sitemap
+ - 再检查 canonical
+ - 再检查页面标题表达
+
+### Day 4
+
+目标:
+
+1. 扩大详情页回访
+2. 争取出现播放页命中
+
+动作:
+
+1. 检查真实被抓详情页是否返回 `200`
+2. 检查播放页主标题、canonical 是否稳定
+3. 统计旧坏链是否仍在高频触发
+4. 若某站旧 `404` 仍多,单独建风险项
+
+### Day 5
+
+目标:
+
+1. 看是否出现第一批收录
+2. 看是否出现品牌词 / 域名词曝光
+
+动作:
+
+1. 复查站长平台收录状态
+2. 记录已抓取、已发现、已收录页面数
+3. 抽查 `site:域名` 与主品牌词
+4. 若已有收录样本,单独列为正向案例
+
+### Day 6
+
+目标:
+
+1. 补强弱站
+2. 对没有动静的站做二次推进
+
+动作:
+
+1. 优先处理:
+ - sitemap 无抓取
+ - 只有首页无深页
+ - 普通访问仍旧 HTML
+2. 对弱站再做一次:
+ - sitemap 提交
+ - 缓存复核
+ - 关键页抽检
+
+### Day 7
+
+目标:
+
+1. 汇总第一周结果
+2. 定出第二周继续推进名单
+
+动作:
+
+1. 汇总 A/B 组实际表现
+2. 把域名分成:
+ - 已出现明显回访
+ - 已抓未深挖
+ - 仍需重点救火
+3. 输出第二周优先级
+
+## 6. 每天固定执行动作
+
+每天都建议按这个顺序跑:
+
+1. 看日志
+2. 看 sitemap 抓取
+3. 看搜索页命中
+4. 看详情页命中
+5. 看播放页命中
+6. 看旧 `404` 是否还在出现
+7. 看缓存滞后站是否仍未刷新
+8. 把结论写回对应文档
+
+## 7. 文档分工建议
+
+### 主线文档
+
+总控统一放这里:
+
+- [2026-04-18-7天推收录执行主线.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-7天推收录执行主线.md)
+
+### 站点优先名单
+
+策略依据看这里:
+
+- [2026-04-17-GPT站群优先推收录名单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-17-GPT站群优先推收录名单.md)
+
+### 每日蜘蛛分析
+
+按分组写:
+
+- [2026-04-18-A组6站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-A组6站-蜘蛛回访分析.md)
+- [2026-04-18-B组9站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-B组9站-蜘蛛回访分析.md)
+
+### GPT专属跟踪与复盘
+
+如果今天的工作重点是 GPT 模板站群,而不是全局协作文档,请优先看:
+
+- [gpt-template-seo/03-GPT模板每日复盘模板-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/03-GPT模板每日复盘模板-2026-04-18.md)
+- [gpt-template-seo/04-GPT模板A-B组日志跟踪板-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/04-GPT模板A-B组日志跟踪板-2026-04-18.md)
+
+### 模板化分析
+
+要新开文档时,从这里复制:
+
+- [日志分析模板-收录推进版.md](/www/wwwroot/diff-maccms/SEONexus/docs/日志分析模板-收录推进版.md)
+
+## 8. 风险优先级
+
+### P0
+
+必须当天处理:
+
+1. 首页、详情、播放重新出现大面积 `404`
+2. sitemap 主入口无法访问
+3. `?__nocache=1` 也拿不到新 HTML
+4. 某域名整站 host 解析异常
+
+### P1
+
+应优先处理:
+
+1. 普通访问还是旧缓存
+2. 搜索页或播放页 `h1` 丢失
+3. canonical 异常
+4. 旧坏链反复高频回访
+
+### P2
+
+可在主线稳定后继续优化:
+
+1. 个别站标题表达不够强
+2. 少量年份 / 文案变体仍不统一
+3. 某些模板风格表现不够一致
+
+## 9. 一线执行口径
+
+以后现场执行时,统一按这个判断,不要来回摇摆:
+
+1. 先保 `200`
+2. 再保 `h1`
+3. 再保 canonical
+4. 再看缓存
+5. 再看蜘蛛回访
+6. 最后再谈更细的标题优化
+
+## 10. 当前建议
+
+如果今天继续推进,优先顺序建议是:
+
+1. 先把 A 组 6 站的实际日志回访填起来
+2. 再补 B 组 9 站
+3. 同时单独盯缓存滞后 4 站
+4. 一旦出现首批已抓 / 已收录样本,立即回写主线文档作为样板
diff --git a/docs/2026-04-18-A组6站-蜘蛛回访分析.md b/docs/2026-04-18-A组6站-蜘蛛回访分析.md
new file mode 100644
index 0000000..16a9d94
--- /dev/null
+++ b/docs/2026-04-18-A组6站-蜘蛛回访分析.md
@@ -0,0 +1,394 @@
+# 2026-04-18 A组6站 蜘蛛回访分析
+
+## 1. 基本信息
+
+- 日期:`2026-04-18`
+- 分析人:`Codex / 团队`
+- 分析范围:`A组 6 站`
+- 日志时间窗口:`2026-04-17 09:10:03 ~ 2026-04-17 22:20:02`
+- 关联动作:
+ - 已提交 sitemap:`A组6站已纳入首批推收录名单,主入口以 /sitemap.xml / sitemap_index.xml / sitemap-main.xml 为准`
+ - 已清缓存域名:`待继续跟进 jingxifa.com / cnzhenbang.com`
+ - 已上线模板修复:`详情 slug-only 兜底、HEAD 兼容、sitemap 修复、搜索页 h1 补强、播放页 h1 补强`
+
+## 2. 本轮关注域名
+
+1. `liangzuan.net`
+2. `cnzhenbang.com`
+3. `codohealth.com`
+4. `jingxifa.com`
+5. `gz-yxsw.com`
+6. `glae.cc`
+
+## 3. 本轮关注目标
+
+1. `sitemap_index.xml` 是否开始被抓
+2. `sitemap-main.xml` 是否开始被抓
+3. 搜索页是否出现蜘蛛回访
+4. 详情页是否开始出现命中
+5. 播放页是否开始出现命中
+6. 是否出现连续抓取链路:
+ - `sitemap -> search -> detail`
+ - `sitemap -> detail -> play`
+7. 是否仍存在旧 404 深链被反复访问
+
+## 4. 蜘蛛来源概览
+
+### 百度蜘蛛
+
+- 请求数:`72`
+- 命中域名:
+ - `codohealth.com`
+ - `jingxifa.com`
+ - `gz-yxsw.com`
+ - `glae.cc`
+- 主要命中页面类型:
+ - `home`
+ - `detail`
+ - `play`
+ - `other`
+
+### 必应蜘蛛
+
+- 请求数:`2`
+- 命中域名:
+ - `cnzhenbang.com`
+- 主要命中页面类型:
+ - `category`
+
+### 其他中文搜索蜘蛛
+
+- 请求数:`88`
+- 命中域名:
+ - `cnzhenbang.com`
+ - `jingxifa.com`
+ - `gz-yxsw.com`
+ - `glae.cc`
+- 主要命中页面类型:
+ - `home`
+ - `category`
+ - `detail`
+ - `play`
+
+### 普通浏览器访问
+
+- 请求数:`本次统计只看蜘蛛 crawl push 数据,不混入普通浏览器访问`
+- 是否需要与蜘蛛流量区分:`是`
+
+## 5. 各域名命中概览
+
+### `liangzuan.net`
+
+- sitemap:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- search:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- detail:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- play:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- old 404:
+ - 是否出现:`当前窗口未见`
+ - 典型路径:`无`
+
+### `cnzhenbang.com`
+
+- sitemap:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- search:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- detail:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- play:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- old 404:
+ - 是否出现:`出现测试入口 404`
+ - 典型路径:
+ - `/get-index?wd=test`
+ - `/get/index?wd=test`
+
+补充观察:
+
+- summary 总请求:`110`
+- 当前主要命中层级:
+ - `robots: 62`
+ - `category: 21`
+ - `home: 1`
+- 当前已见 `200`:
+ - `/`
+ - `/category/dong-man`
+- 当前主要风险:
+ - `googlebot` 仍大量命中 `/robots.txt => 444`
+ - `sogou` 对分类页仍混有 `301 / 403`
+
+### `codohealth.com`
+
+- sitemap:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- search:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- detail:
+ - 是否命中:`是`
+ - 命中次数:`12`
+ - 典型路径:
+ - `/voddetail/gu-chuan-jin-zhen-qian-jin-jing-shi-feng-jian-lao-zu-zong-73272`
+ - `/voddetail/ma-dai-gui-guai-chuan-shuo-qi-yuan-78411`
+ - `/voddetail/xing-qiu-da-zhan-hei-shi-chuan-shuo-78631`
+- play:
+ - 是否命中:`是,但当前被归到 other`
+ - 命中次数:`6`
+ - 典型路径:
+ - `/vodbf/liang-liang-pei-dui-185109-default-1`
+ - `/vodbf/yu-wang-dan-zhu-ji-104073-default-1`
+- old 404:
+ - 是否出现:`当前窗口未见明显旧 404`
+ - 典型路径:`无`
+
+补充观察:
+
+- summary 总请求:`766`
+- 当前最大流量仍在 `robots: 740`
+- 当前已拿到百度蜘蛛真实深页 `200`
+- 已见 `detail -> 200` 与 `play-like path -> 200`
+
+### `jingxifa.com`
+
+- sitemap:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- search:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- detail:
+ - 是否命中:`是`
+ - 命中次数:`15`
+ - 典型路径:
+ - `/video-detail/cheng-shi-jian-ke-190614`
+ - `/video-detail/hai-mian-bao-bao-di-shi-yi-ji-73126-10`
+ - `/video-detail/xing-jian-fu-guo-ji-di-wu-ji-107484`
+- play:
+ - 是否命中:`是`
+ - 命中次数:`16`
+ - 典型路径:
+ - `/video-bofang/hao-bu-liu-qing-185887-default-1`
+ - `/video-bofang/hei-yi-nv-ren-de-xiang-shui-183894-default-1`
+ - `/video-bofang/lie-gui-shao-nv-ba-fei-183877-default-1`
+- old 404:
+ - 是否出现:`当前窗口未见旧 404 为主的坏链池`
+ - 典型路径:`无`
+- cache status:
+ - 普通访问是否仍落后于 `?__nocache=1`:`是,之前已确认存在缓存滞后`
+ - 当前判断:`代码已生效,仍应把前端缓存刷新列为优先动作`
+
+补充观察:
+
+- summary 总请求:`1623`
+- 当前主要层级:
+ - `category: 1066`
+ - `robots: 485`
+ - `play: 16`
+ - `detail: 15`
+ - `home: 14`
+- 当前已拿到:
+ - 首页 `200`
+ - 详情页 `200`
+ - 播放页 `200`
+- 当前仍有:
+ - `sogou` 对部分详情 / 播放 / 首页命中 `403`
+ - `googlebot` 对大量 `videoclass*` 路径命中 `444`
+
+### `gz-yxsw.com`
+
+- sitemap:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- search:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- detail:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- play:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- old 404:
+ - 是否出现:`当前窗口未见`
+ - 典型路径:`无`
+
+补充观察:
+
+- summary 总请求:`38`
+- 当前已见:
+ - 百度蜘蛛首页 `/ => 200`
+ - `robots.txt => 200` 仅少量
+- 当前阶段仍属于首页层回访,尚未进入深页抓取
+
+### `glae.cc`
+
+- sitemap:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- search:
+ - 是否命中:`仅见测试探针`
+ - 命中次数:`2`
+ - 典型路径:
+ - `/get-index?wd=test`
+ - `/get/index?wd=test`
+- detail:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- play:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- old 404:
+ - 是否出现:`出现测试入口 404`
+ - 典型路径:
+ - `/get-index?wd=test`
+ - `/get/index?wd=test`
+- 需继续观察项:
+ - 详情页 `h1` 是否仍显示年份:`待继续复查,目前日志层还未进入详情页`
+
+补充观察:
+
+- summary 总请求:`15`
+- 当前主命中是首页:
+ - `/ => 8 次 200`
+- 同时出现:
+ - `/ => 4 次 301`
+ - `/robots.txt => 1 次 444`
+
+## 6. 正向信号判断
+
+- 是否出现 `sitemap -> search -> detail`:`当前窗口未直接看到 sitemap 命中,无法确认`
+- 是否出现 `sitemap -> detail -> play`:`在 jingxifa.com / codohealth.com 已出现 detail 与 play 深页 200,但当前证据链未直接回溯到 sitemap`
+- 是否出现 `home -> search -> detail`:`未形成稳定链路`
+- 是否出现详情页重复访问:`是,codohealth.com 与 jingxifa.com 已出现详情页重复命中`
+- 是否出现播放页稳定命中:`是,jingxifa.com 明显成立;codohealth.com 的 vodbf 路径也已出现稳定 200`
+
+## 7. 风险信号判断
+
+### 风险 1
+
+- 域名:`liangzuan.net`
+- 表现:`当前整日窗口内几乎没有进入 A 组 crawl summary`
+- 可能原因:
+ - 当日蜘蛛尚未有效回访
+ - 当前样本窗口未覆盖到该站
+- 建议动作:
+ - 继续看下一日数据
+ - 站长平台侧优先补提 sitemap
+ - 手工复查首页、详情、播放入口是否持续稳定 200
+
+### 风险 2
+
+- 域名:`cnzhenbang.com`
+- 表现:`当前主要停留在 robots 与 category 层,且混有 301 / 403 / 404`
+- 可能原因:
+ - 分类层旧路径或探测路径仍在反复试探
+ - 搜索 / 详情 / 播放还未被新一轮蜘蛛充分发现
+- 建议动作:
+ - 继续观察分类页是否开始稳定转向 `200`
+ - 继续提 sitemap 主入口
+ - 复查前端缓存,避免蜘蛛仍吃到旧 HTML
+
+### 风险 3
+
+- 域名:`jingxifa.com`
+- 表现:`虽然已经出现首页 / 详情 / 播放真实 200,但普通访问与 ?__nocache=1 仍存在缓存滞后风险`
+- 可能原因:
+ - 前端缓存未完全刷新
+ - 蜘蛛与人工访问可能仍看到不同版本 HTML
+- 建议动作:
+ - 优先刷新前端缓存
+ - 清缓存后复查详情页 h1、播放页 h1、canonical
+ - 明日继续看是否出现更稳定的 detail / play 回访
+
+### 风险 4
+
+- 域名:`glae.cc`
+- 表现:`当前只见首页层命中,且测试探针 /get-index?wd=test 与 /get/index?wd=test 返回 404`
+- 可能原因:
+ - 当前只是探针验证,不代表真实搜索页蜘蛛入口
+ - 深页抓取尚未开始
+- 建议动作:
+ - 不把 test 404 误判成线上主链路异常
+ - 明日继续观察是否开始进入真实 search / detail
+ - 同时复核详情页标题年份表现
+
+## 8. 缓存相关观察
+
+重点域名:
+
+1. `jingxifa.com`
+2. `cnzhenbang.com`
+
+可补充:
+
+- 普通访问结果:
+ - `jingxifa.com` 曾出现旧缓存 HTML 滞后
+ - `cnzhenbang.com` 也属于优先复查对象
+- `?__nocache=1` 结果:
+ - 已确认代码修复版本能返回新 HTML
+- 是否一致:
+ - `jingxifa.com`:`否`
+ - `cnzhenbang.com`:`待继续复核`
+- 当前判断:
+ - 这两站当前不宜继续先改模板
+ - 应优先走前端缓存刷新 + 刷新后复测
+
+## 9. 本轮结论
+
+1. `A组6站` 里已经出现明显分层:
+ - `codohealth.com`、`jingxifa.com` 已进入深页命中阶段
+ - `cnzhenbang.com`、`gz-yxsw.com`、`glae.cc` 仍偏首页 / 分类层
+ - `liangzuan.net` 在当前窗口内几乎没有有效命中
+2. 当前最强正向样本是:
+ - `codohealth.com` 的详情 / 播放样式路径 `200`
+ - `jingxifa.com` 的首页 / 详情 / 播放 `200`
+3. 当前还不能说 `sitemap -> search -> detail -> play` 已完整跑通,但已经能确认:
+ - 深页回访开始出现
+ - 部分站已进入详情与播放层
+4. 现阶段最大阻塞不是继续大改模板,而是:
+ - 缓存滞后站刷新
+ - 继续累积下一日回访样本
+ - 让首页层站点尽快过渡到深页层
+
+## 10. 下一步动作
+
+1. 是否继续提交 B 组 sitemap:`是,继续按既定清单推进`
+2. 是否继续清理缓存滞后站:`是,优先 jingxifa.com / cnzhenbang.com`
+3. 明日优先观察域名:
+ - `jingxifa.com`
+ - `codohealth.com`
+ - `cnzhenbang.com`
+ - `liangzuan.net`
+4. 是否需要继续模板修正:`当前不作为第一优先级,先看缓存与新一轮蜘蛛回访`
diff --git a/docs/2026-04-18-B组9站-蜘蛛回访分析.md b/docs/2026-04-18-B组9站-蜘蛛回访分析.md
new file mode 100644
index 0000000..4303da1
--- /dev/null
+++ b/docs/2026-04-18-B组9站-蜘蛛回访分析.md
@@ -0,0 +1,487 @@
+# 2026-04-18 B组9站 蜘蛛回访分析
+
+## 1. 基本信息
+
+- 日期:`2026-04-18`
+- 分析人:`Codex / 团队`
+- 分析范围:`B组 9 站`
+- 日志时间窗口:`2026-04-17 09:10:03 ~ 2026-04-17 22:20:02`
+- 关联动作:
+ - 已提交 sitemap:`B组9站已纳入首批推收录名单,主入口以 /sitemap.xml / sitemap_index.xml / sitemap-main.xml 为准`
+ - 已清缓存域名:`待继续跟进 lcdchq.com / oronorent.com`
+ - 已上线模板修复:`详情 slug-only 兜底、HEAD 兼容、sitemap 修复、搜索页 h1 补强、播放页 h1 补强`
+
+## 2. 本轮关注域名
+
+1. `gxhongzhuang.com`
+2. `jpjdxs.com`
+3. `jxxgygy.com`
+4. `lcdchq.com`
+5. `leici1940.com`
+6. `lgyz.net`
+7. `oronorent.com`
+8. `pcslcl.com`
+9. `sdxtwnc.com`
+
+## 3. 本轮关注目标
+
+1. `sitemap_index.xml` 是否开始被抓
+2. `sitemap-main.xml` 是否开始被抓
+3. 搜索页是否出现蜘蛛回访
+4. 详情页是否开始出现命中
+5. 播放页是否开始出现命中
+6. 是否出现连续抓取链路:
+ - `sitemap -> search -> detail`
+ - `sitemap -> detail -> play`
+7. 是否仍存在旧 404 深链被反复访问
+
+## 4. 蜘蛛来源概览
+
+### 百度蜘蛛
+
+- 请求数:`95`
+- 命中域名:
+ - `gxhongzhuang.com`
+ - `jpjdxs.com`
+ - `jxxgygy.com`
+ - `lcdchq.com`
+ - `leici1940.com`
+ - `lgyz.net`
+ - `pcslcl.com`
+ - `sdxtwnc.com`
+- 主要命中页面类型:
+ - `home`
+ - `detail`
+ - `other`
+
+### 必应蜘蛛
+
+- 请求数:`36`
+- 命中域名:
+ - `gxhongzhuang.com`
+ - `jxxgygy.com`
+ - `lcdchq.com`
+ - `lgyz.net`
+- 主要命中页面类型:
+ - `robots`
+ - `other`
+ - `detail`
+
+### 其他中文搜索蜘蛛
+
+- 请求数:`115`
+- 命中域名:
+ - `jpjdxs.com`
+ - `jxxgygy.com`
+ - `lcdchq.com`
+ - `lgyz.net`
+ - `oronorent.com`
+- 主要命中页面类型:
+ - `home`
+ - `detail`
+ - `play`
+ - `other`
+
+### 普通浏览器访问
+
+- 请求数:`本次统计只看蜘蛛 crawl push 数据,不混入普通浏览器访问`
+- 是否需要与蜘蛛流量区分:`是`
+
+## 5. 各域名命中概览
+
+### `gxhongzhuang.com`
+
+- sitemap:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- search:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- detail:
+ - 是否命中:`是`
+ - 命中次数:`4`
+ - 典型路径:
+ - `/voddetail/xi-xue-gui-ji-nv-184448`
+- play:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- old 404:
+ - 是否出现:`当前窗口未见明显旧 404`
+ - 典型路径:`无`
+
+补充观察:
+
+- summary 总请求:`46`
+- 当前已见:
+ - 首页 `/ => 200`
+ - 详情页 `/voddetail/xi-xue-gui-ji-nv-184448 => 200`
+- 当前风险:
+ - `googlebot` 对 `/robots.txt` 大量 `444`
+ - `bingbot` 对小说 / feed 类路径命中 `444`
+
+### `jpjdxs.com`
+
+- sitemap:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- search:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- detail:
+ - 是否命中:`是,但当前被归到 other`
+ - 命中次数:`2`
+ - 典型路径:
+ - `/neirong-154229-xiang-feng-bu-shi-jiu-shi-ren`
+- play:
+ - 是否命中:`是,但当前被归到 other`
+ - 命中次数:`2`
+ - 典型路径:
+ - `/bf-154229-xiang-feng-bu-shi-jiu-shi-ren/default-1`
+- old 404:
+ - 是否出现:`当前窗口未见`
+ - 典型路径:`无`
+- 关注项:
+ - `search_header_media.html` 修复后是否已开始被蜘蛛正常命中:`当前窗口还未出现真实搜索页回访,但详情 / 播放样式路径已能被正常抓到 200`
+
+补充观察:
+
+- summary 总请求:`20`
+- 当前已见:
+ - 首页 `/ => 200`
+ - `/robots.txt => 200`
+ - 详情样式路径 `200`
+ - 播放样式路径 `200`
+
+### `jxxgygy.com`
+
+- sitemap:
+ - 是否命中:`是,但为异常命中`
+ - 命中次数:`1`
+ - 典型路径:
+ - `/sitemap.xml => 444`
+- search:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- detail:
+ - 是否命中:`未形成明确 detail 分类,但已有内容页探测`
+ - 命中次数:`若干`
+ - 典型路径:
+ - `/vod/ben-zhuo-zhi-ji-de-qian-bei-169019`
+ - `/vod/wo-zai-mo-shi-dang-lao-ban-yuan-gong-quan-shi-ji-sang-shi-dong-tai-man-hua-169368`
+ - `/vod/wu-lian-shen-gong-168705`
+- play:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- old 404:
+ - 是否出现:`当前窗口未见典型旧 404 深链池`
+ - 典型路径:`无`
+
+补充观察:
+
+- summary 总请求:`35`
+- 当前主要层级:
+ - `home: 19`
+ - `other: 13`
+- 当前已见:
+ - 首页 `/ => 17 次 200`
+- 当前风险:
+ - `sogou` 对若干内容路径仍混有 `301 / 403`
+ - `/sitemap.xml => 444` 需要后续单独复核
+
+### `lcdchq.com`
+
+- sitemap:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- search:
+ - 是否命中:`仅见测试探针`
+ - 命中次数:`2`
+ - 典型路径:
+ - `/get-index?wd=test`
+ - `/get/index?wd=test`
+- detail:
+ - 是否命中:`是`
+ - 命中次数:`1`
+ - 典型路径:
+ - `/movie/154180-yi-gua-ding-qing-yuan-ye-ya-tou-jin-cheng-bei-tuan-chong`
+- play:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- old 404:
+ - 是否出现:`出现测试入口 404`
+ - 典型路径:
+ - `/get-index?wd=test`
+ - `/get/index?wd=test`
+- cache status:
+ - 普通访问是否仍落后于 `?__nocache=1`:`是,之前已确认属于缓存滞后站`
+ - 当前判断:`优先清缓存,不先继续改模板`
+
+补充观察:
+
+- summary 总请求:`59`
+- 当前已见:
+ - 首页 `/ => 200`
+ - 详情页 `200`
+- 当前风险:
+ - `/admin.php => 301` 高占比,属于噪音探测
+ - `/robots.txt` 混有 `444 / 301 / 403`
+
+### `leici1940.com`
+
+- sitemap:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- search:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- detail:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- play:
+ - 是否命中:`是,但当前被归到 other`
+ - 命中次数:`8`
+ - 典型路径:
+ - `/vodbf/qin-mi-da-dang-wu-di-lv-shi-83631-default-1`
+ - `/vodbf/zhong-guo-xi-ju-xing-di-yi-ji-68746-default-1`
+- old 404:
+ - 是否出现:`当前窗口未见明显旧 404`
+ - 典型路径:`无`
+
+补充观察:
+
+- summary 总请求:`55`
+- 当前深页正向样本主要来自百度蜘蛛命中播放样式路径
+- 当前首页与 robots 仍以 `444` 为主
+
+### `lgyz.net`
+
+- sitemap:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- search:
+ - 是否命中:`仅见测试探针`
+ - 命中次数:`2`
+ - 典型路径:
+ - `/get-index?wd=test`
+ - `/get/index?wd=test`
+- detail:
+ - 是否命中:`是`
+ - 命中次数:`11`
+ - 典型路径:
+ - `/voddetail/fan-pai-da-ming-xing-68838`
+ - `/voddetail/mo-shi-chao-neng-li-zhe-dong-tai-man-hua-69869`
+- play:
+ - 是否命中:`是`
+ - 命中次数:`9`
+ - 典型路径:
+ - `/vodplay/ming-zhen-tan-ke-nan-27577-youzhi-542`
+ - `/vodplay/shi-shang-wan-jia-25834-youzhi-475`
+ - `/vodplay/shi-shang-wan-jia-25834-youzhi-444`
+- old 404:
+ - 是否出现:`出现测试入口 404`
+ - 典型路径:
+ - `/get-index?wd=test`
+ - `/get/index?wd=test`
+
+补充观察:
+
+- summary 总请求:`39`
+- 当前已见:
+ - 首页 `/ => 200`
+ - 详情页 `200`
+ - 播放页已有命中,但混有大量 `403`
+- 当前风险:
+ - `sogou` 对播放页仍有大量 `403`
+ - `/robots.txt` 状态不够稳定
+
+### `oronorent.com`
+
+- sitemap:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- search:
+ - 是否命中:`仅见测试探针`
+ - 命中次数:`2`
+ - 典型路径:
+ - `/get-index?wd=test`
+ - `/get/index?wd=test`
+- detail:
+ - 是否命中:`是,但当前被归到 other`
+ - 命中次数:`1`
+ - 典型路径:
+ - `/shipin/154173-yi-gua-ding-qian-kun`
+- play:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- old 404:
+ - 是否出现:`出现测试入口 404`
+ - 典型路径:
+ - `/get-index?wd=test`
+ - `/get/index?wd=test`
+- cache status:
+ - 普通访问是否仍落后于 `?__nocache=1`:`是,之前已列为缓存滞后站`
+ - 当前判断:`优先清缓存,再继续观察详情层回访`
+
+补充观察:
+
+- summary 总请求:`18`
+- 当前已见:
+ - `/shipin/154173-yi-gua-ding-qian-kun => 200`
+- 当前风险:
+ - 首页与 robots 仍混有 `301 / 403 / 444`
+
+### `pcslcl.com`
+
+- sitemap:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- search:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- detail:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- play:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- old 404:
+ - 是否出现:`当前窗口未见典型旧 404`
+ - 典型路径:`无`
+
+补充观察:
+
+- summary 总请求:`218`
+- 当前几乎全部是 `robots.txt => 444`
+- 当前只拿到极少量首页 `200`
+- 仍处于首页前的 robots 层
+
+### `sdxtwnc.com`
+
+- sitemap:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- search:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- detail:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- play:
+ - 是否命中:`否`
+ - 命中次数:`0`
+ - 典型路径:`无`
+- old 404:
+ - 是否出现:`当前窗口未见`
+ - 典型路径:`无`
+
+补充观察:
+
+- summary 总请求:`32`
+- 当前已见:
+ - 首页 `/ => 19 次 200`
+- 当前阶段仍属于首页层回访
+
+## 6. 正向信号判断
+
+- 是否出现 `sitemap -> search -> detail`:`当前窗口未直接看到完整链路`
+- 是否出现 `sitemap -> detail -> play`:`在 lgyz.net、jpjdxs.com、gxhongzhuang.com、lcdchq.com 已看到不同层级深页 200,但未直接回溯到 sitemap`
+- 是否出现 `home -> search -> detail`:`未形成稳定链路`
+- 是否出现详情页重复访问:`是,gxhongzhuang.com、lgyz.net、lcdchq.com 已出现 detail 层命中`
+- 是否出现播放页稳定命中:`是,lgyz.net、jpjdxs.com、leici1940.com 已出现播放样式路径命中`
+
+## 7. 风险信号判断
+
+### 风险 1
+
+- 域名:`pcslcl.com`
+- 表现:`当前几乎全部停留在 robots 层,214 次 robots 444,仅 1 次首页 200`
+- 可能原因:
+ - 仍未进入有效页面发现阶段
+ - 谷歌探测集中在 robots
+- 建议动作:
+ - 继续提交 sitemap 主入口
+ - 明日继续观察是否开始进入首页或详情层
+
+### 风险 2
+
+- 域名:`lcdchq.com`
+- 表现:`已有首页与详情 200,但普通访问与 ?__nocache=1 已知存在缓存滞后`
+- 可能原因:
+ - 前端缓存未完全刷新
+ - 蜘蛛与人工访问可能命中不同 HTML
+- 建议动作:
+ - 优先清缓存
+ - 清缓存后复查详情页 h1、canonical、播放页链路
+
+### 风险 3
+
+- 域名:`oronorent.com`
+- 表现:`已见单个详情样式路径 200,但首页 / robots 状态混杂,且属于已知缓存滞后站`
+- 可能原因:
+ - 缓存滞后
+ - 蜘蛛仍在试探旧入口
+- 建议动作:
+ - 优先清缓存
+ - 继续观察是否从单个详情样本扩展到更多深页
+
+### 风险 4
+
+- 域名:`jxxgygy.com`
+- 表现:`/sitemap.xml 在当前窗口出现 444`
+- 可能原因:
+ - 单次探针异常
+ - 该时段前端或规则响应不稳定
+- 建议动作:
+ - 单独复测 sitemap 主入口
+ - 若复测正常,则先视为时间窗异常,不立刻大改
+- 建议动作:
+
+## 8. 缓存相关观察
+
+重点域名:
+
+1. `lcdchq.com`
+2. `oronorent.com`
+
+可补充:
+
+- 普通访问结果:
+- `?__nocache=1` 结果:
+- 是否一致:
+- 当前判断:
+
+## 9. 本轮结论
+
+1.
+2.
+3.
+4.
+
+## 10. 下一步动作
+
+1. 是否继续补提剩余 sitemap:
+2. 是否继续清理缓存滞后站:
+3. 明日优先观察域名:
+4. 是否需要继续微调模板:
diff --git a/docs/2026-04-18-GPT模板SEO公共主线汇总.md b/docs/2026-04-18-GPT模板SEO公共主线汇总.md
new file mode 100644
index 0000000..3177f7b
--- /dev/null
+++ b/docs/2026-04-18-GPT模板SEO公共主线汇总.md
@@ -0,0 +1,57 @@
+# 2026-04-18 GPT模板SEO公共主线汇总
+
+这份文档是 GPT 模板 SEO 支线写回 `docs/` 根目录的公共主线入口。
+
+作用:
+
+1. 让公共协作者快速知道 GPT 模板这条线现在做到哪里
+2. 让后续阶段性结论有统一回写位置
+3. 避免 GPT 模板支线文档散落在根目录难以收口
+
+## 当前边界
+
+GPT 模板支线只处理:
+
+1. `videoGpt1` 页面质量优化
+2. GPT 站群优先域名收录推进
+3. 首批缓存滞后站复查
+4. GPT 站蜘蛛回访跟踪
+
+## 当前专属目录
+
+GPT 模板专属工作区:
+
+- [gpt-template-seo/README.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/README.md)
+- [2026-04-17-GPT站群优先推收录名单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-17-GPT站群优先推收录名单.md)
+
+## 当前主线
+
+1. 页面质量基础修复已做完一轮
+2. 当前进入执行阶段:
+ - 等新蜘蛛日志
+ - 继续跟首批 4 站缓存复查
+ - 再根据真实结果决定是否继续模板微调
+
+## 当前优先站
+
+1. `jingxifa.com`
+2. `lcdchq.com`
+3. `cnzhenbang.com`
+4. `oronorent.com`
+
+## 当前建议阅读顺序
+
+1. GPT 专属总览:
+ - [gpt-template-seo/00-GPT模板SEO公共总览-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/00-GPT模板SEO公共总览-2026-04-18.md)
+2. GPT 7 天主线:
+ - [gpt-template-seo/01-GPT模板7天SEO执行主线-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/01-GPT模板7天SEO执行主线-2026-04-18.md)
+3. GPT 首批执行:
+ - [gpt-template-seo/02-GPT模板首批4站缓存复查执行单-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/02-GPT模板首批4站缓存复查执行单-2026-04-18.md)
+4. GPT 交接:
+ - [gpt-template-seo/07-GPT模板交接说明-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/07-GPT模板交接说明-2026-04-18.md)
+
+## 当前公共结论
+
+1. GPT 模板支线已经单独收口到 `docs/gpt-template-seo/`
+2. 公共协作继续看 `docs/` 根目录
+3. GPT 模板阶段性结论后续统一回写到这份文档
diff --git a/docs/2026-04-18-清缓存后复查记录单.md b/docs/2026-04-18-清缓存后复查记录单.md
new file mode 100644
index 0000000..42836c6
--- /dev/null
+++ b/docs/2026-04-18-清缓存后复查记录单.md
@@ -0,0 +1,213 @@
+# 2026-04-18 清缓存后复查记录单
+
+这份文档用于在前端缓存刷新之后,统一记录“普通访问”和 `?__nocache=1` 的对照结果。
+
+适用场景:
+
+1. 某个域名刚清完前端缓存
+2. 需要确认旧 HTML 是否已经被真正替换
+3. 需要把复查结果写回 A / B 组蜘蛛回访文档
+
+建议配合:
+
+- [2026-04-18-A-B组优先清缓存执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-A-B组优先清缓存执行单.md)
+- [前端nginx切换后复测模板.md](/www/wwwroot/diff-maccms/SEONexus/docs/前端nginx切换后复测模板.md)
+- [2026-04-18-A组6站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-A组6站-蜘蛛回访分析.md)
+- [2026-04-18-B组9站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-B组9站-蜘蛛回访分析.md)
+
+## 1. 基本信息
+
+- 日期:
+- 执行人:
+- 执行对象域名:
+- 清缓存时间:
+- 缓存层:
+ - 前端 nginx / CDN / 其他
+- 本次是否属于优先清缓存名单:
+ - 是 / 否
+
+## 2. 本次复查目标
+
+至少写清楚这次要验证什么:
+
+1. 普通访问是否已经不再落后于 `?__nocache=1`
+2. 搜索页 `h1` 是否正常
+3. 搜索页 canonical 是否正常
+4. 详情页 `h1` 是否正常
+5. 详情页 canonical 是否正常
+6. 播放页 `h1` 是否正常
+7. 播放页 canonical 是否正常
+
+## 3. 复查 URL 清单
+
+建议每个域名至少复查这 4 类:
+
+1. 首页
+2. 搜索页
+3. 详情页
+4. 播放页
+
+填写:
+
+- 首页 URL:
+- 搜索页 URL:
+- 详情页 URL:
+- 播放页 URL:
+
+## 4. 普通访问复查
+
+### 首页
+
+- URL:
+- 状态码:
+- `X-Cache-Status`:
+- `X-Cache-Mode`:
+- 页面标题:
+- 结论:
+
+### 搜索页
+
+- URL:
+- 状态码:
+- `X-Cache-Status`:
+- `X-Cache-Mode`:
+- `h1`:
+- canonical:
+- 结论:
+
+### 详情页
+
+- URL:
+- 状态码:
+- `X-Cache-Status`:
+- `X-Cache-Mode`:
+- `h1`:
+- canonical:
+- 结论:
+
+### 播放页
+
+- URL:
+- 状态码:
+- `X-Cache-Status`:
+- `X-Cache-Mode`:
+- `h1`:
+- canonical:
+- 结论:
+
+## 5. `?__nocache=1` 对照复查
+
+至少对搜索页、详情页、播放页各抽一条。
+
+### 搜索页 nocache
+
+- URL:
+- 状态码:
+- `X-Cache-Status`:
+- `X-Cache-Mode`:
+- `X-Cache-Bypass`:
+- `h1`:
+- canonical:
+
+### 详情页 nocache
+
+- URL:
+- 状态码:
+- `X-Cache-Status`:
+- `X-Cache-Mode`:
+- `X-Cache-Bypass`:
+- `h1`:
+- canonical:
+
+### 播放页 nocache
+
+- URL:
+- 状态码:
+- `X-Cache-Status`:
+- `X-Cache-Mode`:
+- `X-Cache-Bypass`:
+- `h1`:
+- canonical:
+
+## 6. 普通访问 vs `?__nocache=1` 对照判断
+
+### 搜索页
+
+- 是否一致:
+- 若不一致,差异点:
+
+### 详情页
+
+- 是否一致:
+- 若不一致,差异点:
+
+### 播放页
+
+- 是否一致:
+- 若不一致,差异点:
+
+## 7. 判定结论
+
+只用下面 4 类结论,不要写模糊话术:
+
+- [ ] 已恢复一致,可继续观察蜘蛛回访
+- [ ] 已部分恢复,仍有个别页面残留旧缓存
+- [ ] 缓存刷新后仍不一致,需继续查缓存链路
+- [ ] 不是缓存问题,需回到模板 / 路由 / 输出层继续排查
+
+## 8. 回写动作
+
+缓存复查不是终点,要把结论写回主线文档。
+
+本次复查后应同步更新:
+
+1. 对应域名所在的 A / B 组蜘蛛回访文档
+2. 如有共性结论,补到 7 天主线文档
+3. 如确认缓存问题已解除,从优先清缓存名单中降级
+
+填写:
+
+- 已回写 A / B 组文档:
+- 是否需要回写主线:
+- 是否仍保留在优先清缓存名单:
+
+## 9. 下一步动作
+
+从下面选择一个为主动作:
+
+1. 继续观察下一轮蜘蛛日志
+2. 再补测该域名更多详情 / 播放页
+3. 继续清其他缓存滞后站
+4. 回到模板 / 路由 / 页面输出继续排查
+
+填写:
+
+- 下一步:
+
+---
+
+## 极简填写示例
+
+```md
+域名:jingxifa.com
+清缓存时间:2026-04-18 14:30 +08:00
+
+普通访问:
+- 搜索页 h1:京淅发影院 搜索结果
+- 详情页 h1:武炼巅峰(短剧)
+- 播放页 h1:武炼巅峰(短剧) 全集
+
+nocache:
+- 搜索页 h1:京淅发影院 搜索结果
+- 详情页 h1:武炼巅峰(短剧)
+- 播放页 h1:武炼巅峰(短剧) 全集
+
+对照:
+- 普通访问与 nocache 一致
+
+结论:
+- 已恢复一致,可继续观察蜘蛛回访
+
+下一步:
+- 写回 A/B 组文档,继续看 detail/play 是否扩大命中
+```
diff --git a/docs/README.md b/docs/README.md
index 89e9007..5ec7a69 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -18,6 +18,30 @@
2. 想用最短材料完成交接
3. 想先看结论,再决定要不要展开看长文档
+### 1.1 7天推收录执行主线
+
+如果你当前的重点已经不是“修基础 Bug”,而是“怎么在这一周把收录、回访、缓存刷新、真实流量推进起来”,先看:
+
+- [2026-04-18-7天推收录执行主线.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-7天推收录执行主线.md)
+
+适用场景:
+
+1. 需要一个总控文档安排未来 7 天动作
+2. 想把 `15` 个优先域名按主线持续推进
+3. 想知道每天应该先看什么、先做什么、怎么判断有效
+
+### 1.2 GPT模板公共主线汇总
+
+如果你关心的是 GPT 模板这条专属 SEO 支线,而不是老模板,请先看:
+
+- [2026-04-18-GPT模板SEO公共主线汇总.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-GPT模板SEO公共主线汇总.md)
+
+适用场景:
+
+1. 想快速知道 GPT 模板线当前边界和主线
+2. 想知道 GPT 模板专属目录放在哪里
+3. 想看 GPT 模板阶段性结论的公共回写入口
+
### 2. 本轮交付清单
如果你更关心“这轮到底已经交付了哪些东西”,直接看:
@@ -42,6 +66,122 @@
2. 新会话不想再重复走历史弯路
3. 需要一段可直接复制的继续追踪提示词
+### 3.1 A/B 组蜘蛛回访文档
+
+如果现在已经进入按域名分组追踪阶段,直接看:
+
+- [2026-04-18-A组6站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-A组6站-蜘蛛回访分析.md)
+- [2026-04-18-B组9站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-B组9站-蜘蛛回访分析.md)
+
+适用场景:
+
+1. 今天要填 A 组 / B 组日志结论
+2. 想按域名组持续记录 sitemap、search、detail、play 命中情况
+3. 想把正向信号和风险信号沉淀到可复用文档
+
+### 3.2 清缓存后复查记录单
+
+如果现场已经开始执行缓存刷新,接下来建议直接用:
+
+- [2026-04-18-清缓存后复查记录单.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-清缓存后复查记录单.md)
+
+这份是通用复查模板。
+如果要看 GPT 模板这条线的具体优先站执行单,请配合:
+
+- [2026-04-18-A-B组优先清缓存执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-A-B组优先清缓存执行单.md)
+
+适用场景:
+
+1. 某个域名刚清完前端缓存
+2. 需要核对普通访问与 `?__nocache=1` 是否已一致
+3. 需要把缓存复查结果写回 A / B 组蜘蛛回访文档
+
+### 3.3 首批4站清缓存执行单
+
+这批文档属于 GPT 模板专属执行材料,已收拢到 `gpt-template-seo/` 目录。
+
+如果今天准备直接执行首批缓存刷新,建议直接用:
+
+- [2026-04-18-首批4站清缓存后复查执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站清缓存后复查执行单.md)
+
+适用场景:
+
+1. 已经确定首批 4 个缓存优先站
+2. 不想每个域名再从模板手工复制
+3. 想把清缓存后的复查结果一次性集中记录
+
+### 3.4 首批4站 curl 复查命令
+
+如果现场要直接用命令行复查,建议直接看:
+
+- [2026-04-18-首批4站-curl复查命令清单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站-curl复查命令清单.md)
+
+适用场景:
+
+1. 需要直接复制 `curl` 命令执行
+2. 需要快速查看 header、canonical、`h1`
+3. 想减少临场手工拼接 URL 的时间
+
+### 3.5 首批4站 curl 结果判读表
+
+如果命令已经跑完,需要快速判断“到底是缓存问题还是代码问题”,建议直接看:
+
+- [2026-04-18-首批4站-curl结果判读表.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站-curl结果判读表.md)
+
+适用场景:
+
+1. 现场已经拿到 header 与源码抽取结果
+2. 需要快速判断是否已恢复一致
+3. 需要统一回写执行单与 A / B 组文档
+
+### 3.6 首批4站现场执行顺序汇总
+
+如果现场执行同学只想打开一页就开干,直接看:
+
+- [2026-04-18-首批4站现场执行顺序汇总.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站现场执行顺序汇总.md)
+
+适用场景:
+
+1. 需要按固定顺序执行首批 4 站
+2. 不想在多份文档之间来回跳
+3. 需要一页版执行说明
+
+### 3.7 首批4站执行后结果汇总
+
+如果首批 4 站已经执行完,需要一页看清最终结果,直接看:
+
+- [2026-04-18-首批4站执行后结果汇总页.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站执行后结果汇总页.md)
+
+适用场景:
+
+1. 需要快速知道哪些站已恢复一致
+2. 需要决定哪些站可以从缓存优先名单降级
+3. 需要把结果同步回 A / B 组和 7 天主线
+
+### 3.8 首批4站缓存复查交接说明
+
+如果你是临时接手、执行同学、或者新开会话,只想 1 分钟内知道该干什么,直接看:
+
+- [2026-04-18-首批4站缓存复查交接说明.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站缓存复查交接说明.md)
+
+适用场景:
+
+1. 临时接手首批 4 站缓存复查
+2. 不想翻很多文档
+3. 只想快速知道先做什么、不要做什么、结果写哪里
+
+### 3.9 首批4站执行消息模板
+
+如果你要直接把任务转发给执行同学、运维同学或下一位接手者,直接看:
+
+- [2026-04-18-首批4站缓存复查-执行消息模板.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站缓存复查-执行消息模板.md)
+
+适用场景:
+
+1. 需要一段可以直接复制发送的话术
+2. 不想手工组织任务说明
+3. 需要同时兼顾极简版、标准版、详细版
+
### 4. 当前蜘蛛 / nginx 短摘要
先看:
@@ -132,6 +272,18 @@
2. 想先看老模板公共入口,再决定要不要深入
3. 回看老模板第一阶段执行过程
+### 10.1 GPT模板专属目录
+
+如果你当前接手的是 GPT 模板 SEO 这条线,建议直接进:
+
+- [gpt-template-seo/README.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/README.md)
+
+适用场景:
+
+1. 需要 GPT 模板专属工作区
+2. 想持续跟踪 GPT 模板优化,不和老模板混在一起
+3. 需要 GPT 模板的专属总览、执行单、复盘和交接入口
+
### 10.1 老模板蜘蛛分析交接链
如果你当前要接手的是 `2026-04-16` 到 `2026-04-17` 这轮老模板蜘蛛日志分析,建议直接看:
diff --git a/docs/gpt-template-seo/00-GPT模板SEO公共总览-2026-04-18.md b/docs/gpt-template-seo/00-GPT模板SEO公共总览-2026-04-18.md
new file mode 100644
index 0000000..6314f1b
--- /dev/null
+++ b/docs/gpt-template-seo/00-GPT模板SEO公共总览-2026-04-18.md
@@ -0,0 +1,61 @@
+# 00 GPT模板SEO公共总览 2026-04-18
+
+这份文档是 GPT 模板 SEO 支线的公共总览。
+
+## 当前边界
+
+只处理:
+
+1. `videoGpt1` 模板相关页面质量
+2. GPT 站群优先域名收录推进
+3. GPT 站缓存滞后复查
+4. GPT 站蜘蛛回访跟踪
+
+不处理:
+
+1. 老模板 `1001-1005`
+2. 老模板样板站独立推进
+
+## 当前主线
+
+1. 页面质量已经完成一轮基础修复:
+ - 搜索页 `h1`
+ - 播放页 `h1`
+ - canonical
+ - slug-only 详情兜底
+ - sitemap 修复
+2. 当前进入执行阶段:
+ - 先看蜘蛛回访
+ - 再清缓存滞后站
+ - 再看普通访问是否追上 `?__nocache=1`
+
+## 当前优先域名
+
+首批缓存优先站:
+
+1. `jingxifa.com`
+2. `lcdchq.com`
+3. `cnzhenbang.com`
+4. `oronorent.com`
+
+## 当前文档结构
+
+1. 总控:
+ - [01-GPT模板7天SEO执行主线-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/01-GPT模板7天SEO执行主线-2026-04-18.md)
+2. 首批执行:
+ - [02-GPT模板首批4站缓存复查执行单-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/02-GPT模板首批4站缓存复查执行单-2026-04-18.md)
+3. 每日复盘:
+ - [03-GPT模板每日复盘模板-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/03-GPT模板每日复盘模板-2026-04-18.md)
+4. 跟踪板:
+ - [04-GPT模板A-B组日志跟踪板-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/04-GPT模板A-B组日志跟踪板-2026-04-18.md)
+5. 汇总:
+ - [05-GPT模板首批4站执行后汇总-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/05-GPT模板首批4站执行后汇总-2026-04-18.md)
+6. 执行辅助:
+ - [06-GPT模板curl复查与判读索引-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/06-GPT模板curl复查与判读索引-2026-04-18.md)
+7. 交接:
+ - [07-GPT模板交接说明-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/07-GPT模板交接说明-2026-04-18.md)
+
+## 当前建议
+
+1. GPT 模板这条线后续都优先落到 `docs/gpt-template-seo/`
+2. 阶段性结论再同步回 `docs/` 根目录公共主线
diff --git a/docs/gpt-template-seo/01-GPT模板7天SEO执行主线-2026-04-18.md b/docs/gpt-template-seo/01-GPT模板7天SEO执行主线-2026-04-18.md
new file mode 100644
index 0000000..2ade755
--- /dev/null
+++ b/docs/gpt-template-seo/01-GPT模板7天SEO执行主线-2026-04-18.md
@@ -0,0 +1,44 @@
+# 01 GPT模板7天SEO执行主线 2026-04-18
+
+这份文档承接 GPT 模板 SEO 这条支线未来 7 天的执行节奏。
+
+## 目标
+
+1. 继续观察 GPT 站群蜘蛛回访
+2. 处理缓存滞后站
+3. 让普通访问尽快追上 `?__nocache=1`
+4. 累积 detail / play 层稳定命中
+
+## 当前优先级
+
+### P0
+
+1. 首批 4 站缓存复查
+
+### P1
+
+1. A 组蜘蛛回访继续跟踪
+2. B 组蜘蛛回访继续跟踪
+
+### P2
+
+1. 若确认不是缓存问题,再回模板层微调
+
+## 当前执行顺序
+
+1. 先处理:
+ - `jingxifa.com`
+ - `lcdchq.com`
+ - `cnzhenbang.com`
+ - `oronorent.com`
+2. 再看新蜘蛛日志
+3. 最后再决定是否继续模板精修
+
+## 对应文档
+
+1. 首批执行:
+ - [02-GPT模板首批4站缓存复查执行单-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/02-GPT模板首批4站缓存复查执行单-2026-04-18.md)
+2. 每日复盘:
+ - [03-GPT模板每日复盘模板-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/03-GPT模板每日复盘模板-2026-04-18.md)
+3. 跟踪板:
+ - [04-GPT模板A-B组日志跟踪板-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/04-GPT模板A-B组日志跟踪板-2026-04-18.md)
diff --git a/docs/gpt-template-seo/02-GPT模板首批4站缓存复查执行单-2026-04-18.md b/docs/gpt-template-seo/02-GPT模板首批4站缓存复查执行单-2026-04-18.md
new file mode 100644
index 0000000..cf3ab58
--- /dev/null
+++ b/docs/gpt-template-seo/02-GPT模板首批4站缓存复查执行单-2026-04-18.md
@@ -0,0 +1,22 @@
+# 02 GPT模板首批4站缓存复查执行单 2026-04-18
+
+首批执行对象:
+
+1. `jingxifa.com`
+2. `lcdchq.com`
+3. `cnzhenbang.com`
+4. `oronorent.com`
+
+## 今日动作
+
+1. 清缓存
+2. 跑 `curl`
+3. 对照 `?__nocache=1`
+4. 写回结果
+
+## 结果入口
+
+1. 现场执行:
+ - [06-GPT模板curl复查与判读索引-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/06-GPT模板curl复查与判读索引-2026-04-18.md)
+2. 执行后汇总:
+ - [05-GPT模板首批4站执行后汇总-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/05-GPT模板首批4站执行后汇总-2026-04-18.md)
diff --git a/docs/gpt-template-seo/03-GPT模板每日复盘模板-2026-04-18.md b/docs/gpt-template-seo/03-GPT模板每日复盘模板-2026-04-18.md
new file mode 100644
index 0000000..2b78543
--- /dev/null
+++ b/docs/gpt-template-seo/03-GPT模板每日复盘模板-2026-04-18.md
@@ -0,0 +1,149 @@
+# 03 GPT模板每日复盘模板 2026-04-18
+
+这份文档用于承接 GPT 模板线每天的最小复盘结果。
+
+目标不是写长文,而是确保第二天接手时能一眼看懂:
+
+1. 今天看了哪些域名
+2. 今天新增了什么蜘蛛信号
+3. 哪些站已经可以降级
+4. 哪些站明天还要继续盯
+
+建议配合:
+
+- [04-GPT模板A-B组日志跟踪板-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/04-GPT模板A-B组日志跟踪板-2026-04-18.md)
+- [2026-04-18-GPT模板SEO公共主线汇总.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-GPT模板SEO公共主线汇总.md)
+- [2026-04-18-A组6站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-A组6站-蜘蛛回访分析.md)
+- [2026-04-18-B组9站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-B组9站-蜘蛛回访分析.md)
+
+## 每日复盘
+
+- 日期:
+- 复盘人:
+- 今日处理域名:
+- 今日查看日志时间窗口:
+- 今日是否执行清缓存:
+- 今日是否执行 `curl` 对照:
+
+## 今日新增日志结论
+
+按最重要的 3 到 5 条写,不要铺太开。
+
+1.
+2.
+3.
+4.
+5.
+
+## 今日缓存复查结论
+
+### 已恢复一致
+
+1.
+2.
+3.
+
+### 仍需继续跟缓存
+
+1.
+2.
+3.
+
+### 疑似不是缓存问题
+
+1.
+2.
+3.
+
+## 今日新增正向信号
+
+只记真正有价值的信号:
+
+1. 新增 sitemap 抓取
+2. 新增搜索页命中
+3. 新增详情页命中
+4. 新增播放页命中
+5. 新增重复回访
+
+填写:
+
+1.
+2.
+3.
+
+## 今日风险项
+
+只写明天还会继续影响判断的风险:
+
+1. 旧缓存仍未刷新
+2. `robots.txt` 状态不稳定
+3. `sitemap.xml` 异常
+4. 旧测试探针仍在干扰判断
+5. 普通访问与 `?__nocache=1` 仍不一致
+
+填写:
+
+1.
+2.
+3.
+
+## 明日优先处理
+
+按优先级写,不要超过 5 条。
+
+1.
+2.
+3.
+4.
+5.
+
+## 一句话复盘
+
+-
+
+## 极简示例
+
+```md
+- 日期:2026-04-19
+- 复盘人:Codex / 团队
+- 今日处理域名:jingxifa.com、lcdchq.com、cnzhenbang.com、oronorent.com
+- 今日查看日志时间窗口:2026-04-18 00:00:00 ~ 2026-04-18 23:59:59
+- 今日是否执行清缓存:是
+- 今日是否执行 curl 对照:是
+
+## 今日新增日志结论
+
+1. jingxifa.com 继续有 detail / play 命中,链路未掉。
+2. lcdchq.com 仍未见真实搜索页回访,当前优先级仍是缓存复查。
+3. cnzhenbang.com 仍以 robots / category 为主,暂未进入深页层。
+
+## 今日缓存复查结论
+
+### 已恢复一致
+
+1. jingxifa.com
+
+### 仍需继续跟缓存
+
+1. lcdchq.com
+2. oronorent.com
+
+### 疑似不是缓存问题
+
+1. 暂无
+
+## 今日风险项
+
+1. lcdchq.com 普通访问仍落后于 ?__nocache=1
+2. cnzhenbang.com 还没有真实 detail / play 回访
+
+## 明日优先处理
+
+1. 继续看 4 站最新蜘蛛日志
+2. 复查 lcdchq.com 与 oronorent.com
+3. 看 cnzhenbang.com 是否开始进入 detail 层
+
+## 一句话复盘
+
+- GPT 模板线今天没有新增结构性故障,重点仍在缓存收口和深页回访扩张。
+```
diff --git a/docs/gpt-template-seo/04-GPT模板A-B组日志跟踪板-2026-04-18.md b/docs/gpt-template-seo/04-GPT模板A-B组日志跟踪板-2026-04-18.md
new file mode 100644
index 0000000..26f5010
--- /dev/null
+++ b/docs/gpt-template-seo/04-GPT模板A-B组日志跟踪板-2026-04-18.md
@@ -0,0 +1,111 @@
+# 04 GPT模板A-B组日志跟踪板 2026-04-18
+
+这份文档用于把 GPT 模板线的 A / B 组蜘蛛回访和缓存复查统一收口。
+
+建议用法:
+
+1. 根目录 A / B 文档继续记录原始事实
+2. 这份文档只收口“当前重点、当前状态、下一步”
+3. 每次看完新日志后,只更新发生变化的域名
+
+## A组
+
+对应根目录事实记录:
+
+- [2026-04-18-A组6站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-A组6站-蜘蛛回访分析.md)
+
+当前重点域名:
+
+1. `jingxifa.com`
+2. `cnzhenbang.com`
+
+当前关注点:
+
+1. 是否出现新的 detail / play 命中
+2. 清缓存后普通访问是否追上 `?__nocache=1`
+
+### 当前状态板
+
+| 域名 | 当前定位 | 当前状态 | 下一步 |
+|---|---|---|---|
+| `jingxifa.com` | 缓存滞后优先站 | 已有 detail / play 正向命中,重点看普通访问是否追上 `?__nocache=1` | 继续缓存复查 + 看回访是否扩大 |
+| `cnzhenbang.com` | 观察站 | 仍以 robots / category 为主,尚未形成真实深页命中 | 继续等日志,观察是否进入 detail 层 |
+| `liangzuan.net` | 观察站 | 当前窗口未见命中 | 看下一轮是否开始出现 sitemap / detail |
+| `codohealth.com` | 正向样本站 | 已有 detail 与 play-like 200 | 继续观察是否稳定重复回访 |
+| `gz-yxsw.com` | 首页层观察站 | 仍以首页层回访为主 | 继续等深页扩展 |
+| `glae.cc` | 首页层观察站 | 当前主要是首页与测试探针噪音 | 继续观察是否出现真实内容页命中 |
+
+### A组明日优先动作
+
+1. 继续盯 `jingxifa.com` 缓存复查结果
+2. 继续看 `cnzhenbang.com` 是否进入 detail / play
+3. 看 `codohealth.com` 是否继续扩大 deep page 回访
+
+## B组
+
+对应根目录事实记录:
+
+- [2026-04-18-B组9站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-B组9站-蜘蛛回访分析.md)
+
+当前重点域名:
+
+1. `lcdchq.com`
+2. `oronorent.com`
+
+当前关注点:
+
+1. 清缓存后详情页 `h1` 是否恢复
+2. 是否还属于缓存滞后站
+
+### 当前状态板
+
+| 域名 | 当前定位 | 当前状态 | 下一步 |
+|---|---|---|---|
+| `lcdchq.com` | 缓存滞后优先站 | 已有 detail 200,但普通访问仍落后于 `?__nocache=1` | 继续缓存复查 |
+| `oronorent.com` | 缓存滞后优先站 | 已有单点 detail 200,仍需先排除旧缓存影响 | 继续缓存复查 + 观察深页扩展 |
+| `lgyz.net` | 正向样本站 | 已有 detail / play 命中,但状态不够稳定 | 继续看是否稳定放量 |
+| `jpjdxs.com` | 正向观察站 | detail / play 样式路径已能被抓到 200 | 看搜索页是否开始真实回访 |
+| `gxhongzhuang.com` | detail 观察站 | 已见 detail 200 | 继续观察是否进入 play |
+| `jxxgygy.com` | 风险观察站 | `/sitemap.xml => 444` 需后续复核 | 单独列为风险项 |
+| `leici1940.com` | play 观察站 | 已见 play-like 命中 | 看首页和 detail 是否跟上 |
+| `pcslcl.com` | 弱站 | 当前仍偏 robots 层 | 等下一轮日志 |
+| `sdxtwnc.com` | 弱站 | 当前仍偏首页层 | 等下一轮日志 |
+
+### B组明日优先动作
+
+1. 继续盯 `lcdchq.com`
+2. 继续盯 `oronorent.com`
+3. 看 `lgyz.net` 是否稳定形成 detail -> play
+4. 复核 `jxxgygy.com` 的 sitemap 风险
+
+## 当前建议
+
+1. A / B 组的原始事实继续写在 `docs/` 根目录文档
+2. GPT 专属目录负责做节奏管理、跟踪板和阶段汇总
+3. 每日复盘优先写到 [03-GPT模板每日复盘模板-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/03-GPT模板每日复盘模板-2026-04-18.md)
+
+## 当前全局优先级
+
+### P0
+
+1. `jingxifa.com`
+2. `lcdchq.com`
+3. `cnzhenbang.com`
+4. `oronorent.com`
+
+### P1
+
+1. `codohealth.com`
+2. `lgyz.net`
+3. `jpjdxs.com`
+
+### P2
+
+1. `liangzuan.net`
+2. `gz-yxsw.com`
+3. `glae.cc`
+4. `gxhongzhuang.com`
+5. `jxxgygy.com`
+6. `leici1940.com`
+7. `pcslcl.com`
+8. `sdxtwnc.com`
diff --git a/docs/gpt-template-seo/05-GPT模板首批4站执行后汇总-2026-04-18.md b/docs/gpt-template-seo/05-GPT模板首批4站执行后汇总-2026-04-18.md
new file mode 100644
index 0000000..3871d98
--- /dev/null
+++ b/docs/gpt-template-seo/05-GPT模板首批4站执行后汇总-2026-04-18.md
@@ -0,0 +1,12 @@
+# 05 GPT模板首批4站执行后汇总 2026-04-18
+
+统一看:
+
+1. 哪些站已恢复一致
+2. 哪些站仍需继续跟缓存
+3. 哪些站需要回模板 / 路由层
+
+执行后结果请同步参考:
+
+- [2026-04-18-首批4站执行后结果汇总页.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站执行后结果汇总页.md)
+- [2026-04-18-首批4站执行后结果汇总页.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站执行后结果汇总页.md)
diff --git a/docs/gpt-template-seo/06-GPT模板curl复查与判读索引-2026-04-18.md b/docs/gpt-template-seo/06-GPT模板curl复查与判读索引-2026-04-18.md
new file mode 100644
index 0000000..15b3103
--- /dev/null
+++ b/docs/gpt-template-seo/06-GPT模板curl复查与判读索引-2026-04-18.md
@@ -0,0 +1,13 @@
+# 06 GPT模板curl复查与判读索引 2026-04-18
+
+## 命令
+
+- [2026-04-18-首批4站-curl复查命令清单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站-curl复查命令清单.md)
+
+## 判读
+
+- [2026-04-18-首批4站-curl结果判读表.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站-curl结果判读表.md)
+
+## 现场执行
+
+- [2026-04-18-首批4站现场执行顺序汇总.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站现场执行顺序汇总.md)
diff --git a/docs/gpt-template-seo/07-GPT模板交接说明-2026-04-18.md b/docs/gpt-template-seo/07-GPT模板交接说明-2026-04-18.md
new file mode 100644
index 0000000..e51ba1a
--- /dev/null
+++ b/docs/gpt-template-seo/07-GPT模板交接说明-2026-04-18.md
@@ -0,0 +1,11 @@
+# 07 GPT模板交接说明 2026-04-18
+
+如果是新的 Codex 会话或临时接手,先看:
+
+1. [00-GPT模板SEO公共总览-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/00-GPT模板SEO公共总览-2026-04-18.md)
+2. [01-GPT模板7天SEO执行主线-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/01-GPT模板7天SEO执行主线-2026-04-18.md)
+3. [07-GPT模板交接说明-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/07-GPT模板交接说明-2026-04-18.md)
+
+一句话:
+
+> GPT 模板这条线现在重点不是继续扩文档,而是等新蜘蛛日志、继续跟首批 4 站缓存复查结果,并把阶段性结论同步回 `docs/` 根目录公共主线。
diff --git a/docs/gpt-template-seo/08-GPT模板其它服务器更新交接-2026-04-18.md b/docs/gpt-template-seo/08-GPT模板其它服务器更新交接-2026-04-18.md
new file mode 100644
index 0000000..140d0ec
--- /dev/null
+++ b/docs/gpt-template-seo/08-GPT模板其它服务器更新交接-2026-04-18.md
@@ -0,0 +1,327 @@
+# 08 GPT模板其它服务器最新版对齐交接 2026-04-18
+
+这份文档给“其它服务器上的 Codex / 接手同学”使用。
+
+目标不是让对方自己猜,而是让对方直接知道:
+
+1. 这次要同步的是哪一条线
+2. 哪些文件必须一起更新
+3. 上线后先验什么
+4. 出现异常时先查哪里
+
+## 1. 先定边界
+
+这次不是“从老模板迁到 GPT 模板”。
+
+前提是:
+
+1. 目标服务器原本就是 GPT 模板
+2. 目标服务器也在跑 `videoGpt1`
+3. 现在要做的是把它对齐到当前这台机器的最新 GPT 主线版本
+
+这次同步的不是老模板,也不是全站所有样式。
+
+这次同步的是:
+
+1. `videoGpt1` 这条 GPT 模板线
+2. GPT 模板详情 / 播放 / 搜索页 SEO 修复
+3. slug-only 详情兜底
+4. sitemap 修复
+5. 前台详情异常补充日志
+
+不要混入:
+
+1. `1001-1005` 老模板
+2. 其它组还没更新到当前 GPT 主线版本的站
+3. 与 GPT 模板无关的历史试验文件
+
+## 2. 这次同步的核心目标
+
+把“原本也是 GPT 模板”的其它服务器,对齐到当前主线,重点保证下面 5 件事:
+
+1. slug-only 详情页不要再硬 `404`
+2. `/detail/pinyin-xxx` 这类链接能兜底到真实详情页
+3. sitemap 主入口和视频分页正常
+4. GPT 模板搜索页 / 播放页 / 详情页主标题正常
+5. 如果前台详情页再出现 ThinkPHP 错页,能在日志里抓到异常栈
+
+## 3. 必须同步的代码文件
+
+下面这些文件建议按“必须同步”处理,不要只挑一半。
+
+### 3.1 路由与详情兜底
+
+- [SiteContext.php](/www/wwwroot/diff-maccms/SEONexus/code/app/services/SiteContext.php)
+- [VideoService.php](/www/wwwroot/diff-maccms/SEONexus/code/app/services/VideoService.php)
+- [router.php](/www/wwwroot/diff-maccms/SEONexus/code/app/home/config/router.php)
+
+这一组负责:
+
+1. 域名上下文正确落到 GPT 站
+2. `/detail/:strPinyin`
+3. `/detail/pinyin-:strPinyin`
+4. slug-only 详情 fallback
+5. 播放路由的详情取数兼容
+
+### 3.2 sitemap 修复
+
+- [VideoSiteMapLogic.php](/www/wwwroot/diff-maccms/SEONexus/code/app/task/logic/VideoSiteMapLogic.php)
+- [SiteMapLogic.php](/www/wwwroot/diff-maccms/SEONexus/code/app/task/logic/SiteMapLogic.php)
+
+这一组负责:
+
+1. sitemap 目录递归创建
+2. 详情 URL slug 规范化
+3. 空 slug 回退
+
+### 3.3 前台异常抓栈
+
+- [ExceptionHandle.php](/www/wwwroot/diff-maccms/SEONexus/code/app/ExceptionHandle.php)
+
+这一项是这次补的关键兜底。
+
+作用:
+
+1. 当前台 detail / play 类请求再出现 ThinkPHP 错页
+2. 自动记录 host、url、route 参数、UA、异常 message、file、line
+3. 方便后续按时间点抓栈
+
+### 3.4 GPT 模板详情 / 播放 / 搜索页模板
+
+- [getVideoInfo.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/video/getVideoInfo.html)
+- [getVideoPlayUrl.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html)
+- [dplayer.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/player/engine/dplayer.html)
+- [title.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/detail_main/title.html)
+
+搜索页:
+
+- [search_header_simple.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/search/search_header_simple.html)
+- [search_header_seo.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/search/search_header_seo.html)
+- [search_header_rich.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/search/search_header_rich.html)
+- [search_header_centered.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/search/search_header_centered.html)
+- [search_header_media.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/search/search_header_media.html)
+
+播放页:
+
+- [play_01.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/play/play_01.html)
+- [play_02.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/play/play_02.html)
+- [play_03.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/play/play_03.html)
+- [play_04.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/play/play_04.html)
+- [play_05.html](/www/wwwroot/diff-maccms/SEONexus/code/app/home/view/videoGpt1/module/play/play_05.html)
+
+## 4. 推荐同步顺序
+
+不要乱序,建议按下面顺序做:
+
+1. 先同步服务层与路由:
+ - `SiteContext.php`
+ - `VideoService.php`
+ - `router.php`
+2. 再同步 sitemap:
+ - `VideoSiteMapLogic.php`
+ - `SiteMapLogic.php`
+3. 再同步 GPT 模板:
+ - `getVideoInfo.html`
+ - `getVideoPlayUrl.html`
+ - 搜索页模板
+ - 播放页模板
+ - `detail_main/title.html`
+4. 最后同步异常处理:
+ - `ExceptionHandle.php`
+
+原因:
+
+1. 先保证路由和取数能通
+2. 再保证 sitemap 不继续产坏链
+3. 再保证页面展示层正常
+4. 最后补抓栈,方便后续继续盯
+
+## 5. 其它服务器接手 Codex 的执行步骤
+
+### 第一步:先确认该服务器是不是同一条 GPT 模板线
+
+先确认目标站是否真的使用 `videoGpt1`。
+
+如果不是,就不要直接照搬这份文档。
+
+如果是,就按“同模板线升级”处理,不要按“跨模板迁移”处理。
+
+### 第二步:同步上面的必须文件
+
+如果是同一套 GPT 模板代码目录,优先直接按文件覆盖同步。
+
+如果是人工搬运,至少保证:
+
+1. 服务层 3 个文件一起到位
+2. sitemap 2 个文件一起到位
+3. GPT 模板文件整组到位
+4. `ExceptionHandle.php` 最后到位
+
+### 第三步:清理运行时缓存
+
+同步完代码后,至少做一次运行时清理,避免旧编译模板或旧路由缓存继续干扰。
+
+重点关注:
+
+1. 模板缓存
+2. runtime 缓存
+3. sitemap 输出缓存
+
+如果接手的 Codex 不确定怎么清,就先只做安全清理,不要删业务数据。
+
+### 第四步:先验 4 类 URL
+
+每台 GPT 服务器完成最新版对齐后,至少要验这 4 类:
+
+1. 首页
+2. 搜索页
+3. 详情页
+4. 播放页
+
+## 6. 上线后最小验收清单
+
+### 6.1 详情页兜底
+
+至少抽查 2 类:
+
+1. 正常详情 URL
+2. slug-only / pinyin 详情 URL
+
+例如:
+
+```text
+/detail/pinyin-xxxxx
+/film/slug/id
+/movie/id-slug
+```
+
+通过标准:
+
+1. 返回 `200`
+2. canonical 正常
+3. 页面主 `h1` 正常
+4. 不再硬跳 ThinkPHP 错页
+
+### 6.2 搜索页
+
+通过标准:
+
+1. 搜索页 `h1` 有内容
+2. 不再空标题
+3. 搜索结果页 title / canonical 正常
+
+### 6.3 播放页
+
+通过标准:
+
+1. 播放页主标题正常
+2. 标题不再掉成空值
+3. 能从播放页正常回到详情页
+
+### 6.4 sitemap
+
+至少验:
+
+1. `/sitemap.xml`
+2. `/sitemap_index.xml`
+3. `/sitemap-main.xml`
+
+通过标准:
+
+1. 返回 `200`
+2. 能打开
+3. 详情 URL 不再明显带空 slug
+
+## 7. 推荐验收命令
+
+### 看状态码
+
+```bash
+curl -I -L -s 'https://example.com/detail/pinyin-xxx'
+```
+
+### 看 nocache
+
+```bash
+curl -I -L -s 'https://example.com/detail/pinyin-xxx?__nocache=1'
+```
+
+### 抽取 title / canonical / h1
+
+```bash
+curl -L -s 'https://example.com/detail/pinyin-xxx' | rg -o '.*?||]*>.*?
' -N
+```
+
+## 8. 如果仍出现 ThinkPHP 错页,先怎么查
+
+这次已经补了前台 detail/play 异常日志。
+
+如果其它服务器也同步了 [ExceptionHandle.php](/www/wwwroot/diff-maccms/SEONexus/code/app/ExceptionHandle.php),下次再出现:
+
+1. 先记下精确时间
+ - 例如:`2026-04-18 14:23:15 +08:00`
+2. 记下完整 URL
+3. 去 runtime 日志里搜:
+ - `frontend_detail_exception`
+
+重点看:
+
+1. `host`
+2. `url`
+3. `route.strPinyin`
+4. `route.intVId`
+5. `exception_message`
+6. `exception_file`
+7. `exception_line`
+
+## 9. 给其它服务器 Codex 的接手话术
+
+可以直接复制这段给对方:
+
+```text
+这次不是把别的模板迁到 GPT。
+
+目标服务器原本也是 GPT 模板,现在要做的是把它对齐到当前最新 GPT 主线版本。
+
+请只处理 videoGpt1 相关代码,不要混入 1001-1005 老模板。
+
+必须一起同步:
+1. app/services/SiteContext.php
+2. app/services/VideoService.php
+3. app/home/config/router.php
+4. app/task/logic/VideoSiteMapLogic.php
+5. app/task/logic/SiteMapLogic.php
+6. app/ExceptionHandle.php
+7. app/home/view/videoGpt1/video/getVideoInfo.html
+8. app/home/view/videoGpt1/video/getVideoPlayUrl.html
+9. app/home/view/videoGpt1/module/detail_main/title.html
+10. app/home/view/videoGpt1/module/player/engine/dplayer.html
+11. app/home/view/videoGpt1/module/search/ 下 5 个搜索页模板
+12. app/home/view/videoGpt1/module/play/ 下 5 个播放页模板
+
+更新完成后先验:
+1. 首页
+2. 搜索页
+3. 详情页
+4. 播放页
+5. sitemap.xml / sitemap_index.xml / sitemap-main.xml
+
+重点确认:
+1. slug-only 详情不再 404
+2. 搜索页 h1 正常
+3. 播放页 h1 正常
+4. canonical 正常
+5. 如再出现 ThinkPHP 错页,去查 frontend_detail_exception 日志
+```
+
+## 10. 接手前建议先看
+
+先看这些文档再动代码:
+
+1. [README.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/README.md)
+2. [00-GPT模板SEO公共总览-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/00-GPT模板SEO公共总览-2026-04-18.md)
+3. [07-GPT模板交接说明-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/07-GPT模板交接说明-2026-04-18.md)
+
+## 11. 一句话结论
+
+> 其它服务器如果原本也是 GPT 模板,现在要对齐到当前最新版,不要只改几个模板文件,必须把路由、服务层、sitemap 和异常抓栈一起同步,否则最容易出现“页面样式像更新了,但 slug 详情 / sitemap / 偶发异常仍停在旧版本”的半更新问题。
diff --git a/docs/gpt-template-seo/2026-04-17-GPT站群优先推收录名单.md b/docs/gpt-template-seo/2026-04-17-GPT站群优先推收录名单.md
new file mode 100644
index 0000000..dd4ea93
--- /dev/null
+++ b/docs/gpt-template-seo/2026-04-17-GPT站群优先推收录名单.md
@@ -0,0 +1,860 @@
+# 2026-04-17 GPT 站群优先推收录名单
+
+## 结论
+
+当前 GPT 站群已经完成以下基础修复:
+
+- 详情无 id 兼容恢复
+- 深链 `HEAD` 兼容恢复
+- `sitemap.xml` / `sitemap_index.xml` / `sitemap-main.xml` / `sitemap-videos-*.xml` 恢复
+- sitemap 空 slug 问题已修复
+- 15 站首页 → 搜索 → 详情 → 播放轨迹探针全部通过
+
+因此,当前工作重心可以从“修基础可用性”切到“优先推收录 + 定点清缓存 + 提升页面质量”。
+
+## Tier 1:优先推收录域名
+
+以下域名适合作为第一批重点推收录对象:
+
+1. `liangzuan.net`
+2. `cnzhenbang.com`
+3. `codohealth.com`
+4. `jingxifa.com`
+5. `gz-yxsw.com`
+6. `glae.cc`
+7. `gxhongzhuang.com`
+8. `jpjdxs.com`
+9. `jxxgygy.com`
+10. `lcdchq.com`
+11. `leici1940.com`
+12. `lgyz.net`
+13. `oronorent.com`
+14. `pcslcl.com`
+15. `sdxtwnc.com`
+
+### 入选原因
+
+- 自动样本发现成功
+- 首页、搜索、详情、播放全部 `200`
+- sitemap 主入口和视频分页已恢复
+- 详情 URL 与播放 URL 可直接访问
+- URL family 已覆盖多种风格,适合验证批量推收录效果
+
+## Tier 1 中更适合率先推进的前 6 站
+
+### 第一梯队
+
+1. `liangzuan.net`
+2. `cnzhenbang.com`
+3. `codohealth.com`
+4. `jingxifa.com`
+5. `gz-yxsw.com`
+6. `glae.cc`
+
+### 原因
+
+- 前期排障最充分,链路验证最完整
+- 已明确恢复 sitemap、详情深链、播放深链
+- 多种 URL family 代表性强,适合作为样板观察收录速度
+
+## 当前页面质量观察
+
+### 已通过的质量信号
+
+- 首页标题整体可用
+- 首页描述整体可用
+- 详情页标题整体可用
+- 详情页主标题在无缓存状态下大多数已恢复为纯净视频名
+
+### 仍需关注的问题
+
+- 个别站普通访问仍命中旧缓存 HTML
+- 典型表现:
+ - `h1` 为空
+ - `h1` 带 `0.0`
+ - `h1` 命中旧变体
+
+## 明确属于“缓存滞后”的站
+
+以下站点已确认代码修复生效,但普通访问仍可能看到旧 HTML:
+
+1. `jingxifa.com`
+ - 普通访问:`武炼巅峰(短剧) 0.0`
+ - `?__nocache=1`:`武炼巅峰(短剧)`
+2. `lcdchq.com`
+ - 普通访问:`武炼巅峰(短剧) 0.0`
+ - `?__nocache=1`:`武炼巅峰(短剧)`
+3. `cnzhenbang.com`
+ - 普通访问:`h1` 为空
+ - `?__nocache=1`:`武炼巅峰(短剧)`
+4. `oronorent.com`
+ - 普通访问:`h1` 为空
+ - `?__nocache=1`:`武炼巅峰(短剧)`
+
+### 说明
+
+- 上述站点不是代码没生效
+- 已确认 `?__nocache=1` 返回的是新 HTML
+- 因此这批站优先动作应是前端缓存刷新,而不是继续改模板
+
+## 需继续观察但不视为阻塞的问题
+
+1. `glae.cc`
+ - `h1` 仍显示 `武炼巅峰(短剧) 2026`
+ - 当前更像模板变体中保留了合法年份展示,不属于空值或脏分数问题
+ - 可后续再决定是否进一步统一收敛
+
+## 建议执行顺序
+
+1. 先推 Tier 1 前 6 站的 sitemap 与收录提交
+2. 同步清理 `jingxifa.com`、`lcdchq.com`、`cnzhenbang.com`、`oronorent.com` 的前端缓存
+3. 清缓存后复查:
+ - 首页标题
+ - 详情页 `h1`
+ - 详情页 canonical
+ - 播放页主标题
+4. 再推进剩余 Tier 1 域名
+
+## 当前判断
+
+这批 GPT 站已经不是“能不能收录”的问题,而是“先让哪一批更快进入收录与点击验证”的问题。
+
+优先策略建议:
+
+- 先拿前 6 站冲收录反馈
+- 再拿缓存已刷新的站观察蜘蛛回访与详情页命中
+- 最后再扩展到全部 15 站
+
+## 2026-04-17 搜索页 / 播放页质量抽样补充
+
+本轮不再只看 `200`,而是补验:
+
+- 搜索页 `h1`
+- 搜索页 canonical
+- 播放页 `h1`
+- 播放页 canonical
+
+### 已抽样站点
+
+1. `liangzuan.net`
+ - 搜索页:
+ - `h1 => “liangzuan.net” 搜索结果`
+ - canonical 正常
+ - 播放页:
+ - `h1 => 武炼巅峰(短剧) 全集`
+ - canonical 正常
+
+2. `cnzhenbang.com`
+ - 搜索页:
+ - `h1 => 菜鸟臻榜 搜索结果`
+ - canonical 正常
+ - 播放页:
+ - `h1 => 武炼巅峰(短剧) 全集`
+ - canonical 正常
+
+3. `codohealth.com`
+ - 搜索页:
+ - `h1 => 东和影视 搜索结果`
+ - canonical 正常
+ - 播放页:
+ - `h1 => 武炼巅峰(短剧) 全集`
+ - canonical 正常
+
+4. `jingxifa.com`
+ - 搜索页:
+ - `h1 => 京淅发影院 搜索结果`
+ - canonical 正常
+ - 播放页:
+ - `h1 => 武炼巅峰(短剧) 全集`
+ - canonical 正常
+
+5. `gz-yxsw.com`
+ - 搜索页:
+ - `h1 => 光棍影院 搜索结果`
+ - canonical 正常
+ - 播放页:
+ - `h1 => 武炼巅峰(短剧) 全集`
+ - canonical 正常
+
+### 结论
+
+- 当前 5 个优先样本站:
+ - 搜索页不再是空壳 `h1`
+ - 播放页不再缺失 `h1`
+ - canonical 主链均正常输出
+- 当前主问题已从“链路是否可用”转向“标题表达是否继续统一优化”
+
+## 2026-04-17 第 1 组质量验收补充
+
+继续抽检以下 5 个优先域名:
+
+1. `glae.cc`
+2. `gxhongzhuang.com`
+3. `jpjdxs.com`
+4. `jxxgygy.com`
+5. `lcdchq.com`
+
+验收结果:
+
+1. `glae.cc`
+ - 搜索页:
+ - `h1 => 格拉尔影院 搜索结果`
+ - canonical 正常
+ - 播放页:
+ - `h1 => 武炼巅峰(短剧) 全集`
+ - canonical 正常
+
+2. `gxhongzhuang.com`
+ - 搜索页:
+ - `h1 => 宏壮影院 搜索结果`
+ - canonical 正常
+ - 播放页:
+ - `h1 => 武炼巅峰(短剧) 全集`
+ - canonical 正常
+
+3. `jpjdxs.com`
+ - 初始发现:
+ - 搜索页 `canonical` 正常
+ - 但源码内 `h1 => NO_H1`
+ - 根因:
+ - 该站搜索头走的是 `search_header_media.html`
+ - 该 family 全部变体只有 `figcaption`,没有任何 `h1`
+ - 已修复:
+ - 在 `app/home/view/videoGpt1/module/search/search_header_media.html` 主模板层补入稳定隐藏 `h1`
+ - 修复后复查:
+ - `h1 => 天堂影院 搜索结果`
+ - canonical 正常
+ - 播放页:
+ - `h1 => 武炼巅峰(短剧) 全集`
+ - canonical 正常
+
+4. `jxxgygy.com`
+ - 搜索页:
+ - `h1 => 广源影院 搜索结果`
+ - canonical 正常
+ - 播放页:
+ - `h1 => 武炼巅峰(短剧) 全集`
+ - canonical 正常
+
+5. `lcdchq.com`
+ - 搜索页:
+ - `h1 => 欧美影院 搜索结果`
+ - canonical 正常
+ - 播放页:
+ - `h1 => 武炼巅峰(短剧) 全集`
+ - canonical 正常
+
+阶段结论:
+
+- 第 1 组 5 站已全部通过“搜索页 H1 + 搜索 canonical + 播放页 H1 + 播放 canonical”验收
+- 本轮唯一真实结构性异常是 `jpjdxs.com` 搜索页缺失 `h1`
+- 该问题已完成修复,并验证生效
+
+## 2026-04-17 第 2 组质量验收补充
+
+继续抽检以下 5 个优先域名:
+
+1. `leici1940.com`
+2. `lgyz.net`
+3. `oronorent.com`
+4. `pcslcl.com`
+5. `sdxtwnc.com`
+
+验收结果:
+
+1. `leici1940.com`
+ - 搜索页:
+ - `h1 => 仪电影院 搜索结果`
+ - canonical 正常
+ - 播放页:
+ - `h1 => 武炼巅峰(短剧) 全集`
+ - canonical 正常
+
+2. `lgyz.net`
+ - 搜索页:
+ - `h1 => 龙港亚洲影院 搜索结果`
+ - canonical 正常
+ - 播放页:
+ - `h1 => 武炼巅峰(短剧) 全集`
+ - canonical 正常
+
+3. `oronorent.com`
+ - 搜索页:
+ - `h1 => 奥诺影视 搜索结果`
+ - canonical 正常
+ - 播放页:
+ - `h1 => 武炼巅峰(短剧) 全集`
+ - canonical 正常
+
+4. `pcslcl.com`
+ - 搜索页:
+ - `h1 => 磁力影视 搜索结果`
+ - canonical 正常
+ - 播放页:
+ - `h1 => 武炼巅峰(短剧) 全集`
+ - canonical 正常
+
+5. `sdxtwnc.com`
+ - 搜索页:
+ - `h1 => “鑫拓影视” 搜索结果`
+ - canonical 正常
+ - 播放页:
+ - `h1 => 武炼巅峰(短剧) 全集`
+ - canonical 正常
+
+阶段结论:
+
+- 第 2 组 5 站全部通过“搜索页 H1 + 搜索 canonical + 播放页 H1 + 播放 canonical”验收
+- 本轮未发现新的结构性模板问题
+- 当前前两组共 10 个优先域名,已全部达到主链路质量可用状态
+
+## 2026-04-17 优先 15 站总验收结论
+
+截至当前,优先 15 个 GPT 域名已全部完成以下质量验收:
+
+- 搜索页 `h1`
+- 搜索页 canonical
+- 播放页 `h1`
+- 播放页 canonical
+
+### 已完成验收的 15 个域名
+
+1. `liangzuan.net`
+2. `cnzhenbang.com`
+3. `codohealth.com`
+4. `jingxifa.com`
+5. `gz-yxsw.com`
+6. `glae.cc`
+7. `gxhongzhuang.com`
+8. `jpjdxs.com`
+9. `jxxgygy.com`
+10. `lcdchq.com`
+11. `leici1940.com`
+12. `lgyz.net`
+13. `oronorent.com`
+14. `pcslcl.com`
+15. `sdxtwnc.com`
+
+### 总体结论
+
+- 15 站搜索页 canonical 全部正常
+- 15 站播放页 canonical 全部正常
+- 15 站播放页 `h1` 已全部稳定为可识别主标题
+- 15 站搜索页 `h1` 已全部具备关键词承接能力
+
+### 本轮唯一真实结构性问题
+
+仅发现 1 个模板级结构问题:
+
+1. `jpjdxs.com`
+ - 搜索页源码缺失 `h1`
+ - 根因是该站走 `search_header_media.html`
+ - 该 family 历史版本全部变体只有 `figcaption`,没有 `h1`
+ - 现已在 `app/home/view/videoGpt1/module/search/search_header_media.html` 模板层统一修复
+
+这意味着:
+
+- 本轮 15 站里,真正的新结构性问题只有 1 个
+- 且已经修复完成,不再是未解决状态
+
+### 进入下一阶段后的关注点
+
+当前这批站的重点已经从“结构是否合格”切换为“收录反馈是否开始出现”。
+
+后续优先动作应为:
+
+1. 继续按既定顺序推 sitemap 与收录提交
+2. 优先处理已知缓存滞后站:
+ - `jingxifa.com`
+ - `lcdchq.com`
+ - `cnzhenbang.com`
+ - `oronorent.com`
+3. 观察蜘蛛回访与首页/详情/播放命中情况
+4. 再决定是否继续精修标题文案细节
+
+### 当前可执行判断
+
+这 15 个优先域名,已经可以被视为“主链路质量达标、适合进入收录推进阶段”的站点池。
+
+## 2026-04-17 收录推进执行清单
+
+下面这份清单的目标,不是再做模板体检,而是让后续执行按统一节奏推进:
+
+- 先推样板站
+- 再清缓存滞后站
+- 再扩大到全部 15 站
+- 最后统一看蜘蛛回访与日志反馈
+
+### A 组:优先样板推收录
+
+建议优先推进以下 6 个域名:
+
+1. `liangzuan.net`
+2. `cnzhenbang.com`
+3. `codohealth.com`
+4. `jingxifa.com`
+5. `gz-yxsw.com`
+6. `glae.cc`
+
+执行建议:
+
+1. 先提交 `sitemap_index.xml`
+2. 再提交 `sitemap-main.xml`
+3. 如平台支持,再补提 `sitemap-videos-1.xml`
+4. 提交后优先观察:
+ - 首页是否被回访
+ - 搜索页是否被回访
+ - 详情页是否开始出现蜘蛛命中
+ - 播放页是否开始出现抓取
+
+### B 组:缓存滞后优先处理
+
+以下域名已确认 `?__nocache=1` 正常,但普通访问可能仍命中旧 HTML:
+
+1. `jingxifa.com`
+2. `lcdchq.com`
+3. `cnzhenbang.com`
+4. `oronorent.com`
+
+执行建议:
+
+1. 优先刷新前端缓存
+2. 刷新后复查:
+ - 首页标题
+ - 详情页 `h1`
+ - 搜索页 `h1`
+ - 播放页 `h1`
+3. 若缓存刷新后仍异常,再回到模板或路由层继续排查
+
+### C 组:其余域名按稳定批次推进
+
+其余 9 个域名可以按稳定批次推进收录:
+
+1. `gxhongzhuang.com`
+2. `jpjdxs.com`
+3. `jxxgygy.com`
+4. `lcdchq.com`
+5. `leici1940.com`
+6. `lgyz.net`
+7. `oronorent.com`
+8. `pcslcl.com`
+9. `sdxtwnc.com`
+
+执行建议:
+
+1. 每批 3 个域名推进
+2. 每批推进后至少观察一次:
+ - sitemap 是否被抓
+ - 搜索页是否有回访
+ - 详情页是否开始有命中
+3. 避免 9 个域名同时推进后无法判断反馈来源
+
+## 日志观察重点
+
+进入收录推进阶段后,日志观察应优先盯以下类型:
+
+1. `sitemap.xml / sitemap_index.xml / sitemap-main.xml / sitemap-videos-*`
+2. 搜索页入口
+ - `/get-index`
+ - `/get/index`
+ - `/query`
+ - `/get-home`
+ - `/get/keywords`
+ - `/find`
+3. 详情页
+4. 播放页
+
+优先关注信号:
+
+1. 同一域名是否出现 sitemap -> 搜索页 -> 详情页 的连续抓取
+2. 详情页是否开始被重复访问而不是只访问一次
+3. 播放页是否开始出现稳定蜘蛛命中
+4. 是否仍出现旧 404 路径回访
+
+## 下一阶段判断标准
+
+进入“开始有收录反馈”阶段,可以用以下标准判断:
+
+1. sitemap 持续被抓
+2. 搜索页开始被回访
+3. 详情页开始出现重复蜘蛛访问
+4. 旧 404 深链明显减少
+5. 日志里开始出现更深层的播放页抓取
+
+如果以上 5 条同时开始出现,就说明这批站已经从“结构合格”进入“收录推进生效”阶段。
+
+## 15 站 Sitemap 提交清单
+
+下面这份清单可直接用于收录推进阶段的 sitemap 提交。
+
+建议提交优先级:
+
+1. `sitemap_index.xml`
+2. `sitemap-main.xml`
+3. `sitemap-videos-1.xml`
+
+### A 组:优先样板 6 站
+
+1. `liangzuan.net`
+ - `https://www.liangzuan.net/sitemap_index.xml`
+ - `https://www.liangzuan.net/sitemap-main.xml`
+ - `https://www.liangzuan.net/sitemap-videos-1.xml`
+2. `cnzhenbang.com`
+ - `https://www.cnzhenbang.com/sitemap_index.xml`
+ - `https://www.cnzhenbang.com/sitemap-main.xml`
+ - `https://www.cnzhenbang.com/sitemap-videos-1.xml`
+3. `codohealth.com`
+ - `https://www.codohealth.com/sitemap_index.xml`
+ - `https://www.codohealth.com/sitemap-main.xml`
+ - `https://www.codohealth.com/sitemap-videos-1.xml`
+4. `jingxifa.com`
+ - `https://www.jingxifa.com/sitemap_index.xml`
+ - `https://www.jingxifa.com/sitemap-main.xml`
+ - `https://www.jingxifa.com/sitemap-videos-1.xml`
+5. `gz-yxsw.com`
+ - `https://www.gz-yxsw.com/sitemap_index.xml`
+ - `https://www.gz-yxsw.com/sitemap-main.xml`
+ - `https://www.gz-yxsw.com/sitemap-videos-1.xml`
+6. `glae.cc`
+ - `https://www.glae.cc/sitemap_index.xml`
+ - `https://www.glae.cc/sitemap-main.xml`
+ - `https://www.glae.cc/sitemap-videos-1.xml`
+
+### B 组:稳定推进 5 站
+
+7. `gxhongzhuang.com`
+ - `https://www.gxhongzhuang.com/sitemap_index.xml`
+ - `https://www.gxhongzhuang.com/sitemap-main.xml`
+ - `https://www.gxhongzhuang.com/sitemap-videos-1.xml`
+8. `jpjdxs.com`
+ - `https://www.jpjdxs.com/sitemap_index.xml`
+ - `https://www.jpjdxs.com/sitemap-main.xml`
+ - `https://www.jpjdxs.com/sitemap-videos-1.xml`
+9. `jxxgygy.com`
+ - `https://www.jxxgygy.com/sitemap_index.xml`
+ - `https://www.jxxgygy.com/sitemap-main.xml`
+ - `https://www.jxxgygy.com/sitemap-videos-1.xml`
+10. `lcdchq.com`
+ - `https://www.lcdchq.com/sitemap_index.xml`
+ - `https://www.lcdchq.com/sitemap-main.xml`
+ - `https://www.lcdchq.com/sitemap-videos-1.xml`
+11. `leici1940.com`
+ - `https://www.leici1940.com/sitemap_index.xml`
+ - `https://www.leici1940.com/sitemap-main.xml`
+ - `https://www.leici1940.com/sitemap-videos-1.xml`
+
+### C 组:补齐推进 4 站
+
+12. `lgyz.net`
+ - `https://www.lgyz.net/sitemap_index.xml`
+ - `https://www.lgyz.net/sitemap-main.xml`
+ - `https://www.lgyz.net/sitemap-videos-1.xml`
+13. `oronorent.com`
+ - `https://www.oronorent.com/sitemap_index.xml`
+ - `https://www.oronorent.com/sitemap-main.xml`
+ - `https://www.oronorent.com/sitemap-videos-1.xml`
+14. `pcslcl.com`
+ - `https://www.pcslcl.com/sitemap_index.xml`
+ - `https://www.pcslcl.com/sitemap-main.xml`
+ - `https://www.pcslcl.com/sitemap-videos-1.xml`
+15. `sdxtwnc.com`
+ - `https://www.sdxtwnc.com/sitemap_index.xml`
+ - `https://www.sdxtwnc.com/sitemap-main.xml`
+ - `https://www.sdxtwnc.com/sitemap-videos-1.xml`
+
+## 提交后建议记录的最小字段
+
+为了后续把“是否开始生效”看清楚,建议每次提交至少记录:
+
+1. 域名
+2. 提交时间
+3. 提交的 sitemap 类型
+ - `index`
+ - `main`
+ - `videos-1`
+4. 提交渠道
+ - 手动平台提交
+ - API
+ - 站长工具
+5. 24 小时后是否出现蜘蛛回访
+6. 72 小时后是否出现详情页命中
+
+## 推荐执行节奏
+
+1. 第一天先提交 A 组 6 站
+2. 同步刷新缓存滞后站
+3. 第二天补提 B 组前 3 站
+4. 第三天补齐剩余域名
+5. 每天固定看一次日志回访,不要提交完就放着不看
+
+## 日志回访观察清单
+
+这份清单的目标,是把“怎么看日志才算有效观察”固定下来,避免只看访问量,不看抓取结构。
+
+### 一、优先观察的请求类型
+
+每个域名优先看以下 4 类请求:
+
+1. sitemap 请求
+ - `/sitemap.xml`
+ - `/sitemap_index.xml`
+ - `/sitemap-main.xml`
+ - `/sitemap-videos-1.xml`
+ - `/sitemap-videos-2.xml`
+ - `/sitemap-videos-3.xml`
+ - `/sitemap-videos-4.xml`
+
+2. 搜索页请求
+ - `/get-index`
+ - `/get/index`
+ - `/query`
+ - `/get-home`
+ - `/get/keywords`
+ - `/find`
+ - 以及各域名冻结出来的真实搜索入口
+
+3. 详情页请求
+ - `/detail/...`
+ - `/film/...`
+ - `/xiangqing...`
+ - `/video-detail/...`
+ - `/shipin...`
+ - 以及各域名冻结出来的真实详情入口
+
+4. 播放页请求
+ - `/play/...`
+ - `/player/...`
+ - `/bofang...`
+ - `/m3u8...`
+ - `/watch/...`
+ - `/kan/...`
+ - `/bf...`
+ - 以及各域名冻结出来的真实播放入口
+
+### 二、优先观察的蜘蛛来源
+
+建议至少把以下访问单独标记出来看:
+
+1. 百度蜘蛛
+ - `Baiduspider`
+2. 必应蜘蛛
+ - `bingbot`
+3. 360 / 搜狗 / 其他中文搜索引擎蜘蛛
+4. 普通浏览器访问
+ - 用来区分“蜘蛛回访”与“人工访问”
+
+如果日志里能区分 IP 段或 UA 命中规则,优先按蜘蛛类型单独统计。
+
+### 三、什么算正向信号
+
+以下信号出现时,说明“收录推进开始生效”:
+
+1. sitemap 持续被抓
+ - 不只是抓一次,而是 24 小时内多次访问
+
+2. 搜索页开始被回访
+ - 尤其是命中真实搜索入口,而不是只访问首页
+
+3. 详情页开始被重复访问
+ - 同一详情页被多次访问,比单次命中更有价值
+
+4. 播放页开始被抓
+ - 说明蜘蛛已经开始从详情页往更深层走
+
+5. 命中顺序出现链路感
+ - 例如:
+ - `sitemap -> 搜索页 -> 详情页`
+ - `sitemap -> 详情页 -> 播放页`
+ - `首页 -> 搜索页 -> 详情页`
+
+### 四、什么算风险信号
+
+以下信号出现时,要优先回头排查:
+
+1. sitemap 有抓取,但详情页一直不被访问
+ - 说明 sitemap 入口在,但落地页吸引力或结构承接不足
+
+2. 搜索页被抓,但详情页没有跟进
+ - 说明搜索页与详情页之间的承接可能还不够强
+
+3. 大量旧 404 深链反复回访
+ - 说明外部索引里还残留旧路径
+ - 需要确认是否还有漏掉的兼容路由
+
+4. 普通访问正常,但蜘蛛访问状态码异常
+ - 要优先排查 UA、缓存、Nginx 规则与蜘蛛放行逻辑
+
+5. 同一站点频繁只抓首页,不抓深页
+ - 说明深页入口没有真正被推进
+
+### 五、建议最小观察周期
+
+建议按这个节奏看:
+
+1. 提交后 24 小时
+ - 看 sitemap 是否开始被抓
+ - 看是否出现搜索页回访
+
+2. 提交后 72 小时
+ - 看详情页是否开始出现命中
+ - 看播放页是否开始出现命中
+
+3. 提交后 7 天
+ - 看是否形成:
+ - sitemap 持续抓取
+ - 搜索页稳定回访
+ - 详情页重复访问
+ - 播放页开始命中
+
+### 六、建议记录格式
+
+每次看日志时,建议最少记录:
+
+1. 日期
+2. 域名
+3. 蜘蛛类型
+4. 命中的 URL 类型
+ - `sitemap`
+ - `search`
+ - `detail`
+ - `play`
+5. 命中数量
+6. 是否出现连续抓取链路
+7. 是否出现旧 404 回访
+
+### 七、当前最值得重点盯的站
+
+进入收录推进阶段后,建议优先盯这些站的日志反馈:
+
+1. `liangzuan.net`
+2. `cnzhenbang.com`
+3. `codohealth.com`
+4. `jingxifa.com`
+5. `gz-yxsw.com`
+6. `glae.cc`
+
+原因:
+
+- 这 6 站前期排障最充分
+- 结构修复最完整
+- URL family 代表性强
+- 最适合用来判断“这一轮收录推进是否已经开始产生真实反馈”
+
+## 缓存刷新优先清单
+
+下面这份清单只针对“代码已生效,但普通访问仍可能命中旧 HTML”的站点。
+
+目标不是继续改模板,而是:
+
+1. 先刷新前端缓存
+2. 再复查关键页面
+3. 确认是否从“缓存滞后”恢复到“线上真实输出已更新”
+
+### 需要优先刷新的站
+
+1. `jingxifa.com`
+2. `lcdchq.com`
+3. `cnzhenbang.com`
+4. `oronorent.com`
+
+### 每个站刷新后必须复查的页面
+
+建议至少复查这 4 类页面:
+
+1. 首页
+2. 搜索页
+3. 详情页
+4. 播放页
+
+### 复查重点
+
+#### 1. 首页
+
+重点看:
+
+- `title` 是否正常
+- `description` 是否正常
+- 是否仍明显命中旧模板输出
+
+#### 2. 搜索页
+
+重点看:
+
+- 是否返回 `200`
+- `h1` 是否为“关键词 + 搜索结果”类表达
+- canonical 是否仍正常
+
+#### 3. 详情页
+
+重点看:
+
+- `h1` 是否恢复正常
+- 是否仍为空
+- 是否仍出现 `0.0`
+- canonical 是否正常
+
+#### 4. 播放页
+
+重点看:
+
+- `h1` 是否存在
+- `h1` 是否仍为主标题
+- canonical 是否正常
+
+### 当前已知缓存滞后表现
+
+1. `jingxifa.com`
+ - 旧表现:
+ - 详情页普通访问 `h1 => 武炼巅峰(短剧) 0.0`
+ - 正常目标:
+ - 详情页 `h1` 恢复为纯净标题
+
+2. `lcdchq.com`
+ - 旧表现:
+ - 详情页普通访问 `h1 => 武炼巅峰(短剧) 0.0`
+ - 正常目标:
+ - 详情页 `h1` 恢复为纯净标题
+
+3. `cnzhenbang.com`
+ - 旧表现:
+ - 详情页普通访问 `h1` 为空
+ - 正常目标:
+ - 详情页 `h1` 恢复为有效标题
+
+4. `oronorent.com`
+ - 旧表现:
+ - 详情页普通访问 `h1` 为空
+ - 正常目标:
+ - 详情页 `h1` 恢复为有效标题
+
+### 建议复查顺序
+
+1. 先访问普通 URL
+2. 再访问同一 URL + `?__nocache=1`
+3. 对比两次输出是否一致
+
+如果普通访问与 `?__nocache=1` 已一致,说明缓存层已经跟上。
+
+如果普通访问仍旧落后于 `?__nocache=1`,说明仍是缓存滞后,不建议误判成模板失效。
+
+### 建议记录字段
+
+每次缓存刷新复查,最少记录:
+
+1. 域名
+2. 刷新时间
+3. 复查页面类型
+4. 普通访问结果
+5. `?__nocache=1` 结果
+6. 两者是否一致
+7. 是否还需要继续观察
+
+### 当前阶段建议
+
+这 4 个站的优先级很高,因为它们不是“结构坏了”,而是“缓存挡住了真实更新”。
+
+因此:
+
+1. 不要优先继续改模板
+2. 先把缓存层状态确认干净
+3. 再观察蜘蛛是否开始回访更新后的详情页
diff --git a/docs/gpt-template-seo/2026-04-18-A-B组优先清缓存执行单.md b/docs/gpt-template-seo/2026-04-18-A-B组优先清缓存执行单.md
new file mode 100644
index 0000000..fdf33c3
--- /dev/null
+++ b/docs/gpt-template-seo/2026-04-18-A-B组优先清缓存执行单.md
@@ -0,0 +1,96 @@
+# 2026-04-18 A/B组优先清缓存执行单
+
+这份文档用于把当前最需要优先刷新的站点固定下来,避免现场继续把“缓存滞后”误判成“代码没生效”。
+
+## 1. 今日优先清缓存站点
+
+### 第一优先级
+
+1. `jingxifa.com`
+2. `lcdchq.com`
+3. `cnzhenbang.com`
+4. `oronorent.com`
+
+### 第二优先级
+
+1. `jxxgygy.com`
+2. `lgyz.net`
+
+## 2. 为什么这批站要先清
+
+### `jingxifa.com`
+
+1. 已经拿到首页 / 详情 / 播放真实 `200`
+2. 代码侧修复已经生效
+3. 仍有普通访问落后于 `?__nocache=1` 的风险
+
+### `lcdchq.com`
+
+1. 已经拿到首页与详情 `200`
+2. 属于之前已确认的缓存滞后站
+3. 继续不清缓存,会影响人工复查与蜘蛛看到的新 HTML 一致性
+
+### `cnzhenbang.com`
+
+1. 当前还停在 `robots / category` 层较多
+2. 已被列入缓存优先复查名单
+3. 清缓存后更利于判断到底是页面发现慢,还是旧 HTML 影响
+
+### `oronorent.com`
+
+1. 已经出现单个详情样式路径 `200`
+2. 同时仍属于缓存滞后重点站
+3. 需要先把缓存影响移除,再看深页是否会继续扩展
+
+## 3. 清缓存后固定复查项
+
+每个域名都按同样顺序复查:
+
+1. 首页 `200`
+2. 搜索页 `h1`
+3. 搜索页 canonical
+4. 详情页 `h1`
+5. 详情页 canonical
+6. 播放页 `h1`
+7. 播放页 canonical
+8. 普通访问与 `?__nocache=1` 是否一致
+
+## 4. 清缓存后判定标准
+
+### 判定为“已恢复一致”
+
+满足以下条件即可:
+
+1. 普通访问和 `?__nocache=1` 页面主体一致
+2. `h1` 不再缺失
+3. canonical 正常
+4. 页面不再出现旧模板残留文案
+
+### 判定为“仍需继续跟”
+
+出现以下任一情况:
+
+1. 普通访问仍明显旧于 `?__nocache=1`
+2. 详情页 `h1` 仍空白或异常
+3. 播放页标题仍不稳定
+4. 搜索页仍未输出预期主标题
+
+## 5. 今日执行建议顺序
+
+1. 先清 `jingxifa.com`
+2. 再清 `lcdchq.com`
+3. 再清 `cnzhenbang.com`
+4. 再清 `oronorent.com`
+5. 清完后立即复查关键页
+6. 把复查结果写回 A / B 组蜘蛛回访文档
+
+## 6. 当前原则
+
+今天这批站点不建议先继续改模板。
+
+优先级应固定为:
+
+1. 先清缓存
+2. 再复查关键页
+3. 再看蜘蛛回访是否扩大
+4. 最后才决定是否继续做模板层微调
diff --git a/docs/gpt-template-seo/2026-04-18-首批4站-curl复查命令清单.md b/docs/gpt-template-seo/2026-04-18-首批4站-curl复查命令清单.md
new file mode 100644
index 0000000..ee304c5
--- /dev/null
+++ b/docs/gpt-template-seo/2026-04-18-首批4站-curl复查命令清单.md
@@ -0,0 +1,222 @@
+# 2026-04-18 首批4站 curl 复查命令清单
+
+这份文档用于在清缓存前后,直接通过 `curl` 快速复查首批 4 个优先站。
+
+适用场景:
+
+1. 现场刚清完前端缓存
+2. 需要快速对比普通访问与 `?__nocache=1`
+3. 不想再手工拼 URL 和 header 检查命令
+
+建议配合:
+
+- [2026-04-18-首批4站清缓存后复查执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站清缓存后复查执行单.md)
+- [2026-04-18-清缓存后复查记录单.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-清缓存后复查记录单.md)
+
+## 1. 使用原则
+
+先跑 header 命令,再跑源码抽取命令。
+
+建议顺序:
+
+1. 首页 header
+2. 搜索页 header
+3. 详情页 header
+4. 播放页 header
+5. 搜索 / 详情 / 播放 nocache header
+6. 最后抽取 `title` / `h1` / canonical
+
+## 2. 通用命令模板
+
+### 只看响应头
+
+```bash
+curl -I -L -s 'https://example.com/path'
+```
+
+### 带 `__nocache=1` 看响应头
+
+```bash
+curl -I -L -s 'https://example.com/path?__nocache=1'
+```
+
+### 抓源码并提取标题 / canonical / h1
+
+```bash
+curl -L -s 'https://example.com/path' | rg -o '.*?||]*>.*?
' -N
+```
+
+### 抓 nocache 源码并提取标题 / canonical / h1
+
+```bash
+curl -L -s 'https://example.com/path?__nocache=1' | rg -o '.*?||]*>.*?
' -N
+```
+
+## 3. `jingxifa.com`
+
+### 推荐复查 URL
+
+- 首页:
+ - `https://www.jingxifa.com/`
+- 搜索页:
+ - `https://www.jingxifa.com/get-index?keyword=京淅发影院`
+- 详情页:
+ - `https://www.jingxifa.com/video-detail/cheng-shi-jian-ke-190614`
+- 播放页:
+ - `https://www.jingxifa.com/video-bofang/hei-yi-nv-ren-de-xiang-shui-183894-default-1`
+
+### header 复查
+
+```bash
+curl -I -L -s 'https://www.jingxifa.com/'
+curl -I -L -s 'https://www.jingxifa.com/get-index?keyword=京淅发影院'
+curl -I -L -s 'https://www.jingxifa.com/video-detail/cheng-shi-jian-ke-190614'
+curl -I -L -s 'https://www.jingxifa.com/video-bofang/hei-yi-nv-ren-de-xiang-shui-183894-default-1'
+```
+
+### nocache header 复查
+
+```bash
+curl -I -L -s 'https://www.jingxifa.com/get-index?keyword=京淅发影院&__nocache=1'
+curl -I -L -s 'https://www.jingxifa.com/video-detail/cheng-shi-jian-ke-190614?__nocache=1'
+curl -I -L -s 'https://www.jingxifa.com/video-bofang/hei-yi-nv-ren-de-xiang-shui-183894-default-1?__nocache=1'
+```
+
+### 源码抽取
+
+```bash
+curl -L -s 'https://www.jingxifa.com/get-index?keyword=京淅发影院' | rg -o '.*?||]*>.*?
' -N
+curl -L -s 'https://www.jingxifa.com/video-detail/cheng-shi-jian-ke-190614' | rg -o '.*?||]*>.*?
' -N
+curl -L -s 'https://www.jingxifa.com/video-bofang/hei-yi-nv-ren-de-xiang-shui-183894-default-1' | rg -o '.*?||]*>.*?
' -N
+```
+
+## 4. `lcdchq.com`
+
+### 推荐复查 URL
+
+- 首页:
+ - `https://www.lcdchq.com/`
+- 搜索页:
+ - `https://www.lcdchq.com/get-index?keyword=欧美影院`
+- 详情页:
+ - `https://www.lcdchq.com/movie/154180-yi-gua-ding-qing-yuan-ye-ya-tou-jin-cheng-bei-tuan-chong`
+- 播放页:
+ - `请现场补一个当前真实播放页,若暂无已确认样本,可先复查详情页与首页`
+
+### header 复查
+
+```bash
+curl -I -L -s 'https://www.lcdchq.com/'
+curl -I -L -s 'https://www.lcdchq.com/get-index?keyword=欧美影院'
+curl -I -L -s 'https://www.lcdchq.com/movie/154180-yi-gua-ding-qing-yuan-ye-ya-tou-jin-cheng-bei-tuan-chong'
+```
+
+### nocache header 复查
+
+```bash
+curl -I -L -s 'https://www.lcdchq.com/get-index?keyword=欧美影院&__nocache=1'
+curl -I -L -s 'https://www.lcdchq.com/movie/154180-yi-gua-ding-qing-yuan-ye-ya-tou-jin-cheng-bei-tuan-chong?__nocache=1'
+```
+
+### 源码抽取
+
+```bash
+curl -L -s 'https://www.lcdchq.com/get-index?keyword=欧美影院' | rg -o '.*?||]*>.*?
' -N
+curl -L -s 'https://www.lcdchq.com/movie/154180-yi-gua-ding-qing-yuan-ye-ya-tou-jin-cheng-bei-tuan-chong' | rg -o '.*?||]*>.*?
' -N
+```
+
+## 5. `cnzhenbang.com`
+
+### 推荐复查 URL
+
+- 首页:
+ - `https://www.cnzhenbang.com/`
+- 搜索页:
+ - `https://www.cnzhenbang.com/query?keyword=菜鸟臻榜`
+- 分类页:
+ - `https://www.cnzhenbang.com/category/dong-man`
+- 详情页:
+ - `https://www.cnzhenbang.com/detail/wei-xian-de-fei-pang-210`
+- 备用详情页:
+ - `https://www.cnzhenbang.com/detail/mo-li-mei-213`
+
+### header 复查
+
+```bash
+curl -I -L -s 'https://www.cnzhenbang.com/'
+curl -I -L -s 'https://www.cnzhenbang.com/query?keyword=菜鸟臻榜'
+curl -I -L -s 'https://www.cnzhenbang.com/category/dong-man'
+curl -I -L -s 'https://www.cnzhenbang.com/detail/wei-xian-de-fei-pang-210'
+```
+
+### nocache header 复查
+
+```bash
+curl -I -L -s 'https://www.cnzhenbang.com/query?keyword=菜鸟臻榜&__nocache=1'
+curl -I -L -s 'https://www.cnzhenbang.com/detail/wei-xian-de-fei-pang-210?__nocache=1'
+curl -I -L -s 'https://www.cnzhenbang.com/detail/mo-li-mei-213?__nocache=1'
+```
+
+### 源码抽取
+
+```bash
+curl -L -s 'https://www.cnzhenbang.com/query?keyword=菜鸟臻榜' | rg -o '.*?||]*>.*?
' -N
+curl -L -s 'https://www.cnzhenbang.com/detail/wei-xian-de-fei-pang-210' | rg -o '.*?||]*>.*?
' -N
+curl -L -s 'https://www.cnzhenbang.com/detail/mo-li-mei-213' | rg -o '.*?||]*>.*?
' -N
+```
+
+## 6. `oronorent.com`
+
+### 推荐复查 URL
+
+- 首页:
+ - `https://www.oronorent.com/`
+- 搜索页:
+ - `https://www.oronorent.com/get-index?keyword=奥诺影视`
+- 详情页:
+ - `https://www.oronorent.com/shipin/154173-yi-gua-ding-qian-kun`
+- robots:
+ - `https://www.oronorent.com/robots.txt`
+
+### header 复查
+
+```bash
+curl -I -L -s 'https://www.oronorent.com/'
+curl -I -L -s 'https://www.oronorent.com/get-index?keyword=奥诺影视'
+curl -I -L -s 'https://www.oronorent.com/shipin/154173-yi-gua-ding-qian-kun'
+curl -I -L -s 'https://www.oronorent.com/robots.txt'
+```
+
+### nocache header 复查
+
+```bash
+curl -I -L -s 'https://www.oronorent.com/get-index?keyword=奥诺影视&__nocache=1'
+curl -I -L -s 'https://www.oronorent.com/shipin/154173-yi-gua-ding-qian-kun?__nocache=1'
+```
+
+### 源码抽取
+
+```bash
+curl -L -s 'https://www.oronorent.com/get-index?keyword=奥诺影视' | rg -o '.*?||]*>.*?
' -N
+curl -L -s 'https://www.oronorent.com/shipin/154173-yi-gua-ding-qian-kun' | rg -o '.*?||]*>.*?
' -N
+```
+
+## 7. 建议现场记录的最小结果
+
+每个域名跑完后,至少记录下面这些:
+
+1. 普通访问首页状态码
+2. 普通访问搜索页 `h1`
+3. 普通访问详情页 `h1`
+4. 普通访问播放页 `h1`
+5. `?__nocache=1` 对照是否一致
+6. 当前是否还能判定为缓存问题
+
+## 8. 当前建议
+
+现场执行时,不要先跑测试探针:
+
+- `/get-index?wd=test`
+- `/get/index?wd=test`
+
+优先跑已经确认过的真实入口、真实详情页、真实播放页。
diff --git a/docs/gpt-template-seo/2026-04-18-首批4站-curl结果判读表.md b/docs/gpt-template-seo/2026-04-18-首批4站-curl结果判读表.md
new file mode 100644
index 0000000..354bfea
--- /dev/null
+++ b/docs/gpt-template-seo/2026-04-18-首批4站-curl结果判读表.md
@@ -0,0 +1,234 @@
+# 2026-04-18 首批4站 curl 结果判读表
+
+这份文档用于在跑完 `curl` 复查命令后,快速判断结果属于哪一类问题。
+
+适用场景:
+
+1. 已按命令清单完成首批 4 站 header / 源码复查
+2. 需要快速判断是缓存问题、页面输出问题,还是已经恢复一致
+3. 需要把结果统一写回执行单和 A / B 组文档
+
+建议配合:
+
+- [2026-04-18-首批4站-curl复查命令清单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站-curl复查命令清单.md)
+- [2026-04-18-首批4站清缓存后复查执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站清缓存后复查执行单.md)
+- [2026-04-18-清缓存后复查记录单.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-清缓存后复查记录单.md)
+
+## 1. 先看哪几项
+
+跑完命令后,先只看这 6 项:
+
+1. 状态码
+2. `X-Cache-Status`
+3. `X-Cache-Mode`
+4. `X-Cache-Bypass`
+5. `h1`
+6. canonical
+
+不要一上来就被整页 HTML 干扰。
+
+## 2. 最常见判定场景
+
+### 场景 A:已经恢复一致
+
+典型特征:
+
+1. 普通访问状态码 `200`
+2. `?__nocache=1` 状态码也 `200`
+3. 普通访问和 `?__nocache=1` 的 `h1` 一致
+4. 普通访问和 `?__nocache=1` 的 canonical 一致
+5. 普通访问不再出现旧标题、空 `h1`、`0.0`、异常文案
+
+结论:
+
+- 可判定为:`已恢复一致,可继续观察蜘蛛回访`
+
+动作:
+
+1. 从优先清缓存名单中降级
+2. 回写 A / B 组文档
+3. 继续观察下一轮蜘蛛回访
+
+### 场景 B:仍是缓存滞后
+
+典型特征:
+
+1. 普通访问状态码 `200`
+2. `?__nocache=1` 状态码 `200`
+3. `?__nocache=1` 的 `h1` 正常
+4. 普通访问的 `h1` 仍旧为空、带 `0.0`、或明显旧文案
+5. canonical 可能一致,也可能普通访问还残留旧值
+
+结论:
+
+- 可判定为:`仍有旧缓存残留`
+
+动作:
+
+1. 继续排查前端缓存链路
+2. 不要先误判成模板没生效
+3. 必要时继续清缓存并复查
+
+### 场景 C:不是缓存问题,更像页面输出问题
+
+典型特征:
+
+1. 普通访问和 `?__nocache=1` 都是 `200`
+2. 两边的 `h1` 都异常
+3. 两边 canonical 都异常或都缺失
+4. 普通访问与 `?__nocache=1` 表现一致,但一致地不对
+
+结论:
+
+- 可判定为:`不是缓存问题,需回到模板 / 路由 / 输出层继续排查`
+
+动作:
+
+1. 回看模板层输出
+2. 回看路由命中是否正确
+3. 回看 canonical / `h1` 的生成逻辑
+
+### 场景 D:链路级异常,不是 SEO 表达问题
+
+典型特征:
+
+1. 普通访问不是 `200`
+2. `?__nocache=1` 也不是 `200`
+3. 可能出现 `301 / 403 / 404 / 444`
+4. 页面压根没进入正常 HTML 输出
+
+结论:
+
+- 可判定为:`链路级问题,需要优先排查访问路径、nginx、路由或安全拦截`
+
+动作:
+
+1. 先确认 URL 是否真实
+2. 再看 `X-Cache-Status / X-Managed-Spider`
+3. 再决定是否需要回到 nginx / 路由排查
+
+## 3. header 结果怎么读
+
+### `X-Cache-Status`
+
+常见读法:
+
+1. `HIT`
+ - 普通访问命中了前端缓存
+2. `MISS`
+ - 当前请求回源
+3. `BYPASS`
+ - 通常是 `?__nocache=1` 或显式跳过缓存
+
+### `X-Cache-Mode`
+
+常见读法:
+
+1. `path-only`
+ - 当前按路径缓存
+2. `with-args`
+ - 当前按 query 缓存
+3. `bypass`
+ - 当前人为绕过缓存
+
+### `X-Cache-Bypass`
+
+常见读法:
+
+1. `1`
+ - 已绕过缓存
+2. `0`
+ - 未绕过缓存
+
+## 4. h1 结果怎么读
+
+### 正常
+
+1. 搜索页:
+ - `菜鸟臻榜 搜索结果`
+ - `京淅发影院 搜索结果`
+ - `奥诺影视 搜索结果`
+2. 详情页:
+ - 纯净标题,例如 `武炼巅峰(短剧)`
+3. 播放页:
+ - 完整主标题,例如 `武炼巅峰(短剧) 全集`
+
+### 异常
+
+1. `NO_H1`
+2. 空白
+3. 带 `0.0`
+4. 明显旧模板残留文案
+
+## 5. canonical 结果怎么读
+
+### 正常
+
+1. canonical 存在
+2. 指向当前真实页面
+3. 普通访问与 `?__nocache=1` 一致
+
+### 异常
+
+1. canonical 缺失
+2. canonical 指向错误 URL
+3. 普通访问与 `?__nocache=1` 的 canonical 不一致
+
+## 6. 首批 4 站的重点判读提醒
+
+### `jingxifa.com`
+
+重点看:
+
+1. 详情页 `h1` 是否还带 `0.0`
+2. 播放页 `h1` 是否仍正常为全集标题
+3. 普通访问是否已经追上 `?__nocache=1`
+
+### `lcdchq.com`
+
+重点看:
+
+1. 详情页 `h1` 是否还带 `0.0`
+2. 首页与详情页是否都已经正常
+3. 是否仍属于缓存滞后
+
+### `cnzhenbang.com`
+
+重点看:
+
+1. 搜索页 `h1` 是否正常
+2. 详情页 `h1` 是否还为空
+3. 清缓存后是否开始更接近深页层表现
+
+### `oronorent.com`
+
+重点看:
+
+1. 搜索页 `h1` 是否正常
+2. 详情页 `h1` 是否还为空
+3. 普通访问和 `?__nocache=1` 是否仍不一致
+
+## 7. 结果回写模板
+
+每个站最少写成这样:
+
+```md
+域名:
+普通访问状态:
+nocache 状态:
+h1 是否一致:
+canonical 是否一致:
+当前判定:
+- 已恢复一致 / 仍有旧缓存残留 / 不是缓存问题 / 链路级异常
+下一步:
+```
+
+## 8. 当前建议
+
+现场判读顺序固定为:
+
+1. 先看状态码
+2. 再看缓存头
+3. 再看 `h1`
+4. 再看 canonical
+5. 最后才决定是缓存问题还是代码问题
diff --git a/docs/gpt-template-seo/2026-04-18-首批4站执行后结果汇总页.md b/docs/gpt-template-seo/2026-04-18-首批4站执行后结果汇总页.md
new file mode 100644
index 0000000..dce72a5
--- /dev/null
+++ b/docs/gpt-template-seo/2026-04-18-首批4站执行后结果汇总页.md
@@ -0,0 +1,212 @@
+# 2026-04-18 首批4站执行后结果汇总页
+
+这份文档用于承接首批 4 个缓存优先站在“清缓存 + curl 复查”之后的汇总结论。
+
+适用场景:
+
+1. 首批 4 站已经完成缓存刷新
+2. `curl` 复查结果已经拿到
+3. 需要快速判断哪些站可以降级、哪些站要继续追
+
+建议配合:
+
+- [2026-04-18-首批4站现场执行顺序汇总.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站现场执行顺序汇总.md)
+- [2026-04-18-首批4站清缓存后复查执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站清缓存后复查执行单.md)
+- [2026-04-18-首批4站-curl结果判读表.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站-curl结果判读表.md)
+- [2026-04-18-A组6站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-A组6站-蜘蛛回访分析.md)
+- [2026-04-18-B组9站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-B组9站-蜘蛛回访分析.md)
+
+## 1. 本轮范围
+
+首批缓存优先站:
+
+1. `jingxifa.com`
+2. `lcdchq.com`
+3. `cnzhenbang.com`
+4. `oronorent.com`
+
+## 2. 本轮目标
+
+本轮不是再看“页面能不能打开”,而是确认下面 4 件事:
+
+1. 普通访问是否已经追上 `?__nocache=1`
+2. 搜索页 `h1` 是否正常
+3. 详情页 `h1` 是否正常
+4. canonical 是否稳定
+
+## 3. 汇总总表
+
+| 域名 | 清缓存时间 | 普通访问状态 | nocache 状态 | `h1` 是否一致 | canonical 是否一致 | 当前结论 | 下一步 |
+|---|---|---|---|---|---|---|---|
+| `jingxifa.com` | | | | | | | |
+| `lcdchq.com` | | | | | | | |
+| `cnzhenbang.com` | | | | | | | |
+| `oronorent.com` | | | | | | | |
+
+## 4. 分站结论
+
+### `jingxifa.com`
+
+- 清缓存时间:
+- 普通访问:
+ - 首页:
+ - 搜索页:
+ - 详情页:
+ - 播放页:
+- nocache:
+ - 搜索页:
+ - 详情页:
+ - 播放页:
+- 当前判断:
+ - [ ] 已恢复一致
+ - [ ] 仍有旧缓存残留
+ - [ ] 不是缓存问题
+ - [ ] 链路级异常
+- 备注:
+
+### `lcdchq.com`
+
+- 清缓存时间:
+- 普通访问:
+ - 首页:
+ - 搜索页:
+ - 详情页:
+ - 播放页:
+- nocache:
+ - 搜索页:
+ - 详情页:
+ - 播放页:
+- 当前判断:
+ - [ ] 已恢复一致
+ - [ ] 仍有旧缓存残留
+ - [ ] 不是缓存问题
+ - [ ] 链路级异常
+- 备注:
+
+### `cnzhenbang.com`
+
+- 清缓存时间:
+- 普通访问:
+ - 首页:
+ - 搜索页:
+ - 分类页:
+ - 详情页:
+- nocache:
+ - 搜索页:
+ - 详情页:
+- 当前判断:
+ - [ ] 已恢复一致
+ - [ ] 仍有旧缓存残留
+ - [ ] 不是缓存问题
+ - [ ] 链路级异常
+- 备注:
+
+### `oronorent.com`
+
+- 清缓存时间:
+- 普通访问:
+ - 首页:
+ - 搜索页:
+ - 详情页:
+ - `robots.txt`:
+- nocache:
+ - 搜索页:
+ - 详情页:
+- 当前判断:
+ - [ ] 已恢复一致
+ - [ ] 仍有旧缓存残留
+ - [ ] 不是缓存问题
+ - [ ] 链路级异常
+- 备注:
+
+## 5. 本轮结果分组
+
+### 已恢复一致
+
+1.
+2.
+
+### 仍需继续跟缓存
+
+1.
+2.
+
+### 疑似不是缓存问题
+
+1.
+2.
+
+### 疑似链路级异常
+
+1.
+2.
+
+## 6. 是否可以从优先清缓存名单降级
+
+### 可以降级的站
+
+1.
+2.
+
+降级标准:
+
+1. 普通访问与 `?__nocache=1` 已一致
+2. `h1` 已稳定
+3. canonical 已稳定
+
+### 暂不降级的站
+
+1.
+2.
+
+原因:
+
+1. 普通访问仍旧于 `?__nocache=1`
+2. `h1` 仍有异常
+3. canonical 仍有异常
+
+## 7. 对 A / B 组文档的回写要求
+
+执行完本页后,应同步更新:
+
+### A 组
+
+- [2026-04-18-A组6站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-A组6站-蜘蛛回访分析.md)
+
+需要回写:
+
+1. `jingxifa.com`
+2. `cnzhenbang.com`
+
+### B 组
+
+- [2026-04-18-B组9站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-B组9站-蜘蛛回访分析.md)
+
+需要回写:
+
+1. `lcdchq.com`
+2. `oronorent.com`
+
+## 8. 是否需要回写 7 天主线
+
+如果出现以下任一情况,建议回写主线文档:
+
+1. 首批 4 站里有 2 站以上已恢复一致
+2. 首批 4 站里有共性的缓存问题仍未解除
+3. 已明确不是缓存问题,而是模板 / 路由层问题
+
+回写目标:
+
+- [2026-04-18-7天推收录执行主线.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-7天推收录执行主线.md)
+
+## 9. 一句话复盘模板
+
+执行完后,建议最少留下这段:
+
+```md
+首批4站缓存复查结果:
+1. 已恢复一致:
+2. 仍需继续跟缓存:
+3. 不是缓存问题:
+4. 下一步:
+```
diff --git a/docs/gpt-template-seo/2026-04-18-首批4站清缓存后复查执行单.md b/docs/gpt-template-seo/2026-04-18-首批4站清缓存后复查执行单.md
new file mode 100644
index 0000000..4736306
--- /dev/null
+++ b/docs/gpt-template-seo/2026-04-18-首批4站清缓存后复查执行单.md
@@ -0,0 +1,263 @@
+# 2026-04-18 首批4站清缓存后复查执行单
+
+这份文档用于承接首批 4 个缓存优先站的复查结果。
+
+首批执行对象:
+
+1. `jingxifa.com`
+2. `lcdchq.com`
+3. `cnzhenbang.com`
+4. `oronorent.com`
+
+建议配合:
+
+- [2026-04-18-A-B组优先清缓存执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-A-B组优先清缓存执行单.md)
+- [2026-04-18-清缓存后复查记录单.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-清缓存后复查记录单.md)
+- [2026-04-18-A组6站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-A组6站-蜘蛛回访分析.md)
+- [2026-04-18-B组9站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-B组9站-蜘蛛回访分析.md)
+
+## 1. 执行总览
+
+- 日期:`2026-04-18`
+- 执行人:
+- 本轮目标:
+ - 清除前端旧缓存 HTML
+ - 对照普通访问与 `?__nocache=1`
+ - 复核搜索 / 详情 / 播放页关键 SEO 元素
+
+## 2. 执行顺序
+
+1. `jingxifa.com`
+2. `lcdchq.com`
+3. `cnzhenbang.com`
+4. `oronorent.com`
+
+---
+
+## 3. `jingxifa.com`
+
+### 基本信息
+
+- 清缓存时间:
+- 执行人:
+- 缓存层:
+- 是否清理完成:
+
+### 复查 URL
+
+- 首页:`https://www.jingxifa.com/`
+- 搜索页:`https://www.jingxifa.com/get-index?keyword=京淅发影院`
+- 详情页:`https://www.jingxifa.com/video-detail/cheng-shi-jian-ke-190614`
+- 播放页:`https://www.jingxifa.com/video-bofang/hei-yi-nv-ren-de-xiang-shui-183894-default-1`
+
+### 普通访问
+
+- 首页状态:
+- 首页 `X-Cache-Status`:
+- 搜索页 `h1`:
+- 搜索页 canonical:
+- 详情页 `h1`:
+- 详情页 canonical:
+- 播放页 `h1`:
+- 播放页 canonical:
+
+### `?__nocache=1` 对照
+
+- 搜索页 `h1`:
+- 搜索页 canonical:
+- 详情页 `h1`:
+- 详情页 canonical:
+- 播放页 `h1`:
+- 播放页 canonical:
+
+### 对照结论
+
+- 普通访问与 `?__nocache=1` 是否一致:
+- 当前结论:
+ - [ ] 已恢复一致
+ - [ ] 仍有旧缓存残留
+ - [ ] 不是缓存问题
+
+### 回写动作
+
+- 是否已写回 A 组文档:
+- 是否仍保留在优先清缓存名单:
+
+---
+
+## 4. `lcdchq.com`
+
+### 基本信息
+
+- 清缓存时间:
+- 执行人:
+- 缓存层:
+- 是否清理完成:
+
+### 复查 URL
+
+- 首页:`https://www.lcdchq.com/`
+- 搜索页:`https://www.lcdchq.com/get-index?keyword=欧美影院`
+- 详情页:`https://www.lcdchq.com/movie/154180-yi-gua-ding-qing-yuan-ye-ya-tou-jin-cheng-bei-tuan-chong`
+- 播放页:`待现场补当前真实播放页`
+
+### 普通访问
+
+- 首页状态:
+- 首页 `X-Cache-Status`:
+- 搜索页 `h1`:
+- 搜索页 canonical:
+- 详情页 `h1`:
+- 详情页 canonical:
+- 播放页 `h1`:
+- 播放页 canonical:
+
+### `?__nocache=1` 对照
+
+- 搜索页 `h1`:
+- 搜索页 canonical:
+- 详情页 `h1`:
+- 详情页 canonical:
+- 播放页 `h1`:
+- 播放页 canonical:
+
+### 对照结论
+
+- 普通访问与 `?__nocache=1` 是否一致:
+- 当前结论:
+ - [ ] 已恢复一致
+ - [ ] 仍有旧缓存残留
+ - [ ] 不是缓存问题
+
+### 回写动作
+
+- 是否已写回 B 组文档:
+- 是否仍保留在优先清缓存名单:
+
+---
+
+## 5. `cnzhenbang.com`
+
+### 基本信息
+
+- 清缓存时间:
+- 执行人:
+- 缓存层:
+- 是否清理完成:
+
+### 复查 URL
+
+- 首页:`https://www.cnzhenbang.com/`
+- 搜索页:`https://www.cnzhenbang.com/query?keyword=菜鸟臻榜`
+- 详情页:`https://www.cnzhenbang.com/detail/wei-xian-de-fei-pang-210`
+- 播放页:`待现场补当前真实播放页`
+
+### 普通访问
+
+- 首页状态:
+- 首页 `X-Cache-Status`:
+- 搜索页 `h1`:
+- 搜索页 canonical:
+- 详情页 `h1`:
+- 详情页 canonical:
+- 播放页 `h1`:
+- 播放页 canonical:
+
+### `?__nocache=1` 对照
+
+- 搜索页 `h1`:
+- 搜索页 canonical:
+- 详情页 `h1`:
+- 详情页 canonical:
+- 播放页 `h1`:
+- 播放页 canonical:
+
+### 对照结论
+
+- 普通访问与 `?__nocache=1` 是否一致:
+- 当前结论:
+ - [ ] 已恢复一致
+ - [ ] 仍有旧缓存残留
+ - [ ] 不是缓存问题
+
+### 回写动作
+
+- 是否已写回 A 组文档:
+- 是否仍保留在优先清缓存名单:
+
+---
+
+## 6. `oronorent.com`
+
+### 基本信息
+
+- 清缓存时间:
+- 执行人:
+- 缓存层:
+- 是否清理完成:
+
+### 复查 URL
+
+- 首页:`https://www.oronorent.com/`
+- 搜索页:`https://www.oronorent.com/get-index?keyword=奥诺影视`
+- 详情页:`https://www.oronorent.com/shipin/154173-yi-gua-ding-qian-kun`
+- 播放页:`待现场补当前真实播放页`
+
+### 普通访问
+
+- 首页状态:
+- 首页 `X-Cache-Status`:
+- 搜索页 `h1`:
+- 搜索页 canonical:
+- 详情页 `h1`:
+- 详情页 canonical:
+- 播放页 `h1`:
+- 播放页 canonical:
+
+### `?__nocache=1` 对照
+
+- 搜索页 `h1`:
+- 搜索页 canonical:
+- 详情页 `h1`:
+- 详情页 canonical:
+- 播放页 `h1`:
+- 播放页 canonical:
+
+### 对照结论
+
+- 普通访问与 `?__nocache=1` 是否一致:
+- 当前结论:
+ - [ ] 已恢复一致
+ - [ ] 仍有旧缓存残留
+ - [ ] 不是缓存问题
+
+### 回写动作
+
+- 是否已写回 B 组文档:
+- 是否仍保留在优先清缓存名单:
+
+---
+
+## 7. 本轮总判断
+
+### 已恢复一致
+
+1.
+2.
+
+### 仍需继续跟缓存
+
+1.
+2.
+
+### 疑似不是缓存问题
+
+1.
+2.
+
+## 8. 下一步动作
+
+1. 是否继续清第二批站:
+2. 是否需要回写 7 天主线文档:
+3. 明日优先继续观察哪个域名:
+4. 是否需要重新回到模板 / 路由排查:
diff --git a/docs/gpt-template-seo/2026-04-18-首批4站现场执行顺序汇总.md b/docs/gpt-template-seo/2026-04-18-首批4站现场执行顺序汇总.md
new file mode 100644
index 0000000..26fb668
--- /dev/null
+++ b/docs/gpt-template-seo/2026-04-18-首批4站现场执行顺序汇总.md
@@ -0,0 +1,220 @@
+# 2026-04-18 首批4站现场执行顺序汇总
+
+这份文档是给现场执行同学直接照着跑的一页版。
+
+目标:
+
+1. 先清首批 4 站缓存
+2. 再跑 `curl` 复查
+3. 再按判读表判断
+4. 最后把结论写回执行单和 A / B 组文档
+
+## 1. 今日执行对象
+
+按顺序执行:
+
+1. `jingxifa.com`
+2. `lcdchq.com`
+3. `cnzhenbang.com`
+4. `oronorent.com`
+
+## 2. 执行前先打开的文档
+
+现场只需要先打开这 4 份:
+
+1. [2026-04-18-A-B组优先清缓存执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-A-B组优先清缓存执行单.md)
+2. [2026-04-18-首批4站清缓存后复查执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站清缓存后复查执行单.md)
+3. [2026-04-18-首批4站-curl复查命令清单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站-curl复查命令清单.md)
+4. [2026-04-18-首批4站-curl结果判读表.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站-curl结果判读表.md)
+
+## 3. 每个站固定执行步骤
+
+不要自由发挥,每个站都按下面顺序:
+
+1. 清前端缓存
+2. 记下清缓存时间
+3. 跑首页 header
+4. 跑搜索页 header
+5. 跑详情页 header
+6. 跑播放页 header
+7. 跑搜索 / 详情 / 播放 `?__nocache=1`
+8. 抽取 `title` / canonical / `h1`
+9. 按判读表判断
+10. 把结果写回执行单
+
+## 4. 一站一站怎么跑
+
+### 第一站:`jingxifa.com`
+
+先做:
+
+1. 清缓存
+2. 在执行单里填写:
+ - 清缓存时间
+ - 执行人
+ - 是否清理完成
+
+然后跑:
+
+1. 首页:
+ - `https://www.jingxifa.com/`
+2. 搜索页:
+ - `https://www.jingxifa.com/get-index?keyword=京淅发影院`
+3. 详情页:
+ - `https://www.jingxifa.com/video-detail/cheng-shi-jian-ke-190614`
+4. 播放页:
+ - `https://www.jingxifa.com/video-bofang/hei-yi-nv-ren-de-xiang-shui-183894-default-1`
+
+重点判断:
+
+1. 详情页 `h1` 是否还带 `0.0`
+2. 播放页 `h1` 是否还是完整标题
+3. 普通访问是否已经追上 `?__nocache=1`
+
+结果写回:
+
+- [2026-04-18-首批4站清缓存后复查执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站清缓存后复查执行单.md)
+- [2026-04-18-A组6站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-A组6站-蜘蛛回访分析.md)
+
+### 第二站:`lcdchq.com`
+
+先做:
+
+1. 清缓存
+2. 在执行单里填写:
+ - 清缓存时间
+ - 执行人
+ - 是否清理完成
+
+然后跑:
+
+1. 首页:
+ - `https://www.lcdchq.com/`
+2. 搜索页:
+ - `https://www.lcdchq.com/get-index?keyword=欧美影院`
+3. 详情页:
+ - `https://www.lcdchq.com/movie/154180-yi-gua-ding-qing-yuan-ye-ya-tou-jin-cheng-bei-tuan-chong`
+4. 播放页:
+ - 现场补当前真实播放页
+
+重点判断:
+
+1. 详情页 `h1` 是否还带 `0.0`
+2. 首页与详情页是否都已经恢复
+3. 普通访问与 `?__nocache=1` 是否一致
+
+结果写回:
+
+- [2026-04-18-首批4站清缓存后复查执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站清缓存后复查执行单.md)
+- [2026-04-18-B组9站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-B组9站-蜘蛛回访分析.md)
+
+### 第三站:`cnzhenbang.com`
+
+先做:
+
+1. 清缓存
+2. 在执行单里填写:
+ - 清缓存时间
+ - 执行人
+ - 是否清理完成
+
+然后跑:
+
+1. 首页:
+ - `https://www.cnzhenbang.com/`
+2. 搜索页:
+ - `https://www.cnzhenbang.com/query?keyword=菜鸟臻榜`
+3. 分类页:
+ - `https://www.cnzhenbang.com/category/dong-man`
+4. 详情页:
+ - `https://www.cnzhenbang.com/detail/wei-xian-de-fei-pang-210`
+5. 备用详情页:
+ - `https://www.cnzhenbang.com/detail/mo-li-mei-213`
+
+重点判断:
+
+1. 搜索页 `h1` 是否正常
+2. 详情页 `h1` 是否还为空
+3. 清缓存后是否比之前更接近深页正常输出
+
+结果写回:
+
+- [2026-04-18-首批4站清缓存后复查执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站清缓存后复查执行单.md)
+- [2026-04-18-A组6站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-A组6站-蜘蛛回访分析.md)
+
+### 第四站:`oronorent.com`
+
+先做:
+
+1. 清缓存
+2. 在执行单里填写:
+ - 清缓存时间
+ - 执行人
+ - 是否清理完成
+
+然后跑:
+
+1. 首页:
+ - `https://www.oronorent.com/`
+2. 搜索页:
+ - `https://www.oronorent.com/get-index?keyword=奥诺影视`
+3. 详情页:
+ - `https://www.oronorent.com/shipin/154173-yi-gua-ding-qian-kun`
+4. `robots.txt`:
+ - `https://www.oronorent.com/robots.txt`
+
+重点判断:
+
+1. 搜索页 `h1` 是否正常
+2. 详情页 `h1` 是否还为空
+3. 普通访问和 `?__nocache=1` 是否仍不一致
+
+结果写回:
+
+- [2026-04-18-首批4站清缓存后复查执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站清缓存后复查执行单.md)
+- [2026-04-18-B组9站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-B组9站-蜘蛛回访分析.md)
+
+## 5. 每个站执行完后的最小记录
+
+每个站至少记录这 6 项:
+
+1. 清缓存时间
+2. 普通访问状态码
+3. `?__nocache=1` 状态码
+4. `h1` 是否一致
+5. canonical 是否一致
+6. 当前判定:
+ - 已恢复一致
+ - 仍有旧缓存残留
+ - 不是缓存问题
+ - 链路级异常
+
+## 6. 不要做的事
+
+现场执行时,先不要做这些:
+
+1. 不要先改模板
+2. 不要先改 nginx
+3. 不要优先跑测试探针:
+ - `/get-index?wd=test`
+ - `/get/index?wd=test`
+4. 不要在没比对 `?__nocache=1` 前就说“代码没生效”
+
+## 7. 执行完后的收口动作
+
+首批 4 站执行完后,统一做:
+
+1. 更新首批 4 站执行单
+2. 更新 A / B 组文档
+3. 标记哪些站可以从缓存优先名单降级
+4. 把共性结论补回主线文档
+
+## 8. 一句话执行口令
+
+今天这批站统一按这条线执行:
+
+1. 先清缓存
+2. 再跑 curl
+3. 再看 `h1` 和 canonical
+4. 再判断是不是缓存问题
+5. 最后写回文档
diff --git a/docs/gpt-template-seo/2026-04-18-首批4站缓存复查-执行消息模板.md b/docs/gpt-template-seo/2026-04-18-首批4站缓存复查-执行消息模板.md
new file mode 100644
index 0000000..ca6f324
--- /dev/null
+++ b/docs/gpt-template-seo/2026-04-18-首批4站缓存复查-执行消息模板.md
@@ -0,0 +1,146 @@
+# 2026-04-18 首批4站缓存复查-执行消息模板
+
+这份文档用于直接发给现场执行同学、运维同学、或临时接手的人。
+
+你可以直接复制其中任一版本发送,不需要再自己组织。
+
+## 1. 极简版
+
+```text
+今天先不要改代码,也不要先改 nginx。
+
+先处理这 4 个站:
+1. jingxifa.com
+2. lcdchq.com
+3. cnzhenbang.com
+4. oronorent.com
+
+执行顺序:
+1. 先清前端缓存
+2. 再跑 curl 复查
+3. 对比普通访问和 ?__nocache=1
+4. 看 h1、canonical 是否一致
+5. 最后把结果回写文档
+
+先看这几份文档:
+1. 首批4站现场执行顺序汇总
+2. 首批4站清缓存后复查执行单
+3. 首批4站-curl复查命令清单
+4. 首批4站-curl结果判读表
+5. 首批4站执行后结果汇总页
+```
+
+## 2. 标准版
+
+```text
+当前任务不是继续改模板,也不是继续大改 nginx。
+
+请先执行首批 4 个缓存优先站的缓存复查:
+1. jingxifa.com
+2. lcdchq.com
+3. cnzhenbang.com
+4. oronorent.com
+
+执行要求:
+1. 先清前端缓存
+2. 记录清缓存时间
+3. 跑首页 / 搜索页 / 详情页 / 播放页的 curl header
+4. 再跑对应的 ?__nocache=1
+5. 抽取 title / canonical / h1
+6. 判断普通访问是否已经追上 ?__nocache=1
+7. 把结果写回执行单和汇总页
+
+注意:
+1. 不要先改模板
+2. 不要先改 nginx
+3. 不要优先跑 /get-index?wd=test 或 /get/index?wd=test 这种测试探针
+4. 没有对比 ?__nocache=1 之前,不要下结论说代码没生效
+
+请按这几份文档执行:
+1. 首批4站现场执行顺序汇总
+2. 首批4站清缓存后复查执行单
+3. 首批4站-curl复查命令清单
+4. 首批4站-curl结果判读表
+5. 首批4站执行后结果汇总页
+```
+
+## 3. 详细版
+
+```text
+现在进入首批 4 站缓存复查阶段,先不要继续改模板,也不要继续大改 nginx。
+
+今天只做这件事:
+对以下 4 个站执行“清缓存 + curl 复查 + 对照 ?__nocache=1 + 回写结果”:
+1. jingxifa.com
+2. lcdchq.com
+3. cnzhenbang.com
+4. oronorent.com
+
+建议执行顺序:
+第一站:jingxifa.com
+第二站:lcdchq.com
+第三站:cnzhenbang.com
+第四站:oronorent.com
+
+每个站固定步骤:
+1. 先清前端缓存
+2. 记下清缓存时间
+3. 跑首页 header
+4. 跑搜索页 header
+5. 跑详情页 header
+6. 跑播放页 header
+7. 跑搜索 / 详情 / 播放 ?__nocache=1
+8. 抽取 title / canonical / h1
+9. 判断是否属于:
+ - 已恢复一致
+ - 仍有旧缓存残留
+ - 不是缓存问题
+ - 链路级异常
+10. 把结果写回执行单和汇总页
+
+重点提醒:
+1. jingxifa.com 重点看详情页 h1 是否还带 0.0
+2. lcdchq.com 重点看详情页 h1 是否还带 0.0
+3. cnzhenbang.com 重点看详情页 h1 是否还为空
+4. oronorent.com 重点看详情页 h1 是否还为空
+
+不要做的事:
+1. 不要先改模板
+2. 不要先改 nginx
+3. 不要优先跑 /get-index?wd=test、/get/index?wd=test
+4. 不要没看 ?__nocache=1 就说代码没生效
+
+执行用文档:
+1. 首批4站现场执行顺序汇总
+2. 首批4站清缓存后复查执行单
+3. 首批4站-curl复查命令清单
+4. 首批4站-curl结果判读表
+5. 首批4站执行后结果汇总页
+
+执行后还要同步回写:
+1. A组6站蜘蛛回访分析
+2. B组9站蜘蛛回访分析
+```
+
+## 4. 文档路径版
+
+如果对方需要直接点路径,可以发这一版:
+
+```text
+请按下面文档执行首批4站缓存复查:
+
+1. /www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站现场执行顺序汇总.md
+2. /www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站清缓存后复查执行单.md
+3. /www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站-curl复查命令清单.md
+4. /www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站-curl结果判读表.md
+5. /www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站执行后结果汇总页.md
+
+先处理:
+1. jingxifa.com
+2. lcdchq.com
+3. cnzhenbang.com
+4. oronorent.com
+
+要求:
+先清缓存,再跑 curl,再对照 ?__nocache=1,最后回写结果。
+```
diff --git a/docs/gpt-template-seo/2026-04-18-首批4站缓存复查交接说明.md b/docs/gpt-template-seo/2026-04-18-首批4站缓存复查交接说明.md
new file mode 100644
index 0000000..3a91db7
--- /dev/null
+++ b/docs/gpt-template-seo/2026-04-18-首批4站缓存复查交接说明.md
@@ -0,0 +1,138 @@
+# 2026-04-18 首批4站缓存复查交接说明
+
+这份说明是给现场执行同学、下一位 Codex、或者临时接手的人看的。
+
+如果你现在只想知道“我该先做什么”,直接看下面 3 段。
+
+## 1. 当前任务是什么
+
+当前不是继续改模板,也不是继续大改 nginx。
+
+当前任务只有一件事:
+
+对首批 4 个缓存优先站,执行:
+
+1. 清前端缓存
+2. 跑 `curl` 复查
+3. 判断普通访问是否已经追上 `?__nocache=1`
+4. 把结果写回文档
+
+首批 4 站:
+
+1. `jingxifa.com`
+2. `lcdchq.com`
+3. `cnzhenbang.com`
+4. `oronorent.com`
+
+## 2. 你只需要看哪几份文档
+
+如果你不想翻很多文档,只看这 5 份就够了:
+
+1. 一页执行顺序:
+ - [2026-04-18-首批4站现场执行顺序汇总.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站现场执行顺序汇总.md)
+2. 执行单:
+ - [2026-04-18-首批4站清缓存后复查执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站清缓存后复查执行单.md)
+3. `curl` 命令:
+ - [2026-04-18-首批4站-curl复查命令清单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站-curl复查命令清单.md)
+4. 结果判读:
+ - [2026-04-18-首批4站-curl结果判读表.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站-curl结果判读表.md)
+5. 执行后汇总:
+ - [2026-04-18-首批4站执行后结果汇总页.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站执行后结果汇总页.md)
+
+## 3. 最短执行路径
+
+按这个顺序做,不要跳步:
+
+1. 先清 `jingxifa.com` 缓存
+2. 跑文档里的 `curl` 命令
+3. 看 `h1`、canonical、`?__nocache=1` 是否一致
+4. 把结果写到执行单
+5. 再按同样方法处理:
+ - `lcdchq.com`
+ - `cnzhenbang.com`
+ - `oronorent.com`
+6. 最后把 4 站结果汇总到汇总页
+
+## 4. 这轮最容易犯的错误
+
+下面这些不要做:
+
+1. 不要先改模板
+2. 不要先改 nginx
+3. 不要优先跑测试探针:
+ - `/get-index?wd=test`
+ - `/get/index?wd=test`
+4. 不要在没看 `?__nocache=1` 前就说“代码没生效”
+
+## 5. 怎么判断问题属于哪一类
+
+只按这 4 类判断:
+
+1. 已恢复一致
+2. 仍有旧缓存残留
+3. 不是缓存问题
+4. 链路级异常
+
+不要自己发明新的结论类型。
+
+## 6. 每个站重点盯什么
+
+### `jingxifa.com`
+
+重点看:
+
+1. 详情页 `h1` 是否还带 `0.0`
+2. 播放页 `h1` 是否仍正常
+
+### `lcdchq.com`
+
+重点看:
+
+1. 详情页 `h1` 是否还带 `0.0`
+2. 普通访问和 `?__nocache=1` 是否已一致
+
+### `cnzhenbang.com`
+
+重点看:
+
+1. 搜索页 `h1` 是否正常
+2. 详情页 `h1` 是否还为空
+
+### `oronorent.com`
+
+重点看:
+
+1. 搜索页 `h1` 是否正常
+2. 详情页 `h1` 是否还为空
+
+## 7. 做完之后要回写哪里
+
+执行完成后,不要只填执行单,还要回写:
+
+### A 组
+
+- [2026-04-18-A组6站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-A组6站-蜘蛛回访分析.md)
+
+需要回写:
+
+1. `jingxifa.com`
+2. `cnzhenbang.com`
+
+### B 组
+
+- [2026-04-18-B组9站-蜘蛛回访分析.md](/www/wwwroot/diff-maccms/SEONexus/docs/2026-04-18-B组9站-蜘蛛回访分析.md)
+
+需要回写:
+
+1. `lcdchq.com`
+2. `oronorent.com`
+
+### 汇总页
+
+- [2026-04-18-首批4站执行后结果汇总页.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站执行后结果汇总页.md)
+
+## 8. 如果你只有 30 秒
+
+只记这句话:
+
+今天先别改代码,先把 `jingxifa / lcdchq / cnzhenbang / oronorent` 四个站的缓存刷掉,再用现成 `curl` 命令对比普通访问和 `?__nocache=1`,按判读表填结果,最后回写 A/B 组和汇总页。
diff --git a/docs/gpt-template-seo/README.md b/docs/gpt-template-seo/README.md
new file mode 100644
index 0000000..6000897
--- /dev/null
+++ b/docs/gpt-template-seo/README.md
@@ -0,0 +1,53 @@
+# GPT Template SEO
+
+这个目录只放 GPT 模板 SEO 这条支线的文档。
+
+当前范围已经固定:
+
+- 只看 `videoGpt1` 及其相关页面输出
+- 不混入老模板 `1001-1005`
+- 当前主线是:
+ - GPT 模板页面质量优化
+ - 首批优先域名收录推进
+ - 缓存滞后站复查
+ - 蜘蛛回访日志跟踪
+
+如果你是第一次进这个目录,按这个顺序看:
+
+1. 第 1 步:先看 [00-GPT模板SEO公共总览-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/00-GPT模板SEO公共总览-2026-04-18.md)
+ 作用:先用一页搞清楚当前边界、主线、优先站和执行节奏。
+2. 第 2 步:再看 [01-GPT模板7天SEO执行主线-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/01-GPT模板7天SEO执行主线-2026-04-18.md)
+ 作用:如果你要继续推进,就先按这条主线执行。
+3. 第 3 步:执行 [02-GPT模板首批4站缓存复查执行单-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/02-GPT模板首批4站缓存复查执行单-2026-04-18.md)
+ 作用:当天先做什么,直接按这里推进。
+4. 第 4 步:每天用 [03-GPT模板每日复盘模板-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/03-GPT模板每日复盘模板-2026-04-18.md)
+ 作用:统一日报和接手口径。
+5. 第 5 步:看 [04-GPT模板A-B组日志跟踪板-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/04-GPT模板A-B组日志跟踪板-2026-04-18.md)
+ 作用:把 A/B 组蜘蛛回访和缓存复查收口到一个板里。
+
+如果你要往下深读,再按下面顺序补:
+
+1. [05-GPT模板首批4站执行后汇总-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/05-GPT模板首批4站执行后汇总-2026-04-18.md)
+2. [06-GPT模板curl复查与判读索引-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/06-GPT模板curl复查与判读索引-2026-04-18.md)
+3. [07-GPT模板交接说明-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/07-GPT模板交接说明-2026-04-18.md)
+4. [08-GPT模板其它服务器更新交接-2026-04-18.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/08-GPT模板其它服务器更新交接-2026-04-18.md)
+ 作用:给“原本也是 GPT 模板、现在要对齐到最新版”的其它服务器接手使用。
+
+首批 4 站的执行材料也全部放在本目录:
+
+1. [2026-04-18-A-B组优先清缓存执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-A-B组优先清缓存执行单.md)
+2. [2026-04-18-首批4站清缓存后复查执行单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站清缓存后复查执行单.md)
+3. [2026-04-18-首批4站-curl复查命令清单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站-curl复查命令清单.md)
+4. [2026-04-18-首批4站-curl结果判读表.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站-curl结果判读表.md)
+5. [2026-04-18-首批4站现场执行顺序汇总.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站现场执行顺序汇总.md)
+6. [2026-04-18-首批4站执行后结果汇总页.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站执行后结果汇总页.md)
+7. [2026-04-18-首批4站缓存复查交接说明.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站缓存复查交接说明.md)
+8. [2026-04-18-首批4站缓存复查-执行消息模板.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-18-首批4站缓存复查-执行消息模板.md)
+
+GPT 模板域名优先级名单也统一放在本目录:
+
+1. [2026-04-17-GPT站群优先推收录名单.md](/www/wwwroot/diff-maccms/SEONexus/docs/gpt-template-seo/2026-04-17-GPT站群优先推收录名单.md)
+
+一句话:
+
+> 这个目录就是 GPT 模板 SEO 专属工作区,公共协作请回 `docs/` 根目录,GPT 模板推进请从这里继续。
diff --git a/docs/old-tmp-seo/2026-04-17-GPT站群-sitemap入口修复记录.md b/docs/old-tmp-seo/2026-04-17-GPT站群-sitemap入口修复记录.md
new file mode 100644
index 0000000..90f6945
--- /dev/null
+++ b/docs/old-tmp-seo/2026-04-17-GPT站群-sitemap入口修复记录.md
@@ -0,0 +1,118 @@
+# 2026-04-17 GPT 站群 sitemap 入口修复记录
+
+## 背景
+
+为完成 7 日收录目标,对 GPT 站群做入口体检时发现:
+
+- 首页普遍正常
+- `robots.txt` 普遍正常
+- 但 `sitemap.xml` / `sitemap_index.xml` / `sitemap-main.xml` / `sitemap-videos-1.xml` 普遍 404
+
+这会直接导致:
+
+- 蜘蛛拿不到 XML 抓取清单
+- 模板页脚和 robots 主动指向失效入口
+
+## 根因拆解
+
+### 1. 标准 XML 入口兼容不完整
+
+虽然站内存在 sitemap 生成逻辑,但 GPT 路由侧没有把常见标准入口完全接顺。
+
+### 2. 真正的 sitemap 文件根本没落盘
+
+`SiteContext::getSiteMapByCode()` 会直接读取:
+
+- `storage/SiteMap//sitemap_index.xml`
+- `storage/SiteMap//sitemap-main.xml`
+- `storage/SiteMap//sitemap-videos-*.xml`
+
+但现场排查时:
+
+- `storage/SiteMap/` 目录不存在
+- 生成器首次执行时会因 `mkdir()` 不是递归模式而直接报错
+
+## 已做修复
+
+### 代码
+
+- `router.php`
+ - 补齐标准 sitemap XML 入口
+- `VideoSiteMapLogic.php`
+ - 目录创建改为递归
+- `SiteMapLogic.php`
+ - 目录创建改为递归
+
+### 运行
+
+- 已对 `liangzuan.net` 做定点 sitemap 生成验证
+- 已启动 GPT 站群全量 VideoSiteMap 生成
+
+## 已验证结果
+
+### liangzuan.net
+
+- `sitemap_index.xml` => 200
+- `sitemap-main.xml` => 200
+- `sitemap-videos-1.xml` => 200
+
+### chuanjiafeng.net
+
+- `sitemap_index.xml` => 200
+
+## 二次修正:详情 URL 空 slug
+
+恢复 sitemap 后继续抽检发现:
+
+- 部分 `sitemap-videos-*.xml` 里的详情 URL 还带空 slug
+- 例如 `/film//210`、`/detail/-210`
+
+根因是视频数据里的 `v_name_en` 并不总是完整。
+
+已修复:
+
+- 生成器改为优先使用 `v_name_en`
+- 如果为空,则回退 `v_name`
+- 统一归一化成可用 slug
+
+抽样验证:
+
+- `liangzuan.net` 新 sitemap 详情 URL => GET 200 / HEAD 200
+- `cnzhenbang.com` 新 sitemap 详情 URL => GET 200 / HEAD 200
+
+## 轨迹验收补充
+
+继续对 5 个 GPT 站做首页→搜索→详情→播放链路探针:
+
+- `liangzuan.net`
+- `cnzhenbang.com`
+- `codohealth.com`
+- `jingxifa.com`
+- `gz-yxsw.com`
+
+结果全部通过:
+
+- home 200
+- search 200
+- detail 200
+- play 200
+
+说明当前修复已经不止停留在 XML 层,而是确实把蜘蛛抓取和用户点击后的主要承接链路打通了。
+
+## 扩样到 15 站后的结果
+
+进一步扩样到 15 个 GPT 站后:
+
+- 自动样本发现全部成功
+- 首页 / 搜索 / 详情 / 播放 4 段链路全部 `200`
+- `all_passed=1`
+
+这说明:
+
+- 当前不是单站偶然成功
+- 多种不同 URL family 都已具备稳定的收录与点击承接能力
+
+## 当前价值
+
+- 抓取入口从“普遍缺失”变成“可恢复、可继续批量生成”
+- 这一步直接服务于站群收录,不是表面优化
diff --git a/docs/old-tmp-seo/2026-04-17-liangzuan-域名恢复与深链404修复记录.md b/docs/old-tmp-seo/2026-04-17-liangzuan-域名恢复与深链404修复记录.md
new file mode 100644
index 0000000..7077ada
--- /dev/null
+++ b/docs/old-tmp-seo/2026-04-17-liangzuan-域名恢复与深链404修复记录.md
@@ -0,0 +1,72 @@
+# 2026-04-17 liangzuan.net 域名恢复与深链 404 修复记录
+
+## 背景
+
+用户反馈:
+
+- `https://www.liangzuan.net/detail/pinyin-se-ji-shi-kong-yuan-sheng-ban`
+- 这类不带 id 的详情 URL 不允许再 404
+- 如果没有 id,需要有可展示的兜底绑定逻辑
+
+同时线上排查发现:
+
+- `liangzuan.net` 整站一度出现大量 404
+- 浏览器 `GET` 能打开的详情深链,`HEAD` 仍返回 404
+
+## 排查结论
+
+### 1. 域名表记录丢失
+
+- `domain` 表内 `liangzuan.net` 记录已不存在
+- 这是整站级 404 的直接原因
+
+### 2. 旧域名解析链不够稳
+
+- `SiteContext` 仍有部分逻辑依赖旧缓存解析
+- 对运行时 host 的兼容不够完整
+
+### 3. 深链路由只支持 GET
+
+- GPT 模板下很多关键路由通过 `Route::get(...)` 注册
+- 导致 `HEAD` 探测直接 404
+
+## 已执行动作
+
+### 域名恢复
+
+- 使用历史 bootstrap bundle 重新注册 `liangzuan.net`
+- 重新绑定模板 `videoGpt1`
+- 重新应用域名级 SEO bootstrap 配置
+
+### 代码修复
+
+- `SiteContext.php`
+ - 改为优先使用 `resolveDomainContextByHost(...)`
+- `VideoService.php`
+ - 新增 slug 归一化
+ - 新增无 id 详情兜底绑定
+- `router.php`
+ - 详情无 id 兼容路由已补
+ - GPT 模板关键路由统一改为支持 `GET|HEAD`
+
+## 当前结果
+
+### 已验证恢复
+
+- 首页 `GET`:200
+- 无 id 详情页 `GET`:200
+- 常规详情页 `GET`:200
+- 无 id 详情页 `HEAD`:200
+- 常规详情页 `HEAD`:200
+
+## 对后续 SEO 的意义
+
+- 这是 7 日收录目标里的底座修复
+- 先消灭入口级 404,后续 sitemap 推送、内链抓取、深链收录才有意义
+- 当前 `liangzuan.net` 已从“整站不可抓”恢复到“可正常抓取深页”
+
+## 后续跟进建议
+
+1. 把其它站点也按同样方式抽样做 `GET/HEAD` 双探测。
+2. 批量排查是否还有“域名记录丢失”或“旧 deep link 只通 GET”的站点。
+3. 继续扩充 GPT 模板的历史兼容入口,优先消灭详情、播放、分类的老链接 404。
diff --git a/docs/日志分析模板-收录推进版.md b/docs/日志分析模板-收录推进版.md
new file mode 100644
index 0000000..b5cede5
--- /dev/null
+++ b/docs/日志分析模板-收录推进版.md
@@ -0,0 +1,199 @@
+# 日志分析模板(收录推进版)
+
+适用场景:
+
+- GPT 站群 sitemap 提交后
+- 观察蜘蛛是否开始回访
+- 观察是否从首页抓取进入搜索 / 详情 / 播放深页
+- 对比缓存刷新前后是否影响蜘蛛命中
+
+---
+
+## 1. 基本信息
+
+- 日期:
+- 分析人:
+- 分析范围:
+ - 单域名 / 多域名
+- 日志时间窗口:
+ - 例如:`2026-04-17 00:00:00 ~ 2026-04-17 23:59:59`
+- 关联动作:
+ - 是否刚提交 sitemap
+ - 是否刚清缓存
+ - 是否刚上线模板修复
+
+---
+
+## 2. 本轮关注域名
+
+1. `domain-a.com`
+2. `domain-b.com`
+3. `domain-c.com`
+
+如果是全量分析,建议先列“重点关注域名”,不要一上来把所有域名混在一起。
+
+---
+
+## 3. 本轮关注目标
+
+至少写清楚这次日志分析想回答什么:
+
+1. sitemap 是否开始被抓?
+2. 搜索页是否开始被回访?
+3. 详情页是否开始出现命中?
+4. 播放页是否开始出现命中?
+5. 是否仍有旧 404 路径被反复访问?
+6. 缓存刷新后蜘蛛是否开始命中新 HTML?
+
+---
+
+## 4. 蜘蛛来源概览
+
+建议按蜘蛛类型记录:
+
+1. 百度蜘蛛
+2. 必应蜘蛛
+3. 360 / 搜狗 / 其他中文搜索引擎蜘蛛
+4. 普通浏览器访问
+
+示例格式:
+
+- `Baiduspider`
+ - 请求数:
+ - 命中域名:
+ - 主要命中页面类型:
+- `bingbot`
+ - 请求数:
+ - 命中域名:
+ - 主要命中页面类型:
+
+---
+
+## 5. 各域名命中概览
+
+每个域名建议按下面结构记录:
+
+### `example.com`
+
+- `sitemap`
+ - 是否命中:
+ - 命中次数:
+ - 命中路径:
+- `search`
+ - 是否命中:
+ - 命中次数:
+ - 命中路径:
+- `detail`
+ - 是否命中:
+ - 命中次数:
+ - 命中路径:
+- `play`
+ - 是否命中:
+ - 命中次数:
+ - 命中路径:
+- `404 old path`
+ - 是否出现:
+ - 典型路径:
+
+---
+
+## 6. 正向信号判断
+
+满足越多,说明推进越有效:
+
+1. `sitemap_index.xml` / `sitemap-main.xml` / `sitemap-videos-*` 持续被抓
+2. 搜索页开始被回访
+3. 详情页开始被重复访问
+4. 播放页开始被访问
+5. 命中路径出现连续链路
+
+推荐记录方式:
+
+- 是否出现 `sitemap -> search -> detail`
+- 是否出现 `sitemap -> detail -> play`
+- 是否出现 `home -> search -> detail`
+
+---
+
+## 7. 风险信号判断
+
+出现以下情况时,建议单独列出来:
+
+1. sitemap 有抓取,但详情页完全不动
+2. 搜索页有命中,但详情页没有跟进
+3. 旧 404 路径仍高频出现
+4. 普通访问正常,但蜘蛛访问状态码异常
+5. 只抓首页,不抓深页
+
+示例格式:
+
+- 风险 1:
+ - 域名:
+ - 表现:
+ - 可能原因:
+ - 建议动作:
+
+---
+
+## 8. 缓存相关观察
+
+如果该域名在缓存刷新优先清单中,建议单独记录:
+
+### `example.com`
+
+- 是否属于缓存滞后站:
+- 普通访问表现:
+- `?__nocache=1` 表现:
+- 两者是否一致:
+- 当前判断:
+ - 仍是缓存滞后 / 已恢复一致
+
+---
+
+## 9. 本轮结论
+
+用 3 到 6 条写清楚结论,不要泛泛而谈。
+
+示例:
+
+1. `liangzuan.net` 已出现 `sitemap -> search -> detail` 连续抓取
+2. `cnzhenbang.com` 详情页开始重复命中,说明收录推进开始有反馈
+3. `jingxifa.com` 普通访问仍落后于 `?__nocache=1`,优先判断为缓存滞后
+4. 旧 404 深链在 `oronorent.com` 仍有残留,建议继续观察兼容路由命中情况
+
+---
+
+## 10. 下一步动作
+
+每轮日志分析结束后,必须给出明确动作,避免只做记录不做推进。
+
+示例:
+
+1. 继续提交 A 组剩余 sitemap
+2. 优先清理 `jingxifa.com` 与 `lcdchq.com` 前端缓存
+3. 明天重点观察 `cnzhenbang.com` 与 `liangzuan.net` 详情页回访
+4. 如果 `play` 仍长期无命中,再评估是否继续增强详情页到播放页承接
+
+---
+
+## 11. 推荐命名方式
+
+建议日志分析文档统一使用:
+
+- `YYYY-MM-DD-域名-日志分析.md`
+- `YYYY-MM-DD-批次名-蜘蛛回访分析.md`
+
+例如:
+
+- `2026-04-18-liangzuan-日志分析.md`
+- `2026-04-18-A组6站-蜘蛛回访分析.md`
+
+---
+
+## 12. 使用建议
+
+1. 单次不要分析过多域名
+2. 一份文档尽量回答一个明确问题
+3. 每轮都要给出下一步动作
+4. 对缓存滞后站,优先记录“普通访问 vs nocache”差异
+5. 对已开始回访的站,优先记录“抓取链路是否在变深”