老模板优化
This commit is contained in:
@@ -15,6 +15,9 @@ class DomainSpiderCrawlLogHelper
|
|||||||
$arrItem['host'] = strtolower(trim((string)($arrItem['host'] ?? '')));
|
$arrItem['host'] = strtolower(trim((string)($arrItem['host'] ?? '')));
|
||||||
$arrItem['path'] = trim((string)($arrItem['path'] ?? ''));
|
$arrItem['path'] = trim((string)($arrItem['path'] ?? ''));
|
||||||
$arrItem['page_type'] = DomainSpiderCrawlLogSchemaHelper::normalizePageType((string)($arrItem['page_type'] ?? 'other'));
|
$arrItem['page_type'] = DomainSpiderCrawlLogSchemaHelper::normalizePageType((string)($arrItem['page_type'] ?? 'other'));
|
||||||
|
if ($arrItem['page_type'] === 'other') {
|
||||||
|
$arrItem['page_type'] = DomainSpiderCrawlLogSchemaHelper::inferPageTypeFromPath((string)$arrItem['path'], 'other');
|
||||||
|
}
|
||||||
$arrItem['bot_name'] = DomainSpiderCrawlLogSchemaHelper::normalizeBotName((string)($arrItem['bot_name'] ?? 'other_bot'));
|
$arrItem['bot_name'] = DomainSpiderCrawlLogSchemaHelper::normalizeBotName((string)($arrItem['bot_name'] ?? 'other_bot'));
|
||||||
$arrItem['status'] = (int)($arrItem['status'] ?? 0);
|
$arrItem['status'] = (int)($arrItem['status'] ?? 0);
|
||||||
$arrItem['count'] = max(0, (int)($arrItem['count'] ?? 0));
|
$arrItem['count'] = max(0, (int)($arrItem['count'] ?? 0));
|
||||||
@@ -26,6 +29,9 @@ class DomainSpiderCrawlLogHelper
|
|||||||
$arrItem['host'] = strtolower(trim((string)($arrItem['host'] ?? '')));
|
$arrItem['host'] = strtolower(trim((string)($arrItem['host'] ?? '')));
|
||||||
$arrItem['url'] = trim((string)($arrItem['url'] ?? ''));
|
$arrItem['url'] = trim((string)($arrItem['url'] ?? ''));
|
||||||
$arrItem['page_type'] = DomainSpiderCrawlLogSchemaHelper::normalizePageType((string)($arrItem['page_type'] ?? 'other'));
|
$arrItem['page_type'] = DomainSpiderCrawlLogSchemaHelper::normalizePageType((string)($arrItem['page_type'] ?? 'other'));
|
||||||
|
if ($arrItem['page_type'] === 'other') {
|
||||||
|
$arrItem['page_type'] = DomainSpiderCrawlLogSchemaHelper::inferPageTypeFromPath((string)$arrItem['url'], 'other');
|
||||||
|
}
|
||||||
$arrItem['bot_name'] = DomainSpiderCrawlLogSchemaHelper::normalizeBotName((string)($arrItem['bot_name'] ?? 'other_bot'));
|
$arrItem['bot_name'] = DomainSpiderCrawlLogSchemaHelper::normalizeBotName((string)($arrItem['bot_name'] ?? 'other_bot'));
|
||||||
$arrItem['status'] = (int)($arrItem['status'] ?? 0);
|
$arrItem['status'] = (int)($arrItem['status'] ?? 0);
|
||||||
$arrItem['cache_status'] = self::normalizeCacheStatus((string)($arrItem['cache_status'] ?? ''));
|
$arrItem['cache_status'] = self::normalizeCacheStatus((string)($arrItem['cache_status'] ?? ''));
|
||||||
|
|||||||
@@ -202,6 +202,60 @@ class DomainSpiderCrawlLogSchemaHelper
|
|||||||
return in_array($strPageType, self::buildSchema()['page_type_enum'], true) ? $strPageType : 'other';
|
return in_array($strPageType, self::buildSchema()['page_type_enum'], true) ? $strPageType : 'other';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function inferPageTypeFromPath(string $strPath, string $strFallback = 'other'): string
|
||||||
|
{
|
||||||
|
$strPath = strtolower(trim($strPath));
|
||||||
|
if ($strPath === '') {
|
||||||
|
return self::normalizePageType($strFallback);
|
||||||
|
}
|
||||||
|
|
||||||
|
$strPath = parse_url($strPath, PHP_URL_PATH) ?: $strPath;
|
||||||
|
$strPath = '/' . ltrim($strPath, '/');
|
||||||
|
$strNormalized = trim($strPath, '/');
|
||||||
|
|
||||||
|
if ($strNormalized === '' || $strNormalized === 'index.php') {
|
||||||
|
return 'home';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($strNormalized === 'robots.txt') {
|
||||||
|
return 'robots';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (str_contains($strNormalized, 'sitemap')) {
|
||||||
|
return 'sitemap';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (str_starts_with($strNormalized, 'search') || str_starts_with($strNormalized, 'get-index')) {
|
||||||
|
return 'search';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
str_contains($strNormalized, 'videotype')
|
||||||
|
|| str_contains($strNormalized, 'vodtype')
|
||||||
|
|| str_contains($strNormalized, 'fenlei')
|
||||||
|
) {
|
||||||
|
return 'category';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
str_starts_with($strNormalized, 'voddetail/')
|
||||||
|
|| str_starts_with($strNormalized, 'video-info/')
|
||||||
|
|| str_starts_with($strNormalized, 'neirong-')
|
||||||
|
) {
|
||||||
|
return 'detail';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
str_starts_with($strNormalized, 'vodplay/')
|
||||||
|
|| str_starts_with($strNormalized, 'video-play/')
|
||||||
|
|| str_starts_with($strNormalized, 'bf-')
|
||||||
|
) {
|
||||||
|
return 'play';
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::normalizePageType($strFallback);
|
||||||
|
}
|
||||||
|
|
||||||
public static function normalizeBotName(string $strBotName): string
|
public static function normalizeBotName(string $strBotName): string
|
||||||
{
|
{
|
||||||
$strValue = strtolower(trim($strBotName));
|
$strValue = strtolower(trim($strBotName));
|
||||||
|
|||||||
@@ -1,35 +1,16 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
<url>
|
<url>
|
||||||
<loc>https://www.{$DomainModel->d_domain}/</loc>
|
<loc>https://{$DomainModel->d_domain}/</loc>
|
||||||
<lastmod>{:date('Y-m-d')}</lastmod>
|
<lastmod>{:date('Y-m-d')}</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
<priority>1.0</priority>
|
<priority>1.0</priority>
|
||||||
</url>
|
</url>
|
||||||
|
|
||||||
<url>
|
<url>
|
||||||
<loc>https://www.{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
|
<loc>https://{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
|
||||||
<lastmod>{:date('Y-m-d')}</lastmod>
|
<lastmod>{:date('Y-m-d')}</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
<priority>1.0</priority>
|
<priority>1.0</priority>
|
||||||
</url>
|
</url>
|
||||||
|
</urlset>
|
||||||
<!-- 分类 -->
|
|
||||||
{novel:category d_key="strCategoryPinyin" d_val="strCategoryName"}
|
|
||||||
<!-- 排序 -->
|
|
||||||
{novel:sort d_key="sort_key" d_val="strSortName"}
|
|
||||||
<!-- 状态 -->
|
|
||||||
{novel:status d_key="status_key" d_val="strStatusName"}
|
|
||||||
<url>
|
|
||||||
<loc>https://www.{$DomainModel->d_domain}{site:nflurl category="$strCategoryPinyin" order="$sort_key" status="$status_key" /}</loc>
|
|
||||||
<lastmod>{:date('Y-m-d')}</lastmod>
|
|
||||||
<changefreq>weekly</changefreq>
|
|
||||||
<priority>0.8</priority>
|
|
||||||
</url>
|
|
||||||
{/novel:status}
|
|
||||||
{/novel:sort}
|
|
||||||
{/novel:category}
|
|
||||||
|
|
||||||
|
|
||||||
<!-- 注意 所有链接不要分页,有分页的取第一页即可 -->
|
|
||||||
</urlset>
|
|
||||||
|
|||||||
@@ -13,10 +13,12 @@
|
|||||||
{block name="description"}{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}{/block}
|
{block name="description"}{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}{/block}
|
||||||
|
|
||||||
{block name="head"}
|
{block name="head"}
|
||||||
|
<meta name="robots" content="index,follow">
|
||||||
|
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}'>
|
||||||
<!-- 社交媒体标签 -->
|
<!-- 社交媒体标签 -->
|
||||||
<meta property="og:title" content='{site:replace code="VIDEO@GETCATEGORYINDEX@TITLE"}' />
|
<meta property="og:title" content='{site:replace code="VIDEO@GETCATEGORYINDEX@TITLE"}' />
|
||||||
<meta property="og:description" content='{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}' />
|
<meta property="og:description" content='{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}' />
|
||||||
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
|
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}' />
|
||||||
{switch $Request.route.strParentCategory }
|
{switch $Request.route.strParentCategory }
|
||||||
{case 'dian-ying' }
|
{case 'dian-ying' }
|
||||||
<meta property="og:type" content="video.movie" />
|
<meta property="og:type" content="video.movie" />
|
||||||
@@ -45,7 +47,7 @@
|
|||||||
"@context": "https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type": "CollectionPage",
|
"@type": "CollectionPage",
|
||||||
"name": "{$DomainModel->d_name} - 最新{site:getval code="strVideoParentCategoryName" /}推荐",
|
"name": "{$DomainModel->d_name} - 最新{site:getval code="strVideoParentCategoryName" /}推荐",
|
||||||
"url": "https://{$DomainModel->d_domain}",
|
"url": "https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}",
|
||||||
"description": "{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}",
|
"description": "{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}",
|
||||||
"potentialAction": {
|
"potentialAction": {
|
||||||
"@type": "SearchAction",
|
"@type": "SearchAction",
|
||||||
@@ -192,4 +194,4 @@
|
|||||||
{/block}
|
{/block}
|
||||||
{block name="customize"}
|
{block name="customize"}
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
<meta property="og:type" content="video.movie" />
|
<meta property="og:type" content="video.movie" />
|
||||||
{/switch}
|
{/switch}
|
||||||
<meta property="og:url"
|
<meta property="og:url"
|
||||||
content='https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'>
|
content='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
|
||||||
<meta property="og:image" content="{$arrVideo.v_pic}">
|
<meta property="og:image" content="{$arrVideo.v_pic}">
|
||||||
<meta property="og:site_name" content="{$DomainModel->d_name}">
|
<meta property="og:site_name" content="{$DomainModel->d_name}">
|
||||||
<meta property="og:video:type" content="video/m3u8">
|
<meta property="og:video:type" content="video/m3u8">
|
||||||
@@ -69,7 +69,7 @@ href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$a
|
|||||||
"description": "{$arrVideo.v_description}",
|
"description": "{$arrVideo.v_description}",
|
||||||
"thumbnailUrl": "{$arrVideo.v_pic}",
|
"thumbnailUrl": "{$arrVideo.v_pic}",
|
||||||
"uploadDate": "{:date('Y-m-d')}",
|
"uploadDate": "{:date('Y-m-d')}",
|
||||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}',
|
"url": 'https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}',
|
||||||
|
|
||||||
"inLanguage": [
|
"inLanguage": [
|
||||||
{volist name='$arrVideo.v_lang' id='strVideoLang' key='index'}
|
{volist name='$arrVideo.v_lang' id='strVideoLang' key='index'}
|
||||||
@@ -521,4 +521,4 @@ href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$a
|
|||||||
defer></script> -->
|
defer></script> -->
|
||||||
|
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -1,35 +1,16 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
<url>
|
<url>
|
||||||
<loc>https://www.{$DomainModel->d_domain}/</loc>
|
<loc>https://{$DomainModel->d_domain}/</loc>
|
||||||
<lastmod>{:date('Y-m-d')}</lastmod>
|
<lastmod>{:date('Y-m-d')}</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
<priority>1.0</priority>
|
<priority>1.0</priority>
|
||||||
</url>
|
</url>
|
||||||
|
|
||||||
<url>
|
<url>
|
||||||
<loc>https://www.{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
|
<loc>https://{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
|
||||||
<lastmod>{:date('Y-m-d')}</lastmod>
|
<lastmod>{:date('Y-m-d')}</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
<priority>1.0</priority>
|
<priority>1.0</priority>
|
||||||
</url>
|
</url>
|
||||||
|
</urlset>
|
||||||
<!-- 分类 -->
|
|
||||||
{novel:category d_key="strCategoryPinyin" d_val="strCategoryName"}
|
|
||||||
<!-- 排序 -->
|
|
||||||
{novel:sort d_key="sort_key" d_val="strSortName"}
|
|
||||||
<!-- 状态 -->
|
|
||||||
{novel:status d_key="status_key" d_val="strStatusName"}
|
|
||||||
<url>
|
|
||||||
<loc>https://www.{$DomainModel->d_domain}{site:nflurl category="$strCategoryPinyin" order="$sort_key" status="$status_key" /}</loc>
|
|
||||||
<lastmod>{:date('Y-m-d')}</lastmod>
|
|
||||||
<changefreq>weekly</changefreq>
|
|
||||||
<priority>0.8</priority>
|
|
||||||
</url>
|
|
||||||
{/novel:status}
|
|
||||||
{/novel:sort}
|
|
||||||
{/novel:category}
|
|
||||||
|
|
||||||
|
|
||||||
<!-- 注意 所有链接不要分页,有分页的取第一页即可 -->
|
|
||||||
</urlset>
|
|
||||||
|
|||||||
@@ -13,10 +13,12 @@
|
|||||||
{block name="description"}{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}{/block}
|
{block name="description"}{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}{/block}
|
||||||
|
|
||||||
{block name="head"}
|
{block name="head"}
|
||||||
|
<meta name="robots" content="index,follow">
|
||||||
|
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}'>
|
||||||
<!-- 社交媒体标签 -->
|
<!-- 社交媒体标签 -->
|
||||||
<meta property="og:title" content='{site:replace code="VIDEO@GETCATEGORYINDEX@TITLE"}' />
|
<meta property="og:title" content='{site:replace code="VIDEO@GETCATEGORYINDEX@TITLE"}' />
|
||||||
<meta property="og:description" content='{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}' />
|
<meta property="og:description" content='{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}' />
|
||||||
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
|
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}' />
|
||||||
{switch $Request.route.strParentCategory }
|
{switch $Request.route.strParentCategory }
|
||||||
{case 'dian-ying' }
|
{case 'dian-ying' }
|
||||||
<meta property="og:type" content="video.movie" />
|
<meta property="og:type" content="video.movie" />
|
||||||
@@ -45,7 +47,7 @@
|
|||||||
"@context": "https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type": "CollectionPage",
|
"@type": "CollectionPage",
|
||||||
"name": "{$DomainModel->d_name} - 最新{site:getval code="strVideoParentCategoryName" /}推荐",
|
"name": "{$DomainModel->d_name} - 最新{site:getval code="strVideoParentCategoryName" /}推荐",
|
||||||
"url": "https://{$DomainModel->d_domain}",
|
"url": "https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}",
|
||||||
"description": "{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}",
|
"description": "{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}",
|
||||||
"potentialAction": {
|
"potentialAction": {
|
||||||
"@type": "SearchAction",
|
"@type": "SearchAction",
|
||||||
@@ -218,4 +220,4 @@
|
|||||||
{/block}
|
{/block}
|
||||||
{block name="customize"}
|
{block name="customize"}
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
{default /}
|
{default /}
|
||||||
<meta property="og:type" content="video.movie" />
|
<meta property="og:type" content="video.movie" />
|
||||||
{/switch}
|
{/switch}
|
||||||
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'>
|
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
|
||||||
<meta property="og:image" content="{$arrVideo.v_pic}">
|
<meta property="og:image" content="{$arrVideo.v_pic}">
|
||||||
<meta property="og:site_name" content="{$DomainModel->d_name}">
|
<meta property="og:site_name" content="{$DomainModel->d_name}">
|
||||||
<meta property="og:video:type" content="video/m3u8">
|
<meta property="og:video:type" content="video/m3u8">
|
||||||
@@ -68,7 +68,7 @@ href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$a
|
|||||||
"description": "{$arrVideo.v_description}",
|
"description": "{$arrVideo.v_description}",
|
||||||
"thumbnailUrl": "{$arrVideo.v_pic}",
|
"thumbnailUrl": "{$arrVideo.v_pic}",
|
||||||
"uploadDate": "{:date('Y-m-d')}",
|
"uploadDate": "{:date('Y-m-d')}",
|
||||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}',
|
"url": 'https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}',
|
||||||
|
|
||||||
"inLanguage": [
|
"inLanguage": [
|
||||||
{volist name='$arrVideo.v_lang' id='strVideoLang' key='index'}
|
{volist name='$arrVideo.v_lang' id='strVideoLang' key='index'}
|
||||||
@@ -422,4 +422,4 @@ href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$a
|
|||||||
<script type="text/javascript" src="/public/video/DPlayer.min.js" defer></script>
|
<script type="text/javascript" src="/public/video/DPlayer.min.js" defer></script>
|
||||||
|
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -1,35 +1,16 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
<url>
|
<url>
|
||||||
<loc>https://www.{$DomainModel->d_domain}/</loc>
|
<loc>https://{$DomainModel->d_domain}/</loc>
|
||||||
<lastmod>{:date('Y-m-d')}</lastmod>
|
<lastmod>{:date('Y-m-d')}</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
<priority>1.0</priority>
|
<priority>1.0</priority>
|
||||||
</url>
|
</url>
|
||||||
|
|
||||||
<url>
|
<url>
|
||||||
<loc>https://www.{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
|
<loc>https://{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
|
||||||
<lastmod>{:date('Y-m-d')}</lastmod>
|
<lastmod>{:date('Y-m-d')}</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
<priority>1.0</priority>
|
<priority>1.0</priority>
|
||||||
</url>
|
</url>
|
||||||
|
</urlset>
|
||||||
<!-- 分类 -->
|
|
||||||
{novel:category d_key="strCategoryPinyin" d_val="strCategoryName"}
|
|
||||||
<!-- 排序 -->
|
|
||||||
{novel:sort d_key="sort_key" d_val="strSortName"}
|
|
||||||
<!-- 状态 -->
|
|
||||||
{novel:status d_key="status_key" d_val="strStatusName"}
|
|
||||||
<url>
|
|
||||||
<loc>https://www.{$DomainModel->d_domain}{site:nflurl category="$strCategoryPinyin" order="$sort_key" status="$status_key" /}</loc>
|
|
||||||
<lastmod>{:date('Y-m-d')}</lastmod>
|
|
||||||
<changefreq>weekly</changefreq>
|
|
||||||
<priority>0.8</priority>
|
|
||||||
</url>
|
|
||||||
{/novel:status}
|
|
||||||
{/novel:sort}
|
|
||||||
{/novel:category}
|
|
||||||
|
|
||||||
|
|
||||||
<!-- 注意 所有链接不要分页,有分页的取第一页即可 -->
|
|
||||||
</urlset>
|
|
||||||
|
|||||||
@@ -13,10 +13,12 @@
|
|||||||
{block name="description"}{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}{/block}
|
{block name="description"}{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}{/block}
|
||||||
|
|
||||||
{block name="head"}
|
{block name="head"}
|
||||||
|
<meta name="robots" content="index,follow">
|
||||||
|
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}'>
|
||||||
<!-- 社交媒体标签 -->
|
<!-- 社交媒体标签 -->
|
||||||
<meta property="og:title" content='{site:replace code="VIDEO@GETCATEGORYINDEX@TITLE"}' />
|
<meta property="og:title" content='{site:replace code="VIDEO@GETCATEGORYINDEX@TITLE"}' />
|
||||||
<meta property="og:description" content='{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}' />
|
<meta property="og:description" content='{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}' />
|
||||||
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
|
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}' />
|
||||||
{switch $Request.route.strParentCategory }
|
{switch $Request.route.strParentCategory }
|
||||||
{case 'dian-ying' }
|
{case 'dian-ying' }
|
||||||
<meta property="og:type" content="video.movie" />
|
<meta property="og:type" content="video.movie" />
|
||||||
@@ -45,7 +47,7 @@
|
|||||||
"@context": "https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type": "CollectionPage",
|
"@type": "CollectionPage",
|
||||||
"name": "{$DomainModel->d_name} - 最新{site:getval code="strVideoParentCategoryName" /}推荐",
|
"name": "{$DomainModel->d_name} - 最新{site:getval code="strVideoParentCategoryName" /}推荐",
|
||||||
"url": "https://{$DomainModel->d_domain}",
|
"url": "https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}",
|
||||||
"description": "{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}",
|
"description": "{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}",
|
||||||
"potentialAction": {
|
"potentialAction": {
|
||||||
"@type": "SearchAction",
|
"@type": "SearchAction",
|
||||||
@@ -191,4 +193,4 @@
|
|||||||
{/block}
|
{/block}
|
||||||
{block name="customize"}
|
{block name="customize"}
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
<meta property="og:type" content="video.movie" />
|
<meta property="og:type" content="video.movie" />
|
||||||
{/switch}
|
{/switch}
|
||||||
<meta property="og:url"
|
<meta property="og:url"
|
||||||
content='https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'>
|
content='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
|
||||||
<meta property="og:image" content="{$arrVideo.v_pic}">
|
<meta property="og:image" content="{$arrVideo.v_pic}">
|
||||||
<meta property="og:site_name" content="{$DomainModel->d_name}">
|
<meta property="og:site_name" content="{$DomainModel->d_name}">
|
||||||
<meta property="og:video:type" content="video/m3u8">
|
<meta property="og:video:type" content="video/m3u8">
|
||||||
@@ -69,7 +69,7 @@ href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$a
|
|||||||
"description": "{$arrVideo.v_description}",
|
"description": "{$arrVideo.v_description}",
|
||||||
"thumbnailUrl": "{$arrVideo.v_pic}",
|
"thumbnailUrl": "{$arrVideo.v_pic}",
|
||||||
"uploadDate": "{:date('Y-m-d')}",
|
"uploadDate": "{:date('Y-m-d')}",
|
||||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}',
|
"url": 'https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}',
|
||||||
|
|
||||||
"inLanguage": [
|
"inLanguage": [
|
||||||
{volist name='$arrVideo.v_lang' id='strVideoLang' key='index'}
|
{volist name='$arrVideo.v_lang' id='strVideoLang' key='index'}
|
||||||
@@ -448,4 +448,4 @@ href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$a
|
|||||||
defer></script> -->
|
defer></script> -->
|
||||||
|
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -1,35 +1,16 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
<url>
|
<url>
|
||||||
<loc>https://www.{$DomainModel->d_domain}/</loc>
|
<loc>https://{$DomainModel->d_domain}/</loc>
|
||||||
<lastmod>{:date('Y-m-d')}</lastmod>
|
<lastmod>{:date('Y-m-d')}</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
<priority>1.0</priority>
|
<priority>1.0</priority>
|
||||||
</url>
|
</url>
|
||||||
|
|
||||||
<url>
|
<url>
|
||||||
<loc>https://www.{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
|
<loc>https://{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
|
||||||
<lastmod>{:date('Y-m-d')}</lastmod>
|
<lastmod>{:date('Y-m-d')}</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
<priority>1.0</priority>
|
<priority>1.0</priority>
|
||||||
</url>
|
</url>
|
||||||
|
</urlset>
|
||||||
<!-- 分类 -->
|
|
||||||
{novel:category d_key="strCategoryPinyin" d_val="strCategoryName"}
|
|
||||||
<!-- 排序 -->
|
|
||||||
{novel:sort d_key="sort_key" d_val="strSortName"}
|
|
||||||
<!-- 状态 -->
|
|
||||||
{novel:status d_key="status_key" d_val="strStatusName"}
|
|
||||||
<url>
|
|
||||||
<loc>https://www.{$DomainModel->d_domain}{site:nflurl category="$strCategoryPinyin" order="$sort_key" status="$status_key" /}</loc>
|
|
||||||
<lastmod>{:date('Y-m-d')}</lastmod>
|
|
||||||
<changefreq>weekly</changefreq>
|
|
||||||
<priority>0.8</priority>
|
|
||||||
</url>
|
|
||||||
{/novel:status}
|
|
||||||
{/novel:sort}
|
|
||||||
{/novel:category}
|
|
||||||
|
|
||||||
|
|
||||||
<!-- 注意 所有链接不要分页,有分页的取第一页即可 -->
|
|
||||||
</urlset>
|
|
||||||
|
|||||||
@@ -13,10 +13,12 @@
|
|||||||
{block name="description"}{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}{/block}
|
{block name="description"}{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}{/block}
|
||||||
|
|
||||||
{block name="head"}
|
{block name="head"}
|
||||||
|
<meta name="robots" content="index,follow">
|
||||||
|
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}'>
|
||||||
<!-- 社交媒体标签 -->
|
<!-- 社交媒体标签 -->
|
||||||
<meta property="og:title" content='{site:replace code="VIDEO@GETCATEGORYINDEX@TITLE"}' />
|
<meta property="og:title" content='{site:replace code="VIDEO@GETCATEGORYINDEX@TITLE"}' />
|
||||||
<meta property="og:description" content='{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}' />
|
<meta property="og:description" content='{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}' />
|
||||||
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
|
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}' />
|
||||||
{switch $Request.route.strParentCategory }
|
{switch $Request.route.strParentCategory }
|
||||||
{case 'dian-ying' }
|
{case 'dian-ying' }
|
||||||
<meta property="og:type" content="video.movie" />
|
<meta property="og:type" content="video.movie" />
|
||||||
@@ -45,7 +47,7 @@
|
|||||||
"@context": "https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type": "CollectionPage",
|
"@type": "CollectionPage",
|
||||||
"name": "{$DomainModel->d_name} - 最新{site:getval code="strVideoParentCategoryName" /}推荐",
|
"name": "{$DomainModel->d_name} - 最新{site:getval code="strVideoParentCategoryName" /}推荐",
|
||||||
"url": "https://{$DomainModel->d_domain}",
|
"url": "https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}",
|
||||||
"description": "{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}",
|
"description": "{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}",
|
||||||
"potentialAction": {
|
"potentialAction": {
|
||||||
"@type": "SearchAction",
|
"@type": "SearchAction",
|
||||||
@@ -242,4 +244,4 @@
|
|||||||
{/block}
|
{/block}
|
||||||
{block name="customize"}
|
{block name="customize"}
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
<meta property="og:type" content="video.movie" />
|
<meta property="og:type" content="video.movie" />
|
||||||
{/switch}
|
{/switch}
|
||||||
<meta property="og:url"
|
<meta property="og:url"
|
||||||
content='https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'>
|
content='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
|
||||||
<meta property="og:image" content="{$arrVideo.v_pic}">
|
<meta property="og:image" content="{$arrVideo.v_pic}">
|
||||||
<meta property="og:site_name" content="{$DomainModel->d_name}">
|
<meta property="og:site_name" content="{$DomainModel->d_name}">
|
||||||
<meta property="og:video:type" content="video/m3u8">
|
<meta property="og:video:type" content="video/m3u8">
|
||||||
@@ -70,7 +70,7 @@ href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$a
|
|||||||
"description": "{$arrVideo.v_description}",
|
"description": "{$arrVideo.v_description}",
|
||||||
"thumbnailUrl": "{$arrVideo.v_pic}",
|
"thumbnailUrl": "{$arrVideo.v_pic}",
|
||||||
"uploadDate": "{:date('Y-m-d')}",
|
"uploadDate": "{:date('Y-m-d')}",
|
||||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}',
|
"url": 'https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}',
|
||||||
|
|
||||||
"inLanguage": [
|
"inLanguage": [
|
||||||
{volist name='$arrVideo.v_lang' id='strVideoLang' key='index'}
|
{volist name='$arrVideo.v_lang' id='strVideoLang' key='index'}
|
||||||
@@ -392,4 +392,4 @@ href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$a
|
|||||||
<script type="text/javascript" src="/public/video/hls.min.js" defer></script>
|
<script type="text/javascript" src="/public/video/hls.min.js" defer></script>
|
||||||
<script type="text/javascript" src="/public/video/DPlayer.min.js" defer></script>
|
<script type="text/javascript" src="/public/video/DPlayer.min.js" defer></script>
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -1,35 +1,16 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
<url>
|
<url>
|
||||||
<loc>https://www.{$DomainModel->d_domain}/</loc>
|
<loc>https://{$DomainModel->d_domain}/</loc>
|
||||||
<lastmod>{:date('Y-m-d')}</lastmod>
|
<lastmod>{:date('Y-m-d')}</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
<priority>1.0</priority>
|
<priority>1.0</priority>
|
||||||
</url>
|
</url>
|
||||||
|
|
||||||
<url>
|
<url>
|
||||||
<loc>https://www.{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
|
<loc>https://{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
|
||||||
<lastmod>{:date('Y-m-d')}</lastmod>
|
<lastmod>{:date('Y-m-d')}</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
<priority>1.0</priority>
|
<priority>1.0</priority>
|
||||||
</url>
|
</url>
|
||||||
|
</urlset>
|
||||||
<!-- 分类 -->
|
|
||||||
{novel:category d_key="strCategoryPinyin" d_val="strCategoryName"}
|
|
||||||
<!-- 排序 -->
|
|
||||||
{novel:sort d_key="sort_key" d_val="strSortName"}
|
|
||||||
<!-- 状态 -->
|
|
||||||
{novel:status d_key="status_key" d_val="strStatusName"}
|
|
||||||
<url>
|
|
||||||
<loc>https://www.{$DomainModel->d_domain}{site:nflurl category="$strCategoryPinyin" order="$sort_key" status="$status_key" /}</loc>
|
|
||||||
<lastmod>{:date('Y-m-d')}</lastmod>
|
|
||||||
<changefreq>weekly</changefreq>
|
|
||||||
<priority>0.8</priority>
|
|
||||||
</url>
|
|
||||||
{/novel:status}
|
|
||||||
{/novel:sort}
|
|
||||||
{/novel:category}
|
|
||||||
|
|
||||||
|
|
||||||
<!-- 注意 所有链接不要分页,有分页的取第一页即可 -->
|
|
||||||
</urlset>
|
|
||||||
|
|||||||
@@ -13,10 +13,12 @@
|
|||||||
{block name="description"}{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}{/block}
|
{block name="description"}{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}{/block}
|
||||||
|
|
||||||
{block name="head"}
|
{block name="head"}
|
||||||
|
<meta name="robots" content="index,follow">
|
||||||
|
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}'>
|
||||||
<!-- 社交媒体标签 -->
|
<!-- 社交媒体标签 -->
|
||||||
<meta property="og:title" content='{site:replace code="VIDEO@GETCATEGORYINDEX@TITLE"}' />
|
<meta property="og:title" content='{site:replace code="VIDEO@GETCATEGORYINDEX@TITLE"}' />
|
||||||
<meta property="og:description" content='{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}' />
|
<meta property="og:description" content='{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}' />
|
||||||
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
|
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}' />
|
||||||
{switch $Request.route.strParentCategory }
|
{switch $Request.route.strParentCategory }
|
||||||
{case 'dian-ying' }
|
{case 'dian-ying' }
|
||||||
<meta property="og:type" content="video.movie" />
|
<meta property="og:type" content="video.movie" />
|
||||||
@@ -45,7 +47,7 @@
|
|||||||
"@context": "https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type": "CollectionPage",
|
"@type": "CollectionPage",
|
||||||
"name": "{$DomainModel->d_name} - 最新{site:getval code="strVideoParentCategoryName" /}推荐",
|
"name": "{$DomainModel->d_name} - 最新{site:getval code="strVideoParentCategoryName" /}推荐",
|
||||||
"url": "https://{$DomainModel->d_domain}",
|
"url": "https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}",
|
||||||
"description": "{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}",
|
"description": "{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}",
|
||||||
"potentialAction": {
|
"potentialAction": {
|
||||||
"@type": "SearchAction",
|
"@type": "SearchAction",
|
||||||
@@ -254,4 +256,4 @@
|
|||||||
{/block}
|
{/block}
|
||||||
{block name="customize"}
|
{block name="customize"}
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
<meta property="og:type" content="video.movie" />
|
<meta property="og:type" content="video.movie" />
|
||||||
{/switch}
|
{/switch}
|
||||||
<meta property="og:url"
|
<meta property="og:url"
|
||||||
content='https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'>
|
content='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
|
||||||
<meta property="og:image" content="{$arrVideo.v_pic}">
|
<meta property="og:image" content="{$arrVideo.v_pic}">
|
||||||
<meta property="og:site_name" content="{$DomainModel->d_name}">
|
<meta property="og:site_name" content="{$DomainModel->d_name}">
|
||||||
<meta property="og:video:type" content="video/m3u8">
|
<meta property="og:video:type" content="video/m3u8">
|
||||||
@@ -70,7 +70,7 @@ href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$a
|
|||||||
"description": "{$arrVideo.v_description}",
|
"description": "{$arrVideo.v_description}",
|
||||||
"thumbnailUrl": "{$arrVideo.v_pic}",
|
"thumbnailUrl": "{$arrVideo.v_pic}",
|
||||||
"uploadDate": "{:date('Y-m-d')}",
|
"uploadDate": "{:date('Y-m-d')}",
|
||||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}',
|
"url": 'https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}',
|
||||||
|
|
||||||
"inLanguage": [
|
"inLanguage": [
|
||||||
{volist name='$arrVideo.v_lang' id='strVideoLang' key='index'}
|
{volist name='$arrVideo.v_lang' id='strVideoLang' key='index'}
|
||||||
@@ -378,4 +378,4 @@ href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$a
|
|||||||
<script type="text/javascript" src="/public/video/hls.min.js" defer></script>
|
<script type="text/javascript" src="/public/video/hls.min.js" defer></script>
|
||||||
<script type="text/javascript" src="/public/video/DPlayer.min.js" defer></script>
|
<script type="text/javascript" src="/public/video/DPlayer.min.js" defer></script>
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -1247,7 +1247,7 @@ chown -R www:www /www/wwwroot/diff-maccms/SEONexus/docs
|
|||||||
|
|
||||||
例如:
|
例如:
|
||||||
|
|
||||||
- [1269-SEONexus-老模板第一阶段回灌执行文档](/www/wwwroot/diff-maccms/docs/1269-SEONexus-老模板第一阶段回灌执行文档.md)
|
- [1269-SEONexus-老模板第一阶段回灌执行文档](/www/wwwroot/diff-maccms/docs/01-老模板第一阶段回灌执行文档.md)
|
||||||
|
|
||||||
适合记录:
|
适合记录:
|
||||||
|
|
||||||
|
|||||||
77
docs/1308-SEONexus-老模板SEO公共总览-2026-04-17.md
Normal file
77
docs/1308-SEONexus-老模板SEO公共总览-2026-04-17.md
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
# 1308-SEONexus 老模板 SEO 公共总览 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档放在 `docs/` 根目录,只承担公共入口作用。
|
||||||
|
|
||||||
|
它不是老模板支线的详细分析文档,而是给所有协作者一个统一说明:
|
||||||
|
|
||||||
|
1. 这条老模板 SEO 线已经单独收进 `docs/old-tmp-seo/`
|
||||||
|
2. 公共层只保留最少的主线判断
|
||||||
|
3. 需要下钻时,再进入老模板子目录
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、当前公共结论
|
||||||
|
|
||||||
|
当前仓库里的文档已经分成两层:
|
||||||
|
|
||||||
|
### 公共层
|
||||||
|
|
||||||
|
继续保留在 `docs/` 根目录:
|
||||||
|
|
||||||
|
- `1270-SEONexus-Codex多版本协作交接总文档.md`
|
||||||
|
- `2026-04-16-admin2-spider-workbench-production-fix.md`
|
||||||
|
- `2026-04-17-spider-nginx-运维摘要.md`
|
||||||
|
- `2026-04-17-当前阶段总结.md`
|
||||||
|
- `2026-04-17-本轮交付清单.md`
|
||||||
|
- `Codex启动提示词模板.md`
|
||||||
|
- `接手检查清单模板.md`
|
||||||
|
|
||||||
|
这些文档服务的是:
|
||||||
|
|
||||||
|
- 多人协作
|
||||||
|
- 公共排障
|
||||||
|
- 生产辅助
|
||||||
|
- 总交接
|
||||||
|
|
||||||
|
### 老模板支线
|
||||||
|
|
||||||
|
已经统一收进:
|
||||||
|
|
||||||
|
- [docs/old-tmp-seo/README.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/README.md)
|
||||||
|
|
||||||
|
这条支线只服务:
|
||||||
|
|
||||||
|
- 老模板 `1001-1005`
|
||||||
|
- 样板站:
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
- 7 天 SEO 跟踪、复盘、验收、交班
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、如果你是公共协作者,先知道这 4 条就够
|
||||||
|
|
||||||
|
1. 老模板 SEO 现在已经单独成线
|
||||||
|
2. 它不再和 GPT 模板共用一套文档入口
|
||||||
|
3. 公共层不再被老模板长链路文档淹没
|
||||||
|
4. 需要接手老模板时,直接进入 `docs/old-tmp-seo/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、如果你要接手老模板,直接看哪份
|
||||||
|
|
||||||
|
最短路径是:
|
||||||
|
|
||||||
|
1. 第 1 步:看 [38-老模板SEO交班总览-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/38-老模板SEO交班总览-2026-04-17.md)
|
||||||
|
2. 第 2 步:新开会话时用 [37-老模板主Codex启动提示词-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/37-老模板主Codex启动提示词-2026-04-17.md)
|
||||||
|
3. 第 3 步:当天执行看 [33-老模板样板站Day1执行单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/33-老模板样板站Day1执行单-2026-04-17.md)
|
||||||
|
4. 第 4 步:每日复盘看 [35-老模板每日复盘模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/35-老模板每日复盘模板-2026-04-17.md)
|
||||||
|
5. 第 5 步:首周验收看 [36-老模板首周验收清单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/36-老模板首周验收清单-2026-04-17.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、一句话交接
|
||||||
|
|
||||||
|
> 老模板 SEO 这条线已经从公共 docs 里拆出来了,公共层只保留入口和总判断;需要深入时,统一进入 `docs/old-tmp-seo/`。
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
|
|
||||||
日志证据来自:
|
日志证据来自:
|
||||||
|
|
||||||
- `/www/wwwlogs/source.video2.com.error.log`
|
- 线上站点对应的 Nginx/PHP 错误日志
|
||||||
|
|
||||||
关键错误:
|
关键错误:
|
||||||
|
|
||||||
|
|||||||
@@ -122,13 +122,44 @@
|
|||||||
|
|
||||||
### 10. 老模板回灌执行文档
|
### 10. 老模板回灌执行文档
|
||||||
|
|
||||||
- [1269-SEONexus-老模板第一阶段回灌执行文档.md](/www/wwwroot/diff-maccms/SEONexus/docs/1269-SEONexus-老模板第一阶段回灌执行文档.md)
|
- [1308-SEONexus-老模板SEO公共总览-2026-04-17.md](/www/wwwroot/VideoSource2/docs/1308-SEONexus-老模板SEO公共总览-2026-04-17.md)
|
||||||
|
- [old-tmp-seo/README.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/README.md)
|
||||||
|
- [01-老模板第一阶段回灌执行文档.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/01-老模板第一阶段回灌执行文档.md)
|
||||||
|
|
||||||
适用场景:
|
适用场景:
|
||||||
|
|
||||||
1. 回看老模板第一阶段执行过程
|
1. 想知道老模板支线现在被放在哪个目录
|
||||||
2. 对照历史回灌动作
|
2. 想先看老模板公共入口,再决定要不要深入
|
||||||
3. 排查旧版本与新版本差异
|
3. 回看老模板第一阶段执行过程
|
||||||
|
|
||||||
|
### 10.1 老模板蜘蛛分析交接链
|
||||||
|
|
||||||
|
如果你当前要接手的是 `2026-04-16` 到 `2026-04-17` 这轮老模板蜘蛛日志分析,建议直接看:
|
||||||
|
|
||||||
|
- [1308-SEONexus-老模板SEO公共总览-2026-04-17.md](/www/wwwroot/VideoSource2/docs/1308-SEONexus-老模板SEO公共总览-2026-04-17.md)
|
||||||
|
- [38-老模板SEO交班总览-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/38-老模板SEO交班总览-2026-04-17.md)
|
||||||
|
- [37-老模板主Codex启动提示词-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/37-老模板主Codex启动提示词-2026-04-17.md)
|
||||||
|
- [36-老模板首周验收清单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/36-老模板首周验收清单-2026-04-17.md)
|
||||||
|
- [35-老模板每日复盘模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/35-老模板每日复盘模板-2026-04-17.md)
|
||||||
|
- [34-老模板7天SEO跟踪板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/34-老模板7天SEO跟踪板-2026-04-17.md)
|
||||||
|
- [33-老模板样板站Day1执行单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/33-老模板样板站Day1执行单-2026-04-17.md)
|
||||||
|
- [32-老模板样板站URL-Family对照表-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/32-老模板样板站URL-Family对照表-2026-04-17.md)
|
||||||
|
- [31-老模板样板站域名级SEO任务单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/31-老模板样板站域名级SEO任务单-2026-04-17.md)
|
||||||
|
- [30-老模板最新蜘蛛日志实战分析-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/30-老模板最新蜘蛛日志实战分析-2026-04-17.md)
|
||||||
|
- [17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md)
|
||||||
|
- [13-主Codex接手摘要-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/13-主Codex接手摘要-2026-04-17.md)
|
||||||
|
- [12-第一批修正实施方案-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/12-第一批修正实施方案-2026-04-17.md)
|
||||||
|
- [14-蜘蛛分析交接索引-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/14-蜘蛛分析交接索引-2026-04-17.md)
|
||||||
|
|
||||||
|
适用场景:
|
||||||
|
|
||||||
|
1. 主 Codex 准备从分析切到第一批实现评估
|
||||||
|
2. 新会话需要最快速理解这轮蜘蛛分析结论
|
||||||
|
3. 想先确认当前主线到底是不是老模板 5 套
|
||||||
|
4. 想直接找到 `1271` 到 `1286` 这一整串交接材料
|
||||||
|
5. 想直接看最新工作台数据对应到老模板域名和模板编号的实战分析
|
||||||
|
6. 想直接进入 `yagyjt.com / ningxiaowei.com` 这类样板站域名级任务
|
||||||
|
7. 想快速确认“哪些是旧 family,哪些其实就是当前规范 family”
|
||||||
|
|
||||||
### 11. Admin2 Spider Workbench 生产排障记录
|
### 11. Admin2 Spider Workbench 生产排障记录
|
||||||
|
|
||||||
|
|||||||
400
docs/old-tmp-seo/02-老模板蜘蛛日志观察交接文档-2026-04-16.md
Normal file
400
docs/old-tmp-seo/02-老模板蜘蛛日志观察交接文档-2026-04-16.md
Normal file
@@ -0,0 +1,400 @@
|
|||||||
|
# 1271-SEONexus 老模板蜘蛛日志观察交接文档 - 2026-04-16
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档用于把本轮老模板蜘蛛日志观察结果,正式交接给主 Codex。
|
||||||
|
|
||||||
|
本轮遵循:
|
||||||
|
|
||||||
|
- `01-老模板第一阶段回灌执行文档.md`
|
||||||
|
- `1270-SEONexus-Codex多版本协作交接总文档.md`
|
||||||
|
|
||||||
|
因此本轮定位不是“旧版本自由发挥改一套实现”,而是:
|
||||||
|
|
||||||
|
- 先观察
|
||||||
|
- 先归纳
|
||||||
|
- 先分型
|
||||||
|
- 给主 Codex 提供下一步 SEO 优先方向
|
||||||
|
|
||||||
|
## 数据范围
|
||||||
|
|
||||||
|
- 项目:`SEONexus`
|
||||||
|
- 数据来源:`code/storage/domain-spider-crawl/runs/*/*/crawl-logs.summary.json`
|
||||||
|
- 观察对象:`baiduspider`
|
||||||
|
- 时间窗口:最近 24 小时
|
||||||
|
- 观察日期:`2026-04-16`
|
||||||
|
|
||||||
|
## 本轮总判断
|
||||||
|
|
||||||
|
当前百度蜘蛛的状态已经比较清楚:
|
||||||
|
|
||||||
|
1. 百度不是没来,首页抓取已经普遍存在
|
||||||
|
2. 深抓不是完全没有,已经有明确正样本
|
||||||
|
3. 当前主要问题不是“入口完全断掉”
|
||||||
|
4. 当前主要问题是 `301/404` 损耗过高
|
||||||
|
5. `category` 仍然弱,说明首页到中继层再到深页的稳定扩散还没普遍形成
|
||||||
|
|
||||||
|
一句话总结:
|
||||||
|
|
||||||
|
> 当前老模板第一阶段已经证明百度可以稳定进入首页,且部分站点已经出现真实深抓,但整体抓取预算仍在被首页规范化、深页跳转和历史错误入口大量消耗。
|
||||||
|
|
||||||
|
## 24 小时总览
|
||||||
|
|
||||||
|
### 页面类型计数
|
||||||
|
|
||||||
|
- `home`: `509`
|
||||||
|
- `other`: `266`
|
||||||
|
- `detail`: `119`
|
||||||
|
- `play`: `51`
|
||||||
|
- `category`: `2`
|
||||||
|
|
||||||
|
### 状态码计数
|
||||||
|
|
||||||
|
- `200`: `532`
|
||||||
|
- `301`: `231`
|
||||||
|
- `404`: `183`
|
||||||
|
- `444`: `1`
|
||||||
|
|
||||||
|
## 当前最重要的统一信号
|
||||||
|
|
||||||
|
### 1. 首页已成为百度主入口
|
||||||
|
|
||||||
|
`home` 是当前最主要页面类型,说明首页入口已经建立。
|
||||||
|
|
||||||
|
### 2. 深抓已经出现,但还没有大面积扩散
|
||||||
|
|
||||||
|
`detail` 和 `play` 已经不是零,说明深抓链路不是完全断的。
|
||||||
|
|
||||||
|
### 3. 最大损耗是 `301` 和 `404`
|
||||||
|
|
||||||
|
当前最值得优先处理的,不是继续争论“百度有没有来”,而是:
|
||||||
|
|
||||||
|
- 首页是否直达
|
||||||
|
- 深页是否带多余跳转
|
||||||
|
- 历史错误入口是否继续吞预算
|
||||||
|
|
||||||
|
### 4. `category` 仍然偏弱
|
||||||
|
|
||||||
|
最近 24 小时只有:
|
||||||
|
|
||||||
|
- `category|200 = 2`
|
||||||
|
|
||||||
|
说明首页到分类的中继层仍弱,深抓扩散还没进入更稳的阶段。
|
||||||
|
|
||||||
|
## 当前高频异常路径
|
||||||
|
|
||||||
|
本轮最明显的异常路径包括:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
- `/zb_system/login.php|301`
|
||||||
|
- `/zb_system/login.php|404`
|
||||||
|
- `/admin.php|301`
|
||||||
|
- 多个 `/voddetail/...|301`
|
||||||
|
- 多个 `/vodplay/...|301`
|
||||||
|
- 多个 `/video-info/...|301`
|
||||||
|
- 多个 `/video-play/...|301`
|
||||||
|
- 多个 `/video-show/...|301`
|
||||||
|
- `/showchengshi.asp?...|404`
|
||||||
|
- 一批 `/index.php/...shtml|404`
|
||||||
|
- 一批 `webuploader / upload / fileupload / preview` 类 `404`
|
||||||
|
|
||||||
|
对应判断:
|
||||||
|
|
||||||
|
1. 首页规范化还没完全收口
|
||||||
|
2. 深页历史路径兼容仍然有明显跳转损耗
|
||||||
|
3. 后台和旧脚本路径还在抢抓取预算
|
||||||
|
|
||||||
|
## 站点分型
|
||||||
|
|
||||||
|
### A 组:深抓正样本,优先保放量
|
||||||
|
|
||||||
|
#### `yagyjt.com`
|
||||||
|
|
||||||
|
核心统计:
|
||||||
|
|
||||||
|
- `detail|200`: `59`
|
||||||
|
- `detail|301`: `60`
|
||||||
|
- `play|200`: `25`
|
||||||
|
- `play|301`: `22`
|
||||||
|
- `home|200`: `18`
|
||||||
|
- `home|301`: `6`
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
- 百度已经真实进入详情页和播放页
|
||||||
|
- 当前主问题不是“能不能深抓”
|
||||||
|
- 当前主问题是“深页 301 太多,正在吃掉已出现的深抓放量”
|
||||||
|
|
||||||
|
主 Codex 建议:
|
||||||
|
|
||||||
|
- 优先减少 `detail|301`
|
||||||
|
- 优先减少 `play|301`
|
||||||
|
- 顺带继续压首页 `/|301`
|
||||||
|
- 继续观察 `/zb_system/login.php` 这类噪音入口
|
||||||
|
|
||||||
|
#### `junhaolab.com`
|
||||||
|
|
||||||
|
核心统计:
|
||||||
|
|
||||||
|
- `play|200`: `2`
|
||||||
|
- `play|301`: `2`
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
- 这是弱深抓样本
|
||||||
|
- 量小,但说明百度已经碰到播放页
|
||||||
|
|
||||||
|
主 Codex 建议:
|
||||||
|
|
||||||
|
- 作为次级深抓观察对象
|
||||||
|
- 重点看播放页跳转能否收敛
|
||||||
|
|
||||||
|
### B 组:错误入口高消耗样本,先清噪音
|
||||||
|
|
||||||
|
#### `qf123.net`
|
||||||
|
|
||||||
|
核心统计:
|
||||||
|
|
||||||
|
- `other|404`: `169`
|
||||||
|
- `home|200`: `1`
|
||||||
|
|
||||||
|
典型异常:
|
||||||
|
|
||||||
|
- `/js/webuploader/demo/server/upload.php|404`
|
||||||
|
- `/js/webuploader/demo/server/uploadfile.php|404`
|
||||||
|
- `/lib/webuploader-0.1.15/server/file.php|404`
|
||||||
|
- `/libs/webuploader/0.1.15/server/fileupload.php|404`
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
- 当前不是深抓问题
|
||||||
|
- 当前是错误入口纯消耗问题
|
||||||
|
|
||||||
|
主 Codex 建议:
|
||||||
|
|
||||||
|
- 先把这类历史上传组件和旧脚本路径的噪音收敛
|
||||||
|
- 在错误入口没下降前,不要把它当深抓效果站
|
||||||
|
|
||||||
|
#### `sctyjz.com`
|
||||||
|
|
||||||
|
核心统计:
|
||||||
|
|
||||||
|
- `home|200`: `12`
|
||||||
|
- `home|301`: `6`
|
||||||
|
- `other|404`: `8`
|
||||||
|
|
||||||
|
典型异常:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
- `/index.php/heixj/haoxj/haoxj/...shtml|404`
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
- 首页已开
|
||||||
|
- 但首页跳转和历史伪静态错误入口并存
|
||||||
|
|
||||||
|
主 Codex 建议:
|
||||||
|
|
||||||
|
- 先压首页 `/|301`
|
||||||
|
- 再处理 `/index.php/...shtml` 类旧路径噪音
|
||||||
|
|
||||||
|
#### `www.ap-hulan.com`
|
||||||
|
|
||||||
|
核心统计:
|
||||||
|
|
||||||
|
- `home|200`: `12`
|
||||||
|
- `home|301`: `6`
|
||||||
|
- `other|301`: `4`
|
||||||
|
|
||||||
|
典型异常:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
- `/admin.php|301`
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
- 首页已可抓
|
||||||
|
- 后台路径仍在分散预算
|
||||||
|
|
||||||
|
主 Codex 建议:
|
||||||
|
|
||||||
|
- 先压首页 `301`
|
||||||
|
- 再压 `/admin.php` 这类旧后台入口
|
||||||
|
|
||||||
|
### C 组:首页已起量,但 host 和内容路径仍在吃跳转预算
|
||||||
|
|
||||||
|
#### `www.ningxiaowei.com`
|
||||||
|
|
||||||
|
核心统计:
|
||||||
|
|
||||||
|
- `home|200`: `66`
|
||||||
|
- `home|301`: `5`
|
||||||
|
- `other|200`: `20`
|
||||||
|
- `other|301`: `18`
|
||||||
|
|
||||||
|
典型异常:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
- `/video-info/...|301`
|
||||||
|
- `/video-play/...|301`
|
||||||
|
|
||||||
|
#### `ningxiaowei.com`
|
||||||
|
|
||||||
|
核心统计:
|
||||||
|
|
||||||
|
- `home|200`: `13`
|
||||||
|
- `home|301`: `6`
|
||||||
|
- `other|200`: `10`
|
||||||
|
- `other|301`: `10`
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
- 首页已经起来
|
||||||
|
- 裸域和 `www` 都在消耗预算
|
||||||
|
- 内容层历史路径也还在持续跳转
|
||||||
|
|
||||||
|
主 Codex 建议:
|
||||||
|
|
||||||
|
- 优先收 host 规范
|
||||||
|
- 再压首页 `/|301`
|
||||||
|
- 再看 `video-info / video-play` 的兼容是否能进一步减损
|
||||||
|
|
||||||
|
### D 组:首页稳定样本,适合观察规范收口后是否自然扩深
|
||||||
|
|
||||||
|
#### `www.haotianhaiyuan.com` / `haotianhaiyuan.com`
|
||||||
|
|
||||||
|
核心统计:
|
||||||
|
|
||||||
|
- `www.haotianhaiyuan.com`: `home|200 = 44`,`home|301 = 9`
|
||||||
|
- `haotianhaiyuan.com`: `home|200 = 29`,`home|301 = 2`,`other|404 = 2`
|
||||||
|
|
||||||
|
典型异常:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
- `/showchengshi.asp?...|404`
|
||||||
|
|
||||||
|
#### `hymdrz.com` / `www.hymdrz.com`
|
||||||
|
|
||||||
|
核心统计:
|
||||||
|
|
||||||
|
- `hymdrz.com`: `home|200 = 37`,`home|301 = 2`
|
||||||
|
- `www.hymdrz.com`: `home|200 = 12`,`home|301 = 6`
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
- 首页抓取已经很稳
|
||||||
|
- 当前主要损耗仍是首页规范化和少量 host 分裂
|
||||||
|
- 不是高噪音站,也还不是深抓放量站
|
||||||
|
|
||||||
|
主 Codex 建议:
|
||||||
|
|
||||||
|
- 把它们作为“首页规范收口样本”
|
||||||
|
- 观察首页直达后是否自然向分类页和深页扩散
|
||||||
|
|
||||||
|
#### 首页稳定观察池
|
||||||
|
|
||||||
|
代表站点:
|
||||||
|
|
||||||
|
- `www.hygfbw.com`
|
||||||
|
- `www.shxmbz.com`
|
||||||
|
- `www.tvwallmountreview.com`
|
||||||
|
- `yaleyishu.com`
|
||||||
|
- `yqshu8.com`
|
||||||
|
- `yahuawang88.com`
|
||||||
|
- `www.syzhzs.com`
|
||||||
|
- `syzhzs.com`
|
||||||
|
|
||||||
|
共同模式:
|
||||||
|
|
||||||
|
- `home|200` 已有
|
||||||
|
- `home|301` 仍在
|
||||||
|
- 高频异常多为 `/|301`
|
||||||
|
|
||||||
|
补充信号:
|
||||||
|
|
||||||
|
- `syzhzs.com` 已出现 `category|200 = 2`
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
- 这批站适合作为“首页已稳、等待分类和深页自然扩散”的观察池
|
||||||
|
|
||||||
|
## 给主 Codex 的动作优先级
|
||||||
|
|
||||||
|
### 1. 首页直达化
|
||||||
|
|
||||||
|
当前最统一、最广泛的问题仍是:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
|
||||||
|
主线优化应优先检查:
|
||||||
|
|
||||||
|
- `http -> https`
|
||||||
|
- `www -> 非 www` 或反向规范
|
||||||
|
- 首页最终规范地址是否在配置、模板、链接输出中一致
|
||||||
|
|
||||||
|
### 2. 深页减损
|
||||||
|
|
||||||
|
对 `yagyjt.com` 这类已验证深抓的站点,优先目标不是“发明新入口”,而是:
|
||||||
|
|
||||||
|
- 降低 `detail|301`
|
||||||
|
- 降低 `play|301`
|
||||||
|
|
||||||
|
### 3. 错误入口降噪
|
||||||
|
|
||||||
|
对 `qf123.net`、`sctyjz.com` 这类站点,当前更应该先处理:
|
||||||
|
|
||||||
|
- 旧后台
|
||||||
|
- 旧上传组件
|
||||||
|
- 旧伪静态路径
|
||||||
|
|
||||||
|
### 4. host 规范收敛
|
||||||
|
|
||||||
|
当前多个站点都存在:
|
||||||
|
|
||||||
|
- 裸域和 `www` 同时被抓
|
||||||
|
- 两边都出现 `home|200` 和 `home|301`
|
||||||
|
|
||||||
|
主线优化要继续盯:
|
||||||
|
|
||||||
|
- canonical
|
||||||
|
- sitemap
|
||||||
|
- 站内链接输出
|
||||||
|
- 首页最终规范 host
|
||||||
|
|
||||||
|
### 5. 分类层继续观察
|
||||||
|
|
||||||
|
当前 `category|200` 仍然很弱,因此分类层不是这一轮最主要的问题,但需要继续监测。
|
||||||
|
|
||||||
|
## 建议的主线推进顺序
|
||||||
|
|
||||||
|
如果主 Codex 要从日志观察进入实现验证,更合理的顺序是:
|
||||||
|
|
||||||
|
1. 先压首页层 `301`
|
||||||
|
2. 再压深页层 `301`
|
||||||
|
3. 再清高频错误入口 `404`
|
||||||
|
4. 再观察 `category -> detail -> play` 是否自然扩散
|
||||||
|
|
||||||
|
不建议的顺序是:
|
||||||
|
|
||||||
|
- 还没把入口损耗压下去,就先大改深抓结构
|
||||||
|
|
||||||
|
## 本轮本地分析材料
|
||||||
|
|
||||||
|
本轮观察细节已沉淀在以下本地分析文档:
|
||||||
|
|
||||||
|
- `code/storage/_analysis/sources/baiduspider.md`
|
||||||
|
- `code/storage/_analysis/sources/baiduspider-priority-2026-04-16.md`
|
||||||
|
- `code/storage/_analysis/sources/baiduspider-action-checklist-2026-04-16.md`
|
||||||
|
- `code/storage/_analysis/domains/yagyjt.com.md`
|
||||||
|
- `code/storage/_analysis/domains/qf123.net.md`
|
||||||
|
- `code/storage/_analysis/domains/ningxiaowei-hosts.md`
|
||||||
|
- `code/storage/_analysis/domains/sctyjz.com.md`
|
||||||
|
- `code/storage/_analysis/domains/ap-hulan.com.md`
|
||||||
|
- `code/storage/_analysis/domains/haotianhaiyuan-hymdrz-hosts.md`
|
||||||
|
- `code/storage/_analysis/domains/home-stable-cluster.md`
|
||||||
|
|
||||||
|
## 交接结论
|
||||||
|
|
||||||
|
本轮可以正式交给主 Codex 的核心结论只有一句:
|
||||||
|
|
||||||
|
> 现在最值得做的不是继续证明蜘蛛有没有来,而是先系统性降低首页、深页和历史错误入口造成的 `301/404` 抓取预算损耗。
|
||||||
326
docs/old-tmp-seo/03-老模板蜘蛛日志与代码映射交接文档-2026-04-16.md
Normal file
326
docs/old-tmp-seo/03-老模板蜘蛛日志与代码映射交接文档-2026-04-16.md
Normal file
@@ -0,0 +1,326 @@
|
|||||||
|
# 1272-SEONexus 老模板蜘蛛日志与代码映射交接文档 - 2026-04-16
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档是在 `1271` 的基础上继续往前走一步:
|
||||||
|
|
||||||
|
- 不再只停留在日志现象
|
||||||
|
- 而是把当前蜘蛛日志现象,映射到项目里最可能对应的代码位置
|
||||||
|
|
||||||
|
这样主 Codex 接手时,可以直接从关键入口开始排查,而不是重新全仓翻一遍。
|
||||||
|
|
||||||
|
## 和前置文档的关系
|
||||||
|
|
||||||
|
- `1269`:定义第一阶段目标
|
||||||
|
- `1270`:定义协作边界
|
||||||
|
- `1271`:沉淀蜘蛛日志观察结论
|
||||||
|
- `1272`:把观察结论映射到代码入口
|
||||||
|
|
||||||
|
## 当前最关键的代码位置
|
||||||
|
|
||||||
|
### 1. 路由层
|
||||||
|
|
||||||
|
主要文件:
|
||||||
|
|
||||||
|
- [router.php](/www/wwwroot/VideoSource2/code/app/home/config/router.php)
|
||||||
|
|
||||||
|
关键点:
|
||||||
|
|
||||||
|
- `robots`、`sitemap`、`rss`、`sitemap_index`、`sitemap-main`、`sitemap-videos-*` 都在这里注册
|
||||||
|
- `videoGpt1` 分支里额外注册了大量历史详情页/播放页兼容路由
|
||||||
|
- 这些兼容路由正好和日志里高频出现的旧路径高度一致
|
||||||
|
|
||||||
|
直接对应的日志现象:
|
||||||
|
|
||||||
|
- `/voddetail/...|301`
|
||||||
|
- `/vodplay/...|301`
|
||||||
|
- `/video-info/...|301`
|
||||||
|
- `/video-play/...|301`
|
||||||
|
- `/video-show/...|301`
|
||||||
|
- `/shipin/...|301`
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
> 这批深页历史入口并不是“无路由直接 404”,而是已经被路由层接住了。日志里大量 `301 -> 200` 的前提条件之一,就是这里的兼容路由在工作。
|
||||||
|
|
||||||
|
### 2. URL 规范输出层
|
||||||
|
|
||||||
|
主要文件:
|
||||||
|
|
||||||
|
- [UrlBuilder.php](/www/wwwroot/VideoSource2/code/app/common/helper/UrlBuilder.php)
|
||||||
|
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php)
|
||||||
|
|
||||||
|
关键点:
|
||||||
|
|
||||||
|
- `UrlBuilder::detail()` 默认走 `voddetail/{strPinyin}-{intVId}`
|
||||||
|
- `UrlBuilder::play()` 默认走 `vodplay/{strPinyin}-{intVId}-{strPlayType}-{intPlayIndex}`
|
||||||
|
- `VideoService::getVideoInfoUrl()` / `getVideoPlayUrl()` 在 `videoGpt1` 下优先走 `UrlBuilder`
|
||||||
|
|
||||||
|
直接对应的日志现象:
|
||||||
|
|
||||||
|
- 当前仍有大量 `voddetail` / `vodplay` 命中
|
||||||
|
- 同时又能看到 `video-info` / `video-play` / `video-show` 命中
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
> 当前项目里“规范输出路径”和“兼容接入路径”是两层结构。`UrlBuilder` 更像主输出,`router.php` 里的兼容列表负责兜住历史入口。
|
||||||
|
|
||||||
|
## 和首页 `/|301` 最相关的代码点
|
||||||
|
|
||||||
|
### 1. DomainModel 的 host 归一口径
|
||||||
|
|
||||||
|
主要文件:
|
||||||
|
|
||||||
|
- [DomainModel.php](/www/wwwroot/VideoSource2/code/app/model/DomainModel.php)
|
||||||
|
|
||||||
|
关键点:
|
||||||
|
|
||||||
|
- 存在 `canonical_mode`
|
||||||
|
- 存在 `play_index_mode`
|
||||||
|
- 多处会对 host 做 `preg_replace('/^www\\./', '', ...)`
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 系统里已经有“规范 host / canonical 策略”的概念
|
||||||
|
- 但从日志看,裸域和 `www` 仍然同时被抓,说明这套策略没有完全在前台最终输出和真实访问上闭环
|
||||||
|
|
||||||
|
### 2. SiteContext 的域名识别口径
|
||||||
|
|
||||||
|
主要文件:
|
||||||
|
|
||||||
|
- [SiteContext.php](/www/wwwroot/VideoSource2/code/app/services/SiteContext.php)
|
||||||
|
|
||||||
|
关键点:
|
||||||
|
|
||||||
|
- `getTemplate()` 用的是 `Request->rootDomain()`
|
||||||
|
- 然后用 root domain 去取 `DomainModel`
|
||||||
|
|
||||||
|
对应判断:
|
||||||
|
|
||||||
|
- 这有利于让 `www.xxx.com` 和 `xxx.com` 落到同一个站点配置
|
||||||
|
- 但这本身不会自动消除首页 `301`
|
||||||
|
- 它更多解决的是“能不能识别到站点”,不是“是否直达最终规范 host”
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
> 日志里大量 `/|301` 更可能是前台实际访问入口、host 规范和模板/链接输出之间还没有完全统一,而不只是域名识别不到。
|
||||||
|
|
||||||
|
## 和深页 `301` 最相关的代码点
|
||||||
|
|
||||||
|
### 1. 兼容路由列表
|
||||||
|
|
||||||
|
主要文件:
|
||||||
|
|
||||||
|
- [router.php](/www/wwwroot/VideoSource2/code/app/home/config/router.php:166)
|
||||||
|
|
||||||
|
这里显式注册了大量历史深页入口,包括:
|
||||||
|
|
||||||
|
- `voddetail`
|
||||||
|
- `vodinfo`
|
||||||
|
- `vod`
|
||||||
|
- `video-info`
|
||||||
|
- `video-detail`
|
||||||
|
- `video`
|
||||||
|
- `shipin`
|
||||||
|
- `vodplay`
|
||||||
|
- `video-play`
|
||||||
|
- `video-show`
|
||||||
|
- `shipin-play`
|
||||||
|
- `shipin-bofang`
|
||||||
|
|
||||||
|
这和日志完全对上了。
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
> 现在看到的大量深页 `301`,很可能正是“旧入口先接住,再跳到当前 family 主输出 URL”的结果。
|
||||||
|
|
||||||
|
### 2. VideoService 的主输出链接
|
||||||
|
|
||||||
|
主要文件:
|
||||||
|
|
||||||
|
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:80)
|
||||||
|
|
||||||
|
关键点:
|
||||||
|
|
||||||
|
- 详情页和播放页主输出都优先走 `UrlBuilder`
|
||||||
|
- 如果站点 family 不是历史路径样式,那么历史外链进来后出现一次 `301` 是符合当前结构的
|
||||||
|
|
||||||
|
这也解释了为什么:
|
||||||
|
|
||||||
|
- `yagyjt.com` 已经能深抓
|
||||||
|
- 但 `detail|301` / `play|301` 仍然很高
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
> 代码结构上,深页 301 并不奇怪;真正值得主 Codex 继续排的是:哪些 `301` 是必要兼容,哪些 `301` 已经可以进一步压缩。
|
||||||
|
|
||||||
|
## 和 canonical / robots 最相关的代码点
|
||||||
|
|
||||||
|
### 1. SiteStyle 的 SEO meta 构建
|
||||||
|
|
||||||
|
主要文件:
|
||||||
|
|
||||||
|
- [SiteStyle.php](/www/wwwroot/VideoSource2/code/app/common/helper/SiteStyle.php:1800)
|
||||||
|
|
||||||
|
关键点:
|
||||||
|
|
||||||
|
- `detectPageType()` 目前只明确识别:
|
||||||
|
- `home`
|
||||||
|
- `voddetail/*` -> `detail`
|
||||||
|
- `vodplay/*` -> `play`
|
||||||
|
- `search`
|
||||||
|
- 部分 `rank`
|
||||||
|
- 部分 `category`
|
||||||
|
- `buildSeoMeta()` 里:
|
||||||
|
- detail 默认 `index,follow`
|
||||||
|
- play 默认 `noindex,follow`
|
||||||
|
- play canonical 会回指 detail
|
||||||
|
|
||||||
|
### 2. 当前存在的明显风险
|
||||||
|
|
||||||
|
`guessDetailUrlFromVideo()` 目前是硬编码回:
|
||||||
|
|
||||||
|
- `/voddetail/{slug}-{id}`
|
||||||
|
- 或 `/voddetail/{id}`
|
||||||
|
|
||||||
|
这意味着:
|
||||||
|
|
||||||
|
- 如果站点当前主 family 并不以 `voddetail` 作为规范详情路径
|
||||||
|
- 或者主输出已经切到别的 detail pattern
|
||||||
|
- 那么模板 canonical 就可能和当前主输出路径不完全一致
|
||||||
|
|
||||||
|
这是当前最值得主 Codex 重点核对的一点。
|
||||||
|
|
||||||
|
### 3. DomainModel 配置和模板输出暂未明显打通
|
||||||
|
|
||||||
|
虽然 `DomainModel` 已有:
|
||||||
|
|
||||||
|
- `canonical_mode`
|
||||||
|
- `play_index_mode`
|
||||||
|
|
||||||
|
但从当前代码检索结果看:
|
||||||
|
|
||||||
|
- 这些配置主要存在于模型默认值、标准化、bootstrap 汇总
|
||||||
|
- 前台模板 meta 生成仍主要靠 `SiteStyle::buildSeoMeta()`
|
||||||
|
- 而 `SiteStyle::buildSeoMeta()` 没有明显读取 `DomainModel` 的这两个配置
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
> 现在“配置层有 canonical/play_index 策略”和“前台模板真实输出什么 canonical/robots”之间,存在未完全打通的风险。
|
||||||
|
|
||||||
|
## 和 sitemap 最相关的代码点
|
||||||
|
|
||||||
|
### 1. 前台 sitemap 读取
|
||||||
|
|
||||||
|
主要文件:
|
||||||
|
|
||||||
|
- [SiteContext.php](/www/wwwroot/VideoSource2/code/app/services/SiteContext.php:505)
|
||||||
|
|
||||||
|
关键点:
|
||||||
|
|
||||||
|
- `getSiteMapByCode()` 只是按约定文件名读取 `storage/SiteMap/{domain}/...`
|
||||||
|
- 如果文件不存在,直接返回 `404`
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- `sitemap*.xml` 的稳定性,既依赖路由,也依赖离线文件是否实际生成成功
|
||||||
|
|
||||||
|
### 2. sitemap 生成逻辑
|
||||||
|
|
||||||
|
主要文件:
|
||||||
|
|
||||||
|
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php)
|
||||||
|
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php)
|
||||||
|
|
||||||
|
关键点:
|
||||||
|
|
||||||
|
- 两处生成逻辑里多次直接写:
|
||||||
|
- `https://www.{$DomainModel->d_domain}/...`
|
||||||
|
- `VideoSiteMapLogic` 生成视频详情页时,会优先读当前 `url_family['detail']['pattern']`
|
||||||
|
- 但最终 host 仍然是硬拼 `https://www.` + domain
|
||||||
|
|
||||||
|
这和日志里的 host 分裂现象是高度相关的。
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
> 如果站点真实规范 host 不是 `www`,或者前台访问并没有完全锁在 `www`,那么 sitemap 长期输出 `https://www.xxx.com/...` 本身就可能持续制造首页和深页的规范化跳转。
|
||||||
|
|
||||||
|
## 和“非 404 而是随机回落”的代码点
|
||||||
|
|
||||||
|
主要文件:
|
||||||
|
|
||||||
|
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:760)
|
||||||
|
|
||||||
|
关键点:
|
||||||
|
|
||||||
|
- `getVideoByVId()` 在直接按 `v_id` 查不到时,会进入 `resolveFallbackVideoByRequest()`
|
||||||
|
- `resolveFallbackVideoByRequest()` 会:
|
||||||
|
- 先看绑定表
|
||||||
|
- 再随机采样可播放视频
|
||||||
|
- 再做兜底有序回落
|
||||||
|
- 命中后会把“请求的旧 id”绑定到“随机或兜底找到的新视频 id”
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 某些旧深链并不一定直接 404
|
||||||
|
- 也可能被系统兜底绑定到别的视频,再输出一个可访问页面
|
||||||
|
|
||||||
|
对应日志判断:
|
||||||
|
|
||||||
|
- 这能解释为什么一部分历史深链现在表现成 `301 -> 200`
|
||||||
|
- 但也意味着 canonical 和真实内容语义一致性要特别小心
|
||||||
|
|
||||||
|
## 给主 Codex 的代码排查优先级
|
||||||
|
|
||||||
|
### 1. 先查 host 规范是否被多处硬编码成 `www`
|
||||||
|
|
||||||
|
优先看:
|
||||||
|
|
||||||
|
- `SiteMapLogic.php`
|
||||||
|
- `VideoSiteMapLogic.php`
|
||||||
|
- 任何模板里直接拼域名的位置
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 这最直接对应日志里的 `/|301`
|
||||||
|
- 也最直接对应裸域 / `www` 分裂
|
||||||
|
|
||||||
|
### 2. 再查 canonical 是否仍硬编码成 `/voddetail/...`
|
||||||
|
|
||||||
|
优先看:
|
||||||
|
|
||||||
|
- `SiteStyle::buildSeoMeta()`
|
||||||
|
- `SiteStyle::guessDetailUrlFromVideo()`
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 当前 detail/play 主输出已经有 family 概念
|
||||||
|
- canonical 仍硬编码 `voddetail` 风险较大
|
||||||
|
|
||||||
|
### 3. 再查历史兼容路由是否仍有可压缩空间
|
||||||
|
|
||||||
|
优先看:
|
||||||
|
|
||||||
|
- `app/home/config/router.php` 的 legacy compat 段
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 这直接对应日志里大量 `video-info` / `video-play` / `video-show` / `shipin` 的命中
|
||||||
|
- 主线要判断哪些入口必须保留,哪些入口可以进一步合并或缩短跳转链
|
||||||
|
|
||||||
|
### 4. 最后查 fallback 视频绑定是否会放大“错链也 200”
|
||||||
|
|
||||||
|
优先看:
|
||||||
|
|
||||||
|
- `VideoService::resolveFallbackVideoByRequest()`
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 这条链对“减少 404”有帮助
|
||||||
|
- 但如果过度回落,也可能把错误深链转成语义不一致的 `200`
|
||||||
|
|
||||||
|
## 给主 Codex 的一句话交接
|
||||||
|
|
||||||
|
如果主 Codex 要开始从实现层排这轮蜘蛛问题,最值得先看的不是模板样式,而是:
|
||||||
|
|
||||||
|
> `router.php` 的历史兼容入口、`SiteStyle` 的 canonical 输出、`VideoSiteMapLogic/SiteMapLogic` 的 `www` host 拼接、以及 `VideoService` 的 fallback 回落链。
|
||||||
305
docs/old-tmp-seo/04-老模板蜘蛛日志观察更新-2026-04-17.md
Normal file
305
docs/old-tmp-seo/04-老模板蜘蛛日志观察更新-2026-04-17.md
Normal file
@@ -0,0 +1,305 @@
|
|||||||
|
# 1273-SEONexus 老模板蜘蛛日志观察更新 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档用于承接 `1271` 和 `1272` 之后,基于 `2026-04-17` 最新代码与最新蜘蛛日志,再做一轮更新观察。
|
||||||
|
|
||||||
|
本轮重点不是重新从零分析,而是回答三个问题:
|
||||||
|
|
||||||
|
1. 相比 `2026-04-16`,整体抓取结构有没有变化
|
||||||
|
2. 哪些问题确实改善了
|
||||||
|
3. 哪些问题只是从 `301/404` 换成了新的损耗形态
|
||||||
|
|
||||||
|
## 数据范围
|
||||||
|
|
||||||
|
- 项目:`SEONexus`
|
||||||
|
- 数据来源:`code/storage/domain-spider-crawl/runs/*/*/crawl-logs.summary.json`
|
||||||
|
- 观察对象:`baiduspider`
|
||||||
|
- 时间窗口:最近 24 小时
|
||||||
|
- 观察日期:`2026-04-17`
|
||||||
|
|
||||||
|
## 与上一轮的核心对比
|
||||||
|
|
||||||
|
### `2026-04-16`
|
||||||
|
|
||||||
|
- `home`: `509`
|
||||||
|
- `other`: `266`
|
||||||
|
- `detail`: `119`
|
||||||
|
- `play`: `51`
|
||||||
|
- `category`: `2`
|
||||||
|
|
||||||
|
- `200`: `532`
|
||||||
|
- `301`: `231`
|
||||||
|
- `404`: `183`
|
||||||
|
- `444`: `1`
|
||||||
|
|
||||||
|
### `2026-04-17`
|
||||||
|
|
||||||
|
- `home`: `433`
|
||||||
|
- `other`: `106`
|
||||||
|
- `detail`: `95`
|
||||||
|
- `play`: `43`
|
||||||
|
- `category`: `0`
|
||||||
|
|
||||||
|
- `200`: `478`
|
||||||
|
- `301`: `158`
|
||||||
|
- `404`: `9`
|
||||||
|
- `444`: `32`
|
||||||
|
|
||||||
|
## 第一判断
|
||||||
|
|
||||||
|
这一轮最明显的变化不是“抓取总量暴涨”,而是“损耗结构明显变化”。
|
||||||
|
|
||||||
|
一句话总结:
|
||||||
|
|
||||||
|
> `2026-04-17` 相比 `2026-04-16`,百度蜘蛛的 `404` 大幅下降,`301` 也明显下降,说明旧错误入口和部分跳转损耗确实被压掉了;但同时出现了一批新的 `444` 拦截信号,说明问题并没有完全消失,而是部分从“错误入口消耗”转成了“拦截型消耗”。
|
||||||
|
|
||||||
|
## 本轮最值得确认的改善
|
||||||
|
|
||||||
|
### 1. `404` 从 `183` 降到 `9`
|
||||||
|
|
||||||
|
这是本轮最明确的正向信号。
|
||||||
|
|
||||||
|
说明:
|
||||||
|
|
||||||
|
- 之前那批高密度错误入口,不少已经不再继续大量落成 `404`
|
||||||
|
- 至少从日志表现上,老的纯错误入口吞预算问题大幅缓解
|
||||||
|
|
||||||
|
### 2. `301` 从 `231` 降到 `158`
|
||||||
|
|
||||||
|
说明:
|
||||||
|
|
||||||
|
- 首页和深页的跳转损耗总体也在下降
|
||||||
|
- 尤其是首页 `/|301` 从上一轮的 `98` 次,降到了这轮的 `59` 次
|
||||||
|
|
||||||
|
这虽然还不算完全收干净,但趋势是对的。
|
||||||
|
|
||||||
|
### 3. `qf123.net` 基本脱离“纯 404 黑洞”
|
||||||
|
|
||||||
|
上一轮:
|
||||||
|
|
||||||
|
- `qf123.net`: `other|404 = 169`
|
||||||
|
|
||||||
|
这一轮:
|
||||||
|
|
||||||
|
- `qf123.net` 已经没有继续出现高位 `other|404`
|
||||||
|
- `www.qf123.net` 只看到:
|
||||||
|
- `home|200 = 2`
|
||||||
|
- `home|301 = 1`
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 之前那批 `webuploader / upload / fileupload` 噪音,至少在本轮窗口中已经不再是主问题
|
||||||
|
|
||||||
|
### 4. `sctyjz.com` 的首页结构比上一轮更分化
|
||||||
|
|
||||||
|
上一轮:
|
||||||
|
|
||||||
|
- `sctyjz.com`: `home|200 = 12`,`home|301 = 6`,`other|404 = 8`
|
||||||
|
|
||||||
|
这一轮:
|
||||||
|
|
||||||
|
- `sctyjz.com`: `home|200 = 3`,`other|404 = 8`
|
||||||
|
- `www.sctyjz.com`: `home|200 = 7`,`home|301 = 1`,`other|404 = 1`
|
||||||
|
|
||||||
|
说明:
|
||||||
|
|
||||||
|
- 裸域和 `www` 的抓取重心更明显地往 `www` 偏了
|
||||||
|
- 首页 `301` 的问题在 `www.sctyjz.com` 这一侧已明显下降
|
||||||
|
- 但旧伪静态 `404` 入口仍未根治
|
||||||
|
|
||||||
|
## 本轮没有解决、但结构更清楚的问题
|
||||||
|
|
||||||
|
### 1. `yagyjt.com` 仍然是深抓正样本,但深页 `301` 还在高位
|
||||||
|
|
||||||
|
本轮统计:
|
||||||
|
|
||||||
|
- `detail|200 = 48`
|
||||||
|
- `detail|301 = 47`
|
||||||
|
- `play|200 = 19`
|
||||||
|
- `play|301 = 20`
|
||||||
|
- `home|200 = 14`
|
||||||
|
- `home|301 = 4`
|
||||||
|
|
||||||
|
对比上一轮:
|
||||||
|
|
||||||
|
- `detail|200 = 59`
|
||||||
|
- `detail|301 = 60`
|
||||||
|
- `play|200 = 25`
|
||||||
|
- `play|301 = 22`
|
||||||
|
- `home|200 = 18`
|
||||||
|
- `home|301 = 6`
|
||||||
|
|
||||||
|
判断:
|
||||||
|
|
||||||
|
- 深抓还在,说明正样本地位没丢
|
||||||
|
- `home|301` 有下降,首页更干净了
|
||||||
|
- `detail/play` 的 `301` 也略有下降
|
||||||
|
- 但深页 `301` 和 `200` 仍然接近 1:1,主矛盾没有本质变化
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
> `yagyjt.com` 依然不是“有没有深抓”的问题,而是“深抓已经建立,但深页规范化损耗仍然偏高”。
|
||||||
|
|
||||||
|
### 2. `www.ningxiaowei.com` 仍然是内容层跳转样本
|
||||||
|
|
||||||
|
本轮统计:
|
||||||
|
|
||||||
|
- `home|200 = 25`
|
||||||
|
- `home|301 = 4`
|
||||||
|
- `other|200 = 24`
|
||||||
|
- `other|301 = 24`
|
||||||
|
|
||||||
|
上一轮:
|
||||||
|
|
||||||
|
- `home|200 = 66`
|
||||||
|
- `home|301 = 5`
|
||||||
|
- `other|200 = 20`
|
||||||
|
- `other|301 = 18`
|
||||||
|
|
||||||
|
判断:
|
||||||
|
|
||||||
|
- 首页 `301` 有所下降
|
||||||
|
- 但 `other|301` 反而更显眼了
|
||||||
|
- 异常仍然主要落在:
|
||||||
|
- `/video-info/...|301`
|
||||||
|
- `/video-play/...|301`
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
> `www.ningxiaowei.com` 当前更像“首页稍微更干净了,但内容层历史路径兼容仍在持续吃预算”。
|
||||||
|
|
||||||
|
### 3. `junhaolab.com` 仍然只是弱深抓样本
|
||||||
|
|
||||||
|
本轮:
|
||||||
|
|
||||||
|
- `play|200 = 2`
|
||||||
|
- `play|301 = 2`
|
||||||
|
|
||||||
|
说明:
|
||||||
|
|
||||||
|
- 播放页信号还在
|
||||||
|
- 但量级没有明显放大
|
||||||
|
|
||||||
|
## 本轮新增需要重点留意的问题
|
||||||
|
|
||||||
|
### 1. `444` 从 `1` 升到 `32`
|
||||||
|
|
||||||
|
这轮最值得警惕的新变化就是:
|
||||||
|
|
||||||
|
- `444` 明显增加
|
||||||
|
|
||||||
|
目前主要出现在:
|
||||||
|
|
||||||
|
- `rqgcmc.com`
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `www.yagyjt.com`
|
||||||
|
|
||||||
|
### 2. `rqgcmc.com` 出现新的拦截型异常
|
||||||
|
|
||||||
|
本轮统计:
|
||||||
|
|
||||||
|
- `home|200 = 8`
|
||||||
|
- `home|301 = 4`
|
||||||
|
- `other|444 = 27`
|
||||||
|
|
||||||
|
典型异常:
|
||||||
|
|
||||||
|
- `/rqgcmc.com.rar|444`
|
||||||
|
- `/rqgcmc.com.zip|444`
|
||||||
|
- `/rqgcmc.rar|444`
|
||||||
|
- `/rqgcmc.zip|444`
|
||||||
|
- `/rqgcmc.txt|444`
|
||||||
|
- `/www.zip|444`
|
||||||
|
- `/www.rar|444`
|
||||||
|
- `/wwwroot.rar|444`
|
||||||
|
|
||||||
|
判断:
|
||||||
|
|
||||||
|
- 这不是内容层问题
|
||||||
|
- 而是明显的探测、打包、压缩包、站点根目录类异常请求
|
||||||
|
- 目前这些请求被 `444` 拦掉了
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
> 这类 `444` 比 `404` 更像“防探测拦截生效”,从安全上未必是坏事;但从蜘蛛日志观察角度,它仍然属于抓取预算噪音,需要和真正的 SEO 主路径分开看。
|
||||||
|
|
||||||
|
### 3. `/zb_system/login.php` 从 `301/404` 变成了 `444`
|
||||||
|
|
||||||
|
上一轮高频里:
|
||||||
|
|
||||||
|
- `/zb_system/login.php|301`
|
||||||
|
- `/zb_system/login.php|404`
|
||||||
|
|
||||||
|
这一轮高频里:
|
||||||
|
|
||||||
|
- `/zb_system/login.php|444 = 4`
|
||||||
|
|
||||||
|
判断:
|
||||||
|
|
||||||
|
- 这说明后台历史入口仍在被命中
|
||||||
|
- 只是处理方式从跳转/未找到,变成了直接拦截
|
||||||
|
|
||||||
|
## 当前阶段的新结论
|
||||||
|
|
||||||
|
本轮比上一轮更适合用“三类变化”来理解:
|
||||||
|
|
||||||
|
### 1. 确认改善的
|
||||||
|
|
||||||
|
- `404` 大幅下降
|
||||||
|
- 首页 `/|301` 明显下降
|
||||||
|
- `qf123.net` 的错误入口黑洞基本消失
|
||||||
|
|
||||||
|
### 2. 改善有限但方向正确的
|
||||||
|
|
||||||
|
- `yagyjt.com` 首页与深页 `301` 略降
|
||||||
|
- `sctyjz.com` 的 `www` 侧首页更干净
|
||||||
|
|
||||||
|
### 3. 新暴露出来的
|
||||||
|
|
||||||
|
- `444` 上升
|
||||||
|
- 一批探测型、压缩包型、后台入口型异常被直接拦截
|
||||||
|
|
||||||
|
## 给主 Codex 的更新建议
|
||||||
|
|
||||||
|
### 1. 不要再把当前主矛盾定义成“404 为主”
|
||||||
|
|
||||||
|
`2026-04-17` 这轮后,旧式 `404` 入口问题已经明显下降。
|
||||||
|
|
||||||
|
现在更应该拆成:
|
||||||
|
|
||||||
|
- 深页 `301` 是否还能继续压
|
||||||
|
- 首页 `/|301` 是否还能继续压
|
||||||
|
- `444` 是否属于可接受的防探测噪音,还是误伤了正常抓取入口
|
||||||
|
|
||||||
|
### 2. `yagyjt.com` 仍然是深抓优化第一观察站
|
||||||
|
|
||||||
|
因为:
|
||||||
|
|
||||||
|
- 深抓仍在
|
||||||
|
- 首页更干净了
|
||||||
|
- 现在更容易观察“深页跳转能否进一步收敛”
|
||||||
|
|
||||||
|
### 3. `www.ningxiaowei.com` 仍然是内容层历史路径兼容观察站
|
||||||
|
|
||||||
|
因为:
|
||||||
|
|
||||||
|
- `video-info / video-play` 仍然频繁出现
|
||||||
|
- 更适合继续验证 canonical / family / 兼容入口是否完全统一
|
||||||
|
|
||||||
|
### 4. `rqgcmc.com` 不应和普通 SEO 站点混在一起判断
|
||||||
|
|
||||||
|
它当前的主要问题已经不是内容入口,而是拦截型探测噪音。
|
||||||
|
|
||||||
|
### 5. `category` 仍然没有抬头
|
||||||
|
|
||||||
|
这一轮没有观察到新的 `category` 扩散信号。
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 首页入口虽然在改善
|
||||||
|
- 但首页 -> 分类 -> 深页 的中继放量还没有明显出现
|
||||||
|
|
||||||
|
## 一句话交接
|
||||||
|
|
||||||
|
> `2026-04-17` 这轮最大的变化,是旧式 `404` 错误入口明显下降、首页与部分深页 `301` 也在下降,但问题没有完全消失,而是部分转成了 `444` 拦截型噪音;下一步更值得主 Codex 盯的是深页 `301` 压缩和 `444` 是否只是安全噪音而非误伤 SEO 主路径。
|
||||||
252
docs/old-tmp-seo/05-老模板蜘蛛日志变化与代码判断更新-2026-04-17.md
Normal file
252
docs/old-tmp-seo/05-老模板蜘蛛日志变化与代码判断更新-2026-04-17.md
Normal file
@@ -0,0 +1,252 @@
|
|||||||
|
# 1274-SEONexus 老模板蜘蛛日志变化与代码判断更新 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档是在 `1272` 与 `1273` 的基础上,继续把最新日志变化往代码判断上推进一步。
|
||||||
|
|
||||||
|
这一轮重点回答两个问题:
|
||||||
|
|
||||||
|
1. 为什么 `2026-04-17` 的 `404` 会明显下降
|
||||||
|
2. 为什么同一时间又出现更多 `444`
|
||||||
|
|
||||||
|
## 和前置文档的关系
|
||||||
|
|
||||||
|
- `1271`:日志观察首轮结论
|
||||||
|
- `1272`:日志现象与代码位置映射
|
||||||
|
- `1273`:`2026-04-17` 新日志更新
|
||||||
|
- `1274`:针对 `404 -> 444` 结构变化的代码判断
|
||||||
|
|
||||||
|
## 本轮关键结论
|
||||||
|
|
||||||
|
一句话总结:
|
||||||
|
|
||||||
|
> `2026-04-17` 这一轮里,`404` 下降更像是“历史深链和错误 ID 被更多地兜住了”,而 `444` 上升目前没有在应用层看到直接返回逻辑,更像是前置层或安全规则拦截带来的新噪音形态。
|
||||||
|
|
||||||
|
## 一、为什么 `404` 会明显下降
|
||||||
|
|
||||||
|
### 1. 旧深页入口早就不是直接裸 404
|
||||||
|
|
||||||
|
核心文件:
|
||||||
|
|
||||||
|
- [router.php](/www/wwwroot/VideoSource2/code/app/home/config/router.php)
|
||||||
|
|
||||||
|
已经明确存在大量历史兼容入口:
|
||||||
|
|
||||||
|
- `voddetail`
|
||||||
|
- `vodinfo`
|
||||||
|
- `vod`
|
||||||
|
- `video-info`
|
||||||
|
- `video-detail`
|
||||||
|
- `video`
|
||||||
|
- `shipin`
|
||||||
|
- `vodplay`
|
||||||
|
- `video-play`
|
||||||
|
- `video-show`
|
||||||
|
- `shipin-play`
|
||||||
|
- `shipin-bofang`
|
||||||
|
|
||||||
|
这意味着:
|
||||||
|
|
||||||
|
- 日志里的旧详情页、旧播放页路径
|
||||||
|
- 很多并不是“根本没路由,直接 404”
|
||||||
|
- 而是已经被路由先接住了
|
||||||
|
|
||||||
|
所以 `404` 的下降,不能只理解成“错误入口少了”,也要理解成“已有更多旧入口被应用层成功承接”。
|
||||||
|
|
||||||
|
### 2. VideoService 存在明显的 fallback 回退链
|
||||||
|
|
||||||
|
核心文件:
|
||||||
|
|
||||||
|
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:905)
|
||||||
|
|
||||||
|
关键逻辑:
|
||||||
|
|
||||||
|
- `getVideoByVId()` 查不到原始 `v_id` 时,不会立刻结束
|
||||||
|
- 而是进入 `resolveFallbackVideoByRequest()`
|
||||||
|
|
||||||
|
`resolveFallbackVideoByRequest()` 的处理顺序是:
|
||||||
|
|
||||||
|
1. 先读 host 维度的 fallback 绑定表
|
||||||
|
2. 如果已有绑定,则直接回用之前找到的视频
|
||||||
|
3. 没绑定时,从库里随机采样一批视频
|
||||||
|
4. 找到可用视频后,把“请求旧 id -> 真实新 id”的绑定写入本地文件
|
||||||
|
5. 如果随机采样还失败,再走按排序兜底
|
||||||
|
|
||||||
|
对应代码点:
|
||||||
|
|
||||||
|
- `readFallbackBindings()`
|
||||||
|
- `writeFallbackBindings()`
|
||||||
|
- `fallbackBindingsPath()`
|
||||||
|
- `_fallback_reason = bound_random_video / random_video / ordered_fallback_video`
|
||||||
|
|
||||||
|
### 3. 这条链足以解释一部分“404 明显下降”
|
||||||
|
|
||||||
|
这意味着:
|
||||||
|
|
||||||
|
- 某些过去会直接 404 的旧视频 ID
|
||||||
|
- 现在可能被 fallback 机制回落成一个可访问页面
|
||||||
|
|
||||||
|
所以:
|
||||||
|
|
||||||
|
- `404` 下降未必全部来自“外部噪音消失”
|
||||||
|
- 也可能来自“应用层兜底更积极了”
|
||||||
|
|
||||||
|
这对 SEO 的影响有两面性:
|
||||||
|
|
||||||
|
- 正面:减少了硬 404,抓取预算不再直接浪费
|
||||||
|
- 风险:如果旧 URL 被回落到语义不一致的视频页,就会带来 canonical 和内容一致性风险
|
||||||
|
|
||||||
|
## 二、为什么 `444` 会明显上升
|
||||||
|
|
||||||
|
### 1. 当前应用层没有看到明确的 `444` 返回逻辑
|
||||||
|
|
||||||
|
本轮代码检索没有在应用层发现:
|
||||||
|
|
||||||
|
- `http_response_code(444)`
|
||||||
|
- `return 444`
|
||||||
|
- `HttpException(444)`
|
||||||
|
|
||||||
|
这意味着:
|
||||||
|
|
||||||
|
- 当前日志里的 `444`
|
||||||
|
- 很大概率不是 ThinkPHP 应用层主动抛出来的
|
||||||
|
|
||||||
|
### 2. 应用层的主动拦截主要还是 `404`
|
||||||
|
|
||||||
|
核心文件:
|
||||||
|
|
||||||
|
- [SiteContext.php](/www/wwwroot/VideoSource2/code/app/services/SiteContext.php:560)
|
||||||
|
|
||||||
|
在 `limitRequestRate()` 和 `checkCnzzCookie()` 里,可以看到多类拦截:
|
||||||
|
|
||||||
|
- 黑名单 IP
|
||||||
|
- 普通访客短时限速
|
||||||
|
- 普通访客高频请求拉黑
|
||||||
|
- 伪 Googlebot UA
|
||||||
|
- `Amazonbot / zgrab / crawler` 等 UA
|
||||||
|
- 无 CNZZ cookie 的普通访客
|
||||||
|
|
||||||
|
但这些分支最终抛出的都是:
|
||||||
|
|
||||||
|
- `HttpException(404, ...)`
|
||||||
|
|
||||||
|
而且 `isSpider()` 里对以下蜘蛛是直接白名单放行的:
|
||||||
|
|
||||||
|
- `Baiduspider`
|
||||||
|
- `Googlebot`
|
||||||
|
- `Sogou`
|
||||||
|
- `Bytespider`
|
||||||
|
- `Bingbot`
|
||||||
|
- 等主流搜索蜘蛛
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 对真实 `Baiduspider` 来说,应用层限速本身不太像当前 `444` 的直接来源
|
||||||
|
|
||||||
|
### 3. 当前 `444` 更像前置层或安全规则拦截
|
||||||
|
|
||||||
|
从日志表现看,`444` 主要集中在:
|
||||||
|
|
||||||
|
- `/zb_system/login.php`
|
||||||
|
- `*.rar`
|
||||||
|
- `*.zip`
|
||||||
|
- `*.txt`
|
||||||
|
- `/www.rar`
|
||||||
|
- `/wwwroot.rar`
|
||||||
|
|
||||||
|
这类 URL 具有明显特点:
|
||||||
|
|
||||||
|
- 都不像正常内容页
|
||||||
|
- 更像安全探测、压缩包探测、站点根目录打包探测
|
||||||
|
|
||||||
|
结合本轮代码检索结果,更合理的判断是:
|
||||||
|
|
||||||
|
- 这类请求大概率在更前层就被拦掉了
|
||||||
|
- 例如 nginx / waf / 黑名单 / 探测规则
|
||||||
|
|
||||||
|
所以:
|
||||||
|
|
||||||
|
- `444` 的上升不应直接按“SEO 主路径坏了”解读
|
||||||
|
- 更像“非内容型噪音被更前层提前拒绝”
|
||||||
|
|
||||||
|
## 三、对当前日志变化的更准确解释
|
||||||
|
|
||||||
|
### 1. `404` 下降,不等于所有问题都解决了
|
||||||
|
|
||||||
|
更准确的说法应该是:
|
||||||
|
|
||||||
|
- 旧错误入口有一部分确实少了
|
||||||
|
- 另一部分则被路由兼容和 fallback 机制兜住了
|
||||||
|
|
||||||
|
### 2. `444` 上升,不等于主内容路径一定被误伤
|
||||||
|
|
||||||
|
更准确的说法应该是:
|
||||||
|
|
||||||
|
- 当前看到的 `444`
|
||||||
|
- 主要还集中在探测型、后台型、压缩包型 URL
|
||||||
|
|
||||||
|
如果后续 `444` 开始扩散到:
|
||||||
|
|
||||||
|
- `robots.txt`
|
||||||
|
- `sitemap*.xml`
|
||||||
|
- `/`
|
||||||
|
- `detail`
|
||||||
|
- `play`
|
||||||
|
|
||||||
|
那才是更值得警惕的 SEO 主路径误伤。
|
||||||
|
|
||||||
|
### 3. 目前最值得继续盯的仍然是深页 `301`
|
||||||
|
|
||||||
|
原因很简单:
|
||||||
|
|
||||||
|
- `404` 下降已是阶段性利好
|
||||||
|
- `444` 当前更像安全噪音
|
||||||
|
- 但 `yagyjt.com` 这类站点的 `detail|301 / play|301` 仍接近 `200`
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 主内容抓取链路的最大损耗,依然还在深页规范化
|
||||||
|
|
||||||
|
## 四、给主 Codex 的代码排查建议更新
|
||||||
|
|
||||||
|
### 1. 优先继续查深页规范化,不要被 `444` 全部带偏
|
||||||
|
|
||||||
|
当前 `444` 虽然增加,但从现象和代码看:
|
||||||
|
|
||||||
|
- 还更像边缘噪音
|
||||||
|
- 暂时不像主内容入口集体误伤
|
||||||
|
|
||||||
|
所以主线仍应优先:
|
||||||
|
|
||||||
|
- 查 detail/play 主输出和兼容跳转链
|
||||||
|
- 查 canonical 是否和当前 family 一致
|
||||||
|
|
||||||
|
### 2. 对 fallback 机制要做“收益”和“风险”双向评估
|
||||||
|
|
||||||
|
`VideoService::resolveFallbackVideoByRequest()` 这条链现在值得主 Codex 明确判断:
|
||||||
|
|
||||||
|
- 它是不是正在帮我们减少 404
|
||||||
|
- 它是否会把错误 deep link 回落到语义不相干内容
|
||||||
|
- 这是否会影响 canonical、一致性、搜索引擎理解
|
||||||
|
|
||||||
|
### 3. `444` 这条线更适合联动前置层配置看
|
||||||
|
|
||||||
|
因为当前仓库内没有明显应用层 `444` 返回实现,所以如果主 Codex 要深挖 `444`,下一步更应该查:
|
||||||
|
|
||||||
|
- nginx 配置
|
||||||
|
- 前置防护规则
|
||||||
|
- UA / 路径黑名单策略
|
||||||
|
|
||||||
|
而不是只在 PHP 应用层里继续找。
|
||||||
|
|
||||||
|
## 五、补充说明
|
||||||
|
|
||||||
|
本轮尝试查看仓库最近提交时,`git` 返回了仓库 ownership 安全限制:
|
||||||
|
|
||||||
|
- `fatal: detected dubious ownership in repository at '/www/wwwroot/VideoSource2'`
|
||||||
|
|
||||||
|
因此这次没有继续依赖 `git log` 判断“哪次提交导致了日志变化”,这里只基于当前代码结构和最新日志做判断。
|
||||||
|
|
||||||
|
## 一句话交接
|
||||||
|
|
||||||
|
> 当前 `404` 的显著下降,很可能既有入口噪音减少的因素,也有 `VideoService` fallback 兜底在起作用;而 `444` 的上升目前更像前置层拦截探测噪音,不像应用层主动误伤主内容入口,所以主 Codex 仍应优先盯深页 `301` 和 canonical/family 一致性。
|
||||||
228
docs/old-tmp-seo/06-主Codex可执行检查清单-2026-04-17.md
Normal file
228
docs/old-tmp-seo/06-主Codex可执行检查清单-2026-04-17.md
Normal file
@@ -0,0 +1,228 @@
|
|||||||
|
# 1275-SEONexus 主 Codex 可执行检查清单 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档用于把 `1271` 到 `1274` 的分析,压缩成主 Codex 可以直接开干的检查清单。
|
||||||
|
|
||||||
|
目标不是重复分析结论,而是明确:
|
||||||
|
|
||||||
|
1. 先看哪几个文件
|
||||||
|
2. 每个文件要判断什么
|
||||||
|
3. 哪些问题优先级最高
|
||||||
|
|
||||||
|
## 当前建议的排查顺序
|
||||||
|
|
||||||
|
### 1. 先查深页兼容入口是否仍然过宽
|
||||||
|
|
||||||
|
优先级:`P0`
|
||||||
|
|
||||||
|
文件:
|
||||||
|
|
||||||
|
- [router.php](/www/wwwroot/VideoSource2/code/app/home/config/router.php:209)
|
||||||
|
|
||||||
|
重点看:
|
||||||
|
|
||||||
|
- `legacyCompatRoutes` 里注册了多少历史 `detail/play` 入口
|
||||||
|
- 哪些入口现在仍然在日志里高频出现
|
||||||
|
- 哪些入口只是历史遗留,但已经几乎没有真实命中
|
||||||
|
|
||||||
|
当前直接对应的高频路径:
|
||||||
|
|
||||||
|
- `/voddetail/...`
|
||||||
|
- `/vodplay/...`
|
||||||
|
- `/video-info/...`
|
||||||
|
- `/video-play/...`
|
||||||
|
- `/video-show/...`
|
||||||
|
- `/vodbf/...`
|
||||||
|
|
||||||
|
要回答的问题:
|
||||||
|
|
||||||
|
- 这些兼容入口是否都还必须保留
|
||||||
|
- 是否存在“先接住再跳一次”的非必要链路
|
||||||
|
- 是否可以把部分兼容入口进一步统一到更少的规范路径
|
||||||
|
|
||||||
|
判断标准:
|
||||||
|
|
||||||
|
- 如果某类旧入口仍然是百度高频命中来源,就不能贸然删
|
||||||
|
- 但如果它只是为了兼容而兼容,且跳转链过长,就应优先考虑压缩
|
||||||
|
|
||||||
|
## 2. 再查 canonical 是否仍然和当前 family 脱节
|
||||||
|
|
||||||
|
优先级:`P0`
|
||||||
|
|
||||||
|
文件:
|
||||||
|
|
||||||
|
- [SiteStyle.php](/www/wwwroot/VideoSource2/code/app/common/helper/SiteStyle.php:1803)
|
||||||
|
- [SiteStyle.php](/www/wwwroot/VideoSource2/code/app/common/helper/SiteStyle.php:1831)
|
||||||
|
- [SiteStyle.php](/www/wwwroot/VideoSource2/code/app/common/helper/SiteStyle.php:1868)
|
||||||
|
|
||||||
|
重点看:
|
||||||
|
|
||||||
|
- `detectPageType()` 目前只识别 `voddetail/*` 和 `vodplay/*`
|
||||||
|
- `guessDetailUrlFromVideo()` 仍硬编码回 `/voddetail/...`
|
||||||
|
- `buildSeoMeta()` 的 canonical 生成没有明显读取当前站点 family
|
||||||
|
|
||||||
|
要回答的问题:
|
||||||
|
|
||||||
|
- 当前模板 canonical 是否仍然默认指向 `voddetail`
|
||||||
|
- 如果某站主输出不是 `voddetail`,canonical 会不会和真实输出路径冲突
|
||||||
|
- `play` 页 canonical 回 `detail` 时,是否一定回到了正确 family 下的 detail URL
|
||||||
|
|
||||||
|
判断标准:
|
||||||
|
|
||||||
|
- 如果 canonical 指向的不是当前规范输出 URL,这就是高优先级修复点
|
||||||
|
- 这条线和 `yagyjt.com`、`www.ningxiaowei.com` 的深页 `301` 很可能直接相关
|
||||||
|
|
||||||
|
## 3. 再查 sitemap 是否持续硬编码 `https://www.`
|
||||||
|
|
||||||
|
优先级:`P0`
|
||||||
|
|
||||||
|
文件:
|
||||||
|
|
||||||
|
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php:196)
|
||||||
|
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php:203)
|
||||||
|
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:157)
|
||||||
|
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:177)
|
||||||
|
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:193)
|
||||||
|
|
||||||
|
重点看:
|
||||||
|
|
||||||
|
- 视频 sitemap 虽然已经开始读 `url_family['detail']['pattern']`
|
||||||
|
- 但最终 host 仍然是 `https://www.` + domain
|
||||||
|
- 小说 sitemap / 分类 / 章节相关输出同样大量直接拼 `https://www.`
|
||||||
|
|
||||||
|
要回答的问题:
|
||||||
|
|
||||||
|
- 当前真实规范 host 到底是不是 `www`
|
||||||
|
- 如果不是,sitemap 是否正在持续制造 `/|301` 和 host 规范化跳转
|
||||||
|
- sitemap 与 canonical、站内链接是否在同一 host 口径下
|
||||||
|
|
||||||
|
判断标准:
|
||||||
|
|
||||||
|
- 只要 sitemap 输出 host 和真实规范 host 不一致,这就是首页与深页 `301` 的高风险来源
|
||||||
|
|
||||||
|
## 4. 评估 fallback 机制是在“止血”还是在“制造语义偏差”
|
||||||
|
|
||||||
|
优先级:`P1`
|
||||||
|
|
||||||
|
文件:
|
||||||
|
|
||||||
|
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:821)
|
||||||
|
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:905)
|
||||||
|
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:1021)
|
||||||
|
|
||||||
|
重点看:
|
||||||
|
|
||||||
|
- `getVideoByVId()` 查不到时会进入 `resolveFallbackVideoByRequest()`
|
||||||
|
- fallback 会写入 host 维度的本地绑定文件
|
||||||
|
- 可能把旧 `v_id` 回落到随机或排序兜底视频
|
||||||
|
|
||||||
|
要回答的问题:
|
||||||
|
|
||||||
|
- 这条链当前到底拯救了多少原本会 404 的深链
|
||||||
|
- 回落后的页面内容是否和原始 URL 语义足够接近
|
||||||
|
- 是否需要限制 fallback 的适用范围,例如只对某些入口生效
|
||||||
|
|
||||||
|
判断标准:
|
||||||
|
|
||||||
|
- 如果 fallback 只是减少硬 404,它有价值
|
||||||
|
- 但如果它让错误 deep link 长期稳定落到无关视频,这会引入新的 SEO 误导风险
|
||||||
|
|
||||||
|
## 5. `444` 不优先在 PHP 里深挖,先确认前置层
|
||||||
|
|
||||||
|
优先级:`P1`
|
||||||
|
|
||||||
|
文件:
|
||||||
|
|
||||||
|
- [SiteContext.php](/www/wwwroot/VideoSource2/code/app/services/SiteContext.php:560)
|
||||||
|
|
||||||
|
当前已知判断:
|
||||||
|
|
||||||
|
- 应用层主动拦截主要抛的是 `404`
|
||||||
|
- `isSpider()` 已对白名单蜘蛛放行
|
||||||
|
- 当前仓库里没有明显应用层 `444` 返回逻辑
|
||||||
|
|
||||||
|
要回答的问题:
|
||||||
|
|
||||||
|
- `444` 是否来自 nginx / waf / 路径探测拦截
|
||||||
|
- 当前 `444` 是否已经波及:
|
||||||
|
- `/`
|
||||||
|
- `robots.txt`
|
||||||
|
- `sitemap*.xml`
|
||||||
|
- `detail`
|
||||||
|
- `play`
|
||||||
|
|
||||||
|
判断标准:
|
||||||
|
|
||||||
|
- 如果 `444` 只集中在 `.rar/.zip/.txt/zb_system` 这类路径,先视为安全噪音
|
||||||
|
- 如果开始进入首页、sitemap、深页主路径,再提升为 `P0`
|
||||||
|
|
||||||
|
## 当前最值得优先验证的 5 个判断
|
||||||
|
|
||||||
|
### 1. `yagyjt.com` 的深页 `301` 是否主要来自 canonical / family 不一致
|
||||||
|
|
||||||
|
因为:
|
||||||
|
|
||||||
|
- 它已经是明确深抓正样本
|
||||||
|
- 但 `detail|301` / `play|301` 仍接近 `200`
|
||||||
|
|
||||||
|
### 2. `www.ningxiaowei.com` 的 `video-info / video-play` 是否只是兼容入口过多
|
||||||
|
|
||||||
|
因为:
|
||||||
|
|
||||||
|
- 这批路径仍然高频出现
|
||||||
|
- 很适合作为“内容层兼容是否还能继续收口”的观察站
|
||||||
|
|
||||||
|
### 3. sitemap 输出 host 是否和真实规范 host 一致
|
||||||
|
|
||||||
|
因为:
|
||||||
|
|
||||||
|
- 这条线会同时影响首页 `/|301`
|
||||||
|
- 也会影响深页入口持续规范化跳转
|
||||||
|
|
||||||
|
### 4. fallback 绑定文件是否正在稳定扩大“错误 deep link -> 可访问页面”的覆盖
|
||||||
|
|
||||||
|
因为:
|
||||||
|
|
||||||
|
- 这可能解释 `404` 的大幅下降
|
||||||
|
- 同时也可能埋下语义偏差风险
|
||||||
|
|
||||||
|
### 5. `444` 是否已经误伤真实搜索蜘蛛主路径
|
||||||
|
|
||||||
|
因为:
|
||||||
|
|
||||||
|
- 目前看更像前置层安全噪音
|
||||||
|
- 但这个结论需要持续观察,不应直接定死
|
||||||
|
|
||||||
|
## 建议的执行节奏
|
||||||
|
|
||||||
|
### 第一轮
|
||||||
|
|
||||||
|
- 只读检查 `router.php`
|
||||||
|
- 只读检查 `SiteStyle.php`
|
||||||
|
- 只读检查 `VideoSiteMapLogic.php` / `SiteMapLogic.php`
|
||||||
|
|
||||||
|
目标:
|
||||||
|
|
||||||
|
- 先确认深页主输出、兼容入口、canonical、sitemap host 是否在同一规范口径
|
||||||
|
|
||||||
|
### 第二轮
|
||||||
|
|
||||||
|
- 再看 `VideoService` fallback
|
||||||
|
|
||||||
|
目标:
|
||||||
|
|
||||||
|
- 判断 `404` 的下降里有多少是“真实修复”
|
||||||
|
- 有多少是“应用层兜底”
|
||||||
|
|
||||||
|
### 第三轮
|
||||||
|
|
||||||
|
- 再去联动前置层查 `444`
|
||||||
|
|
||||||
|
目标:
|
||||||
|
|
||||||
|
- 确认 `444` 是安全噪音,还是已经开始误伤 SEO 主路径
|
||||||
|
|
||||||
|
## 给主 Codex 的一句话
|
||||||
|
|
||||||
|
> 如果只能先看 3 个地方,就先看 `router.php` 的历史深页兼容、`SiteStyle.php` 的 canonical 构建、以及 `VideoSiteMapLogic/SiteMapLogic` 的 `https://www.` host 拼接;这三条线最有可能直接对应当前仍未收口的深页 `301` 和首页 `/|301`。
|
||||||
172
docs/old-tmp-seo/07-主Codex检查清单补充修正-2026-04-17.md
Normal file
172
docs/old-tmp-seo/07-主Codex检查清单补充修正-2026-04-17.md
Normal file
@@ -0,0 +1,172 @@
|
|||||||
|
# 1276-SEONexus 主 Codex 检查清单补充修正 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档用于补充修正 `1272` 到 `1275` 之间一个很关键的判断差异:
|
||||||
|
|
||||||
|
- `SiteStyle::buildSeoMeta()` 确实存在 canonical 兜底逻辑
|
||||||
|
- 但对当前重点观察的 `videoGpt1` 视频模板来说,它未必是前台实际 canonical 的主输出来源
|
||||||
|
|
||||||
|
这会直接影响主 Codex 的排查顺序。
|
||||||
|
|
||||||
|
## 本轮补充结论
|
||||||
|
|
||||||
|
一句话总结:
|
||||||
|
|
||||||
|
> 当前 `videoGpt1` 下,真正更值得优先核对的不是 `SiteStyle::buildSeoMeta()`,而是模板里实际写死的 canonical host 口径,以及 sitemap 里统一写成 `https://www.` 的 host 口径是否冲突。
|
||||||
|
|
||||||
|
## 一、为什么这是一个重要修正
|
||||||
|
|
||||||
|
### 1. `SiteStyle::buildSeoMeta()` 不是当前视频模板最直接的 canonical 输出源
|
||||||
|
|
||||||
|
虽然代码里有:
|
||||||
|
|
||||||
|
- [SiteStyle.php](/www/wwwroot/VideoSource2/code/app/common/helper/SiteStyle.php:1831)
|
||||||
|
|
||||||
|
而且里面存在:
|
||||||
|
|
||||||
|
- `play` 页 canonical 推断
|
||||||
|
- `guessDetailUrlFromVideo()` 硬编码 `/voddetail/...`
|
||||||
|
|
||||||
|
但这次继续对模板后发现,`videoGpt1` 的视频模板实际是自己输出 canonical。
|
||||||
|
|
||||||
|
### 2. `videoGpt1` 详情页模板实际 canonical
|
||||||
|
|
||||||
|
文件:
|
||||||
|
|
||||||
|
- [getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoInfo.html:39)
|
||||||
|
|
||||||
|
当前实际写法:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'>
|
||||||
|
```
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 详情页 canonical 不是由 `SiteStyle::buildSeoMeta()` 直接输出
|
||||||
|
- 它走的是模板标签 `{site:vurl ...}`,也就是更贴近当前路由/URL 生成体系
|
||||||
|
|
||||||
|
### 3. `videoGpt1` 播放页模板实际 canonical
|
||||||
|
|
||||||
|
文件:
|
||||||
|
|
||||||
|
- [getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
|
||||||
|
|
||||||
|
当前实际写法:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link rel="canonical" href='https://{$DomainModel->d_domain}{$strPlayCanonicalUrl}'>
|
||||||
|
```
|
||||||
|
|
||||||
|
并且:
|
||||||
|
|
||||||
|
- `$strPlayCanonicalUrl` 来自 `VideoService::getVideoPlayUrl()`
|
||||||
|
- 不是回详情页
|
||||||
|
- 而是当前播放页自身 URL
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 当前 `videoGpt1` 播放页 canonical 逻辑,与 `SiteStyle::buildSeoMeta()` 里“play canonical -> detail”的兜底设想并不一致
|
||||||
|
|
||||||
|
## 二、这会带来什么新的主线判断
|
||||||
|
|
||||||
|
### 1. 当前更大的风险,不是 `voddetail` 硬编码本身
|
||||||
|
|
||||||
|
对 `videoGpt1` 视频页来说,更值得优先核对的是:
|
||||||
|
|
||||||
|
- canonical host 到底是 `https://domain`
|
||||||
|
还是
|
||||||
|
- `https://www.domain`
|
||||||
|
|
||||||
|
因为当前模板里写的是:
|
||||||
|
|
||||||
|
- `https://{$DomainModel->d_domain}`
|
||||||
|
|
||||||
|
而 sitemap 生成逻辑里大量写的是:
|
||||||
|
|
||||||
|
- `https://www.{$DomainModel->d_domain}`
|
||||||
|
|
||||||
|
这两条线如果同时存在,就会直接制造:
|
||||||
|
|
||||||
|
- 首页 `/|301`
|
||||||
|
- 深页 host 规范化 `301`
|
||||||
|
|
||||||
|
### 2. 当前“模板 canonical”和“sitemap canonical host”口径明显可能不一致
|
||||||
|
|
||||||
|
模板侧:
|
||||||
|
|
||||||
|
- 详情页 canonical:`https://{$DomainModel->d_domain}...`
|
||||||
|
- 播放页 canonical:`https://{$DomainModel->d_domain}...`
|
||||||
|
- 首页 canonical:`https://{$DomainModel->d_domain}/`
|
||||||
|
|
||||||
|
可以参考:
|
||||||
|
|
||||||
|
- [index.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/index/index.html:99)
|
||||||
|
- [getCategory.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategory.html:34)
|
||||||
|
- [getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:15)
|
||||||
|
|
||||||
|
sitemap 侧:
|
||||||
|
|
||||||
|
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php:203)
|
||||||
|
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:158)
|
||||||
|
|
||||||
|
都在大量拼:
|
||||||
|
|
||||||
|
- `https://www.{$DomainModel->d_domain}...`
|
||||||
|
|
||||||
|
这意味着:
|
||||||
|
|
||||||
|
- 如果站点真实最终规范 host 不是 `www`
|
||||||
|
- 那么 sitemap 就在持续喂给蜘蛛一批要再跳一次的 URL
|
||||||
|
|
||||||
|
## 三、对 `1275` 的执行顺序修正
|
||||||
|
|
||||||
|
### 第一优先级仍然不变
|
||||||
|
|
||||||
|
还是先看:
|
||||||
|
|
||||||
|
1. 深页兼容入口
|
||||||
|
2. canonical
|
||||||
|
3. sitemap host
|
||||||
|
|
||||||
|
### 但 canonical 这条线的落点要修正
|
||||||
|
|
||||||
|
主 Codex 在 `videoGpt1` 下应该优先看:
|
||||||
|
|
||||||
|
- 视频模板里真实输出的 canonical
|
||||||
|
|
||||||
|
而不是先把精力放在:
|
||||||
|
|
||||||
|
- `SiteStyle::buildSeoMeta()` 的 `voddetail` 兜底
|
||||||
|
|
||||||
|
因为从当前代码看,后者更像兜底工具,不像视频模板主输出源。
|
||||||
|
|
||||||
|
## 四、现在最可能优先改的 3 个点
|
||||||
|
|
||||||
|
### 1. 统一 canonical 和 sitemap 的 host 口径
|
||||||
|
|
||||||
|
这是当前最像“能直接减少 `/|301` 与 host 301”的点。
|
||||||
|
|
||||||
|
### 2. 核对播放页 canonical 是否应该保留在播放页自身
|
||||||
|
|
||||||
|
当前播放页模板 canonical 指向播放页自己,不是详情页。
|
||||||
|
|
||||||
|
这条线值得主 Codex 明确判断:
|
||||||
|
|
||||||
|
- 当前策略是不是故意的
|
||||||
|
- 是否符合当前 SEO 设计目标
|
||||||
|
- 是否会放大 `play|301` 或索引策略混乱
|
||||||
|
|
||||||
|
### 3. 继续压缩历史兼容入口
|
||||||
|
|
||||||
|
因为日志里仍然高频出现:
|
||||||
|
|
||||||
|
- `video-info`
|
||||||
|
- `video-play`
|
||||||
|
- `video-show`
|
||||||
|
- `vodbf`
|
||||||
|
|
||||||
|
## 五、给主 Codex 的一句话修正
|
||||||
|
|
||||||
|
> `videoGpt1` 当前最值得先查的 canonical 问题,不是 `SiteStyle` 里那段 `/voddetail` 兜底,而是模板实际输出的 `https://{$DomainModel->d_domain}` 和 sitemap 统一输出的 `https://www.{$DomainModel->d_domain}` 之间,是否正在持续制造 host 级 301。
|
||||||
240
docs/old-tmp-seo/08-第一轮只读代码审查发现-2026-04-17.md
Normal file
240
docs/old-tmp-seo/08-第一轮只读代码审查发现-2026-04-17.md
Normal file
@@ -0,0 +1,240 @@
|
|||||||
|
# 1277-SEONexus 第一轮只读代码审查发现 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档是在 `1275` 和 `1276` 的基础上,进一步给主 Codex 提供“第一轮只读代码审查发现”。
|
||||||
|
|
||||||
|
这不是改动方案文档,而是:
|
||||||
|
|
||||||
|
- 先列发现
|
||||||
|
- 再说明为什么它可能对应当前蜘蛛日志
|
||||||
|
- 方便主 Codex 直接决定先改哪一处
|
||||||
|
|
||||||
|
## 发现一:模板 canonical host 与 sitemap host 口径明显不一致
|
||||||
|
|
||||||
|
严重度:`高`
|
||||||
|
|
||||||
|
### 证据
|
||||||
|
|
||||||
|
`videoGpt1` 模板侧 canonical 普遍使用:
|
||||||
|
|
||||||
|
- [index.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/index/index.html:99)
|
||||||
|
- [getCategory.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategory.html:34)
|
||||||
|
- [getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:15)
|
||||||
|
- [getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoInfo.html:39)
|
||||||
|
- [getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
|
||||||
|
|
||||||
|
这些位置都在输出:
|
||||||
|
|
||||||
|
- `https://{$DomainModel->d_domain}...`
|
||||||
|
|
||||||
|
而 sitemap 生成侧:
|
||||||
|
|
||||||
|
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php:203)
|
||||||
|
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:158)
|
||||||
|
|
||||||
|
都在直接拼:
|
||||||
|
|
||||||
|
- `https://www.{$DomainModel->d_domain}...`
|
||||||
|
|
||||||
|
### 为什么重要
|
||||||
|
|
||||||
|
如果站点真实规范 host 不是固定 `www`,那么当前系统会同时存在:
|
||||||
|
|
||||||
|
- 模板 canonical 喂一套 host
|
||||||
|
- sitemap 喂另一套 host
|
||||||
|
|
||||||
|
这会直接制造:
|
||||||
|
|
||||||
|
- 首页 `/|301`
|
||||||
|
- 深页 host 规范化 `301`
|
||||||
|
- 裸域与 `www` 并行抓取
|
||||||
|
|
||||||
|
### 对应当前日志
|
||||||
|
|
||||||
|
这和当前多站点反复出现的:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
- `www` 与裸域并行命中
|
||||||
|
|
||||||
|
是高度一致的。
|
||||||
|
|
||||||
|
## 发现二:播放页 canonical 指向播放页自身,而不是详情页
|
||||||
|
|
||||||
|
严重度:`中高`
|
||||||
|
|
||||||
|
### 证据
|
||||||
|
|
||||||
|
播放页模板:
|
||||||
|
|
||||||
|
- [getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
|
||||||
|
|
||||||
|
当前输出:
|
||||||
|
|
||||||
|
- `<link rel="canonical" href='https://{$DomainModel->d_domain}{$strPlayCanonicalUrl}'>`
|
||||||
|
|
||||||
|
并且:
|
||||||
|
|
||||||
|
- `$strPlayCanonicalUrl` 是通过 `VideoService::getVideoPlayUrl()` 生成的当前播放页 URL
|
||||||
|
- 不是详情页 URL
|
||||||
|
|
||||||
|
### 为什么重要
|
||||||
|
|
||||||
|
这意味着当前策略是:
|
||||||
|
|
||||||
|
- 播放页 `robots = noindex,follow`
|
||||||
|
- 但 canonical 仍指向播放页自己
|
||||||
|
|
||||||
|
这不是绝对错误,但它值得主 Codex 明确确认设计意图:
|
||||||
|
|
||||||
|
- 是不是故意让播放页保留自身规范地址
|
||||||
|
- 还是本来希望回详情页,只是实现现在没有这么做
|
||||||
|
|
||||||
|
### 对应当前日志
|
||||||
|
|
||||||
|
如果播放页长期保留自己作为 canonical,再叠加历史 `video-play / video-show / vodplay` 兼容路径,就更容易形成:
|
||||||
|
|
||||||
|
- `play|301`
|
||||||
|
- 多播放路径并行规范化
|
||||||
|
|
||||||
|
这和 `yagyjt.com`、`junhaolab.com` 当前的播放页 `301/200` 并存现象是对得上的。
|
||||||
|
|
||||||
|
## 发现三:历史深页兼容入口数量非常大,且覆盖多组别名
|
||||||
|
|
||||||
|
严重度:`高`
|
||||||
|
|
||||||
|
### 证据
|
||||||
|
|
||||||
|
文件:
|
||||||
|
|
||||||
|
- [router.php](/www/wwwroot/VideoSource2/code/app/home/config/router.php:209)
|
||||||
|
|
||||||
|
当前兼容了大量 detail/play 历史入口:
|
||||||
|
|
||||||
|
- `voddetail`
|
||||||
|
- `vodinfo`
|
||||||
|
- `vod`
|
||||||
|
- `video-info`
|
||||||
|
- `video-detail`
|
||||||
|
- `video`
|
||||||
|
- `shipin`
|
||||||
|
- `shipin-xiangqing`
|
||||||
|
- `shipin-neiron`
|
||||||
|
- `vodplay`
|
||||||
|
- `vodbf`
|
||||||
|
- `vodseed`
|
||||||
|
- `video-play`
|
||||||
|
- `video-bofang`
|
||||||
|
- `video-show`
|
||||||
|
- `shipin-play`
|
||||||
|
- `shipin-bofang`
|
||||||
|
- `shipin-kan`
|
||||||
|
|
||||||
|
### 为什么重要
|
||||||
|
|
||||||
|
这套兼容入口本身有价值,因为它能避免旧外链直接 404。
|
||||||
|
|
||||||
|
但副作用也很明显:
|
||||||
|
|
||||||
|
- 会显著扩大“先接住,再跳一次”的路径面
|
||||||
|
- 如果 canonical、sitemap、站内链接又没有完全统一,就容易长期维持高位深页 `301`
|
||||||
|
|
||||||
|
### 对应当前日志
|
||||||
|
|
||||||
|
这和当前高频异常里的:
|
||||||
|
|
||||||
|
- `/voddetail/...|301`
|
||||||
|
- `/vodplay/...|301`
|
||||||
|
- `/video-info/...|301`
|
||||||
|
- `/video-play/...|301`
|
||||||
|
- `/video-show/...|301`
|
||||||
|
- `/vodbf/...|301`
|
||||||
|
|
||||||
|
完全一致。
|
||||||
|
|
||||||
|
## 发现四:分类页 canonical 与 og:url 口径不完全一致
|
||||||
|
|
||||||
|
严重度:`中`
|
||||||
|
|
||||||
|
### 证据
|
||||||
|
|
||||||
|
分类列表页:
|
||||||
|
|
||||||
|
- [getCategory.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategory.html:34)
|
||||||
|
- [getCategory.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategory.html:39)
|
||||||
|
|
||||||
|
当前表现为:
|
||||||
|
|
||||||
|
- canonical 指向分类基础页,不显式带当前分页
|
||||||
|
- `og:url` 指向当前分页 URL
|
||||||
|
|
||||||
|
### 为什么重要
|
||||||
|
|
||||||
|
这不一定是错误,因为分页页面常见策略就是:
|
||||||
|
|
||||||
|
- canonical 回第一页
|
||||||
|
- 当前页保留独立可访问 URL
|
||||||
|
|
||||||
|
但如果当前页面内容与第一页差异较大,或者系统没有对深分页做更明确的 noindex/canonical 设计,就可能造成:
|
||||||
|
|
||||||
|
- 蜘蛛抓取了分页
|
||||||
|
- 但规范化信号又全部回第一页
|
||||||
|
|
||||||
|
### 当前判断
|
||||||
|
|
||||||
|
这条不是现在最优先要改的点,但值得主 Codex 顺手确认是否符合当前分页 SEO 设计。
|
||||||
|
|
||||||
|
## 发现五:详情页 canonical、列表页 canonical、首页 canonical 都统一走非 `www` 口径
|
||||||
|
|
||||||
|
严重度:`中高`
|
||||||
|
|
||||||
|
### 证据
|
||||||
|
|
||||||
|
可以从以下模板直接看到:
|
||||||
|
|
||||||
|
- [首页 canonical](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/index/index.html:99)
|
||||||
|
- [分类页 canonical](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategory.html:34)
|
||||||
|
- [一级分类 canonical](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:15)
|
||||||
|
- [详情页 canonical](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoInfo.html:39)
|
||||||
|
- [播放页 canonical](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
|
||||||
|
|
||||||
|
都统一是:
|
||||||
|
|
||||||
|
- `https://{$DomainModel->d_domain}`
|
||||||
|
|
||||||
|
### 为什么重要
|
||||||
|
|
||||||
|
这说明当前模板层其实已经隐含表达了一种明确立场:
|
||||||
|
|
||||||
|
- 规范 host 更像是裸域
|
||||||
|
|
||||||
|
如果真是这样,那么 sitemap 仍然统一输出 `https://www.` 就更像一个明确冲突,而不是单纯“不同文件各写各的”。
|
||||||
|
|
||||||
|
## 当前最像真实改动入口的 3 个点
|
||||||
|
|
||||||
|
### 1. 先统一模板 canonical host 与 sitemap host
|
||||||
|
|
||||||
|
这是当前最像“改完后能直接压掉一批 host 级 301”的地方。
|
||||||
|
|
||||||
|
### 2. 再明确播放页 canonical 策略
|
||||||
|
|
||||||
|
要么确认:
|
||||||
|
|
||||||
|
- 播放页 canonical 就该留在播放页
|
||||||
|
|
||||||
|
要么确认:
|
||||||
|
|
||||||
|
- 播放页 canonical 应该回详情页
|
||||||
|
|
||||||
|
现在最怕的是逻辑处于“既 noindex,又不完全统一 canonical 目标”的中间态。
|
||||||
|
|
||||||
|
### 3. 再评估兼容入口是否还能继续收窄
|
||||||
|
|
||||||
|
因为当前日志里已经明确能看见:
|
||||||
|
|
||||||
|
- 哪些旧入口还在持续命中
|
||||||
|
- 哪些别名组仍然在吃 301 预算
|
||||||
|
|
||||||
|
## 给主 Codex 的一句话
|
||||||
|
|
||||||
|
> 第一轮只读审查看下来,最像真问题的不是某一条单独路由,而是“模板 canonical 统一走裸域、sitemap 统一走 www、同时历史深页兼容入口又很多”这三件事叠在一起,持续制造了当前日志里看到的首页和深页 `301` 损耗。
|
||||||
258
docs/old-tmp-seo/09-第一批候选修正方案-2026-04-17.md
Normal file
258
docs/old-tmp-seo/09-第一批候选修正方案-2026-04-17.md
Normal file
@@ -0,0 +1,258 @@
|
|||||||
|
# 1278-SEONexus 第一批候选修正方案 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档用于把 `1277` 的只读审查发现,进一步收敛成主 Codex 可以直接评估的第一批候选修正方案。
|
||||||
|
|
||||||
|
这里先不进入具体代码实现,只做三件事:
|
||||||
|
|
||||||
|
1. 明确候选修正点
|
||||||
|
2. 说明它可能解决什么问题
|
||||||
|
3. 说明潜在副作用和验证重点
|
||||||
|
|
||||||
|
## 先说结论
|
||||||
|
|
||||||
|
当前最像值得优先动手的,不是十几处零散小修,而是下面 3 条主线:
|
||||||
|
|
||||||
|
1. 统一模板 canonical host 与 sitemap host
|
||||||
|
2. 明确播放页 canonical 策略
|
||||||
|
3. 收缩历史深页兼容入口或跳转链
|
||||||
|
|
||||||
|
## 候选方案一:统一 canonical 与 sitemap 的 host 口径
|
||||||
|
|
||||||
|
优先级:`P0`
|
||||||
|
|
||||||
|
### 当前现状
|
||||||
|
|
||||||
|
模板侧 `videoGpt1` canonical 普遍通过模板标签走 `VideoService -> UrlBuilder` 输出:
|
||||||
|
|
||||||
|
- [Site.php](/www/wwwroot/VideoSource2/code/extend/template/taglib/Site.php:238)
|
||||||
|
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:87)
|
||||||
|
|
||||||
|
模板里最终拼的是:
|
||||||
|
|
||||||
|
- `https://{$DomainModel->d_domain}...`
|
||||||
|
|
||||||
|
典型位置:
|
||||||
|
|
||||||
|
- [首页](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/index/index.html:99)
|
||||||
|
- [详情页](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoInfo.html:39)
|
||||||
|
- [播放页](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
|
||||||
|
- [分类页](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategory.html:34)
|
||||||
|
|
||||||
|
而 sitemap 生成里大量直接写:
|
||||||
|
|
||||||
|
- `https://www.{$DomainModel->d_domain}...`
|
||||||
|
|
||||||
|
典型位置:
|
||||||
|
|
||||||
|
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php:203)
|
||||||
|
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:158)
|
||||||
|
|
||||||
|
### 候选修正
|
||||||
|
|
||||||
|
把 sitemap 输出 host 统一到与模板 canonical 一致的规范 host。
|
||||||
|
|
||||||
|
### 预期收益
|
||||||
|
|
||||||
|
- 压低首页 `/|301`
|
||||||
|
- 压低 host 级 `301`
|
||||||
|
- 降低裸域 / `www` 并行抓取
|
||||||
|
- 让 sitemap、canonical、站内链接至少先在 host 维度统一
|
||||||
|
|
||||||
|
### 潜在副作用
|
||||||
|
|
||||||
|
- 如果真实线上规范 host 本来就是 `www`,而模板 canonical 才是错的,那么简单改 sitemap 会把问题转移,而不是解决
|
||||||
|
|
||||||
|
### 实施前必须先确认
|
||||||
|
|
||||||
|
- 当前业务最终想要的规范 host,到底是裸域还是 `www`
|
||||||
|
- 前置层 / nginx 的最终 host 跳转策略是什么
|
||||||
|
|
||||||
|
### 当前更倾向的判断
|
||||||
|
|
||||||
|
从现有模板和站内链接输出看,系统更像默认把裸域当规范 host。
|
||||||
|
|
||||||
|
如果这个判断成立,那么更像是:
|
||||||
|
|
||||||
|
- sitemap 侧应向模板 canonical 对齐
|
||||||
|
|
||||||
|
## 候选方案二:明确播放页 canonical 是回详情页,还是保留播放页自身
|
||||||
|
|
||||||
|
优先级:`P0`
|
||||||
|
|
||||||
|
### 当前现状
|
||||||
|
|
||||||
|
播放页模板:
|
||||||
|
|
||||||
|
- [getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
|
||||||
|
|
||||||
|
当前 canonical 指向:
|
||||||
|
|
||||||
|
- 当前播放页自身 URL
|
||||||
|
|
||||||
|
同时:
|
||||||
|
|
||||||
|
- `robots = noindex,follow`
|
||||||
|
|
||||||
|
### 候选修正方向 A
|
||||||
|
|
||||||
|
继续保留播放页 canonical 指向播放页自身。
|
||||||
|
|
||||||
|
适用前提:
|
||||||
|
|
||||||
|
- 业务明确希望每个播放页都拥有自洽的规范地址
|
||||||
|
- 只是通过 `noindex` 控制搜索引擎是否收录
|
||||||
|
|
||||||
|
### 候选修正方向 B
|
||||||
|
|
||||||
|
把播放页 canonical 改回详情页。
|
||||||
|
|
||||||
|
适用前提:
|
||||||
|
|
||||||
|
- 业务希望搜索引擎主要把权重聚合到详情页
|
||||||
|
- 播放页只作为观看页存在,不作为核心规范承载页
|
||||||
|
|
||||||
|
### 预期收益
|
||||||
|
|
||||||
|
如果改为回详情页,可能带来:
|
||||||
|
|
||||||
|
- 更强的 detail 聚合信号
|
||||||
|
- 更少的播放页规范化分叉
|
||||||
|
|
||||||
|
### 潜在副作用
|
||||||
|
|
||||||
|
如果播放页承载了明显不同的信息结构,强行 canonical 回详情页,也可能让页面意图变得不够清晰。
|
||||||
|
|
||||||
|
### 当前更值得主 Codex 先做的事
|
||||||
|
|
||||||
|
不是立刻改,而是先明确设计目标:
|
||||||
|
|
||||||
|
- “播放页保留自身 canonical”是设计决定
|
||||||
|
还是
|
||||||
|
- “本来想回详情页,只是现在实现成了播放页自身”
|
||||||
|
|
||||||
|
## 候选方案三:收缩历史深页兼容入口
|
||||||
|
|
||||||
|
优先级:`P1`
|
||||||
|
|
||||||
|
### 当前现状
|
||||||
|
|
||||||
|
兼容入口非常宽:
|
||||||
|
|
||||||
|
- [router.php](/www/wwwroot/VideoSource2/code/app/home/config/router.php:209)
|
||||||
|
|
||||||
|
包括:
|
||||||
|
|
||||||
|
- `voddetail`
|
||||||
|
- `vodinfo`
|
||||||
|
- `vod`
|
||||||
|
- `video-info`
|
||||||
|
- `video-detail`
|
||||||
|
- `video`
|
||||||
|
- `shipin`
|
||||||
|
- `vodplay`
|
||||||
|
- `vodbf`
|
||||||
|
- `vodseed`
|
||||||
|
- `video-play`
|
||||||
|
- `video-show`
|
||||||
|
- `shipin-play`
|
||||||
|
- `shipin-bofang`
|
||||||
|
- `shipin-kan`
|
||||||
|
|
||||||
|
### 候选修正
|
||||||
|
|
||||||
|
不是一次性删兼容,而是分两步:
|
||||||
|
|
||||||
|
1. 先按日志命中频率分组
|
||||||
|
2. 再决定哪些入口必须保留,哪些入口可以逐步收缩
|
||||||
|
|
||||||
|
### 预期收益
|
||||||
|
|
||||||
|
- 压低深页 `301`
|
||||||
|
- 减少“多组别名 -> 同一规范页”的长期跳转预算损耗
|
||||||
|
|
||||||
|
### 潜在副作用
|
||||||
|
|
||||||
|
- 如果删掉仍被百度高频命中的入口,会把 `301 -> 200` 又打回 `404`
|
||||||
|
|
||||||
|
### 当前建议
|
||||||
|
|
||||||
|
这条线不适合第一刀就重手改。
|
||||||
|
|
||||||
|
更适合在统一 host 和 canonical 口径之后,再做第二轮收缩。
|
||||||
|
|
||||||
|
## 候选方案四:限制 fallback 的适用范围
|
||||||
|
|
||||||
|
优先级:`P1`
|
||||||
|
|
||||||
|
### 当前现状
|
||||||
|
|
||||||
|
`VideoService` 存在回退链:
|
||||||
|
|
||||||
|
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:905)
|
||||||
|
|
||||||
|
查不到原始 `v_id` 时,会:
|
||||||
|
|
||||||
|
- 读绑定
|
||||||
|
- 随机采样
|
||||||
|
- 排序兜底
|
||||||
|
|
||||||
|
### 候选修正
|
||||||
|
|
||||||
|
不是立即移除 fallback,而是评估是否加边界,例如:
|
||||||
|
|
||||||
|
- 只对部分入口生效
|
||||||
|
- 只对详情页生效,不对播放页生效
|
||||||
|
- 只在存在某些可信条件时生效
|
||||||
|
|
||||||
|
### 预期收益
|
||||||
|
|
||||||
|
- 减少“错链也 200”的语义风险
|
||||||
|
- 保留对 hard 404 的止血能力
|
||||||
|
|
||||||
|
### 潜在副作用
|
||||||
|
|
||||||
|
- fallback 一旦收紧,可能让部分当前已被兜住的旧 deep link 重新回到 `404`
|
||||||
|
|
||||||
|
### 当前建议
|
||||||
|
|
||||||
|
这条线适合在主 Codex 完成第一轮 host / canonical / 兼容入口收口后,再决定是否调整。
|
||||||
|
|
||||||
|
## 我更建议的落地顺序
|
||||||
|
|
||||||
|
### 第一刀
|
||||||
|
|
||||||
|
先统一 host 口径:
|
||||||
|
|
||||||
|
- 模板 canonical
|
||||||
|
- sitemap
|
||||||
|
- RSS
|
||||||
|
- 站内主要结构化 URL
|
||||||
|
|
||||||
|
### 第二刀
|
||||||
|
|
||||||
|
再确认播放页 canonical 的产品/SEO 立场:
|
||||||
|
|
||||||
|
- 保持播放页自身
|
||||||
|
或
|
||||||
|
- 回详情页
|
||||||
|
|
||||||
|
### 第三刀
|
||||||
|
|
||||||
|
最后再收缩历史兼容入口与 fallback 边界。
|
||||||
|
|
||||||
|
## 不建议的顺序
|
||||||
|
|
||||||
|
不建议一上来先动:
|
||||||
|
|
||||||
|
- 大规模删兼容路由
|
||||||
|
- 大规模关闭 fallback
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 这两条线会直接把一批目前还能 `301 -> 200` 的深链重新打回 `404`
|
||||||
|
|
||||||
|
## 给主 Codex 的一句话
|
||||||
|
|
||||||
|
> 第一批真正值得评估的修正方案,不是“怎么把所有问题都一起修掉”,而是先把 host 规范统一,再明确播放页 canonical 立场,最后才去收深页兼容入口和 fallback 边界。
|
||||||
204
docs/old-tmp-seo/10-第一批候选修正方案评审建议-2026-04-17.md
Normal file
204
docs/old-tmp-seo/10-第一批候选修正方案评审建议-2026-04-17.md
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
# 1279-SEONexus 第一批候选修正方案评审建议 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档用于在 `1278` 的候选修正方案基础上,再往前走一步:
|
||||||
|
|
||||||
|
- 不只是列方案
|
||||||
|
- 而是给出当前更推荐的顺序和取舍建议
|
||||||
|
|
||||||
|
它的目标受众就是主 Codex。
|
||||||
|
|
||||||
|
## 先说结论
|
||||||
|
|
||||||
|
当前最值得主 Codex 优先推进的方案,不是“收兼容入口”,而是:
|
||||||
|
|
||||||
|
1. 先统一 host 规范口径
|
||||||
|
2. 再确认播放页 canonical 立场
|
||||||
|
3. 最后才动兼容入口和 fallback 边界
|
||||||
|
|
||||||
|
## 一、为什么 host 统一应该排第一
|
||||||
|
|
||||||
|
### 1. 模板与 sitemap 目前存在直接冲突
|
||||||
|
|
||||||
|
模板 canonical 普遍走:
|
||||||
|
|
||||||
|
- `https://{$DomainModel->d_domain}...`
|
||||||
|
|
||||||
|
而 sitemap 生成普遍走:
|
||||||
|
|
||||||
|
- `https://www.{$DomainModel->d_domain}...`
|
||||||
|
|
||||||
|
这不是抽象风险,而是当前代码中已经明确存在的双口径输出。
|
||||||
|
|
||||||
|
### 2. 日志已经证实多站存在 `www` / 裸域混合抓取
|
||||||
|
|
||||||
|
最近 24 小时百度抓取里,至少以下 base domain 已经同时出现裸域和 `www`:
|
||||||
|
|
||||||
|
- `ningxiaowei.com`
|
||||||
|
- `www.ningxiaowei.com = 78`
|
||||||
|
- `ningxiaowei.com = 9`
|
||||||
|
- `haotianhaiyuan.com`
|
||||||
|
- `www.haotianhaiyuan.com = 18`
|
||||||
|
- `haotianhaiyuan.com = 14`
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `yagyjt.com = 162`
|
||||||
|
- `www.yagyjt.com = 17`
|
||||||
|
- `ctshuhua.com`
|
||||||
|
- `www.ctshuhua.com = 78`
|
||||||
|
- `ctshuhua.com = 72`
|
||||||
|
- `sctyjz.com`
|
||||||
|
- `sctyjz.com = 11`
|
||||||
|
- `www.sctyjz.com = 9`
|
||||||
|
- `junhaolab.com`
|
||||||
|
- `www.junhaolab.com = 9`
|
||||||
|
- `junhaolab.com = 4`
|
||||||
|
|
||||||
|
### 3. 这说明 host 级规范化损耗是真实存在的
|
||||||
|
|
||||||
|
因此:
|
||||||
|
|
||||||
|
- host 统一不是“理论上更好”
|
||||||
|
- 而是当前最像正在真实消耗抓取预算的一条主线
|
||||||
|
|
||||||
|
## 二、为什么播放页 canonical 应该排第二
|
||||||
|
|
||||||
|
### 1. 它影响深页 `301` 的理解方式
|
||||||
|
|
||||||
|
当前播放页模板:
|
||||||
|
|
||||||
|
- `robots = noindex,follow`
|
||||||
|
- `canonical = 当前播放页自身`
|
||||||
|
|
||||||
|
这会直接影响主 Codex 如何判断当前 `play|301`:
|
||||||
|
|
||||||
|
- 如果播放页本来就该保留自身规范 URL,那么当前主要问题是兼容入口过多
|
||||||
|
- 如果播放页本来应 canonical 回详情页,那么当前实现就更像未收口
|
||||||
|
|
||||||
|
### 2. 这条线虽然重要,但收益更依赖设计取舍
|
||||||
|
|
||||||
|
和 host 统一不同,这条线不是单纯的工程不一致。
|
||||||
|
|
||||||
|
它更像是:
|
||||||
|
|
||||||
|
- SEO 策略选择
|
||||||
|
|
||||||
|
所以它应排在第二位:
|
||||||
|
|
||||||
|
- 先统一明显冲突的 host
|
||||||
|
- 再确认播放页 canonical 立场
|
||||||
|
|
||||||
|
## 三、为什么兼容入口收缩不应排第一
|
||||||
|
|
||||||
|
### 1. 当前兼容入口仍在真实命中
|
||||||
|
|
||||||
|
日志里当前仍高频出现:
|
||||||
|
|
||||||
|
- `voddetail`
|
||||||
|
- `vodplay`
|
||||||
|
- `video-info`
|
||||||
|
- `video-play`
|
||||||
|
- `video-show`
|
||||||
|
- `vodbf`
|
||||||
|
|
||||||
|
这说明兼容入口不是“死代码”。
|
||||||
|
|
||||||
|
### 2. 现在先删,风险很高
|
||||||
|
|
||||||
|
如果主 Codex 第一刀就去删或大幅收缩兼容入口,很容易把当前一批还能:
|
||||||
|
|
||||||
|
- `301 -> 200`
|
||||||
|
|
||||||
|
的旧 deep link,重新打回:
|
||||||
|
|
||||||
|
- `404`
|
||||||
|
|
||||||
|
### 3. 更稳的顺序
|
||||||
|
|
||||||
|
更合理的是:
|
||||||
|
|
||||||
|
1. 先把 host 统一
|
||||||
|
2. 再把 canonical 立场统一
|
||||||
|
3. 观察日志
|
||||||
|
4. 再决定兼容入口是否还能继续收
|
||||||
|
|
||||||
|
## 四、为什么 fallback 边界也不应排第一
|
||||||
|
|
||||||
|
### 1. fallback 很可能正在帮助压低 `404`
|
||||||
|
|
||||||
|
当前 `404` 的明显下降,不排除有一部分就是 fallback 机制在止血。
|
||||||
|
|
||||||
|
### 2. 现在先收 fallback,会让数据倒退
|
||||||
|
|
||||||
|
如果主 Codex 在 host / canonical 还没统一之前,就先把 fallback 收紧,那么很可能会出现:
|
||||||
|
|
||||||
|
- `404` 重新回升
|
||||||
|
|
||||||
|
这样会把问题重新搅混,不利于判断主线修正是否有效。
|
||||||
|
|
||||||
|
## 五、当前更推荐的执行顺序
|
||||||
|
|
||||||
|
### 第一阶段
|
||||||
|
|
||||||
|
先统一以下几类输出的 host:
|
||||||
|
|
||||||
|
- 首页 canonical
|
||||||
|
- 分类 canonical
|
||||||
|
- 详情页 canonical
|
||||||
|
- 播放页 canonical
|
||||||
|
- sitemap
|
||||||
|
- RSS
|
||||||
|
- 结构化数据里的 URL
|
||||||
|
|
||||||
|
目标:
|
||||||
|
|
||||||
|
- 先让模板、站内主输出、sitemap 至少在 host 维度统一
|
||||||
|
|
||||||
|
### 第二阶段
|
||||||
|
|
||||||
|
再确认播放页 canonical 策略:
|
||||||
|
|
||||||
|
- 保留播放页自身
|
||||||
|
或
|
||||||
|
- 回详情页
|
||||||
|
|
||||||
|
目标:
|
||||||
|
|
||||||
|
- 让 `play` 页的规范信号有明确立场
|
||||||
|
|
||||||
|
### 第三阶段
|
||||||
|
|
||||||
|
最后再做:
|
||||||
|
|
||||||
|
- 兼容入口分组收缩
|
||||||
|
- fallback 适用范围收缩
|
||||||
|
|
||||||
|
目标:
|
||||||
|
|
||||||
|
- 在不把旧 deep link 直接打回 `404` 的前提下,继续压深页 `301`
|
||||||
|
|
||||||
|
## 六、当前最不建议的操作
|
||||||
|
|
||||||
|
### 1. 不建议先删大量历史兼容入口
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 风险最大
|
||||||
|
- 最容易直接把数据打坏
|
||||||
|
|
||||||
|
### 2. 不建议先动 fallback
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 当前还没搞清楚它对 `404` 下降贡献有多大
|
||||||
|
|
||||||
|
### 3. 不建议只改单个模板 canonical
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 当前问题是系统性 host 双口径
|
||||||
|
- 只改单页模板,很容易头痛医头
|
||||||
|
|
||||||
|
## 给主 Codex 的一句话
|
||||||
|
|
||||||
|
> 当前最值得优先批准推进的,不是“收旧路由”,而是“统一 host 输出口径”;因为这条线同时有代码证据和日志证据,而且副作用最可控、验证也最直接。
|
||||||
309
docs/old-tmp-seo/11-第一批可落地修正设计-2026-04-17.md
Normal file
309
docs/old-tmp-seo/11-第一批可落地修正设计-2026-04-17.md
Normal file
@@ -0,0 +1,309 @@
|
|||||||
|
# 1280-SEONexus 第一批可落地修正设计 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档用于把 `1278` 和 `1279` 的候选方案与评审建议,进一步压成主 Codex 可以直接进入实施评估的“第一批可落地修正设计”。
|
||||||
|
|
||||||
|
这份文档仍然不直接改代码,但已经具备:
|
||||||
|
|
||||||
|
- 改哪些文件
|
||||||
|
- 为什么先改这些
|
||||||
|
- 改动边界在哪里
|
||||||
|
- 怎么验证
|
||||||
|
|
||||||
|
## 这批设计的总原则
|
||||||
|
|
||||||
|
第一批只做“低副作用、高确定性、容易验证”的统一动作。
|
||||||
|
|
||||||
|
因此本批次只建议优先考虑:
|
||||||
|
|
||||||
|
1. 统一 host 输出口径
|
||||||
|
2. 暂不碰大规模兼容入口删除
|
||||||
|
3. 暂不碰 fallback 收紧
|
||||||
|
|
||||||
|
## 设计目标
|
||||||
|
|
||||||
|
### 主目标
|
||||||
|
|
||||||
|
压低以下两类损耗:
|
||||||
|
|
||||||
|
- 首页 `/|301`
|
||||||
|
- host 级 `301`
|
||||||
|
|
||||||
|
### 次目标
|
||||||
|
|
||||||
|
让以下输出口径至少先一致:
|
||||||
|
|
||||||
|
- 模板 canonical
|
||||||
|
- OG URL
|
||||||
|
- 结构化数据 URL
|
||||||
|
- sitemap
|
||||||
|
- RSS
|
||||||
|
|
||||||
|
## 第一批建议改动范围
|
||||||
|
|
||||||
|
### A. sitemap 与 RSS 的 host 统一
|
||||||
|
|
||||||
|
建议优先级:`最高`
|
||||||
|
|
||||||
|
### 涉及文件
|
||||||
|
|
||||||
|
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php:203)
|
||||||
|
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:158)
|
||||||
|
- [videoGpt1/rss/so.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/so.xml:12)
|
||||||
|
- [videoGpt1/rss/baidu.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/baidu.xml:6)
|
||||||
|
|
||||||
|
### 当前问题
|
||||||
|
|
||||||
|
这几处目前存在明显双口径:
|
||||||
|
|
||||||
|
- sitemap 很多地方硬编码 `https://www.{$DomainModel->d_domain}`
|
||||||
|
- RSS 中也混有 `www.` 口径
|
||||||
|
- 模板 canonical 则统一偏向 `https://{$DomainModel->d_domain}`
|
||||||
|
|
||||||
|
### 建议改动边界
|
||||||
|
|
||||||
|
第一批不要引入复杂的新 host 策略中心。
|
||||||
|
|
||||||
|
先做最小收口:
|
||||||
|
|
||||||
|
- 让 sitemap 与 RSS 的 host 输出,先与当前模板 canonical 口径一致
|
||||||
|
|
||||||
|
也就是:
|
||||||
|
|
||||||
|
- 如果模板当前是 `https://{$DomainModel->d_domain}`
|
||||||
|
- 那么 sitemap / RSS 第一批也先统一成这一套
|
||||||
|
|
||||||
|
### 为什么先这样做
|
||||||
|
|
||||||
|
原因不是“裸域一定对”,而是:
|
||||||
|
|
||||||
|
- 当前模板和站内主输出已经大量使用裸域口径
|
||||||
|
- sitemap / RSS 仍输出 `www`
|
||||||
|
- 这两者冲突会稳定制造 host 级跳转
|
||||||
|
|
||||||
|
在未建立统一 host 策略中心前,先朝站内主输出对齐,是副作用更小的做法。
|
||||||
|
|
||||||
|
### 第一批不建议做的事
|
||||||
|
|
||||||
|
不建议在这一步同时:
|
||||||
|
|
||||||
|
- 动 Nginx host 跳转策略
|
||||||
|
- 动 `DomainModel` 的 host 配置语义
|
||||||
|
- 动所有历史模板
|
||||||
|
|
||||||
|
先把 `videoGpt1` 这条主线收口,再看日志反馈。
|
||||||
|
|
||||||
|
## B. 模板层 canonical / og:url / structured data host 统一复核
|
||||||
|
|
||||||
|
建议优先级:`高`
|
||||||
|
|
||||||
|
### 涉及文件
|
||||||
|
|
||||||
|
- [videoGpt1/index/index.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/index/index.html:99)
|
||||||
|
- [videoGpt1/video/getCategory.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategory.html:34)
|
||||||
|
- [videoGpt1/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:15)
|
||||||
|
- [videoGpt1/video/getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoInfo.html:39)
|
||||||
|
- [videoGpt1/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
|
||||||
|
|
||||||
|
### 当前问题
|
||||||
|
|
||||||
|
这些文件虽然大方向一致,都偏向非 `www` host,但仍需要主 Codex 顺手复核:
|
||||||
|
|
||||||
|
- canonical
|
||||||
|
- `og:url`
|
||||||
|
- JSON-LD `url`
|
||||||
|
|
||||||
|
是否完全同口径。
|
||||||
|
|
||||||
|
### 建议改动边界
|
||||||
|
|
||||||
|
第一批不建议在模板层大改页面语义。
|
||||||
|
|
||||||
|
只做:
|
||||||
|
|
||||||
|
- host 统一
|
||||||
|
- URL 输出口径统一
|
||||||
|
|
||||||
|
不做:
|
||||||
|
|
||||||
|
- 大改 title/description
|
||||||
|
- 改动页面结构
|
||||||
|
- 改 robots 策略
|
||||||
|
|
||||||
|
## C. 播放页 canonical 策略先做“确认”,不急着改
|
||||||
|
|
||||||
|
建议优先级:`中`
|
||||||
|
|
||||||
|
### 涉及文件
|
||||||
|
|
||||||
|
- [videoGpt1/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
|
||||||
|
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:137)
|
||||||
|
|
||||||
|
### 当前问题
|
||||||
|
|
||||||
|
当前播放页:
|
||||||
|
|
||||||
|
- `robots = noindex,follow`
|
||||||
|
- canonical 指向当前播放页自身
|
||||||
|
|
||||||
|
这是一个“策略问题”,不是明显 bug。
|
||||||
|
|
||||||
|
### 第一批建议
|
||||||
|
|
||||||
|
第一批不要急着改。
|
||||||
|
|
||||||
|
主 Codex 只需要先确认一件事:
|
||||||
|
|
||||||
|
- 当前产品/SEO 立场,到底是要播放页保留自身 canonical
|
||||||
|
还是
|
||||||
|
- 要回详情页
|
||||||
|
|
||||||
|
### 为什么不建议第一批就动
|
||||||
|
|
||||||
|
因为:
|
||||||
|
|
||||||
|
- 这条线会直接影响 `play|301` 的解读
|
||||||
|
- 也会影响播放页是否继续作为独立规范对象存在
|
||||||
|
|
||||||
|
它的风险比 host 统一更偏设计取舍,不适合当第一刀。
|
||||||
|
|
||||||
|
## D. 历史兼容入口先观察,不立即收缩
|
||||||
|
|
||||||
|
建议优先级:`中后`
|
||||||
|
|
||||||
|
### 涉及文件
|
||||||
|
|
||||||
|
- [router.php](/www/wwwroot/VideoSource2/code/app/home/config/router.php:209)
|
||||||
|
|
||||||
|
### 第一批建议
|
||||||
|
|
||||||
|
这一批只做“分组清单”和“命中频率对应”,不做实际删除。
|
||||||
|
|
||||||
|
可以先把入口分成三组:
|
||||||
|
|
||||||
|
1. 高频仍命中
|
||||||
|
2. 低频偶发命中
|
||||||
|
3. 近 24 小时几乎不命中
|
||||||
|
|
||||||
|
但第一批不建议直接动路由。
|
||||||
|
|
||||||
|
### 原因
|
||||||
|
|
||||||
|
如果现在就删,很容易把:
|
||||||
|
|
||||||
|
- `301 -> 200`
|
||||||
|
|
||||||
|
重新打回:
|
||||||
|
|
||||||
|
- `404`
|
||||||
|
|
||||||
|
## E. fallback 机制先保留
|
||||||
|
|
||||||
|
建议优先级:`后`
|
||||||
|
|
||||||
|
### 涉及文件
|
||||||
|
|
||||||
|
- [VideoService.php](/www/wwwroot/VideoSource2/code/app/services/VideoService.php:905)
|
||||||
|
|
||||||
|
### 第一批建议
|
||||||
|
|
||||||
|
先不改 fallback。
|
||||||
|
|
||||||
|
只做两件事:
|
||||||
|
|
||||||
|
1. 明确它当前的收益
|
||||||
|
2. 明确它潜在的语义风险
|
||||||
|
|
||||||
|
### 原因
|
||||||
|
|
||||||
|
当前 `404` 的下降,很可能部分就来自 fallback 在止血。
|
||||||
|
|
||||||
|
在 host / canonical 还没统一前,先动它会让日志重新变脏。
|
||||||
|
|
||||||
|
## 推荐实施顺序
|
||||||
|
|
||||||
|
### 第一刀
|
||||||
|
|
||||||
|
统一 host 口径:
|
||||||
|
|
||||||
|
- sitemap
|
||||||
|
- RSS
|
||||||
|
- 模板 canonical
|
||||||
|
- og:url
|
||||||
|
- JSON-LD url
|
||||||
|
|
||||||
|
### 第二刀
|
||||||
|
|
||||||
|
复看日志:
|
||||||
|
|
||||||
|
- `/|301` 是否下降
|
||||||
|
- `www` / 裸域混合抓取是否下降
|
||||||
|
- `yagyjt.com` / `ningxiaowei.com` 等站的 host 301 是否下降
|
||||||
|
|
||||||
|
### 第三刀
|
||||||
|
|
||||||
|
再决定是否推进:
|
||||||
|
|
||||||
|
- 播放页 canonical 策略调整
|
||||||
|
- 历史兼容入口收缩
|
||||||
|
|
||||||
|
## 建议的验证口径
|
||||||
|
|
||||||
|
### 1. 日志指标
|
||||||
|
|
||||||
|
优先看:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
- `home|301`
|
||||||
|
- `detail|301`
|
||||||
|
- `play|301`
|
||||||
|
- 同一 base domain 下 `www` / 裸域双命中是否下降
|
||||||
|
|
||||||
|
### 2. 页面级抽查
|
||||||
|
|
||||||
|
至少抽查:
|
||||||
|
|
||||||
|
- 首页
|
||||||
|
- 一级分类
|
||||||
|
- 二级分类
|
||||||
|
- 详情页
|
||||||
|
- 播放页
|
||||||
|
- `robots.txt`
|
||||||
|
- `sitemap_index.xml`
|
||||||
|
- RSS 输出
|
||||||
|
|
||||||
|
确认:
|
||||||
|
|
||||||
|
- canonical host 一致
|
||||||
|
- og:url host 一致
|
||||||
|
- JSON-LD URL 一致
|
||||||
|
- sitemap / RSS host 一致
|
||||||
|
|
||||||
|
### 3. 重点域名
|
||||||
|
|
||||||
|
建议第一轮继续盯:
|
||||||
|
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
- `sctyjz.com`
|
||||||
|
- `www.haotianhaiyuan.com`
|
||||||
|
- `ctshuhua.com`
|
||||||
|
|
||||||
|
## 本批次最重要的边界
|
||||||
|
|
||||||
|
### 不做的事
|
||||||
|
|
||||||
|
- 不大规模删历史兼容路由
|
||||||
|
- 不先收 fallback
|
||||||
|
- 不大改播放页 SEO 立场
|
||||||
|
- 不同时改 Nginx + PHP + 模板三层 host 策略
|
||||||
|
|
||||||
|
### 只做的事
|
||||||
|
|
||||||
|
- 先统一输出口径
|
||||||
|
- 先降低确定性的 host 级损耗
|
||||||
|
|
||||||
|
## 给主 Codex 的一句话
|
||||||
|
|
||||||
|
> 第一批最适合真正落地的,不是“重构 SEO 路由体系”,而是先做一次低副作用的输出口径统一,让模板、sitemap、RSS 在 host 维度不再互相打架,再用日志看收益。
|
||||||
249
docs/old-tmp-seo/12-第一批修正实施方案-2026-04-17.md
Normal file
249
docs/old-tmp-seo/12-第一批修正实施方案-2026-04-17.md
Normal file
@@ -0,0 +1,249 @@
|
|||||||
|
# 1281-SEONexus 第一批修正实施方案 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档用于把 `1280` 的“可落地修正设计”继续推进成可以直接进入实施评审的方案。
|
||||||
|
|
||||||
|
它回答的是:
|
||||||
|
|
||||||
|
1. 第一批具体怎么改
|
||||||
|
2. 先改哪些文件
|
||||||
|
3. 每一步改完怎么验证
|
||||||
|
4. 哪些线这一批绝对不要碰
|
||||||
|
|
||||||
|
## 本批次实施目标
|
||||||
|
|
||||||
|
只做一件事:
|
||||||
|
|
||||||
|
> 统一 `videoGpt1` 主线上模板、sitemap、RSS 的 host 输出口径,尽量先消除系统内部自带的 host 双口径冲突。
|
||||||
|
|
||||||
|
不把本批次目标扩散到:
|
||||||
|
|
||||||
|
- 深页兼容路由重构
|
||||||
|
- fallback 策略收紧
|
||||||
|
- 播放页 canonical 政策改向
|
||||||
|
|
||||||
|
## 预期收益
|
||||||
|
|
||||||
|
如果这一批实施正确,最可能看到的收益是:
|
||||||
|
|
||||||
|
1. 首页 `/|301` 继续下降
|
||||||
|
2. host 级 `301` 下降
|
||||||
|
3. 同一 base domain 下 `www` / 裸域混合抓取下降
|
||||||
|
4. `yagyjt.com`、`ningxiaowei.com`、`haotianhaiyuan.com` 这类站的 host 分裂减轻
|
||||||
|
|
||||||
|
## 本批次改动批次
|
||||||
|
|
||||||
|
### 批次 A:统一模板与站内公开输出的 host 口径
|
||||||
|
|
||||||
|
建议优先级:`最高`
|
||||||
|
|
||||||
|
### 目标
|
||||||
|
|
||||||
|
确认 `videoGpt1` 主线上以下输出全部使用同一 host 口径:
|
||||||
|
|
||||||
|
- 首页 canonical
|
||||||
|
- 分类页 canonical
|
||||||
|
- 详情页 canonical
|
||||||
|
- 播放页 canonical
|
||||||
|
- `og:url`
|
||||||
|
- JSON-LD `url`
|
||||||
|
|
||||||
|
### 建议检查文件
|
||||||
|
|
||||||
|
- [videoGpt1/index/index.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/index/index.html:99)
|
||||||
|
- [videoGpt1/video/getCategory.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategory.html:34)
|
||||||
|
- [videoGpt1/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:15)
|
||||||
|
- [videoGpt1/video/getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoInfo.html:39)
|
||||||
|
- [videoGpt1/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
|
||||||
|
|
||||||
|
### 实施建议
|
||||||
|
|
||||||
|
这一步如果发现这些文件已经统一,则不做逻辑变更,只做复核确认。
|
||||||
|
|
||||||
|
当前从只读审查来看,它们大方向已经都偏向:
|
||||||
|
|
||||||
|
- `https://{$DomainModel->d_domain}`
|
||||||
|
|
||||||
|
所以这一步更像:
|
||||||
|
|
||||||
|
- 明确模板层口径
|
||||||
|
- 作为后续 sitemap / RSS 对齐基线
|
||||||
|
|
||||||
|
## 批次 B:把 sitemap 输出 host 对齐到模板口径
|
||||||
|
|
||||||
|
建议优先级:`最高`
|
||||||
|
|
||||||
|
### 目标
|
||||||
|
|
||||||
|
去掉 sitemap 生成里与模板层相冲突的 `https://www.` 硬编码。
|
||||||
|
|
||||||
|
### 建议改动文件
|
||||||
|
|
||||||
|
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php:203)
|
||||||
|
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:158)
|
||||||
|
|
||||||
|
### 当前问题
|
||||||
|
|
||||||
|
这里大量在拼:
|
||||||
|
|
||||||
|
- `https://www.{$DomainModel->d_domain}`
|
||||||
|
|
||||||
|
### 建议改动方式
|
||||||
|
|
||||||
|
第一批不建议做复杂抽象。
|
||||||
|
|
||||||
|
只做最小改动:
|
||||||
|
|
||||||
|
- 把 `https://www.{$DomainModel->d_domain}` 统一替换为与当前模板主输出一致的 host 口径
|
||||||
|
|
||||||
|
也就是优先对齐:
|
||||||
|
|
||||||
|
- `https://{$DomainModel->d_domain}`
|
||||||
|
|
||||||
|
### 这样做的原因
|
||||||
|
|
||||||
|
因为当前真正造成系统自冲突的,是:
|
||||||
|
|
||||||
|
- 模板一套
|
||||||
|
- sitemap 一套
|
||||||
|
|
||||||
|
先消掉这层内部打架,比引入新配置中心更稳。
|
||||||
|
|
||||||
|
## 批次 C:把 RSS 输出 host 对齐到模板口径
|
||||||
|
|
||||||
|
建议优先级:`高`
|
||||||
|
|
||||||
|
### 建议改动文件
|
||||||
|
|
||||||
|
- [videoGpt1/rss/baidu.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/baidu.xml:6)
|
||||||
|
- [videoGpt1/rss/so.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/so.xml:12)
|
||||||
|
|
||||||
|
### 当前问题
|
||||||
|
|
||||||
|
这两个文件内部 host 口径并不完全一致:
|
||||||
|
|
||||||
|
- `baidu.xml` 的 `<link>` 已偏向非 `www`
|
||||||
|
- `baidu.xml` 的频道级 `<link>` / `<generator>` 仍有 `www`
|
||||||
|
- `so.xml` 仍在输出 `https://www.{$DomainModel->d_domain}...`
|
||||||
|
|
||||||
|
### 建议改动方式
|
||||||
|
|
||||||
|
第一批同样只做最小统一:
|
||||||
|
|
||||||
|
- 与模板 canonical 口径对齐
|
||||||
|
|
||||||
|
## 本批次不改的内容
|
||||||
|
|
||||||
|
### 1. 不改播放页 canonical 策略
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 它是策略问题,不是第一批最确定的问题
|
||||||
|
|
||||||
|
### 2. 不删历史兼容入口
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 当前高频旧入口仍真实存在
|
||||||
|
- 先删风险太高
|
||||||
|
|
||||||
|
### 3. 不收 fallback
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 当前 `404` 下降可能部分依赖 fallback
|
||||||
|
|
||||||
|
### 4. 不引入新的全局 host 配置中心
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 第一批目标是低副作用止损
|
||||||
|
- 不是立刻做体系重构
|
||||||
|
|
||||||
|
## 推荐实施顺序
|
||||||
|
|
||||||
|
### 第一步
|
||||||
|
|
||||||
|
模板层 host 输出复核:
|
||||||
|
|
||||||
|
- 首页
|
||||||
|
- 分类页
|
||||||
|
- 详情页
|
||||||
|
- 播放页
|
||||||
|
|
||||||
|
### 第二步
|
||||||
|
|
||||||
|
改 sitemap host 输出:
|
||||||
|
|
||||||
|
- `VideoSiteMapLogic`
|
||||||
|
- `SiteMapLogic`
|
||||||
|
|
||||||
|
### 第三步
|
||||||
|
|
||||||
|
改 RSS host 输出:
|
||||||
|
|
||||||
|
- `baidu.xml`
|
||||||
|
- `so.xml`
|
||||||
|
|
||||||
|
### 第四步
|
||||||
|
|
||||||
|
做页面级回归:
|
||||||
|
|
||||||
|
- 首页
|
||||||
|
- 分类页
|
||||||
|
- 详情页
|
||||||
|
- 播放页
|
||||||
|
- `sitemap_index.xml`
|
||||||
|
- `sitemap-videos-1.xml`
|
||||||
|
- RSS
|
||||||
|
|
||||||
|
## 建议的验证顺序
|
||||||
|
|
||||||
|
### 一、页面静态验证
|
||||||
|
|
||||||
|
确认:
|
||||||
|
|
||||||
|
- canonical host 一致
|
||||||
|
- `og:url` host 一致
|
||||||
|
- JSON-LD `url` 一致
|
||||||
|
- sitemap URL host 一致
|
||||||
|
- RSS URL host 一致
|
||||||
|
|
||||||
|
### 二、外网行为验证
|
||||||
|
|
||||||
|
抽查几个代表域名:
|
||||||
|
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
- `www.haotianhaiyuan.com`
|
||||||
|
- `ctshuhua.com`
|
||||||
|
- `sctyjz.com`
|
||||||
|
|
||||||
|
重点看:
|
||||||
|
|
||||||
|
- 首页是否仍多跳
|
||||||
|
- sitemap 返回内容里的 host 是否统一
|
||||||
|
|
||||||
|
### 三、日志验证
|
||||||
|
|
||||||
|
回看下一轮蜘蛛日志时,优先比较:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
- `home|301`
|
||||||
|
- `detail|301`
|
||||||
|
- `play|301`
|
||||||
|
- 同一 base domain 的 `www` / 裸域双命中是否下降
|
||||||
|
|
||||||
|
## 止损边界
|
||||||
|
|
||||||
|
如果本批次改动后出现以下任一情况,应暂停继续扩大:
|
||||||
|
|
||||||
|
1. `404` 明显回升
|
||||||
|
2. sitemap / RSS 出现不可访问
|
||||||
|
3. 首页或详情页 canonical 异常
|
||||||
|
4. `detail|301` / `play|301` 不降反升且幅度明显
|
||||||
|
|
||||||
|
## 给主 Codex 的一句话
|
||||||
|
|
||||||
|
> 第一批实施最适合做的,是一次“小范围 host 输出统一手术”:先把模板、sitemap、RSS 的 host 口径对齐,先消除系统内部自带的冲突,再用日志看 `/|301` 和 host 分裂是否下降。
|
||||||
173
docs/old-tmp-seo/13-主Codex接手摘要-2026-04-17.md
Normal file
173
docs/old-tmp-seo/13-主Codex接手摘要-2026-04-17.md
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
# 1282-SEONexus 主 Codex 接手摘要 - 2026-04-17
|
||||||
|
|
||||||
|
## 这份文档是干什么的
|
||||||
|
|
||||||
|
给主 Codex 一个最短路径摘要。
|
||||||
|
|
||||||
|
如果没有时间从 `1271` 一直读到 `1281`,先看这份,就能知道:
|
||||||
|
|
||||||
|
- 现在日志阶段走到哪里了
|
||||||
|
- 当前最像真问题的点是什么
|
||||||
|
- 第一批建议先改哪里
|
||||||
|
|
||||||
|
## 当前阶段结论
|
||||||
|
|
||||||
|
截至 `2026-04-17`,老模板蜘蛛日志已经不是“百度没来”的问题。
|
||||||
|
|
||||||
|
当前更准确的判断是:
|
||||||
|
|
||||||
|
1. 首页抓取已经成立
|
||||||
|
2. 部分站点已经有真实深抓
|
||||||
|
3. `404` 已较前一轮明显下降
|
||||||
|
4. 但 `301` 仍在持续消耗预算
|
||||||
|
5. 主要损耗已更集中在:
|
||||||
|
- host 规范化
|
||||||
|
- 深页历史兼容入口
|
||||||
|
- 部分 `444` 探测型噪音
|
||||||
|
|
||||||
|
## 这轮最像真问题的 3 个点
|
||||||
|
|
||||||
|
### 1. 模板 canonical 与 sitemap / RSS 的 host 口径冲突
|
||||||
|
|
||||||
|
当前 `videoGpt1` 模板主线大量输出:
|
||||||
|
|
||||||
|
- `https://{$DomainModel->d_domain}...`
|
||||||
|
|
||||||
|
但 sitemap / RSS 中仍有多处输出:
|
||||||
|
|
||||||
|
- `https://www.{$DomainModel->d_domain}...`
|
||||||
|
|
||||||
|
这和日志里持续存在的:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
- 同一 base domain 下 `www` / 裸域并行抓取
|
||||||
|
|
||||||
|
是高度一致的。
|
||||||
|
|
||||||
|
### 2. 深页兼容入口很多,仍在真实命中
|
||||||
|
|
||||||
|
`router.php` 中存在大批旧深页兼容入口:
|
||||||
|
|
||||||
|
- `voddetail`
|
||||||
|
- `video-info`
|
||||||
|
- `video-play`
|
||||||
|
- `video-show`
|
||||||
|
- `vodbf`
|
||||||
|
- `shipin-*`
|
||||||
|
|
||||||
|
它们当前不是死代码。
|
||||||
|
|
||||||
|
所以不能第一刀就删,但它们很可能确实在维持一部分深页 `301`。
|
||||||
|
|
||||||
|
### 3. 播放页 canonical 当前指向播放页自身
|
||||||
|
|
||||||
|
这不是明确 bug,但它是一个必须由主 Codex 明确拍板的策略点:
|
||||||
|
|
||||||
|
- 保持播放页自身 canonical
|
||||||
|
还是
|
||||||
|
- 回详情页
|
||||||
|
|
||||||
|
## 当前最建议优先推进的事情
|
||||||
|
|
||||||
|
### 第一优先级
|
||||||
|
|
||||||
|
先统一 host 输出口径。
|
||||||
|
|
||||||
|
优先统一:
|
||||||
|
|
||||||
|
- 模板 canonical
|
||||||
|
- `og:url`
|
||||||
|
- JSON-LD URL
|
||||||
|
- sitemap
|
||||||
|
- RSS
|
||||||
|
|
||||||
|
目标:
|
||||||
|
|
||||||
|
- 先减少系统内部自己制造的 host 级 `301`
|
||||||
|
|
||||||
|
### 第二优先级
|
||||||
|
|
||||||
|
再确认播放页 canonical 立场。
|
||||||
|
|
||||||
|
目标:
|
||||||
|
|
||||||
|
- 明确 `play` 页在当前 SEO 策略里,到底算不算规范对象
|
||||||
|
|
||||||
|
### 第三优先级
|
||||||
|
|
||||||
|
最后才评估:
|
||||||
|
|
||||||
|
- 历史兼容入口收缩
|
||||||
|
- fallback 边界收缩
|
||||||
|
|
||||||
|
## 当前不建议先做的事
|
||||||
|
|
||||||
|
### 1. 不建议先删大批兼容路由
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 当前很多旧入口还在真实命中
|
||||||
|
- 很容易把 `301 -> 200` 打回 `404`
|
||||||
|
|
||||||
|
### 2. 不建议先动 fallback
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 这条线可能正在帮助压低 `404`
|
||||||
|
|
||||||
|
### 3. 不建议同时改 Nginx + PHP + 模板三层 host 策略
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 第一批应该做低副作用、可验证的统一动作
|
||||||
|
|
||||||
|
## 第一批实施建议
|
||||||
|
|
||||||
|
如果主 Codex 要开做,建议第一批只碰这些文件:
|
||||||
|
|
||||||
|
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php:203)
|
||||||
|
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:158)
|
||||||
|
- [videoGpt1/rss/baidu.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/baidu.xml:6)
|
||||||
|
- [videoGpt1/rss/so.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/so.xml:12)
|
||||||
|
- 再顺手复核 `videoGpt1` 模板里的 canonical / `og:url` / JSON-LD URL 输出
|
||||||
|
|
||||||
|
## 第一批验证重点
|
||||||
|
|
||||||
|
改完后优先看:
|
||||||
|
|
||||||
|
- `/|301` 是否下降
|
||||||
|
- `home|301` 是否下降
|
||||||
|
- 同一 base domain 的 `www` / 裸域双命中是否下降
|
||||||
|
|
||||||
|
建议继续盯的域名:
|
||||||
|
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
- `www.haotianhaiyuan.com`
|
||||||
|
- `ctshuhua.com`
|
||||||
|
- `sctyjz.com`
|
||||||
|
|
||||||
|
## 文档导航
|
||||||
|
|
||||||
|
如果主 Codex 需要往下展开看:
|
||||||
|
|
||||||
|
- 日志首轮总结:
|
||||||
|
[1271](/www/wwwroot/VideoSource2/docs/old-tmp-seo/02-老模板蜘蛛日志观察交接文档-2026-04-16.md)
|
||||||
|
- 日志到代码映射:
|
||||||
|
[1272](/www/wwwroot/VideoSource2/docs/old-tmp-seo/03-老模板蜘蛛日志与代码映射交接文档-2026-04-16.md)
|
||||||
|
- `2026-04-17` 日志更新:
|
||||||
|
[1273](/www/wwwroot/VideoSource2/docs/old-tmp-seo/04-老模板蜘蛛日志观察更新-2026-04-17.md)
|
||||||
|
- `404 -> 444` 代码判断:
|
||||||
|
[1274](/www/wwwroot/VideoSource2/docs/old-tmp-seo/05-老模板蜘蛛日志变化与代码判断更新-2026-04-17.md)
|
||||||
|
- 可执行检查清单:
|
||||||
|
[1275](/www/wwwroot/VideoSource2/docs/old-tmp-seo/06-主Codex可执行检查清单-2026-04-17.md)
|
||||||
|
- 第一轮只读代码审查发现:
|
||||||
|
[1277](/www/wwwroot/VideoSource2/docs/old-tmp-seo/08-第一轮只读代码审查发现-2026-04-17.md)
|
||||||
|
- 第一批候选修正方案:
|
||||||
|
[1278](/www/wwwroot/VideoSource2/docs/old-tmp-seo/09-第一批候选修正方案-2026-04-17.md)
|
||||||
|
- 第一批修正实施方案:
|
||||||
|
[1281](/www/wwwroot/VideoSource2/docs/old-tmp-seo/12-第一批修正实施方案-2026-04-17.md)
|
||||||
|
|
||||||
|
## 一句话交接
|
||||||
|
|
||||||
|
> 主线现在最值得先动的,不是删旧路由,而是统一 host 输出口径;先把模板、sitemap、RSS 不再互相打架,再看日志里的 `/|301` 和 `www/裸域` 分裂是否继续下降。
|
||||||
195
docs/old-tmp-seo/14-蜘蛛分析交接索引-2026-04-17.md
Normal file
195
docs/old-tmp-seo/14-蜘蛛分析交接索引-2026-04-17.md
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
# 1283-SEONexus 蜘蛛分析交接索引 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档是 `2026-04-16` 到 `2026-04-17` 这轮老模板蜘蛛日志分析的总索引。
|
||||||
|
|
||||||
|
作用只有一个:
|
||||||
|
|
||||||
|
- 帮主 Codex 或下一轮会话,最快找到该看的文档
|
||||||
|
|
||||||
|
它不是新的分析结论文档,而是阅读顺序与用途说明。
|
||||||
|
|
||||||
|
## 纠偏提醒
|
||||||
|
|
||||||
|
`2026-04-17` 晚些时候已经补了一份老模板范围纠偏文档:
|
||||||
|
|
||||||
|
- [17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md)
|
||||||
|
|
||||||
|
如果你现在接手的是老模板第一阶段 SEO 分析,请先看 `1286`,因为它已经明确:
|
||||||
|
|
||||||
|
- 当前主线是 `1001-1005`
|
||||||
|
- 也就是 `videoDadi / videoDingZhu / videoBoKu / videoLaoNiu / videoNuNu`
|
||||||
|
- `videoGpt1` 不属于这条老模板实施主线
|
||||||
|
|
||||||
|
## 最短阅读路径
|
||||||
|
|
||||||
|
如果时间很少,只看下面 3 份:
|
||||||
|
|
||||||
|
1. [01-老模板第一阶段回灌执行文档.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/01-老模板第一阶段回灌执行文档.md)
|
||||||
|
2. [17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md)
|
||||||
|
3. [02-老模板蜘蛛日志观察交接文档-2026-04-16.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/02-老模板蜘蛛日志观察交接文档-2026-04-16.md)
|
||||||
|
|
||||||
|
这 3 份分别解决:
|
||||||
|
|
||||||
|
- 老模板第一阶段的边界是什么
|
||||||
|
- 哪些代码结论需要重新锚定到老模板 5 套
|
||||||
|
- 当前日志现状是什么
|
||||||
|
|
||||||
|
## 完整阅读顺序
|
||||||
|
|
||||||
|
### 阶段文档
|
||||||
|
|
||||||
|
#### 1. 阶段目标
|
||||||
|
|
||||||
|
- [01-老模板第一阶段回灌执行文档.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/01-老模板第一阶段回灌执行文档.md)
|
||||||
|
|
||||||
|
用途:
|
||||||
|
|
||||||
|
- 定义第一阶段想看什么
|
||||||
|
- 明确首页、robots、sitemap、canonical、分类、详情、播放这些观察目标
|
||||||
|
|
||||||
|
#### 2. 协作边界
|
||||||
|
|
||||||
|
- [1270-SEONexus-Codex多版本协作交接总文档.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/1270-SEONexus-Codex多版本协作交接总文档.md)
|
||||||
|
|
||||||
|
用途:
|
||||||
|
|
||||||
|
- 定义多 Codex 协作边界
|
||||||
|
- 明确这轮旧版本主要做观察与交接,而不是自由发明实现
|
||||||
|
|
||||||
|
## 第一层:日志观察
|
||||||
|
|
||||||
|
#### 3. 首轮正式日志结论
|
||||||
|
|
||||||
|
- [02-老模板蜘蛛日志观察交接文档-2026-04-16.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/02-老模板蜘蛛日志观察交接文档-2026-04-16.md)
|
||||||
|
|
||||||
|
用途:
|
||||||
|
|
||||||
|
- 给出 `2026-04-16` 的 24 小时总览
|
||||||
|
- 定义第一轮站点分型
|
||||||
|
|
||||||
|
#### 4. 第二轮日志更新
|
||||||
|
|
||||||
|
- [04-老模板蜘蛛日志观察更新-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/04-老模板蜘蛛日志观察更新-2026-04-17.md)
|
||||||
|
|
||||||
|
用途:
|
||||||
|
|
||||||
|
- 比较 `2026-04-17` 相比上一轮的变化
|
||||||
|
- 明确 `404` 下降、`444` 上升的结构变化
|
||||||
|
|
||||||
|
## 第二层:日志到代码
|
||||||
|
|
||||||
|
#### 5. 日志现象与代码位置映射
|
||||||
|
|
||||||
|
- [03-老模板蜘蛛日志与代码映射交接文档-2026-04-16.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/03-老模板蜘蛛日志与代码映射交接文档-2026-04-16.md)
|
||||||
|
|
||||||
|
用途:
|
||||||
|
|
||||||
|
- 把日志里的 `301/404/444`、深页兼容、canonical、sitemap 现象映射到代码入口
|
||||||
|
|
||||||
|
#### 6. `404 -> 444` 的代码判断
|
||||||
|
|
||||||
|
- [05-老模板蜘蛛日志变化与代码判断更新-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/05-老模板蜘蛛日志变化与代码判断更新-2026-04-17.md)
|
||||||
|
|
||||||
|
用途:
|
||||||
|
|
||||||
|
- 解释为什么 `404` 下降
|
||||||
|
- 解释为什么 `444` 上升
|
||||||
|
- 明确 `444` 目前更像前置层噪音,而不是应用层直接返回
|
||||||
|
|
||||||
|
## 第三层:主 Codex 可执行清单
|
||||||
|
|
||||||
|
#### 7. 可执行检查清单
|
||||||
|
|
||||||
|
- [06-主Codex可执行检查清单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/06-主Codex可执行检查清单-2026-04-17.md)
|
||||||
|
|
||||||
|
用途:
|
||||||
|
|
||||||
|
- 告诉主 Codex 先看哪些文件
|
||||||
|
- 每个文件要回答什么问题
|
||||||
|
|
||||||
|
#### 8. 检查清单修正
|
||||||
|
|
||||||
|
- [07-主Codex检查清单补充修正-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/07-主Codex检查清单补充修正-2026-04-17.md)
|
||||||
|
|
||||||
|
用途:
|
||||||
|
|
||||||
|
- 修正对 `SiteStyle` 与模板 canonical 主输出关系的判断
|
||||||
|
|
||||||
|
## 第四层:只读代码审查发现
|
||||||
|
|
||||||
|
#### 9. 第一轮只读代码审查发现
|
||||||
|
|
||||||
|
- [08-第一轮只读代码审查发现-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/08-第一轮只读代码审查发现-2026-04-17.md)
|
||||||
|
|
||||||
|
用途:
|
||||||
|
|
||||||
|
- 固化最像真实问题的发现
|
||||||
|
- 包括 host 双口径、播放页 canonical、自带兼容入口过宽等
|
||||||
|
|
||||||
|
## 第五层:方案与评审
|
||||||
|
|
||||||
|
#### 10. 第一批候选修正方案
|
||||||
|
|
||||||
|
- [09-第一批候选修正方案-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/09-第一批候选修正方案-2026-04-17.md)
|
||||||
|
|
||||||
|
用途:
|
||||||
|
|
||||||
|
- 从发现走到候选修正方向
|
||||||
|
|
||||||
|
#### 11. 第一批候选修正方案评审建议
|
||||||
|
|
||||||
|
- [10-第一批候选修正方案评审建议-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/10-第一批候选修正方案评审建议-2026-04-17.md)
|
||||||
|
|
||||||
|
用途:
|
||||||
|
|
||||||
|
- 说明当前更推荐的先后顺序
|
||||||
|
- 明确为什么先统一 host,再谈其它
|
||||||
|
|
||||||
|
## 第六层:准备实施
|
||||||
|
|
||||||
|
#### 12. 第一批可落地修正设计
|
||||||
|
|
||||||
|
- [11-第一批可落地修正设计-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/11-第一批可落地修正设计-2026-04-17.md)
|
||||||
|
|
||||||
|
用途:
|
||||||
|
|
||||||
|
- 收敛成低副作用、可验证的设计边界
|
||||||
|
|
||||||
|
#### 13. 第一批修正实施方案
|
||||||
|
|
||||||
|
- [12-第一批修正实施方案-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/12-第一批修正实施方案-2026-04-17.md)
|
||||||
|
|
||||||
|
用途:
|
||||||
|
|
||||||
|
- 明确第一批建议改哪些文件
|
||||||
|
- 明确每一步之后怎么验证
|
||||||
|
|
||||||
|
#### 14. 主 Codex 接手摘要
|
||||||
|
|
||||||
|
- [13-主Codex接手摘要-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/13-主Codex接手摘要-2026-04-17.md)
|
||||||
|
|
||||||
|
用途:
|
||||||
|
|
||||||
|
- 一页看完当前阶段
|
||||||
|
- 快速接手
|
||||||
|
|
||||||
|
## 本轮本地分析材料
|
||||||
|
|
||||||
|
如果需要看更细的原始观察,可回到 `_analysis`:
|
||||||
|
|
||||||
|
- [baiduspider.md](/www/wwwroot/VideoSource2/code/storage/_analysis/sources/baiduspider.md)
|
||||||
|
- [baiduspider-priority-2026-04-16.md](/www/wwwroot/VideoSource2/code/storage/_analysis/sources/baiduspider-priority-2026-04-16.md)
|
||||||
|
- [baiduspider-action-checklist-2026-04-16.md](/www/wwwroot/VideoSource2/code/storage/_analysis/sources/baiduspider-action-checklist-2026-04-16.md)
|
||||||
|
- [yagyjt.com.md](/www/wwwroot/VideoSource2/code/storage/_analysis/domains/yagyjt.com.md)
|
||||||
|
- [qf123.net.md](/www/wwwroot/VideoSource2/code/storage/_analysis/domains/qf123.net.md)
|
||||||
|
- [ningxiaowei-hosts.md](/www/wwwroot/VideoSource2/code/storage/_analysis/domains/ningxiaowei-hosts.md)
|
||||||
|
- [sctyjz.com.md](/www/wwwroot/VideoSource2/code/storage/_analysis/domains/sctyjz.com.md)
|
||||||
|
- [ap-hulan.com.md](/www/wwwroot/VideoSource2/code/storage/_analysis/domains/ap-hulan.com.md)
|
||||||
|
- [haotianhaiyuan-hymdrz-hosts.md](/www/wwwroot/VideoSource2/code/storage/_analysis/domains/haotianhaiyuan-hymdrz-hosts.md)
|
||||||
|
- [home-stable-cluster.md](/www/wwwroot/VideoSource2/code/storage/_analysis/domains/home-stable-cluster.md)
|
||||||
|
|
||||||
|
## 一句话结论
|
||||||
|
|
||||||
|
> 这轮辅助分析已经从“看日志”推进到“准备实施”,主 Codex 现在最值得先接手的,不是继续补观察,而是按 `1281` 和 `1282` 进入第一批 host 输出口径统一的实现评估。
|
||||||
64
docs/old-tmp-seo/15-主Codex启动提示-2026-04-17.md
Normal file
64
docs/old-tmp-seo/15-主Codex启动提示-2026-04-17.md
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
# 1284-SEONexus 主 Codex 启动提示 - 2026-04-17
|
||||||
|
|
||||||
|
## 用途
|
||||||
|
|
||||||
|
这份文档用于在主 Codex 新开会话或切回主线时,直接作为启动提示使用。
|
||||||
|
|
||||||
|
目标是减少重复解释成本,让主 Codex 迅速进入正确上下文。
|
||||||
|
|
||||||
|
## 建议直接复制给主 Codex 的话术
|
||||||
|
|
||||||
|
你现在接手的是 `SEONexus` 老模板蜘蛛日志这一轮的主线判断与第一批修正评估。
|
||||||
|
|
||||||
|
先不要从零分析,也不要先大范围改路由。
|
||||||
|
|
||||||
|
请按下面顺序进入:
|
||||||
|
|
||||||
|
1. 先看 [1270-SEONexus-Codex多版本协作交接总文档.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/1270-SEONexus-Codex多版本协作交接总文档.md)
|
||||||
|
2. 再看 [13-主Codex接手摘要-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/13-主Codex接手摘要-2026-04-17.md)
|
||||||
|
3. 然后看 [12-第一批修正实施方案-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/12-第一批修正实施方案-2026-04-17.md)
|
||||||
|
4. 如需完整背景,再按 [14-蜘蛛分析交接索引-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/14-蜘蛛分析交接索引-2026-04-17.md) 的顺序回看
|
||||||
|
|
||||||
|
当前阶段最重要的判断不是“百度没来”,而是:
|
||||||
|
|
||||||
|
- 首页抓取已经成立
|
||||||
|
- 部分站点已有真实深抓
|
||||||
|
- `404` 已较上一轮明显下降
|
||||||
|
- 但系统内部存在 host 输出双口径,仍在持续制造 `301`
|
||||||
|
|
||||||
|
当前最值得优先推进的第一批动作不是删兼容路由,而是统一 host 输出口径。
|
||||||
|
|
||||||
|
优先检查并评估第一批改动:
|
||||||
|
|
||||||
|
- [VideoSiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/VideoSiteMapLogic.php:203)
|
||||||
|
- [SiteMapLogic.php](/www/wwwroot/VideoSource2/code/app/task/logic/SiteMapLogic.php:158)
|
||||||
|
- [videoGpt1/rss/baidu.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/baidu.xml:6)
|
||||||
|
- [videoGpt1/rss/so.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/rss/so.xml:12)
|
||||||
|
- `videoGpt1` 主线模板中的 canonical / `og:url` / JSON-LD URL 输出
|
||||||
|
|
||||||
|
当前不建议第一批先做:
|
||||||
|
|
||||||
|
- 大规模删历史兼容路由
|
||||||
|
- 收紧 fallback
|
||||||
|
- 同时改 Nginx + PHP + 模板三层 host 策略
|
||||||
|
- 先拍板播放页 canonical 回详情页
|
||||||
|
|
||||||
|
第一批实施后的验证重点是:
|
||||||
|
|
||||||
|
- `/|301` 是否下降
|
||||||
|
- `home|301` 是否下降
|
||||||
|
- 同一 base domain 下 `www` / 裸域双命中是否下降
|
||||||
|
|
||||||
|
重点观察域名:
|
||||||
|
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
- `www.haotianhaiyuan.com`
|
||||||
|
- `ctshuhua.com`
|
||||||
|
- `sctyjz.com`
|
||||||
|
|
||||||
|
## 更短的一句话版本
|
||||||
|
|
||||||
|
如果只给主 Codex 一句话,就发这句:
|
||||||
|
|
||||||
|
> 老模板蜘蛛这轮先别删旧路由,先按 `1281/1282` 统一模板、sitemap、RSS 的 host 输出口径,先压 host 级 `301`,再回看日志决定下一刀。
|
||||||
193
docs/old-tmp-seo/16-第一批修正验收清单-2026-04-17.md
Normal file
193
docs/old-tmp-seo/16-第一批修正验收清单-2026-04-17.md
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
# 1285-SEONexus 第一批修正验收清单 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档用于配合 `1281` 的第一批修正实施方案,给主 Codex 提供一份可以直接照着执行的验收清单。
|
||||||
|
|
||||||
|
它适用于:
|
||||||
|
|
||||||
|
- 第一批 host 输出口径统一前的基线记录
|
||||||
|
- 第一批改动后的回归验证
|
||||||
|
|
||||||
|
## 本批次验收范围
|
||||||
|
|
||||||
|
本清单只针对第一批动作:
|
||||||
|
|
||||||
|
- 模板 canonical / `og:url` / JSON-LD URL host 口径
|
||||||
|
- sitemap host 口径
|
||||||
|
- RSS host 口径
|
||||||
|
|
||||||
|
不用于验收:
|
||||||
|
|
||||||
|
- 历史兼容路由收缩
|
||||||
|
- fallback 策略调整
|
||||||
|
- 播放页 canonical 政策改变
|
||||||
|
|
||||||
|
## 一、改动前先记录
|
||||||
|
|
||||||
|
### 1. 页面级记录
|
||||||
|
|
||||||
|
每个站至少记录以下页面:
|
||||||
|
|
||||||
|
1. 首页
|
||||||
|
2. 一级分类页
|
||||||
|
3. 二级分类页
|
||||||
|
4. 详情页
|
||||||
|
5. 播放页
|
||||||
|
6. `robots.txt`
|
||||||
|
7. `sitemap_index.xml`
|
||||||
|
8. 一份视频 sitemap
|
||||||
|
9. RSS
|
||||||
|
|
||||||
|
### 2. 记录字段
|
||||||
|
|
||||||
|
每个页面至少记录:
|
||||||
|
|
||||||
|
- 最终访问 URL
|
||||||
|
- 返回状态码
|
||||||
|
- 是否发生跳转
|
||||||
|
- canonical
|
||||||
|
- `og:url`
|
||||||
|
- JSON-LD 中的主要 `url`
|
||||||
|
- 页面源码中是否出现 `https://www.`
|
||||||
|
- 页面源码中是否出现 `https://裸域`
|
||||||
|
|
||||||
|
## 二、改动后必须检查的页面
|
||||||
|
|
||||||
|
### A. 模板页面
|
||||||
|
|
||||||
|
优先抽查:
|
||||||
|
|
||||||
|
- 首页
|
||||||
|
- 分类页
|
||||||
|
- 详情页
|
||||||
|
- 播放页
|
||||||
|
|
||||||
|
### B. 数据输出页面
|
||||||
|
|
||||||
|
优先抽查:
|
||||||
|
|
||||||
|
- `sitemap_index.xml`
|
||||||
|
- `sitemap-videos-1.xml`
|
||||||
|
- RSS `baidu.xml`
|
||||||
|
- RSS `so.xml`
|
||||||
|
|
||||||
|
## 三、页面级通过标准
|
||||||
|
|
||||||
|
### 1. 首页
|
||||||
|
|
||||||
|
通过标准:
|
||||||
|
|
||||||
|
- canonical host 与设计目标一致
|
||||||
|
- `og:url` host 与 canonical 一致
|
||||||
|
- 不应再出现与 sitemap 完全相反的 host 口径
|
||||||
|
|
||||||
|
### 2. 分类页
|
||||||
|
|
||||||
|
通过标准:
|
||||||
|
|
||||||
|
- canonical host 一致
|
||||||
|
- `og:url` host 一致
|
||||||
|
- 若存在 JSON-LD,URL host 一致
|
||||||
|
|
||||||
|
### 3. 详情页
|
||||||
|
|
||||||
|
通过标准:
|
||||||
|
|
||||||
|
- canonical host 一致
|
||||||
|
- `og:url` host 一致
|
||||||
|
- JSON-LD `url` host 一致
|
||||||
|
|
||||||
|
### 4. 播放页
|
||||||
|
|
||||||
|
通过标准:
|
||||||
|
|
||||||
|
- `robots = noindex,follow` 维持不变
|
||||||
|
- canonical host 一致
|
||||||
|
- 不在本批次里要求改变 canonical 指向对象
|
||||||
|
|
||||||
|
### 5. sitemap
|
||||||
|
|
||||||
|
通过标准:
|
||||||
|
|
||||||
|
- 列出的 URL host 与模板 canonical 设计口径一致
|
||||||
|
- 不应继续一部分用 `www`、一部分用裸域
|
||||||
|
|
||||||
|
### 6. RSS
|
||||||
|
|
||||||
|
通过标准:
|
||||||
|
|
||||||
|
- 频道级 `<link>`、`generator`、正文 `<link>` host 一致
|
||||||
|
- 不应继续出现频道级 `www`、正文级裸域的混搭
|
||||||
|
|
||||||
|
## 四、日志级验收指标
|
||||||
|
|
||||||
|
### 1. 第一优先级指标
|
||||||
|
|
||||||
|
重点比较改动前后 24 小时:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
- `home|301`
|
||||||
|
- 同一 base domain 的 `www` / 裸域双命中
|
||||||
|
|
||||||
|
### 2. 第二优先级指标
|
||||||
|
|
||||||
|
继续观察:
|
||||||
|
|
||||||
|
- `detail|301`
|
||||||
|
- `play|301`
|
||||||
|
|
||||||
|
说明:
|
||||||
|
|
||||||
|
- 这两项不一定会在第一批立即大幅下降
|
||||||
|
- 但如果 host 统一生效,通常应先看到部分改善
|
||||||
|
|
||||||
|
### 3. 暂不作为第一批成败判断的指标
|
||||||
|
|
||||||
|
- `444`
|
||||||
|
- `fallback` 命中情况
|
||||||
|
- `category` 扩散
|
||||||
|
|
||||||
|
这些指标可以观察,但不作为第一批的主判定。
|
||||||
|
|
||||||
|
## 五、重点观察域名
|
||||||
|
|
||||||
|
第一批建议固定盯这些域名:
|
||||||
|
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
- `www.haotianhaiyuan.com`
|
||||||
|
- `ctshuhua.com`
|
||||||
|
- `sctyjz.com`
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 这些域名最能体现 host 分裂、首页 `301`、深页样本差异
|
||||||
|
|
||||||
|
## 六、风险提示
|
||||||
|
|
||||||
|
如果出现以下情况,说明第一批改动需要立即复盘:
|
||||||
|
|
||||||
|
1. `404` 明显上升
|
||||||
|
2. `sitemap` 或 RSS 无法访问
|
||||||
|
3. canonical 丢失
|
||||||
|
4. 首页和详情页 canonical host 不一致
|
||||||
|
5. `/|301` 不降反升
|
||||||
|
|
||||||
|
## 七、建议记录格式
|
||||||
|
|
||||||
|
每次验收至少留一份简表,字段建议如下:
|
||||||
|
|
||||||
|
- 域名
|
||||||
|
- 页面类型
|
||||||
|
- 访问 URL
|
||||||
|
- 状态码
|
||||||
|
- 跳转后 URL
|
||||||
|
- canonical
|
||||||
|
- `og:url`
|
||||||
|
- JSON-LD URL
|
||||||
|
- 备注
|
||||||
|
|
||||||
|
## 一句话说明
|
||||||
|
|
||||||
|
> 第一批修正的验收重点不是“所有 SEO 指标都立刻变好”,而是先确认模板、sitemap、RSS 在 host 维度不再互相冲突,然后观察 `/|301` 和 `www/裸域` 双命中是否下降。
|
||||||
341
docs/old-tmp-seo/17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md
Normal file
341
docs/old-tmp-seo/17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md
Normal file
@@ -0,0 +1,341 @@
|
|||||||
|
# 1286-SEONexus 老模板 5 套蜘蛛日志纠偏与 SEO 提示 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档只做一件事:
|
||||||
|
|
||||||
|
- 把 `2026-04-16` 到 `2026-04-17` 这轮蜘蛛日志分析,重新锚定回 `1269` 定义的老模板 5 套主线
|
||||||
|
|
||||||
|
它是对前面一串分析文档的纠偏补充,不是否定全部历史结论。
|
||||||
|
|
||||||
|
保留有效的部分:
|
||||||
|
|
||||||
|
- `baiduspider` 日志观察
|
||||||
|
- `301 / 404 / 444` 的结构判断
|
||||||
|
- host 规范化、深页规范化、错误入口消耗预算这些大方向
|
||||||
|
|
||||||
|
需要重新解释的部分:
|
||||||
|
|
||||||
|
- 任何把 `videoGpt1` 当成当前实施主线的代码映射
|
||||||
|
- 任何默认以 GPT 新模板结构作为老模板修正入口的判断
|
||||||
|
|
||||||
|
## 一、先把范围钉死
|
||||||
|
|
||||||
|
`1269` 已经写得很明确:
|
||||||
|
|
||||||
|
- 老模板共 5 套
|
||||||
|
- 域名会随机绑定其中一套模板
|
||||||
|
- 当前不准备把 `videoGpt1` 的整套结构层直接迁过去
|
||||||
|
|
||||||
|
代码里真实映射已经确认:
|
||||||
|
|
||||||
|
- `1001 = videoDadi`
|
||||||
|
- `1002 = videoDingZhu`
|
||||||
|
- `1003 = videoBoKu`
|
||||||
|
- `1004 = videoLaoNiu`
|
||||||
|
- `1005 = videoNuNu`
|
||||||
|
|
||||||
|
来源:
|
||||||
|
|
||||||
|
- [01-老模板第一阶段回灌执行文档.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/01-老模板第一阶段回灌执行文档.md)
|
||||||
|
- [viewTemplate.php](/www/wwwroot/VideoSource2/code/public/initdata/video/viewTemplate.php:6)
|
||||||
|
- [TemplateSeeder.php](/www/wwwroot/VideoSource2/code/database/seeders/TemplateSeeder.php:58)
|
||||||
|
|
||||||
|
同时确认:
|
||||||
|
|
||||||
|
- `1007 = videoGpt1`
|
||||||
|
|
||||||
|
所以这轮老模板蜘蛛日志分析,后续都应只围绕:
|
||||||
|
|
||||||
|
- `videoDadi`
|
||||||
|
- `videoDingZhu`
|
||||||
|
- `videoBoKu`
|
||||||
|
- `videoLaoNiu`
|
||||||
|
- `videoNuNu`
|
||||||
|
|
||||||
|
## 二、哪些历史结论仍然有效
|
||||||
|
|
||||||
|
下面这些日志判断,即使不绑定 `videoGpt1`,仍然成立:
|
||||||
|
|
||||||
|
### 1. `404` 已明显下降
|
||||||
|
|
||||||
|
从现有观察链看,`2026-04-17` 相比 `2026-04-16`:
|
||||||
|
|
||||||
|
- `404` 明显下降
|
||||||
|
- 一部分历史错误入口不再持续高频命中
|
||||||
|
|
||||||
|
这说明第一阶段回灌后的老模板链路,至少已经在“硬 404 止血”上开始起作用。
|
||||||
|
|
||||||
|
### 2. `444` 上升更像前置层噪音
|
||||||
|
|
||||||
|
当前仓库内没有明显应用层主动返回 `444` 的主线证据。
|
||||||
|
|
||||||
|
所以现阶段更稳的解释仍然是:
|
||||||
|
|
||||||
|
- `444` 更像 nginx / WAF / 安全规则对探测型路径的拦截
|
||||||
|
- 还不能直接解释成“老模板 SEO 主路径坏了”
|
||||||
|
|
||||||
|
### 3. `301` 仍是当前最值得盯的主损耗
|
||||||
|
|
||||||
|
无论从总览还是单站样本看,最像持续消耗抓取预算的,仍然是:
|
||||||
|
|
||||||
|
- 首页 `/|301`
|
||||||
|
- `home|301`
|
||||||
|
- 深页 `detail|301`
|
||||||
|
- 深页 `play|301`
|
||||||
|
- 以及 host 分裂带来的 `www / 裸域` 规范化跳转
|
||||||
|
|
||||||
|
### 4. `yagyjt.com` 仍是最重要的深抓样本
|
||||||
|
|
||||||
|
这类站的意义仍然没变:
|
||||||
|
|
||||||
|
- 不是“有没有深抓”
|
||||||
|
- 而是“已经深抓了,但深页 `301` 接近 `200`,预算被跳转吃掉了”
|
||||||
|
|
||||||
|
这条判断仍然适合作为老模板第一优先级样本。
|
||||||
|
|
||||||
|
## 三、老模板 5 套的真实代码共性
|
||||||
|
|
||||||
|
这 5 套老模板不是“没有 SEO 基础”,而是“基础已存在,但口径没完全统一”。
|
||||||
|
|
||||||
|
当前已确认的共性如下。
|
||||||
|
|
||||||
|
### 1. 都有 `robots / sitemap / detail / play` 现成模板
|
||||||
|
|
||||||
|
5 套模板目录都包含:
|
||||||
|
|
||||||
|
- `sitemap/robots.txt`
|
||||||
|
- `sitemap/sitemap_index.xml`
|
||||||
|
- `sitemap/sitemap-main.xml`
|
||||||
|
- `video/getVideoInfo.html`
|
||||||
|
- `video/getVideoPlayUrl.html`
|
||||||
|
- `video/getCategory.html`
|
||||||
|
- `video/getCategoryType.html`
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 第一阶段确实应该直接改模板公共代码
|
||||||
|
- 不需要先走后台逐站编辑
|
||||||
|
|
||||||
|
### 2. `robots.txt` 统一指向裸域 `sitemap_index.xml`
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
- [videoDadi/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/robots.txt:38)
|
||||||
|
- [videoDingZhu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/robots.txt:38)
|
||||||
|
- [videoBoKu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/robots.txt:38)
|
||||||
|
- [videoLaoNiu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/robots.txt:38)
|
||||||
|
- [videoNuNu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/robots.txt:38)
|
||||||
|
|
||||||
|
当前写法统一是:
|
||||||
|
|
||||||
|
- `Sitemap: https://{$DomainModel->d_domain}/sitemap_index.xml`
|
||||||
|
|
||||||
|
### 3. footer 也统一暴露了 `rss/baidu.xml` 和 `sitemap_index.xml`
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
- [videoDadi/public/footer.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/public/footer.html:19)
|
||||||
|
- [videoDingZhu/public/footer.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/public/footer.html:36)
|
||||||
|
- [videoBoKu/public/footer.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/public/footer.html:41)
|
||||||
|
- [videoLaoNiu/public/footer.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/public/footer.html:16)
|
||||||
|
- [videoNuNu/public/footer.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/public/footer.html:14)
|
||||||
|
|
||||||
|
这部分说明:
|
||||||
|
|
||||||
|
- 老模板并不是完全缺少抓取入口
|
||||||
|
- 当前更像“入口已暴露,但规范口径不够统一”
|
||||||
|
|
||||||
|
### 4. 详情页 canonical 基本是正常的
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
- [videoDadi/video/getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoInfo.html:79)
|
||||||
|
- [videoDingZhu/video/getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoInfo.html:79)
|
||||||
|
- [videoBoKu/video/getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoInfo.html:80)
|
||||||
|
- [videoLaoNiu/video/getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoInfo.html:79)
|
||||||
|
- [videoNuNu/video/getVideoInfo.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoInfo.html:79)
|
||||||
|
|
||||||
|
共同特征:
|
||||||
|
|
||||||
|
- canonical 指向详情页自身
|
||||||
|
- `og:url` 也基本跟详情页 URL 走
|
||||||
|
|
||||||
|
### 5. 播放页 canonical 已指向播放页,但 `og:url / JSON-LD url` 仍常指详情页
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
- [videoDadi/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:46)
|
||||||
|
- [videoDadi/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:59)
|
||||||
|
- [videoBoKu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:46)
|
||||||
|
- [videoBoKu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:59)
|
||||||
|
- [videoLaoNiu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:46)
|
||||||
|
- [videoLaoNiu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:59)
|
||||||
|
- [videoNuNu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:46)
|
||||||
|
- [videoNuNu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:59)
|
||||||
|
|
||||||
|
这说明老模板播放页存在一个很典型的“半收口”现象:
|
||||||
|
|
||||||
|
- canonical 试图指向播放页
|
||||||
|
- 但 `og:url` 和 JSON-LD `url` 仍可能输出详情页地址
|
||||||
|
|
||||||
|
这很容易继续制造:
|
||||||
|
|
||||||
|
- 播放页规范信号分裂
|
||||||
|
- `play|301`
|
||||||
|
- 播放页收录不稳定
|
||||||
|
|
||||||
|
### 6. 分类页 `getCategoryType` 的 `og:url / CollectionPage.url` 明显偏向首页
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
- [videoDadi/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:19)
|
||||||
|
- [videoDadi/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:46)
|
||||||
|
- [videoDingZhu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:19)
|
||||||
|
- [videoBoKu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getCategoryType.html:19)
|
||||||
|
- [videoLaoNiu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getCategoryType.html:19)
|
||||||
|
- [videoNuNu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getCategoryType.html:19)
|
||||||
|
|
||||||
|
当前共同特征是:
|
||||||
|
|
||||||
|
- `og:url = https://{$DomainModel->d_domain}`
|
||||||
|
- `CollectionPage.url = https://{$DomainModel->d_domain}`
|
||||||
|
- `BreadcrumbList` 才带分类真实地址
|
||||||
|
|
||||||
|
这说明分类首页页型存在明显规范化信号不一致:
|
||||||
|
|
||||||
|
- 页面实际是分类页
|
||||||
|
- 但社交与结构化主 URL 却更像首页
|
||||||
|
|
||||||
|
这会影响:
|
||||||
|
|
||||||
|
- `category` 页型独立识别
|
||||||
|
- 分类页聚合页规范信号
|
||||||
|
- 首页与分类页之间的抓取优先级判断
|
||||||
|
|
||||||
|
### 7. sitemap 与页面主输出存在 `www / 裸域` 双口径风险
|
||||||
|
|
||||||
|
当前已确认至少有一条老模板共性:
|
||||||
|
|
||||||
|
- `robots.txt` 输出的是裸域 `https://{$DomainModel->d_domain}/sitemap_index.xml`
|
||||||
|
- 但某些 sitemap 页面内部却在吐 `https://www.{$DomainModel->d_domain}/...`
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
- [videoDadi/sitemap/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:4)
|
||||||
|
|
||||||
|
这一类双口径如果在 5 套里普遍存在,就会直接对应日志里的:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
- `home|301`
|
||||||
|
- 深页命中后再规范化一次
|
||||||
|
|
||||||
|
## 四、给主 Codex 的老模板专用 SEO 提示
|
||||||
|
|
||||||
|
下面这组提示,应替代“去看 GPT 模板链路”的旧方向。
|
||||||
|
|
||||||
|
### 1. 第一优先级不是换骨架,而是统一规范口径
|
||||||
|
|
||||||
|
老模板第一阶段最值得做的不是大改页面结构,而是统一三种口径:
|
||||||
|
|
||||||
|
- 页面 head 口径
|
||||||
|
- sitemap / rss 口径
|
||||||
|
- 站内主要链接口径
|
||||||
|
|
||||||
|
只要这三条不统一,百度即使已经深抓,也会继续把预算消耗在 `301` 上。
|
||||||
|
|
||||||
|
### 2. 先统一 host,再统一页型 URL
|
||||||
|
|
||||||
|
优先顺序建议固定成:
|
||||||
|
|
||||||
|
1. 先统一 `www / 裸域`
|
||||||
|
2. 再统一分类页规范 URL
|
||||||
|
3. 再统一播放页 `canonical / og:url / JSON-LD url`
|
||||||
|
|
||||||
|
原因很简单:
|
||||||
|
|
||||||
|
- host 级 `301` 影响首页、分类、详情、播放全链路
|
||||||
|
- 分类页是“从首页到深页”的中间层
|
||||||
|
- 播放页规范化是深抓之后的放量优化
|
||||||
|
|
||||||
|
### 3. 分类页是当前最容易被忽略、但很值得补的一刀
|
||||||
|
|
||||||
|
现在最容易跑偏的地方是:
|
||||||
|
|
||||||
|
- 看见详情页 canonical 基本正常
|
||||||
|
- 就误以为老模板规范化已经差不多了
|
||||||
|
|
||||||
|
但实际从代码看,分类页 `getCategoryType` 仍然把自己往首页信号上靠。
|
||||||
|
|
||||||
|
这会导致:
|
||||||
|
|
||||||
|
- 百度更难把分类页当成独立聚合入口
|
||||||
|
- `category` 命中量放不起来
|
||||||
|
- 首页承担过多入口压力
|
||||||
|
|
||||||
|
所以对老模板来说,分类页规范化不是附属项,而是主项。
|
||||||
|
|
||||||
|
### 4. 播放页要看“三件套”,不要只看 canonical
|
||||||
|
|
||||||
|
老模板播放页判断是否真正收口,必须一起看:
|
||||||
|
|
||||||
|
- canonical
|
||||||
|
- `og:url`
|
||||||
|
- JSON-LD `url`
|
||||||
|
|
||||||
|
只看 canonical 不够,因为:
|
||||||
|
|
||||||
|
- canonical 对了
|
||||||
|
- 但 `og:url` / 结构化还指详情页
|
||||||
|
|
||||||
|
这仍会继续制造播放页信号分裂。
|
||||||
|
|
||||||
|
### 5. `404` 已降,不要急着删旧兼容入口
|
||||||
|
|
||||||
|
根据目前观察:
|
||||||
|
|
||||||
|
- 旧入口兼容链路很可能还在帮我们把一部分历史深链从 `404` 兜成 `301 -> 200`
|
||||||
|
|
||||||
|
因此老模板第一阶段更稳的做法仍然是:
|
||||||
|
|
||||||
|
- 先统一规范输出
|
||||||
|
- 先压非必要 `301`
|
||||||
|
- 暂不激进删除旧 deep link 兼容
|
||||||
|
|
||||||
|
否则很容易把当前已止血的部分重新打回 `404`。
|
||||||
|
|
||||||
|
## 五、对前面文档链的使用说明
|
||||||
|
|
||||||
|
从 `1271` 到 `1274`:
|
||||||
|
|
||||||
|
- 日志观察部分仍然可继续用
|
||||||
|
- 但代码映射要以本文件为准重新理解
|
||||||
|
|
||||||
|
从 `1275` 到 `1285`:
|
||||||
|
|
||||||
|
- 凡是明显把 `videoGpt1` 当成老模板主入口的段落
|
||||||
|
- 都不应继续作为老模板第一实施主线
|
||||||
|
|
||||||
|
更稳的接手方式是:
|
||||||
|
|
||||||
|
1. 先看 [01-老模板第一阶段回灌执行文档.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/01-老模板第一阶段回灌执行文档.md)
|
||||||
|
2. 再看本文件
|
||||||
|
3. 再回头使用 `1271 / 1273 / 1274` 的日志现象结论
|
||||||
|
4. 主 Codex 后续如果要继续写实施方案,应只围绕 `1001-1005` 的 5 套模板
|
||||||
|
|
||||||
|
## 六、下一步最推荐的检查顺序
|
||||||
|
|
||||||
|
如果主 Codex 现在继续老模板 SEO 分析,建议只按下面顺序:
|
||||||
|
|
||||||
|
1. 检查 5 套模板里 `robots.txt / sitemap_index.xml / sitemap-main.xml / rss/baidu.xml` 的 host 输出是否一致
|
||||||
|
2. 检查 5 套模板里 `getCategoryType.html` 的 `og:url / CollectionPage.url` 是否都该改成分类真实 URL
|
||||||
|
3. 检查 5 套模板里 `getVideoPlayUrl.html` 的 `og:url / JSON-LD url` 是否都应改成播放页真实 URL
|
||||||
|
4. 再结合下一轮 `baiduspider` 日志看:
|
||||||
|
- `/|301` 是否继续下降
|
||||||
|
- `home|301` 是否继续下降
|
||||||
|
- `detail|301 / play|301` 是否开始分离下降
|
||||||
|
- `category` 命中是否开始上来
|
||||||
|
|
||||||
|
## 一句话交接
|
||||||
|
|
||||||
|
> 老模板这条线当前真正要优化的不是 `videoGpt1`,而是 `1001-1005` 这 5 套老模板自身的规范化输出一致性;现阶段最值得盯的是 host 口径、分类页 URL 信号、播放页三件套,以及它们对 `301` 损耗的影响。
|
||||||
344
docs/old-tmp-seo/18-老模板站群7天SEO冲量执行方案-2026-04-17.md
Normal file
344
docs/old-tmp-seo/18-老模板站群7天SEO冲量执行方案-2026-04-17.md
Normal file
@@ -0,0 +1,344 @@
|
|||||||
|
# 1287-SEONexus 老模板站群 7 天 SEO 冲量执行方案 - 2026-04-17
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
|
||||||
|
这份文档面向当前这一批老模板站群域名。
|
||||||
|
|
||||||
|
目标不是空泛地说“做 SEO”,而是把目标明确成:
|
||||||
|
|
||||||
|
- 每天都能看到日志层进步
|
||||||
|
- 7 天内让这批域名的百度抓取质量明显提升
|
||||||
|
- 让部分核心词、站名词、内容词开始更稳定地上首页或靠近首页
|
||||||
|
|
||||||
|
先说结论:
|
||||||
|
|
||||||
|
> 可以把这批老模板域名往“7 天明显进步”方向推进,但不能把“全部域名 7 天稳定上首页”当成可承诺结果。
|
||||||
|
|
||||||
|
更现实也更专业的目标是:
|
||||||
|
|
||||||
|
1. 7 天内让抓取预算浪费显著下降
|
||||||
|
2. 7 天内让首页、分类页、详情页、播放页的规范化明显收口
|
||||||
|
3. 7 天内让深抓样本域名出现更稳定的 `detail|200 / play|200`
|
||||||
|
4. 7 天内争取让一批品牌词、长尾词、影片词出现首页曝光
|
||||||
|
|
||||||
|
## 一、当前真实阶段判断
|
||||||
|
|
||||||
|
结合现有日志,这批老模板站群不是“百度还没来”。
|
||||||
|
|
||||||
|
当前更像是:
|
||||||
|
|
||||||
|
- 百度已经进首页
|
||||||
|
- 部分站已经能碰到详情页和播放页
|
||||||
|
- 但预算仍被大量 `301 / 404 / 444 / 错误入口` 消耗
|
||||||
|
|
||||||
|
所以这批域名要上量,不是先去幻想“大改版马上起飞”,而是先做这 3 件事:
|
||||||
|
|
||||||
|
1. 把百度已经来的流量先接稳
|
||||||
|
2. 把百度已经抓到的入口变得更直达
|
||||||
|
3. 把错误入口和重复规范化损耗压下去
|
||||||
|
|
||||||
|
## 二、先把最终目标拆成 3 类
|
||||||
|
|
||||||
|
### 1. 基础目标
|
||||||
|
|
||||||
|
这是所有域名都必须追的:
|
||||||
|
|
||||||
|
- 首页尽量直达 `200`
|
||||||
|
- `robots / sitemap / rss / canonical` 统一
|
||||||
|
- `www / 裸域` 只留一个规范口径
|
||||||
|
|
||||||
|
### 2. 放量目标
|
||||||
|
|
||||||
|
这是已有深抓信号的域名优先追的:
|
||||||
|
|
||||||
|
- `detail|301` 降
|
||||||
|
- `play|301` 降
|
||||||
|
- `detail|200` 稳
|
||||||
|
- `play|200` 升
|
||||||
|
|
||||||
|
### 3. 排名目标
|
||||||
|
|
||||||
|
这是结果层,不是第一天就能硬造出来的:
|
||||||
|
|
||||||
|
- 站名词更稳定进入首页
|
||||||
|
- 长尾片名词开始拿到首页曝光
|
||||||
|
- 分类聚合词开始从无到有
|
||||||
|
|
||||||
|
## 三、当前域名应分 3 组推进
|
||||||
|
|
||||||
|
### A 组:深抓已成立,优先保放量
|
||||||
|
|
||||||
|
当前代表:
|
||||||
|
|
||||||
|
- `yagyjt.com`
|
||||||
|
|
||||||
|
补充候选:
|
||||||
|
|
||||||
|
- 有 `detail|200`
|
||||||
|
- 有 `play|200`
|
||||||
|
- 同时又有明显 `detail|301 / play|301` 的域名
|
||||||
|
|
||||||
|
这一组的核心目标不是“让百度来”,而是:
|
||||||
|
|
||||||
|
- 让已经来的百度少跳转
|
||||||
|
- 让详情页、播放页变成更直接的收录入口
|
||||||
|
|
||||||
|
### B 组:首页已起,但规范化没收口
|
||||||
|
|
||||||
|
当前代表:
|
||||||
|
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
- `www.ap-hulan.com`
|
||||||
|
- `haotianhaiyuan.com / www.haotianhaiyuan.com`
|
||||||
|
- `hymdrz.com / www.hymdrz.com`
|
||||||
|
- `sctyjz.com / www.sctyjz.com`
|
||||||
|
|
||||||
|
这一组的目标是:
|
||||||
|
|
||||||
|
- 首页更直达
|
||||||
|
- 分类页更独立
|
||||||
|
- host 更统一
|
||||||
|
|
||||||
|
### C 组:错误入口吞预算,先止损
|
||||||
|
|
||||||
|
当前代表:
|
||||||
|
|
||||||
|
- `qf123.net`
|
||||||
|
|
||||||
|
这一组先不谈“上首页来量”,而是先谈:
|
||||||
|
|
||||||
|
- 停止错误入口吞预算
|
||||||
|
- 让百度重新把注意力放回真实内容页
|
||||||
|
|
||||||
|
## 四、每天要看的不是“感觉”,而是这 8 个指标
|
||||||
|
|
||||||
|
后续每天复盘都建议固定只看下面 8 项:
|
||||||
|
|
||||||
|
1. `home|200`
|
||||||
|
2. `home|301`
|
||||||
|
3. `category|200`
|
||||||
|
4. `detail|200`
|
||||||
|
5. `detail|301`
|
||||||
|
6. `play|200`
|
||||||
|
7. `play|301`
|
||||||
|
8. `other|404`
|
||||||
|
|
||||||
|
外加两个附加观察:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
- `www / 裸域` 是否双命中
|
||||||
|
|
||||||
|
## 五、7 天节奏建议
|
||||||
|
|
||||||
|
### Day 1:先统一目标域名和样本域名
|
||||||
|
|
||||||
|
当天必须做完:
|
||||||
|
|
||||||
|
- 从当前几十个域名里,先挑出 10 个重点域名
|
||||||
|
- 其中至少:
|
||||||
|
- 2 个 A 组
|
||||||
|
- 5 个 B 组
|
||||||
|
- 3 个 C 组
|
||||||
|
|
||||||
|
当天验收:
|
||||||
|
|
||||||
|
- 每个重点域名都要有日志基线
|
||||||
|
- 每个重点域名都要标记所属模板
|
||||||
|
- 每个重点域名都要明确当前规范 host
|
||||||
|
|
||||||
|
如果 Day 1 连这些都没有定死,后面 6 天只会越做越乱。
|
||||||
|
|
||||||
|
### Day 2:先压首页层损耗
|
||||||
|
|
||||||
|
核心目标:
|
||||||
|
|
||||||
|
- 首页 `301` 明显下降
|
||||||
|
- `/|301` 明显下降
|
||||||
|
|
||||||
|
重点检查:
|
||||||
|
|
||||||
|
- `www / 非 www`
|
||||||
|
- `http / https`
|
||||||
|
- 模板 head 输出
|
||||||
|
- sitemap、rss、footer 暴露入口是否统一到同一 host
|
||||||
|
|
||||||
|
当天验收:
|
||||||
|
|
||||||
|
- 重点域名首页规范地址统一
|
||||||
|
- 非规范首页跳转链减少
|
||||||
|
|
||||||
|
### Day 3:修分类页规范化
|
||||||
|
|
||||||
|
当前老模板很值得优先补的一刀,就是分类页。
|
||||||
|
|
||||||
|
核心目标:
|
||||||
|
|
||||||
|
- `category|200` 开始增加
|
||||||
|
- 分类页不再把自己输出成首页信号
|
||||||
|
|
||||||
|
重点检查:
|
||||||
|
|
||||||
|
- `getCategoryType.html`
|
||||||
|
- `og:url`
|
||||||
|
- `CollectionPage.url`
|
||||||
|
- Breadcrumb 与页面主 URL 是否一致
|
||||||
|
|
||||||
|
当天验收:
|
||||||
|
|
||||||
|
- 分类页 URL 信号收口
|
||||||
|
- 分类页开始具备独立聚合页身份
|
||||||
|
|
||||||
|
### Day 4:修详情页和播放页规范信号
|
||||||
|
|
||||||
|
核心目标:
|
||||||
|
|
||||||
|
- `detail|301` 降
|
||||||
|
- `play|301` 降
|
||||||
|
|
||||||
|
重点检查:
|
||||||
|
|
||||||
|
- `getVideoInfo.html`
|
||||||
|
- `getVideoPlayUrl.html`
|
||||||
|
- canonical
|
||||||
|
- `og:url`
|
||||||
|
- JSON-LD `url`
|
||||||
|
|
||||||
|
当天验收:
|
||||||
|
|
||||||
|
- 播放页不再只靠 canonical 单点收口
|
||||||
|
- 播放页三件套开始一致
|
||||||
|
|
||||||
|
### Day 5:清错误入口和历史噪音
|
||||||
|
|
||||||
|
核心目标:
|
||||||
|
|
||||||
|
- `other|404` 降
|
||||||
|
- 百度不再把预算花在垃圾入口上
|
||||||
|
|
||||||
|
重点对象:
|
||||||
|
|
||||||
|
- `webuploader`
|
||||||
|
- `upload`
|
||||||
|
- `fileupload`
|
||||||
|
- `admin.php`
|
||||||
|
- `zb_system`
|
||||||
|
- `showchengshi.asp`
|
||||||
|
- 各类历史模板残留路径
|
||||||
|
|
||||||
|
当天验收:
|
||||||
|
|
||||||
|
- 高频错误路径数量收缩
|
||||||
|
- `qf123.net` 这类域名开始止血
|
||||||
|
|
||||||
|
### Day 6:做站内放量
|
||||||
|
|
||||||
|
这是前 5 天基础收口后,才值得做的放量动作。
|
||||||
|
|
||||||
|
核心目标:
|
||||||
|
|
||||||
|
- 让百度更容易从首页进入分类页、详情页、播放页
|
||||||
|
|
||||||
|
重点动作:
|
||||||
|
|
||||||
|
- 首页聚合入口更清晰
|
||||||
|
- footer 与页面底部的 sitemap 暴露更一致
|
||||||
|
- 核心分类入口更稳定
|
||||||
|
- 详情页到播放页的站内链更直接
|
||||||
|
|
||||||
|
当天验收:
|
||||||
|
|
||||||
|
- `category|200`、`detail|200`、`play|200` 至少有部分域名开始上升
|
||||||
|
|
||||||
|
### Day 7:复盘与冲首页观察
|
||||||
|
|
||||||
|
第 7 天不能只看日志,要同时看两层结果:
|
||||||
|
|
||||||
|
1. 百度蜘蛛日志结果
|
||||||
|
2. 百度搜索结果页表现
|
||||||
|
|
||||||
|
要重点看:
|
||||||
|
|
||||||
|
- 站名词是否更稳定首页
|
||||||
|
- 片名长尾词是否开始首页曝光
|
||||||
|
- 分类词是否开始被百度识别
|
||||||
|
|
||||||
|
## 六、什么叫“每天有进步”
|
||||||
|
|
||||||
|
不是只有“排名上首页”才算进步。
|
||||||
|
|
||||||
|
对当前这批老模板域名来说,下面这些都算真实进步:
|
||||||
|
|
||||||
|
### 第 1 类:抓取质量进步
|
||||||
|
|
||||||
|
- `/|301` 下降
|
||||||
|
- `home|301` 下降
|
||||||
|
- `other|404` 下降
|
||||||
|
|
||||||
|
### 第 2 类:结构信号进步
|
||||||
|
|
||||||
|
- `category|200` 从无到有
|
||||||
|
- `detail|301` 下降
|
||||||
|
- `play|301` 下降
|
||||||
|
|
||||||
|
### 第 3 类:放量进步
|
||||||
|
|
||||||
|
- `detail|200` 增加
|
||||||
|
- `play|200` 增加
|
||||||
|
- 同一站点的 `www / 裸域` 分裂减少
|
||||||
|
|
||||||
|
### 第 4 类:搜索表现进步
|
||||||
|
|
||||||
|
- 品牌词更稳
|
||||||
|
- 长尾词开始出结果
|
||||||
|
- 首页与详情页开始分工更清楚
|
||||||
|
|
||||||
|
## 七、关于“7 天上首页”的真实预期
|
||||||
|
|
||||||
|
这件事必须说实话。
|
||||||
|
|
||||||
|
### 可以争取的
|
||||||
|
|
||||||
|
7 天内比较有机会看到的是:
|
||||||
|
|
||||||
|
- 站名词首页稳定
|
||||||
|
- 某些长尾片名词首页出现
|
||||||
|
- 深抓正样本域名的详情页、播放页更容易被看到
|
||||||
|
|
||||||
|
### 不该乱承诺的
|
||||||
|
|
||||||
|
不应该直接承诺:
|
||||||
|
|
||||||
|
- 几十个域名全部首页稳定
|
||||||
|
- 大量竞争词 7 天全部冲上首页
|
||||||
|
- 只靠模板修正就立刻爆发
|
||||||
|
|
||||||
|
原因不是悲观,而是搜索引擎就不是按“开发日程”线性出结果的。
|
||||||
|
|
||||||
|
真正能稳住结果的,是:
|
||||||
|
|
||||||
|
- 连续 7 天都在减少损耗
|
||||||
|
- 连续 7 天都在强化规范化
|
||||||
|
- 连续 7 天都在提升百度对内容层的识别
|
||||||
|
|
||||||
|
## 八、给主 Codex 的执行原则
|
||||||
|
|
||||||
|
如果后续主 Codex 要按这条线继续做,建议遵守 5 条:
|
||||||
|
|
||||||
|
1. 先做老模板 5 套公共口径统一,不做逐站手工修补
|
||||||
|
2. 先压 `301 / 404`,再谈“内容放量”
|
||||||
|
3. 先保 A 组深抓样本,再修 B 组,再止损 C 组
|
||||||
|
4. 每天都要回看日志,不凭感觉判断 SEO 是否变好
|
||||||
|
5. 每天最多只推一到两类核心修正,避免同时动太多导致无法归因
|
||||||
|
|
||||||
|
## 九、当前最值得先推进的 4 个方向
|
||||||
|
|
||||||
|
结合现有代码和日志,后续第一批最值得推进的是:
|
||||||
|
|
||||||
|
1. 老模板 5 套统一 `www / 裸域 / http / https` 输出口径
|
||||||
|
2. 老模板 5 套统一 `robots / sitemap / rss / footer` 暴露口径
|
||||||
|
3. 老模板 5 套修正分类页 `getCategoryType.html` 的主 URL 信号
|
||||||
|
4. 老模板 5 套修正播放页 `canonical / og:url / JSON-LD url` 三件套一致性
|
||||||
|
|
||||||
|
## 一句话交接
|
||||||
|
|
||||||
|
> 这批老模板站群如果想 7 天内见到量,不是先赌“全部域名直接上首页”,而是先把百度已经来的抓取预算接稳、把规范化跳转压下去、把分类与深页信号做直达;只要这条线每天都在进步,7 天后就有机会从“有抓取”走到“有首页曝光、有内容来量”。
|
||||||
259
docs/old-tmp-seo/19-老模板站群Day1重点域名基线板-2026-04-17.md
Normal file
259
docs/old-tmp-seo/19-老模板站群Day1重点域名基线板-2026-04-17.md
Normal file
@@ -0,0 +1,259 @@
|
|||||||
|
# 1288-SEONexus 老模板站群 Day1 重点域名基线板 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档用于承接老模板站群 7 天冲量方案的 Day 1。
|
||||||
|
|
||||||
|
作用只有一个:
|
||||||
|
|
||||||
|
- 先把当前真正值得盯的重点域名池定下来
|
||||||
|
|
||||||
|
如果这一步不先做,后面每天的“继续”就会变成:
|
||||||
|
|
||||||
|
- 一会儿看这个域名
|
||||||
|
- 一会儿看那个域名
|
||||||
|
- 最后没有任何一组样本能连续跟踪 7 天
|
||||||
|
|
||||||
|
## 一、当前选样原则
|
||||||
|
|
||||||
|
这次重点域名不按“拍脑袋喜欢哪个域名”选,而按 4 个标准来定:
|
||||||
|
|
||||||
|
1. 最近 run 里确实被蜘蛛命中过
|
||||||
|
2. 尽量覆盖不同问题类型
|
||||||
|
3. 优先覆盖已经出现百度信号的域名
|
||||||
|
4. 同时保留少量明显止损样本
|
||||||
|
|
||||||
|
## 二、Day 1 第一版重点域名池
|
||||||
|
|
||||||
|
当前先定 12 个,够用但不至于太散。
|
||||||
|
|
||||||
|
### A 组:深抓放量样本
|
||||||
|
|
||||||
|
1. `yagyjt.com`
|
||||||
|
2. `www.ningxiaowei.com`
|
||||||
|
3. `ningxiaowei.com`
|
||||||
|
|
||||||
|
这组意义:
|
||||||
|
|
||||||
|
- 已有较强百度信号
|
||||||
|
- 适合观察深抓、host 规范化、内容层 URL 收口
|
||||||
|
|
||||||
|
### B 组:首页与规范化样本
|
||||||
|
|
||||||
|
4. `sctyjz.com`
|
||||||
|
5. `www.sctyjz.com`
|
||||||
|
6. `www.ap-hulan.com`
|
||||||
|
7. `hymdrz.com`
|
||||||
|
8. `www.hymdrz.com`
|
||||||
|
|
||||||
|
这组意义:
|
||||||
|
|
||||||
|
- 首页层有信号
|
||||||
|
- 但 `www / 裸域`、首页入口、路径规范化仍值得重点盯
|
||||||
|
|
||||||
|
### C 组:扩展观察样本
|
||||||
|
|
||||||
|
9. `ctshuhua.com`
|
||||||
|
10. `hygfbw.com`
|
||||||
|
11. `syzhzs.com`
|
||||||
|
12. `yahuawang88.com`
|
||||||
|
|
||||||
|
这组意义:
|
||||||
|
|
||||||
|
- 已在最近 run 中被蜘蛛命中
|
||||||
|
- 适合观察这批“非头部样本域名”是否也能随着老模板公共修正一起改善
|
||||||
|
|
||||||
|
## 三、暂时不放进第一批重点池的域名
|
||||||
|
|
||||||
|
下面这些域名当前也在 run 中出现过,但 Day 1 先不作为主战样本:
|
||||||
|
|
||||||
|
- `tvwallmountreview.com`
|
||||||
|
- `www.tvwallmountreview.com`
|
||||||
|
- `xcgruister.com`
|
||||||
|
- `www.xcgruister.com`
|
||||||
|
- `zsxd2020.com`
|
||||||
|
- `www.zsxd2020.com`
|
||||||
|
- `qingyejianshe.com`
|
||||||
|
- `ruantishafa.com`
|
||||||
|
- `yqshu8.com`
|
||||||
|
|
||||||
|
原因不是它们不重要,而是:
|
||||||
|
|
||||||
|
- 目前样本量还偏少
|
||||||
|
- 或者当前日志里更多是 `robots / 444 / 低频 home`
|
||||||
|
- 先放在第二观察圈更稳
|
||||||
|
|
||||||
|
## 四、当前每组域名最主要的问题
|
||||||
|
|
||||||
|
### `yagyjt.com`
|
||||||
|
|
||||||
|
定位:
|
||||||
|
|
||||||
|
- 当前第一优先级深抓样本
|
||||||
|
|
||||||
|
主问题:
|
||||||
|
|
||||||
|
- 深页 `301` 仍高
|
||||||
|
- 内容入口预算被跳转吃掉
|
||||||
|
|
||||||
|
主目标:
|
||||||
|
|
||||||
|
- 保住 `detail|200 / play|200`
|
||||||
|
- 压 `detail|301 / play|301`
|
||||||
|
|
||||||
|
### `ningxiaowei.com / www.ningxiaowei.com`
|
||||||
|
|
||||||
|
定位:
|
||||||
|
|
||||||
|
- 首页已起量
|
||||||
|
- host 与内容路径规范化样本
|
||||||
|
|
||||||
|
主问题:
|
||||||
|
|
||||||
|
- `www / 裸域` 分裂
|
||||||
|
- `other|301` 明显
|
||||||
|
|
||||||
|
主目标:
|
||||||
|
|
||||||
|
- 统一规范 host
|
||||||
|
- 减少非首页入口跳转
|
||||||
|
|
||||||
|
### `sctyjz.com / www.sctyjz.com`
|
||||||
|
|
||||||
|
定位:
|
||||||
|
|
||||||
|
- 首页层和错误入口混合样本
|
||||||
|
|
||||||
|
主问题:
|
||||||
|
|
||||||
|
- 首页不够直达
|
||||||
|
- 噪音路径还在抢预算
|
||||||
|
|
||||||
|
主目标:
|
||||||
|
|
||||||
|
- 压 `/|301`
|
||||||
|
- 压错误入口
|
||||||
|
|
||||||
|
### `www.ap-hulan.com`
|
||||||
|
|
||||||
|
定位:
|
||||||
|
|
||||||
|
- 首页层可观测样本
|
||||||
|
|
||||||
|
主问题:
|
||||||
|
|
||||||
|
- 首页仍有规范化损耗
|
||||||
|
|
||||||
|
主目标:
|
||||||
|
|
||||||
|
- 让首页尽量直达最终 `200`
|
||||||
|
|
||||||
|
### `hymdrz.com / www.hymdrz.com`
|
||||||
|
|
||||||
|
定位:
|
||||||
|
|
||||||
|
- host 规范收敛样本
|
||||||
|
|
||||||
|
主问题:
|
||||||
|
|
||||||
|
- 双 host 需要明确哪边是规范主域
|
||||||
|
|
||||||
|
主目标:
|
||||||
|
|
||||||
|
- 收敛 `www / 裸域`
|
||||||
|
|
||||||
|
### `ctshuhua.com / hygfbw.com / syzhzs.com / yahuawang88.com`
|
||||||
|
|
||||||
|
定位:
|
||||||
|
|
||||||
|
- 扩展样本池
|
||||||
|
|
||||||
|
主问题:
|
||||||
|
|
||||||
|
- 当前量级不高
|
||||||
|
- 但已经被百度命中,值得观察是否能一起被老模板公共优化带起来
|
||||||
|
|
||||||
|
主目标:
|
||||||
|
|
||||||
|
- 看公共修正是否能同步抬升首页与分类信号
|
||||||
|
|
||||||
|
## 五、Day 1 要固定的 10 个观察指标
|
||||||
|
|
||||||
|
从今天开始,这 12 个域名每天都尽量只看下面 10 项:
|
||||||
|
|
||||||
|
1. `home|200`
|
||||||
|
2. `home|301`
|
||||||
|
3. `robots`
|
||||||
|
4. `sitemap`
|
||||||
|
5. `category|200`
|
||||||
|
6. `detail|200`
|
||||||
|
7. `detail|301`
|
||||||
|
8. `play|200`
|
||||||
|
9. `play|301`
|
||||||
|
10. `other|404`
|
||||||
|
|
||||||
|
附加观察:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
- `www / 裸域` 是否双命中
|
||||||
|
- 是否开始出现更多真实内容路径
|
||||||
|
|
||||||
|
## 六、结合百度搜索引擎的优化方向
|
||||||
|
|
||||||
|
这里说的“结合百度搜索引擎”,不是去做空泛口号,而是结合当前百度真实抓取行为来优化:
|
||||||
|
|
||||||
|
### 1. 百度已经在试探入口层
|
||||||
|
|
||||||
|
从现有日志看:
|
||||||
|
|
||||||
|
- 首页
|
||||||
|
- `robots.txt`
|
||||||
|
- `sitemap`
|
||||||
|
- 旧内容路径
|
||||||
|
|
||||||
|
这些都已经被实际访问。
|
||||||
|
|
||||||
|
这说明当前最重要的是:
|
||||||
|
|
||||||
|
- 给百度一个更稳定、更低损耗的最终入口
|
||||||
|
|
||||||
|
### 2. 百度对聚合页和深页的判断,强依赖 URL 信号是否一致
|
||||||
|
|
||||||
|
所以老模板当前要特别重视:
|
||||||
|
|
||||||
|
- canonical
|
||||||
|
- `og:url`
|
||||||
|
- JSON-LD `url`
|
||||||
|
- sitemap 中的 URL
|
||||||
|
- 站内真实跳转 URL
|
||||||
|
|
||||||
|
这些信号只要互相打架,百度就更容易:
|
||||||
|
|
||||||
|
- 先抓到
|
||||||
|
- 再跳转
|
||||||
|
- 再犹豫是否把这个页当成最终页
|
||||||
|
|
||||||
|
### 3. 百度比“页面好不好看”更先看“入口稳不稳”
|
||||||
|
|
||||||
|
对这批老模板域名来说,短期内真正影响来量的优先级更像:
|
||||||
|
|
||||||
|
1. 能不能稳定抓到
|
||||||
|
2. 抓到后是不是直达 `200`
|
||||||
|
3. 分类页和深页是不是能被识别成独立页型
|
||||||
|
4. 之后才是内容质量和词覆盖继续放大
|
||||||
|
|
||||||
|
## 七、Day 1 之后的直接动作
|
||||||
|
|
||||||
|
从这份基线板往下走,后面最值得先推进的顺序是:
|
||||||
|
|
||||||
|
1. 先修 12 个重点域名对应的老模板公共规范口径
|
||||||
|
2. 优先盯 `A 组 + B 组`
|
||||||
|
3. 每天记录一次是否出现:
|
||||||
|
- `home|301` 下降
|
||||||
|
- `category|200` 上升
|
||||||
|
- `detail|301 / play|301` 下降
|
||||||
|
- `detail|200 / play|200` 上升
|
||||||
|
|
||||||
|
## 一句话交接
|
||||||
|
|
||||||
|
> 这 12 个域名就是当前老模板站群 7 天冲量的 Day 1 样本池,后面每天的 SEO 推进、日志复盘、效果判断,都应该优先围绕这批域名来做,而不是继续散点式看全站群。
|
||||||
262
docs/old-tmp-seo/20-老模板第一批SEO高收益修正清单-2026-04-17.md
Normal file
262
docs/old-tmp-seo/20-老模板第一批SEO高收益修正清单-2026-04-17.md
Normal file
@@ -0,0 +1,262 @@
|
|||||||
|
# 1289-SEONexus 老模板第一批 SEO 高收益修正清单 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档只回答一个问题:
|
||||||
|
|
||||||
|
- 老模板 5 套里,第一批最值得先改、而且最可能在 7 天内看到收益的 SEO 点,到底是什么
|
||||||
|
|
||||||
|
这里不再泛泛而谈,而是直接基于代码共性给出优先级。
|
||||||
|
|
||||||
|
适用范围只限:
|
||||||
|
|
||||||
|
- `1001 = videoDadi`
|
||||||
|
- `1002 = videoDingZhu`
|
||||||
|
- `1003 = videoBoKu`
|
||||||
|
- `1004 = videoLaoNiu`
|
||||||
|
- `1005 = videoNuNu`
|
||||||
|
|
||||||
|
## 总判断
|
||||||
|
|
||||||
|
当前老模板站群如果想在短期内更快看到百度放量,第一批最值得动的不是视觉结构,而是下面 3 条公共信号链:
|
||||||
|
|
||||||
|
1. 分类页主 URL 信号
|
||||||
|
2. 播放页主 URL 信号
|
||||||
|
3. sitemap host 口径
|
||||||
|
|
||||||
|
这 3 条之所以优先级最高,是因为它们同时影响:
|
||||||
|
|
||||||
|
- 百度是否把页面识别成独立页型
|
||||||
|
- 百度是否先抓到再跳转
|
||||||
|
- 百度是否持续把预算浪费在规范化上
|
||||||
|
|
||||||
|
## 一、第一优先级:修分类页主 URL 信号
|
||||||
|
|
||||||
|
### 当前问题
|
||||||
|
|
||||||
|
5 套老模板的 `getCategoryType.html` 当前都存在同样的问题:
|
||||||
|
|
||||||
|
- `og:url` 指向首页
|
||||||
|
- `CollectionPage.url` 指向首页
|
||||||
|
- 但 `BreadcrumbList` 却带分类真实 URL
|
||||||
|
|
||||||
|
这会形成一个非常糟糕的混合信号:
|
||||||
|
|
||||||
|
- 页面内容是分类页
|
||||||
|
- 页面标题和 H1 也是分类页
|
||||||
|
- 但页面主 URL 信号又像首页
|
||||||
|
|
||||||
|
### 直接影响
|
||||||
|
|
||||||
|
这会削弱百度对分类页的判断,典型影响包括:
|
||||||
|
|
||||||
|
- 分类页不容易被识别成独立聚合页
|
||||||
|
- `category|200` 起量慢
|
||||||
|
- 首页承担过多聚合入口角色
|
||||||
|
- 首页与分类页之间可能互相稀释
|
||||||
|
|
||||||
|
### 受影响文件
|
||||||
|
|
||||||
|
- [videoDadi/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:19)
|
||||||
|
- [videoDingZhu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:19)
|
||||||
|
- [videoBoKu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getCategoryType.html:19)
|
||||||
|
- [videoLaoNiu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getCategoryType.html:19)
|
||||||
|
- [videoNuNu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getCategoryType.html:19)
|
||||||
|
|
||||||
|
以及对应的结构化数据位置:
|
||||||
|
|
||||||
|
- [videoDadi/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:46)
|
||||||
|
- [videoDingZhu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:46)
|
||||||
|
- [videoBoKu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getCategoryType.html:46)
|
||||||
|
- [videoLaoNiu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getCategoryType.html:46)
|
||||||
|
- [videoNuNu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getCategoryType.html:46)
|
||||||
|
|
||||||
|
### 建议修正方向
|
||||||
|
|
||||||
|
统一原则:
|
||||||
|
|
||||||
|
- 分类页的 `og:url` 应指向当前分类页真实 URL
|
||||||
|
- `CollectionPage.url` 应指向当前分类页真实 URL
|
||||||
|
- 最好补上分类页 canonical,进一步收口
|
||||||
|
|
||||||
|
### 预期收益
|
||||||
|
|
||||||
|
这条修正最容易带来的短期收益是:
|
||||||
|
|
||||||
|
- `category|200` 更容易开始出现
|
||||||
|
- 分类页独立识别增强
|
||||||
|
- 首页不再过度承载所有聚合信号
|
||||||
|
|
||||||
|
## 二、第二优先级:修播放页三件套一致性
|
||||||
|
|
||||||
|
### 当前问题
|
||||||
|
|
||||||
|
5 套老模板的 `getVideoPlayUrl.html` 当前共同表现是:
|
||||||
|
|
||||||
|
- canonical 指向播放页
|
||||||
|
- 但 `og:url` 指向详情页
|
||||||
|
- JSON-LD 里的 `url` 也指向详情页
|
||||||
|
|
||||||
|
这是一种非常典型的“半收口”状态。
|
||||||
|
|
||||||
|
### 直接影响
|
||||||
|
|
||||||
|
这会导致播放页在百度看来信号分裂:
|
||||||
|
|
||||||
|
- 页面本身是播放页
|
||||||
|
- canonical 说“我是播放页”
|
||||||
|
- 但 `og:url` 和结构化又在说“我是详情页”
|
||||||
|
|
||||||
|
这种信号分裂最容易造成:
|
||||||
|
|
||||||
|
- `play|301` 长期偏高
|
||||||
|
- 播放页不容易稳定成为最终页
|
||||||
|
- 详情页和播放页之间相互争夺规范身份
|
||||||
|
|
||||||
|
### 受影响文件
|
||||||
|
|
||||||
|
- [videoDadi/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:41)
|
||||||
|
- [videoDingZhu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:41)
|
||||||
|
- [videoBoKu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:41)
|
||||||
|
- [videoLaoNiu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:41)
|
||||||
|
- [videoNuNu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:41)
|
||||||
|
|
||||||
|
canonical 位置:
|
||||||
|
|
||||||
|
- [videoDadi/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:54)
|
||||||
|
- [videoDingZhu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:55)
|
||||||
|
- [videoBoKu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:55)
|
||||||
|
- [videoLaoNiu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:55)
|
||||||
|
- [videoNuNu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:55)
|
||||||
|
|
||||||
|
JSON-LD `url` 位置:
|
||||||
|
|
||||||
|
- [videoDadi/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:68)
|
||||||
|
- [videoDingZhu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:69)
|
||||||
|
- [videoBoKu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:69)
|
||||||
|
- [videoLaoNiu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:70)
|
||||||
|
- [videoNuNu/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:70)
|
||||||
|
|
||||||
|
### 建议修正方向
|
||||||
|
|
||||||
|
统一原则:
|
||||||
|
|
||||||
|
- 播放页 canonical、`og:url`、JSON-LD `url` 三者全部指向播放页真实 URL
|
||||||
|
|
||||||
|
### 预期收益
|
||||||
|
|
||||||
|
这条修正最容易带来的短期收益是:
|
||||||
|
|
||||||
|
- `play|301` 更容易下降
|
||||||
|
- 播放页更容易被百度稳定识别
|
||||||
|
- 深抓样本域名更容易把播放页转成有效入口
|
||||||
|
|
||||||
|
## 三、第三优先级:统一 sitemap host 口径
|
||||||
|
|
||||||
|
### 当前问题
|
||||||
|
|
||||||
|
5 套老模板当前共同特征是:
|
||||||
|
|
||||||
|
- `robots.txt` 指向裸域 `https://{$DomainModel->d_domain}/sitemap_index.xml`
|
||||||
|
- 但 `sitemap-main.xml` 内部却使用 `https://www.{$DomainModel->d_domain}`
|
||||||
|
|
||||||
|
更关键的是,`sitemap-main.xml` 里当前还是一组很不合理的输出:
|
||||||
|
|
||||||
|
- 既用了 `www`
|
||||||
|
- 又用了 `novel:category / site:nflurl`
|
||||||
|
|
||||||
|
这说明这份 sitemap 文件至少存在“视频站复用小说逻辑”的强疑点。
|
||||||
|
|
||||||
|
### 直接影响
|
||||||
|
|
||||||
|
这类问题会造成:
|
||||||
|
|
||||||
|
- sitemap 自己就在制造 host 级 `301`
|
||||||
|
- 首页和聚合页入口口径不统一
|
||||||
|
- 百度从 sitemap 进入的路径可能不是最终规范页
|
||||||
|
|
||||||
|
### 受影响文件
|
||||||
|
|
||||||
|
- [videoDadi/sitemap/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:4)
|
||||||
|
- [videoDingZhu/sitemap/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/sitemap-main.xml:4)
|
||||||
|
- [videoBoKu/sitemap/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/sitemap-main.xml:4)
|
||||||
|
- [videoLaoNiu/sitemap/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/sitemap-main.xml:4)
|
||||||
|
- [videoNuNu/sitemap/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/sitemap-main.xml:4)
|
||||||
|
|
||||||
|
同时要对照:
|
||||||
|
|
||||||
|
- [videoDadi/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/robots.txt:38)
|
||||||
|
- [videoDingZhu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/robots.txt:38)
|
||||||
|
- [videoBoKu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/robots.txt:38)
|
||||||
|
- [videoLaoNiu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/robots.txt:38)
|
||||||
|
- [videoNuNu/sitemap/robots.txt](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/robots.txt:38)
|
||||||
|
|
||||||
|
### 建议修正方向
|
||||||
|
|
||||||
|
统一原则:
|
||||||
|
|
||||||
|
- sitemap 中的 host 必须与页面主输出一致
|
||||||
|
- 如果规范主域是裸域,就不要在 sitemap 里继续吐 `www`
|
||||||
|
- 同时要复核 `sitemap-main.xml` 是否本身就写错了页型逻辑
|
||||||
|
|
||||||
|
### 预期收益
|
||||||
|
|
||||||
|
这条修正最容易带来的短期收益是:
|
||||||
|
|
||||||
|
- `/|301` 和 host 级 `301` 更容易下降
|
||||||
|
- sitemap 对百度更有正向价值
|
||||||
|
- 首页和聚合入口更加统一
|
||||||
|
|
||||||
|
## 四、为什么这 3 条比别的更优先
|
||||||
|
|
||||||
|
因为它们满足 4 个条件:
|
||||||
|
|
||||||
|
1. 5 套老模板都有共性问题
|
||||||
|
2. 不需要逐站后台编辑
|
||||||
|
3. 改一处能影响一批域名
|
||||||
|
4. 更容易在 7 天窗口内看到日志变化
|
||||||
|
|
||||||
|
相比之下,像下面这些动作当前都应该后置:
|
||||||
|
|
||||||
|
- 首页 UI 大改
|
||||||
|
- 列表模块大重构
|
||||||
|
- 逐站重写标题库
|
||||||
|
- 逐站改内容文本
|
||||||
|
|
||||||
|
不是这些不重要,而是它们不适合当前“先把百度抓取效率和规范化收口拉起来”的阶段。
|
||||||
|
|
||||||
|
## 五、建议的第一批实施顺序
|
||||||
|
|
||||||
|
如果主 Codex 现在开始真正落代码,顺序建议固定成:
|
||||||
|
|
||||||
|
1. 先修 `getCategoryType.html`
|
||||||
|
2. 再修 `getVideoPlayUrl.html`
|
||||||
|
3. 再修 `sitemap-main.xml`
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 分类页修正最可能带来 `category` 页型收益
|
||||||
|
- 播放页修正最可能带来 `play|301` 收敛
|
||||||
|
- sitemap 修正最可能带来首页与 host 规范化收益
|
||||||
|
|
||||||
|
## 六、这批修正完成后要看什么
|
||||||
|
|
||||||
|
修完后,最值得连续看 3 天到 7 天的指标是:
|
||||||
|
|
||||||
|
1. `/|301` 是否下降
|
||||||
|
2. `home|301` 是否下降
|
||||||
|
3. `category|200` 是否从无到有或持续增加
|
||||||
|
4. `detail|301` 是否下降
|
||||||
|
5. `play|301` 是否下降
|
||||||
|
6. `detail|200 / play|200` 是否稳住或上升
|
||||||
|
|
||||||
|
重点样本优先看:
|
||||||
|
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `ningxiaowei.com / www.ningxiaowei.com`
|
||||||
|
- `sctyjz.com / www.sctyjz.com`
|
||||||
|
- `www.ap-hulan.com`
|
||||||
|
|
||||||
|
## 一句话结论
|
||||||
|
|
||||||
|
> 老模板第一批最该动的,不是页面大改,而是分类页 URL 信号、播放页三件套、sitemap host 口径;这 3 刀是当前最可能在短期内直接减少抓取损耗、提升百度识别效率、并给排名放量创造条件的高收益修正点。
|
||||||
152
docs/old-tmp-seo/21-老模板实施安全边界与GPT隔离说明-2026-04-17.md
Normal file
152
docs/old-tmp-seo/21-老模板实施安全边界与GPT隔离说明-2026-04-17.md
Normal file
@@ -0,0 +1,152 @@
|
|||||||
|
# 1290-SEONexus 老模板实施安全边界与 GPT 隔离说明 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档用于明确两件事:
|
||||||
|
|
||||||
|
1. 老模板第一批 SEO 修正,具体应该改哪些文件
|
||||||
|
2. 为什么这些改动可以与 `videoGpt1` 隔离,不会直接误伤 GPT 模板
|
||||||
|
|
||||||
|
## 一、当前边界结论
|
||||||
|
|
||||||
|
老模板第一批建议改动范围,只限下面 5 套目录:
|
||||||
|
|
||||||
|
- `code/app/home/view/videoDadi`
|
||||||
|
- `code/app/home/view/videoDingZhu`
|
||||||
|
- `code/app/home/view/videoBoKu`
|
||||||
|
- `code/app/home/view/videoLaoNiu`
|
||||||
|
- `code/app/home/view/videoNuNu`
|
||||||
|
|
||||||
|
`videoGpt1` 是单独目录:
|
||||||
|
|
||||||
|
- `code/app/home/view/videoGpt1`
|
||||||
|
|
||||||
|
因此只要后续改动严格限制在老模板 5 套目录内,物理上就不会直接修改到 `videoGpt1` 模板文件。
|
||||||
|
|
||||||
|
## 二、第一批建议改动文件清单
|
||||||
|
|
||||||
|
每套老模板当前建议只动 4 个文件:
|
||||||
|
|
||||||
|
1. `video/getCategoryType.html`
|
||||||
|
2. `video/getVideoPlayUrl.html`
|
||||||
|
3. `sitemap/sitemap-main.xml`
|
||||||
|
4. `sitemap/robots.txt`
|
||||||
|
|
||||||
|
总计:
|
||||||
|
|
||||||
|
- 5 套模板 x 4 个文件 = 20 个文件
|
||||||
|
|
||||||
|
这就是当前最稳的第一批实施边界。
|
||||||
|
|
||||||
|
## 三、为什么这批改动不会直接碰到 GPT 模板
|
||||||
|
|
||||||
|
### 1. 文件不共享
|
||||||
|
|
||||||
|
老模板和 GPT 模板虽然文件名类似,但文件路径不同。
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
- 老模板:
|
||||||
|
- [videoDadi/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:1)
|
||||||
|
- [videoDingZhu/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:1)
|
||||||
|
- GPT 模板:
|
||||||
|
- [videoGpt1/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:1)
|
||||||
|
|
||||||
|
这不是同一个文件的不同分支,而是完全独立的模板文件。
|
||||||
|
|
||||||
|
### 2. GPT 模板当前本身已经有更正确的写法
|
||||||
|
|
||||||
|
例如 `videoGpt1` 分类页:
|
||||||
|
|
||||||
|
- [videoGpt1/video/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:14)
|
||||||
|
|
||||||
|
当前已经是:
|
||||||
|
|
||||||
|
- canonical 指向分类页真实 URL
|
||||||
|
- `og:url` 指向分类页真实 URL
|
||||||
|
- `CollectionPage.url` 指向分类页真实 URL
|
||||||
|
|
||||||
|
这恰好说明:
|
||||||
|
|
||||||
|
- 老模板要修的是自己的旧写法
|
||||||
|
- 不是去改 GPT 模板的现有逻辑
|
||||||
|
|
||||||
|
### 3. GPT 模板播放页也有独立实现
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
- [videoGpt1/video/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:1)
|
||||||
|
|
||||||
|
GPT 模板播放页已经接了自己的:
|
||||||
|
|
||||||
|
- `seoCopy`
|
||||||
|
- breadcrumb 构造
|
||||||
|
- `VideoService` 调用链
|
||||||
|
|
||||||
|
因此老模板这次第一批修正,没有必要也不应该去碰 GPT 模板播放页。
|
||||||
|
|
||||||
|
## 四、目前真正需要注意的风险,不在模板文件本身
|
||||||
|
|
||||||
|
虽然模板文件可隔离,但仍有两类风险需要提醒主 Codex:
|
||||||
|
|
||||||
|
### 1. 如果去改共享底层服务,就可能波及 GPT
|
||||||
|
|
||||||
|
例如这类底层:
|
||||||
|
|
||||||
|
- `SiteContext`
|
||||||
|
- `VideoService`
|
||||||
|
- 通用 taglib / helper
|
||||||
|
- 路由层
|
||||||
|
|
||||||
|
如果后续修正不是停留在模板输出,而是去改这些共享服务,那就有可能影响 `videoGpt1`。
|
||||||
|
|
||||||
|
所以当前建议是:
|
||||||
|
|
||||||
|
- 第一批先只改模板层
|
||||||
|
- 不先动共享服务层
|
||||||
|
|
||||||
|
### 2. sitemap 问题看起来可能是全模板共性
|
||||||
|
|
||||||
|
这次复核时还确认了:
|
||||||
|
|
||||||
|
- `videoGpt1/sitemap/sitemap-main.xml` 也有与老模板类似的 `www + novel` 可疑写法
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
- [videoGpt1/sitemap/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/sitemap/sitemap-main.xml:4)
|
||||||
|
|
||||||
|
但这不代表这次应该顺手一起改 GPT。
|
||||||
|
|
||||||
|
更稳的做法是:
|
||||||
|
|
||||||
|
- 先把老模板线独立处理
|
||||||
|
- GPT 那边单独开任务、单独验证
|
||||||
|
|
||||||
|
## 五、第一批实施时的安全规则
|
||||||
|
|
||||||
|
主 Codex 如果开始动代码,建议固定遵守下面 5 条:
|
||||||
|
|
||||||
|
1. 只改 `videoDadi / videoDingZhu / videoBoKu / videoLaoNiu / videoNuNu`
|
||||||
|
2. 第一批只改 `getCategoryType / getVideoPlayUrl / sitemap-main / robots.txt`
|
||||||
|
3. 不碰 `videoGpt1` 目录
|
||||||
|
4. 不先碰 `VideoService / SiteContext / router` 这类共享底层
|
||||||
|
5. 每改完一类文件,就先做老模板样本验证,再决定是否继续
|
||||||
|
|
||||||
|
## 六、最稳的实施顺序
|
||||||
|
|
||||||
|
从安全性和 SEO 收益一起看,最稳顺序是:
|
||||||
|
|
||||||
|
1. 先改 5 套 `getCategoryType.html`
|
||||||
|
2. 再改 5 套 `getVideoPlayUrl.html`
|
||||||
|
3. 再改 5 套 `sitemap/sitemap-main.xml`
|
||||||
|
4. 最后复核 5 套 `robots.txt`
|
||||||
|
|
||||||
|
这样做的好处是:
|
||||||
|
|
||||||
|
- 改动集中
|
||||||
|
- 影响面可控
|
||||||
|
- 每一步都容易归因
|
||||||
|
|
||||||
|
## 一句话结论
|
||||||
|
|
||||||
|
> 当前老模板第一批 SEO 修正可以和 `videoGpt1` 明确隔离,最安全的落地边界就是只动老模板 5 套目录下那 20 个模板文件;只要不下沉去改共享服务层,就不会直接影响 GPT 模板。
|
||||||
321
docs/old-tmp-seo/22-老模板第一批实施任务单与验收矩阵-2026-04-17.md
Normal file
321
docs/old-tmp-seo/22-老模板第一批实施任务单与验收矩阵-2026-04-17.md
Normal file
@@ -0,0 +1,321 @@
|
|||||||
|
# 1291-SEONexus 老模板第一批实施任务单与验收矩阵 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档把当前老模板第一批 SEO 修正,从“分析结论”继续推进到“可直接施工”的层级。
|
||||||
|
|
||||||
|
它回答 4 个问题:
|
||||||
|
|
||||||
|
1. 具体改哪些文件
|
||||||
|
2. 每个文件改什么
|
||||||
|
3. 改完先看哪些域名
|
||||||
|
4. 怎么判断这批改动是有效还是无效
|
||||||
|
|
||||||
|
## 一、第一批实施范围
|
||||||
|
|
||||||
|
本批次只处理老模板 5 套:
|
||||||
|
|
||||||
|
- `videoDadi`
|
||||||
|
- `videoDingZhu`
|
||||||
|
- `videoBoKu`
|
||||||
|
- `videoLaoNiu`
|
||||||
|
- `videoNuNu`
|
||||||
|
|
||||||
|
只改下面 3 类文件:
|
||||||
|
|
||||||
|
1. `video/getCategoryType.html`
|
||||||
|
2. `video/getVideoPlayUrl.html`
|
||||||
|
3. `sitemap/sitemap-main.xml`
|
||||||
|
|
||||||
|
`robots.txt` 这次先只复核,不作为第一刀主改动。
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 当前 `robots.txt` 已经统一指向裸域 `sitemap_index.xml`
|
||||||
|
- 真正更急的矛盾出在分类页、播放页、sitemap-main 的输出口径
|
||||||
|
|
||||||
|
## 二、任务 1:修分类页 `getCategoryType.html`
|
||||||
|
|
||||||
|
### 目标
|
||||||
|
|
||||||
|
让分类页从“看起来像首页”变成“明确就是分类页”。
|
||||||
|
|
||||||
|
### 当前问题
|
||||||
|
|
||||||
|
5 套模板都存在:
|
||||||
|
|
||||||
|
- `og:url = https://{$DomainModel->d_domain}`
|
||||||
|
- `CollectionPage.url = https://{$DomainModel->d_domain}`
|
||||||
|
|
||||||
|
对应位置:
|
||||||
|
|
||||||
|
- `videoDadi`:
|
||||||
|
- [getCategoryType.html:19](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:19)
|
||||||
|
- [getCategoryType.html:48](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:48)
|
||||||
|
- `videoDingZhu`:
|
||||||
|
- [getCategoryType.html:19](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:19)
|
||||||
|
- [getCategoryType.html:48](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:48)
|
||||||
|
- `videoBoKu`:
|
||||||
|
- [getCategoryType.html:19](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getCategoryType.html:19)
|
||||||
|
- [getCategoryType.html:48](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getCategoryType.html:48)
|
||||||
|
- `videoLaoNiu`:
|
||||||
|
- [getCategoryType.html:19](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getCategoryType.html:19)
|
||||||
|
- [getCategoryType.html:48](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getCategoryType.html:48)
|
||||||
|
- `videoNuNu`:
|
||||||
|
- [getCategoryType.html:19](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getCategoryType.html:19)
|
||||||
|
- [getCategoryType.html:48](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getCategoryType.html:48)
|
||||||
|
|
||||||
|
### 建议改法
|
||||||
|
|
||||||
|
统一增加一个分类页真实 URL 变量,然后三处统一引用:
|
||||||
|
|
||||||
|
1. canonical
|
||||||
|
2. `og:url`
|
||||||
|
3. `CollectionPage.url`
|
||||||
|
|
||||||
|
建议目标写法参考 `videoGpt1`:
|
||||||
|
|
||||||
|
- [videoGpt1/getCategoryType.html:14](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:14)
|
||||||
|
- [videoGpt1/getCategoryType.html:18](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:18)
|
||||||
|
- [videoGpt1/getCategoryType.html:42](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:42)
|
||||||
|
|
||||||
|
### 预期效果
|
||||||
|
|
||||||
|
最值得观察的不是“页面能打开”,而是:
|
||||||
|
|
||||||
|
- `category|200` 是否开始增加
|
||||||
|
- 首页和分类页的规范信号是否不再打架
|
||||||
|
|
||||||
|
### 重点验收域名
|
||||||
|
|
||||||
|
- `ningxiaowei.com / www.ningxiaowei.com`
|
||||||
|
- `sctyjz.com / www.sctyjz.com`
|
||||||
|
- `www.ap-hulan.com`
|
||||||
|
|
||||||
|
## 三、任务 2:修播放页 `getVideoPlayUrl.html`
|
||||||
|
|
||||||
|
### 目标
|
||||||
|
|
||||||
|
让播放页三件套一致:
|
||||||
|
|
||||||
|
- canonical
|
||||||
|
- `og:url`
|
||||||
|
- JSON-LD `url`
|
||||||
|
|
||||||
|
### 当前问题
|
||||||
|
|
||||||
|
5 套模板共同表现是:
|
||||||
|
|
||||||
|
- canonical 指向播放页
|
||||||
|
- `og:url` 指向详情页
|
||||||
|
- JSON-LD `url` 指向详情页
|
||||||
|
|
||||||
|
对应位置:
|
||||||
|
|
||||||
|
- `videoDadi`:
|
||||||
|
- [getVideoPlayUrl.html:46](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:46)
|
||||||
|
- [getVideoPlayUrl.html:58](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:58)
|
||||||
|
- [getVideoPlayUrl.html:71](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:71)
|
||||||
|
- `videoDingZhu`:
|
||||||
|
- [getVideoPlayUrl.html:46](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:46)
|
||||||
|
- [getVideoPlayUrl.html:59](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:59)
|
||||||
|
- [getVideoPlayUrl.html:72](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:72)
|
||||||
|
- `videoBoKu`:
|
||||||
|
- [getVideoPlayUrl.html:46](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:46)
|
||||||
|
- [getVideoPlayUrl.html:59](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:59)
|
||||||
|
- [getVideoPlayUrl.html:72](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:72)
|
||||||
|
- `videoLaoNiu`:
|
||||||
|
- [getVideoPlayUrl.html:46](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:46)
|
||||||
|
- [getVideoPlayUrl.html:59](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:59)
|
||||||
|
- [getVideoPlayUrl.html:73](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:73)
|
||||||
|
- `videoNuNu`:
|
||||||
|
- [getVideoPlayUrl.html:46](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:46)
|
||||||
|
- [getVideoPlayUrl.html:59](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:59)
|
||||||
|
- [getVideoPlayUrl.html:73](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:73)
|
||||||
|
|
||||||
|
### 建议改法
|
||||||
|
|
||||||
|
统一定义播放页真实 URL,并让:
|
||||||
|
|
||||||
|
1. canonical 指向它
|
||||||
|
2. `og:url` 指向它
|
||||||
|
3. JSON-LD `url` 指向它
|
||||||
|
|
||||||
|
注意:
|
||||||
|
|
||||||
|
- 不要只修 canonical
|
||||||
|
- 只修 canonical 不足以解决百度对播放页的规范判断
|
||||||
|
|
||||||
|
### 预期效果
|
||||||
|
|
||||||
|
最值得观察的是:
|
||||||
|
|
||||||
|
- `play|301` 是否下降
|
||||||
|
- `play|200` 是否更稳
|
||||||
|
|
||||||
|
### 重点验收域名
|
||||||
|
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `ningxiaowei.com / www.ningxiaowei.com`
|
||||||
|
|
||||||
|
## 四、任务 3:修 `sitemap-main.xml`
|
||||||
|
|
||||||
|
### 目标
|
||||||
|
|
||||||
|
让 sitemap 自己不再制造 host 混乱和错误页型。
|
||||||
|
|
||||||
|
### 当前问题
|
||||||
|
|
||||||
|
5 套模板共同存在:
|
||||||
|
|
||||||
|
- 使用 `https://www.{$DomainModel->d_domain}`
|
||||||
|
- 使用 `novel:category`
|
||||||
|
- 使用 `site:nflurl`
|
||||||
|
|
||||||
|
对应位置:
|
||||||
|
|
||||||
|
- `videoDadi`:
|
||||||
|
- [sitemap-main.xml:4](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:4)
|
||||||
|
- [sitemap-main.xml:18](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:18)
|
||||||
|
- [sitemap-main.xml:24](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:24)
|
||||||
|
- `videoDingZhu`:
|
||||||
|
- [sitemap-main.xml:4](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/sitemap-main.xml:4)
|
||||||
|
- [sitemap-main.xml:18](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/sitemap-main.xml:18)
|
||||||
|
- [sitemap-main.xml:24](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/sitemap-main.xml:24)
|
||||||
|
- `videoBoKu`:
|
||||||
|
- [sitemap-main.xml:4](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/sitemap-main.xml:4)
|
||||||
|
- [sitemap-main.xml:18](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/sitemap-main.xml:18)
|
||||||
|
- [sitemap-main.xml:24](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/sitemap-main.xml:24)
|
||||||
|
- `videoLaoNiu`:
|
||||||
|
- [sitemap-main.xml:4](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/sitemap-main.xml:4)
|
||||||
|
- [sitemap-main.xml:18](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/sitemap-main.xml:18)
|
||||||
|
- [sitemap-main.xml:24](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/sitemap-main.xml:24)
|
||||||
|
- `videoNuNu`:
|
||||||
|
- [sitemap-main.xml:4](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/sitemap-main.xml:4)
|
||||||
|
- [sitemap-main.xml:18](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/sitemap-main.xml:18)
|
||||||
|
- [sitemap-main.xml:24](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/sitemap-main.xml:24)
|
||||||
|
|
||||||
|
### 建议改法
|
||||||
|
|
||||||
|
第一批不要求把 sitemap 一次做成最终完美版,但至少要先做到:
|
||||||
|
|
||||||
|
1. host 口径与当前模板主输出一致
|
||||||
|
2. 不再继续输出明显像小说站的路径
|
||||||
|
3. 首页和主要聚合入口不再强制走 `www`
|
||||||
|
|
||||||
|
如果主 Codex 发现 `sitemap-main.xml` 当前其实线上没有被主路由使用,也不要直接忽略。
|
||||||
|
|
||||||
|
因为只要它还可能被 `sitemap_index.xml` 引用或被蜘蛛命中,它就仍然会制造噪音。
|
||||||
|
|
||||||
|
### 预期效果
|
||||||
|
|
||||||
|
最值得观察的是:
|
||||||
|
|
||||||
|
- `/|301` 是否下降
|
||||||
|
- `home|301` 是否下降
|
||||||
|
- host 级分裂是否减轻
|
||||||
|
|
||||||
|
### 重点验收域名
|
||||||
|
|
||||||
|
- `sctyjz.com / www.sctyjz.com`
|
||||||
|
- `www.ap-hulan.com`
|
||||||
|
- `hymdrz.com / www.hymdrz.com`
|
||||||
|
|
||||||
|
## 五、本批次先不主改 `robots.txt`
|
||||||
|
|
||||||
|
### 当前结论
|
||||||
|
|
||||||
|
5 套 `robots.txt` 当前至少有两点是统一的:
|
||||||
|
|
||||||
|
- 允许主搜索爬虫
|
||||||
|
- sitemap 已指向裸域 `https://{$DomainModel->d_domain}/sitemap_index.xml`
|
||||||
|
|
||||||
|
位置:
|
||||||
|
|
||||||
|
- [videoDadi/robots.txt:38](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/robots.txt:38)
|
||||||
|
- [videoDingZhu/robots.txt:38](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/robots.txt:38)
|
||||||
|
- [videoBoKu/robots.txt:38](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/robots.txt:38)
|
||||||
|
- [videoLaoNiu/robots.txt:38](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/robots.txt:38)
|
||||||
|
- [videoNuNu/robots.txt:38](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/robots.txt:38)
|
||||||
|
|
||||||
|
### 当前建议
|
||||||
|
|
||||||
|
本批次先不优先修改 `robots.txt`,除非主 Codex 复核时发现:
|
||||||
|
|
||||||
|
- `robots.txt` 与真实 sitemap 路由不一致
|
||||||
|
- 或 `robots.txt` 的 AI 爬虫屏蔽策略影响到了实际搜索引擎主抓取
|
||||||
|
|
||||||
|
## 六、推荐实施顺序
|
||||||
|
|
||||||
|
最稳顺序:
|
||||||
|
|
||||||
|
1. 先改 5 套 `getCategoryType.html`
|
||||||
|
2. 再改 5 套 `getVideoPlayUrl.html`
|
||||||
|
3. 最后改 5 套 `sitemap-main.xml`
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 分类页修正对聚合层收益最大
|
||||||
|
- 播放页修正对深抓层收益最大
|
||||||
|
- sitemap 修正对整体 host 规范化收益最大
|
||||||
|
|
||||||
|
## 七、实施后验收矩阵
|
||||||
|
|
||||||
|
### 第 1 轮:页面级验收
|
||||||
|
|
||||||
|
分类页验收:
|
||||||
|
|
||||||
|
- 页面能正常打开
|
||||||
|
- canonical 指向分类页自己
|
||||||
|
- `og:url` 指向分类页自己
|
||||||
|
- `CollectionPage.url` 指向分类页自己
|
||||||
|
|
||||||
|
播放页验收:
|
||||||
|
|
||||||
|
- 页面能正常打开
|
||||||
|
- canonical 指向播放页自己
|
||||||
|
- `og:url` 指向播放页自己
|
||||||
|
- JSON-LD `url` 指向播放页自己
|
||||||
|
|
||||||
|
sitemap 验收:
|
||||||
|
|
||||||
|
- `sitemap-main.xml` 返回正常
|
||||||
|
- 输出 host 与页面主输出口径一致
|
||||||
|
- 不再出现明显小说站路径
|
||||||
|
|
||||||
|
### 第 2 轮:日志级验收
|
||||||
|
|
||||||
|
实施后连续看 3 天:
|
||||||
|
|
||||||
|
1. `/|301` 是否下降
|
||||||
|
2. `home|301` 是否下降
|
||||||
|
3. `category|200` 是否增加
|
||||||
|
4. `play|301` 是否下降
|
||||||
|
5. `play|200` 是否稳住或增加
|
||||||
|
|
||||||
|
### 第 3 轮:搜索表现验收
|
||||||
|
|
||||||
|
实施后 3 到 7 天,重点看:
|
||||||
|
|
||||||
|
- 站名词是否更稳定
|
||||||
|
- 分类词是否开始出现首页或前两页曝光
|
||||||
|
- 片名长尾和播放词是否更容易命中播放页
|
||||||
|
|
||||||
|
## 八、失败信号
|
||||||
|
|
||||||
|
如果实施后出现下面任一情况,要立刻回看:
|
||||||
|
|
||||||
|
1. `404` 突然增加
|
||||||
|
2. `detail|200 / play|200` 明显掉量
|
||||||
|
3. `category` 信号没有上升,反而首页抓取下降
|
||||||
|
4. sitemap 输出开始异常
|
||||||
|
|
||||||
|
这通常说明:
|
||||||
|
|
||||||
|
- URL 收口写错了
|
||||||
|
- 页面真实路由和模板输出不一致
|
||||||
|
- 或者把原本的兼容链路误伤了
|
||||||
|
|
||||||
|
## 一句话交接
|
||||||
|
|
||||||
|
> 老模板第一批施工,最稳的做法就是先改 15 个文件:5 套分类页、5 套播放页、5 套 sitemap-main;按“分类页先收口、播放页再收口、sitemap 最后收口”的顺序推进,边改边看重点域名日志,避免一次性大改失去归因。
|
||||||
337
docs/old-tmp-seo/23-老模板逐文件改动蓝图-2026-04-17.md
Normal file
337
docs/old-tmp-seo/23-老模板逐文件改动蓝图-2026-04-17.md
Normal file
@@ -0,0 +1,337 @@
|
|||||||
|
# 1292-SEONexus 老模板逐文件改动蓝图 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档不是再讲“为什么要改”,而是给主 Codex 一个几乎可以直接照着写 patch 的蓝图。
|
||||||
|
|
||||||
|
使用方式:
|
||||||
|
|
||||||
|
1. 先看 [21-老模板实施安全边界与GPT隔离说明-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/21-老模板实施安全边界与GPT隔离说明-2026-04-17.md)
|
||||||
|
2. 再看 [22-老模板第一批实施任务单与验收矩阵-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/22-老模板第一批实施任务单与验收矩阵-2026-04-17.md)
|
||||||
|
3. 最后按本文件逐文件落 patch
|
||||||
|
|
||||||
|
## 一、分类页 `getCategoryType.html` 改动蓝图
|
||||||
|
|
||||||
|
### 适用文件
|
||||||
|
|
||||||
|
- `videoDadi/video/getCategoryType.html`
|
||||||
|
- `videoDingZhu/video/getCategoryType.html`
|
||||||
|
- `videoBoKu/video/getCategoryType.html`
|
||||||
|
- `videoLaoNiu/video/getCategoryType.html`
|
||||||
|
- `videoNuNu/video/getCategoryType.html`
|
||||||
|
|
||||||
|
### 当前问题
|
||||||
|
|
||||||
|
共同问题:
|
||||||
|
|
||||||
|
- `og:url` 指首页
|
||||||
|
- `CollectionPage.url` 指首页
|
||||||
|
- 缺 canonical
|
||||||
|
|
||||||
|
### 目标状态
|
||||||
|
|
||||||
|
分类页 head 里至少统一成:
|
||||||
|
|
||||||
|
1. `canonical = 当前分类页真实 URL`
|
||||||
|
2. `og:url = 当前分类页真实 URL`
|
||||||
|
3. `CollectionPage.url = 当前分类页真实 URL`
|
||||||
|
|
||||||
|
### 最稳参考
|
||||||
|
|
||||||
|
直接参考 `videoGpt1` 当前写法:
|
||||||
|
|
||||||
|
- [videoGpt1/getCategoryType.html:15](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:15)
|
||||||
|
- [videoGpt1/getCategoryType.html:19](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:19)
|
||||||
|
- [videoGpt1/getCategoryType.html:46](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:46)
|
||||||
|
|
||||||
|
### 建议实现结构
|
||||||
|
|
||||||
|
在 `head` block 最前面补一条分类页 canonical:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}'>
|
||||||
|
```
|
||||||
|
|
||||||
|
然后把现有:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
|
||||||
|
```
|
||||||
|
|
||||||
|
统一改成:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}' />
|
||||||
|
```
|
||||||
|
|
||||||
|
再把 JSON-LD 里的:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
"url": "https://{$DomainModel->d_domain}",
|
||||||
|
```
|
||||||
|
|
||||||
|
改成:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
"url": "https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}",
|
||||||
|
```
|
||||||
|
|
||||||
|
### 可顺手补的项
|
||||||
|
|
||||||
|
如果改动很顺,也建议补:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
<meta name="robots" content="index,follow">
|
||||||
|
```
|
||||||
|
|
||||||
|
这不是当前最核心收益点,但与分类页聚合定位是一致的。
|
||||||
|
|
||||||
|
### 改后页面级验收
|
||||||
|
|
||||||
|
打开任一分类页,确认:
|
||||||
|
|
||||||
|
1. 页面源代码出现 canonical
|
||||||
|
2. canonical 指向分类页自己
|
||||||
|
3. `og:url` 指向分类页自己
|
||||||
|
4. JSON-LD `CollectionPage.url` 指向分类页自己
|
||||||
|
|
||||||
|
## 二、播放页 `getVideoPlayUrl.html` 改动蓝图
|
||||||
|
|
||||||
|
### 适用文件
|
||||||
|
|
||||||
|
- `videoDadi/video/getVideoPlayUrl.html`
|
||||||
|
- `videoDingZhu/video/getVideoPlayUrl.html`
|
||||||
|
- `videoBoKu/video/getVideoPlayUrl.html`
|
||||||
|
- `videoLaoNiu/video/getVideoPlayUrl.html`
|
||||||
|
- `videoNuNu/video/getVideoPlayUrl.html`
|
||||||
|
|
||||||
|
### 当前问题
|
||||||
|
|
||||||
|
共同问题:
|
||||||
|
|
||||||
|
- canonical 指播放页
|
||||||
|
- `og:url` 指详情页
|
||||||
|
- JSON-LD `url` 指详情页
|
||||||
|
|
||||||
|
### 目标状态
|
||||||
|
|
||||||
|
播放页三件套统一:
|
||||||
|
|
||||||
|
1. canonical 指播放页自己
|
||||||
|
2. `og:url` 指播放页自己
|
||||||
|
3. JSON-LD `url` 指播放页自己
|
||||||
|
|
||||||
|
### 最稳参考
|
||||||
|
|
||||||
|
参考 `videoGpt1` 播放页:
|
||||||
|
|
||||||
|
- [videoGpt1/getVideoPlayUrl.html:117](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
|
||||||
|
- [videoGpt1/getVideoPlayUrl.html:143](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:143)
|
||||||
|
- [videoGpt1/getVideoPlayUrl.html:202](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:202)
|
||||||
|
|
||||||
|
### 建议实现结构
|
||||||
|
|
||||||
|
老模板现在已经有 canonical,例如:
|
||||||
|
|
||||||
|
- [videoDadi/getVideoPlayUrl.html:58](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:58)
|
||||||
|
|
||||||
|
第一批最稳做法不是大改数据流,而是先把现有 `site:vpurl ...` 结果复用起来。
|
||||||
|
|
||||||
|
如果模板表达式可读性允许,直接统一为:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
{assign name="strPlayCanonicalUrl" value='https://`$DomainModel->d_domain`{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}' /}
|
||||||
|
```
|
||||||
|
|
||||||
|
如果 `assign` 混模板标签不稳,就直接把原地三处替换成同一条 `site:vpurl ...` 写法。
|
||||||
|
|
||||||
|
将当前:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vurl ...}'>
|
||||||
|
```
|
||||||
|
|
||||||
|
改成:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
|
||||||
|
```
|
||||||
|
|
||||||
|
将 JSON-LD 里的:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
"url": 'https://{$DomainModel->d_domain}{site:vurl ...}',
|
||||||
|
```
|
||||||
|
|
||||||
|
改成:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
"url": 'https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}',
|
||||||
|
```
|
||||||
|
|
||||||
|
### 当前第一批的保守策略
|
||||||
|
|
||||||
|
这里有一个需要主 Codex 注意的地方:
|
||||||
|
|
||||||
|
当前老模板 canonical 写死的是:
|
||||||
|
|
||||||
|
- `play_type="default"`
|
||||||
|
- `play_index="1"`
|
||||||
|
|
||||||
|
这并不一定等于当前访问中的真实线路和集数。
|
||||||
|
|
||||||
|
所以第一批有两种路线:
|
||||||
|
|
||||||
|
#### 路线 A:保守收口
|
||||||
|
|
||||||
|
目标:
|
||||||
|
|
||||||
|
- 先让三件套一致
|
||||||
|
- 即使先全部收口到默认播放页,也比 detail/play 信号分裂更好
|
||||||
|
|
||||||
|
优点:
|
||||||
|
|
||||||
|
- 改动小
|
||||||
|
- 风险低
|
||||||
|
- 更快看到 `play|301` 收敛
|
||||||
|
|
||||||
|
#### 路线 B:精确收口
|
||||||
|
|
||||||
|
目标:
|
||||||
|
|
||||||
|
- canonical / `og:url` / JSON-LD 精确指向当前播放中的真实 `play_type + play_index`
|
||||||
|
|
||||||
|
优点:
|
||||||
|
|
||||||
|
- 信号最准确
|
||||||
|
|
||||||
|
风险:
|
||||||
|
|
||||||
|
- 老模板当前 `Request.route` 和数据链未必完全统一
|
||||||
|
- 更容易把第一批改动做复杂
|
||||||
|
|
||||||
|
当前建议:
|
||||||
|
|
||||||
|
- 第一批先走路线 A
|
||||||
|
- 第二批再考虑是否升级到路线 B
|
||||||
|
|
||||||
|
### 改后页面级验收
|
||||||
|
|
||||||
|
打开任一播放页,确认:
|
||||||
|
|
||||||
|
1. canonical 存在
|
||||||
|
2. `og:url` 与 canonical 一致
|
||||||
|
3. JSON-LD `url` 与 canonical 一致
|
||||||
|
|
||||||
|
## 三、`sitemap-main.xml` 改动蓝图
|
||||||
|
|
||||||
|
### 适用文件
|
||||||
|
|
||||||
|
- `videoDadi/sitemap/sitemap-main.xml`
|
||||||
|
- `videoDingZhu/sitemap/sitemap-main.xml`
|
||||||
|
- `videoBoKu/sitemap/sitemap-main.xml`
|
||||||
|
- `videoLaoNiu/sitemap/sitemap-main.xml`
|
||||||
|
- `videoNuNu/sitemap/sitemap-main.xml`
|
||||||
|
|
||||||
|
### 当前问题
|
||||||
|
|
||||||
|
共同问题:
|
||||||
|
|
||||||
|
1. 输出 host 带 `www`
|
||||||
|
2. 目录明明是视频站,却用了:
|
||||||
|
- `novel:category`
|
||||||
|
- `site:nflurl`
|
||||||
|
|
||||||
|
### 第一批目标
|
||||||
|
|
||||||
|
第一批不追求“一步做出终极 sitemap”,先做两件事:
|
||||||
|
|
||||||
|
1. 不继续输出明显错误的小说站 URL
|
||||||
|
2. host 口径与当前主模板输出一致
|
||||||
|
|
||||||
|
### 建议改法
|
||||||
|
|
||||||
|
#### 最保守版本
|
||||||
|
|
||||||
|
如果主 Codex 当前对视频站 sitemap 真实结构还没完全确认,第一批可以先把 `sitemap-main.xml` 收缩成最小正确集:
|
||||||
|
|
||||||
|
- 首页
|
||||||
|
- 榜单页
|
||||||
|
|
||||||
|
也就是保留:
|
||||||
|
|
||||||
|
- [sitemap-main.xml:3-15](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:3)
|
||||||
|
|
||||||
|
但把:
|
||||||
|
|
||||||
|
- [sitemap-main.xml:17-31](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:17)
|
||||||
|
|
||||||
|
这一整段小说站逻辑先移除或注释为待重建。
|
||||||
|
|
||||||
|
同时把:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
https://www.{$DomainModel->d_domain}
|
||||||
|
```
|
||||||
|
|
||||||
|
统一改成:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
https://{$DomainModel->d_domain}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 更积极版本
|
||||||
|
|
||||||
|
如果主 Codex 很快确认了视频分类页应走 `site:vciurl` 或其他视频路由,那就直接按视频分类 URL 重建分类 sitemap。
|
||||||
|
|
||||||
|
当前我建议第一批先别赌这一步,先走最保守版本更稳。
|
||||||
|
|
||||||
|
### 改后页面级验收
|
||||||
|
|
||||||
|
访问 `sitemap-main.xml`,确认:
|
||||||
|
|
||||||
|
1. 返回正常 XML
|
||||||
|
2. 没有 `novel`/`nflurl` 这类错误视频站路径
|
||||||
|
3. host 输出与页面主输出一致
|
||||||
|
|
||||||
|
## 四、逐文件施工顺序
|
||||||
|
|
||||||
|
建议主 Codex 严格按下面顺序:
|
||||||
|
|
||||||
|
1. 五套 `getCategoryType.html`
|
||||||
|
2. 五套 `getVideoPlayUrl.html`
|
||||||
|
3. 五套 `sitemap-main.xml`
|
||||||
|
|
||||||
|
不要交叉着零散改。
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 先收聚合页
|
||||||
|
- 再收播放页
|
||||||
|
- 最后再收 sitemap
|
||||||
|
|
||||||
|
这样每一步的日志变化更容易归因。
|
||||||
|
|
||||||
|
## 五、改动后的优先复测域名
|
||||||
|
|
||||||
|
### 分类页优先复测
|
||||||
|
|
||||||
|
- `ningxiaowei.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
- `sctyjz.com`
|
||||||
|
- `www.ap-hulan.com`
|
||||||
|
|
||||||
|
### 播放页优先复测
|
||||||
|
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `ningxiaowei.com`
|
||||||
|
|
||||||
|
### sitemap 优先复测
|
||||||
|
|
||||||
|
- `sctyjz.com`
|
||||||
|
- `hymdrz.com`
|
||||||
|
- `www.ap-hulan.com`
|
||||||
|
|
||||||
|
## 六、一句话交接
|
||||||
|
|
||||||
|
> 主 Codex 如果现在开始动老模板第一批 patch,最稳方法就是:分类页直接参考 `videoGpt1` 的分类页写法做 URL 收口;播放页先保守统一到同一条 `site:vpurl`;sitemap-main 第一批先去掉明显错误的小说逻辑并收口 host。先把信号统一,再追求更精细化。
|
||||||
190
docs/old-tmp-seo/24-老模板第一批施工索引页-2026-04-17.md
Normal file
190
docs/old-tmp-seo/24-老模板第一批施工索引页-2026-04-17.md
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
# 1293-SEONexus 老模板第一批施工索引页 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档是给主 Codex、后续会话、或人工接手时使用的“一页开工入口”。
|
||||||
|
|
||||||
|
它不重复长篇分析,只做三件事:
|
||||||
|
|
||||||
|
1. 告诉你先看哪几份文档
|
||||||
|
2. 告诉你第一批到底改哪 15 个文件
|
||||||
|
3. 告诉你改完先验哪些域名和哪些指标
|
||||||
|
|
||||||
|
## 一、先看这 4 份就够开工
|
||||||
|
|
||||||
|
如果现在要正式进入老模板第一批 SEO 实施,只看下面 4 份:
|
||||||
|
|
||||||
|
1. [21-老模板实施安全边界与GPT隔离说明-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/21-老模板实施安全边界与GPT隔离说明-2026-04-17.md)
|
||||||
|
2. [20-老模板第一批SEO高收益修正清单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/20-老模板第一批SEO高收益修正清单-2026-04-17.md)
|
||||||
|
3. [22-老模板第一批实施任务单与验收矩阵-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/22-老模板第一批实施任务单与验收矩阵-2026-04-17.md)
|
||||||
|
4. [23-老模板逐文件改动蓝图-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/23-老模板逐文件改动蓝图-2026-04-17.md)
|
||||||
|
|
||||||
|
它们分别解决:
|
||||||
|
|
||||||
|
- 改动边界
|
||||||
|
- 优先级
|
||||||
|
- 实施顺序与验收方式
|
||||||
|
- 逐文件改法
|
||||||
|
|
||||||
|
## 二、第一批只改这 15 个文件
|
||||||
|
|
||||||
|
本批次不扩散,不自由发挥,只改下面 15 个文件。
|
||||||
|
|
||||||
|
### 1. 分类页 5 个
|
||||||
|
|
||||||
|
- [videoDadi/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:15)
|
||||||
|
- [videoDingZhu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:15)
|
||||||
|
- [videoBoKu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getCategoryType.html:15)
|
||||||
|
- [videoLaoNiu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getCategoryType.html:15)
|
||||||
|
- [videoNuNu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getCategoryType.html:15)
|
||||||
|
|
||||||
|
### 2. 播放页 5 个
|
||||||
|
|
||||||
|
- [videoDadi/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:22)
|
||||||
|
- [videoDingZhu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:22)
|
||||||
|
- [videoBoKu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:22)
|
||||||
|
- [videoLaoNiu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:22)
|
||||||
|
- [videoNuNu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:22)
|
||||||
|
|
||||||
|
### 3. sitemap-main 5 个
|
||||||
|
|
||||||
|
- [videoDadi/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:1)
|
||||||
|
- [videoDingZhu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/sitemap-main.xml:1)
|
||||||
|
- [videoBoKu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/sitemap-main.xml:1)
|
||||||
|
- [videoLaoNiu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/sitemap-main.xml:1)
|
||||||
|
- [videoNuNu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/sitemap-main.xml:1)
|
||||||
|
|
||||||
|
## 三、这 15 个文件分别要做什么
|
||||||
|
|
||||||
|
### 分类页 5 个
|
||||||
|
|
||||||
|
统一目标:
|
||||||
|
|
||||||
|
- 增加 canonical
|
||||||
|
- 把 `og:url` 从首页改成分类页真实 URL
|
||||||
|
- 把 `CollectionPage.url` 从首页改成分类页真实 URL
|
||||||
|
|
||||||
|
参考模板:
|
||||||
|
|
||||||
|
- [videoGpt1/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:13)
|
||||||
|
|
||||||
|
### 播放页 5 个
|
||||||
|
|
||||||
|
统一目标:
|
||||||
|
|
||||||
|
- canonical、`og:url`、JSON-LD `url` 三件套全部统一到播放页 URL
|
||||||
|
|
||||||
|
当前策略:
|
||||||
|
|
||||||
|
- 第一批先采用保守收口方案
|
||||||
|
- 不追求一步做到“当前线路当前集数完全精确”
|
||||||
|
- 先让信号一致,先压 `play|301`
|
||||||
|
|
||||||
|
参考模板:
|
||||||
|
|
||||||
|
- [videoGpt1/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:113)
|
||||||
|
|
||||||
|
### sitemap-main 5 个
|
||||||
|
|
||||||
|
统一目标:
|
||||||
|
|
||||||
|
- 先把 `www` 口径收掉
|
||||||
|
- 先把明显错误的 `novel:category / site:nflurl` 逻辑去掉
|
||||||
|
- 第一批先收缩为最小正确集,不急着一步重建完美视频 sitemap
|
||||||
|
|
||||||
|
## 四、推荐施工顺序
|
||||||
|
|
||||||
|
施工顺序不要乱,固定按这三段:
|
||||||
|
|
||||||
|
1. 先改 5 个分类页
|
||||||
|
2. 再改 5 个播放页
|
||||||
|
3. 最后改 5 个 sitemap-main
|
||||||
|
|
||||||
|
理由:
|
||||||
|
|
||||||
|
- 分类页收益最容易扩散到站群
|
||||||
|
- 播放页收益最容易体现在深抓
|
||||||
|
- sitemap 最后改,更方便归因首页与 host 变化
|
||||||
|
|
||||||
|
## 五、每一段改完先验什么
|
||||||
|
|
||||||
|
### 改完分类页后
|
||||||
|
|
||||||
|
先验页面:
|
||||||
|
|
||||||
|
- 分类页源代码里有没有 canonical
|
||||||
|
- canonical 是否是分类页真实 URL
|
||||||
|
- `og:url` 是否是分类页真实 URL
|
||||||
|
- `CollectionPage.url` 是否是分类页真实 URL
|
||||||
|
|
||||||
|
先验域名:
|
||||||
|
|
||||||
|
- `ningxiaowei.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
- `sctyjz.com`
|
||||||
|
- `www.ap-hulan.com`
|
||||||
|
|
||||||
|
### 改完播放页后
|
||||||
|
|
||||||
|
先验页面:
|
||||||
|
|
||||||
|
- canonical 是否存在
|
||||||
|
- `og:url` 是否与 canonical 一致
|
||||||
|
- JSON-LD `url` 是否与 canonical 一致
|
||||||
|
|
||||||
|
先验域名:
|
||||||
|
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `ningxiaowei.com`
|
||||||
|
|
||||||
|
### 改完 sitemap-main 后
|
||||||
|
|
||||||
|
先验页面:
|
||||||
|
|
||||||
|
- XML 是否正常
|
||||||
|
- host 是否与模板主输出一致
|
||||||
|
- 是否还残留 `novel`/`nflurl` 逻辑
|
||||||
|
|
||||||
|
先验域名:
|
||||||
|
|
||||||
|
- `sctyjz.com`
|
||||||
|
- `hymdrz.com`
|
||||||
|
- `www.ap-hulan.com`
|
||||||
|
|
||||||
|
## 六、日志里优先看这 6 个指标
|
||||||
|
|
||||||
|
第一批改完,不要贪多,每天先盯这 6 项:
|
||||||
|
|
||||||
|
1. `/|301`
|
||||||
|
2. `home|301`
|
||||||
|
3. `category|200`
|
||||||
|
4. `play|301`
|
||||||
|
5. `play|200`
|
||||||
|
6. `other|404`
|
||||||
|
|
||||||
|
如果这 6 个指标开始朝对的方向走,说明第一批动作在起作用。
|
||||||
|
|
||||||
|
## 七、失败时先查什么
|
||||||
|
|
||||||
|
如果改完后日志没改善,或者反而变差,优先回查:
|
||||||
|
|
||||||
|
1. 分类页 canonical 是否写错成首页
|
||||||
|
2. 播放页三件套是否仍然一半详情页一半播放页
|
||||||
|
3. sitemap-main 是否还在输出错误 host
|
||||||
|
4. 是否误伤了老模板原本还能承接旧 deep link 的链路
|
||||||
|
|
||||||
|
## 八、明确不做的事
|
||||||
|
|
||||||
|
第一批不要顺手做下面这些:
|
||||||
|
|
||||||
|
- 不改 `videoGpt1`
|
||||||
|
- 不改共享底层服务
|
||||||
|
- 不做首页大改版
|
||||||
|
- 不做逐站后台手工 SEO
|
||||||
|
- 不做内容文案大规模回灌
|
||||||
|
|
||||||
|
不是这些不重要,而是它们不属于当前第一批“高收益、低扩散、易归因”的实施范围。
|
||||||
|
|
||||||
|
## 一句话交接
|
||||||
|
|
||||||
|
> 如果现在主 Codex 要正式开工,直接从这 15 个文件开始,按“分类页 5 个 -> 播放页 5 个 -> sitemap-main 5 个”的顺序施工,改完立刻按重点域名和 6 个核心日志指标复测,不要扩散到 GPT 模板和共享底层。
|
||||||
181
docs/old-tmp-seo/25-老模板分类页Patch模板-2026-04-17.md
Normal file
181
docs/old-tmp-seo/25-老模板分类页Patch模板-2026-04-17.md
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
# 1294-SEONexus 老模板分类页 Patch 模板 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档专门服务第一批 5 个分类页文件。
|
||||||
|
|
||||||
|
它不是分析文档,而是一份“主 Codex 可直接照着写 patch”的模板说明。
|
||||||
|
|
||||||
|
适用文件:
|
||||||
|
|
||||||
|
- `videoDadi/video/getCategoryType.html`
|
||||||
|
- `videoDingZhu/video/getCategoryType.html`
|
||||||
|
- `videoBoKu/video/getCategoryType.html`
|
||||||
|
- `videoLaoNiu/video/getCategoryType.html`
|
||||||
|
- `videoNuNu/video/getCategoryType.html`
|
||||||
|
|
||||||
|
## 一、这 5 个文件当前共同问题
|
||||||
|
|
||||||
|
共同点几乎完全一致:
|
||||||
|
|
||||||
|
1. 缺少 canonical
|
||||||
|
2. `og:url` 指向首页
|
||||||
|
3. `CollectionPage.url` 指向首页
|
||||||
|
|
||||||
|
对应当前老模板写法:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
|
||||||
|
```
|
||||||
|
|
||||||
|
以及:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
"url": "https://{$DomainModel->d_domain}",
|
||||||
|
```
|
||||||
|
|
||||||
|
## 二、目标状态
|
||||||
|
|
||||||
|
统一收口成:
|
||||||
|
|
||||||
|
1. `meta name="robots" content="index,follow"`
|
||||||
|
2. canonical 指向当前分类页真实 URL
|
||||||
|
3. `og:url` 指向当前分类页真实 URL
|
||||||
|
4. `CollectionPage.url` 指向当前分类页真实 URL
|
||||||
|
|
||||||
|
最稳参考来源:
|
||||||
|
|
||||||
|
- [videoGpt1/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:13)
|
||||||
|
|
||||||
|
## 三、推荐 patch 思路
|
||||||
|
|
||||||
|
### 第一步:在 `head` block 顶部补两行
|
||||||
|
|
||||||
|
在:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
{block name="head"}
|
||||||
|
```
|
||||||
|
|
||||||
|
后面直接补:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
<meta name="robots" content="index,follow">
|
||||||
|
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}'>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 第二步:替换 `og:url`
|
||||||
|
|
||||||
|
把当前:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
|
||||||
|
```
|
||||||
|
|
||||||
|
替换为:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}' />
|
||||||
|
```
|
||||||
|
|
||||||
|
### 第三步:替换 JSON-LD 的 `CollectionPage.url`
|
||||||
|
|
||||||
|
把当前:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
"url": "https://{$DomainModel->d_domain}",
|
||||||
|
```
|
||||||
|
|
||||||
|
替换为:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
"url": "https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}",
|
||||||
|
```
|
||||||
|
|
||||||
|
## 四、推荐的统一替换结果
|
||||||
|
|
||||||
|
如果主 Codex 想直接对照最终形态,`head` block 开头应该接近下面这样:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
{block name="head"}
|
||||||
|
<meta name="robots" content="index,follow">
|
||||||
|
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}'>
|
||||||
|
|
||||||
|
<!-- 社交媒体标签 -->
|
||||||
|
<meta property="og:title" content='{site:replace code="VIDEO@GETCATEGORYINDEX@TITLE"}' />
|
||||||
|
<meta property="og:description" content='{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}' />
|
||||||
|
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}' />
|
||||||
|
```
|
||||||
|
|
||||||
|
对应 JSON-LD 开头应接近:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
{
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "CollectionPage",
|
||||||
|
"name": "{$DomainModel->d_name} - 最新{site:getval code="strVideoParentCategoryName" /}推荐",
|
||||||
|
"url": "https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}",
|
||||||
|
"description": "{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}",
|
||||||
|
```
|
||||||
|
|
||||||
|
## 五、5 个文件的微差异提醒
|
||||||
|
|
||||||
|
这 5 个文件里真正需要注意的差异非常少:
|
||||||
|
|
||||||
|
### `videoNuNu`
|
||||||
|
|
||||||
|
它的 `ranklist` 参数写的是:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
v_category_en="$Request.route.strParentCategory"
|
||||||
|
```
|
||||||
|
|
||||||
|
不是别的模板常见的:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
v_parent_category_en="$Request.route.strParentCategory"
|
||||||
|
```
|
||||||
|
|
||||||
|
但这不影响本次 patch,因为我们只改:
|
||||||
|
|
||||||
|
- canonical
|
||||||
|
- `og:url`
|
||||||
|
- `CollectionPage.url`
|
||||||
|
|
||||||
|
### 其它 4 套
|
||||||
|
|
||||||
|
这 4 套在这次 patch 涉及的区域里基本是同构的,可以直接统一处理。
|
||||||
|
|
||||||
|
## 六、建议验收方式
|
||||||
|
|
||||||
|
每改完 1 个文件就做一次最小验收,不要 5 个全改完才看。
|
||||||
|
|
||||||
|
### 页面源代码验收
|
||||||
|
|
||||||
|
确认:
|
||||||
|
|
||||||
|
1. 有 canonical
|
||||||
|
2. canonical 指向分类页自己
|
||||||
|
3. `og:url` 指向分类页自己
|
||||||
|
4. JSON-LD `CollectionPage.url` 指向分类页自己
|
||||||
|
|
||||||
|
### 域名级优先验收
|
||||||
|
|
||||||
|
优先看:
|
||||||
|
|
||||||
|
- `ningxiaowei.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
- `sctyjz.com`
|
||||||
|
- `www.ap-hulan.com`
|
||||||
|
|
||||||
|
## 七、验收后的日志观察
|
||||||
|
|
||||||
|
改完这 5 个分类页之后,连续看 3 天最值得盯的是:
|
||||||
|
|
||||||
|
1. `category|200` 是否开始增加
|
||||||
|
2. `/|301` 是否继续下降
|
||||||
|
3. `home|301` 是否继续下降
|
||||||
|
|
||||||
|
## 一句话交接
|
||||||
|
|
||||||
|
> 老模板第一批最适合先落地的,就是这 5 个分类页 patch;它们结构接近、收益集中、风险低,而且能最快验证“分类页从首页附属信号变成独立聚合页”这条 SEO 主线是否开始生效。
|
||||||
197
docs/old-tmp-seo/26-老模板播放页Patch模板-2026-04-17.md
Normal file
197
docs/old-tmp-seo/26-老模板播放页Patch模板-2026-04-17.md
Normal file
@@ -0,0 +1,197 @@
|
|||||||
|
# 1295-SEONexus 老模板播放页 Patch 模板 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档专门服务第一批 5 个播放页文件。
|
||||||
|
|
||||||
|
它的作用和 [25-老模板分类页Patch模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/25-老模板分类页Patch模板-2026-04-17.md) 一样:
|
||||||
|
|
||||||
|
- 不是继续分析
|
||||||
|
- 而是给主 Codex 一份可以直接照着写 patch 的模板
|
||||||
|
|
||||||
|
适用文件:
|
||||||
|
|
||||||
|
- `videoDadi/video/getVideoPlayUrl.html`
|
||||||
|
- `videoDingZhu/video/getVideoPlayUrl.html`
|
||||||
|
- `videoBoKu/video/getVideoPlayUrl.html`
|
||||||
|
- `videoLaoNiu/video/getVideoPlayUrl.html`
|
||||||
|
- `videoNuNu/video/getVideoPlayUrl.html`
|
||||||
|
|
||||||
|
## 一、这 5 个文件当前共同问题
|
||||||
|
|
||||||
|
共同问题非常一致:
|
||||||
|
|
||||||
|
1. canonical 已经是播放页
|
||||||
|
2. `og:url` 仍然是详情页
|
||||||
|
3. JSON-LD `url` 仍然是详情页
|
||||||
|
|
||||||
|
也就是说当前是典型的:
|
||||||
|
|
||||||
|
- 一半在说“我是播放页”
|
||||||
|
- 一半在说“我是详情页”
|
||||||
|
|
||||||
|
这会持续制造:
|
||||||
|
|
||||||
|
- `play|301`
|
||||||
|
- 详情页与播放页规范信号冲突
|
||||||
|
|
||||||
|
## 二、目标状态
|
||||||
|
|
||||||
|
播放页三件套全部统一:
|
||||||
|
|
||||||
|
1. canonical 指向播放页
|
||||||
|
2. `og:url` 指向播放页
|
||||||
|
3. JSON-LD `url` 指向播放页
|
||||||
|
|
||||||
|
## 三、当前最稳策略
|
||||||
|
|
||||||
|
### 第一批先走保守收口
|
||||||
|
|
||||||
|
当前老模板 canonical 写法普遍是:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}
|
||||||
|
```
|
||||||
|
|
||||||
|
这不一定是当前真实线路和真实集数,但它至少已经是“播放页路径”。
|
||||||
|
|
||||||
|
因此第一批最稳策略不是一步做复杂,而是:
|
||||||
|
|
||||||
|
- 先让 `og:url` 和 JSON-LD `url` 与当前 canonical 完全一致
|
||||||
|
|
||||||
|
这样能最快消除 detail/play 信号分裂。
|
||||||
|
|
||||||
|
## 四、最稳参考
|
||||||
|
|
||||||
|
可以参考 `videoGpt1` 当前播放页:
|
||||||
|
|
||||||
|
- [videoGpt1/getVideoPlayUrl.html:117](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:117)
|
||||||
|
- [videoGpt1/getVideoPlayUrl.html:143](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:143)
|
||||||
|
- [videoGpt1/getVideoPlayUrl.html:202](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:202)
|
||||||
|
|
||||||
|
GPT 那边已经是:
|
||||||
|
|
||||||
|
- canonical、`og:url`、JSON-LD `url` 三者完全一致
|
||||||
|
|
||||||
|
## 五、推荐 patch 思路
|
||||||
|
|
||||||
|
### 第一步:保留当前 canonical 不动
|
||||||
|
|
||||||
|
当前老模板 canonical 已经存在,例如:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
{if $Request.route.intVId && $Request.route.intVForgeId}
|
||||||
|
<link rel="canonical"
|
||||||
|
href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
|
||||||
|
{/if}
|
||||||
|
```
|
||||||
|
|
||||||
|
第一批先不要动这段结构。
|
||||||
|
|
||||||
|
### 第二步:把 `og:url` 改成和 canonical 一致
|
||||||
|
|
||||||
|
把当前:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'>
|
||||||
|
```
|
||||||
|
|
||||||
|
统一替换为:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 第三步:把 JSON-LD `url` 改成和 canonical 一致
|
||||||
|
|
||||||
|
把当前:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}',
|
||||||
|
```
|
||||||
|
|
||||||
|
统一替换为:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
"url": 'https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}',
|
||||||
|
```
|
||||||
|
|
||||||
|
## 六、推荐的统一替换结果
|
||||||
|
|
||||||
|
### 头部关键区域
|
||||||
|
|
||||||
|
最终应接近:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
{if $Request.route.intVId && $Request.route.intVForgeId}
|
||||||
|
<link rel="canonical"
|
||||||
|
href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<meta property="og:url"
|
||||||
|
content='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
|
||||||
|
```
|
||||||
|
|
||||||
|
### JSON-LD 区域
|
||||||
|
|
||||||
|
最终应接近:
|
||||||
|
|
||||||
|
```tpl
|
||||||
|
"url": 'https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}',
|
||||||
|
```
|
||||||
|
|
||||||
|
## 七、5 个文件的差异提醒
|
||||||
|
|
||||||
|
这 5 个文件在当前 patch 涉及区域内几乎完全同构。
|
||||||
|
|
||||||
|
也就是说:
|
||||||
|
|
||||||
|
- 这组 patch 比分类页还更适合批量统一处理
|
||||||
|
|
||||||
|
目前没有看到会影响这次 patch 的明显结构差异。
|
||||||
|
|
||||||
|
## 八、为什么第一批不直接做“当前线路当前集数精确 URL”
|
||||||
|
|
||||||
|
因为那会把这批 patch 从“稳定收口”变成“逻辑改造”。
|
||||||
|
|
||||||
|
第一批更稳的目标是:
|
||||||
|
|
||||||
|
- 先把 detail/play 信号分裂压掉
|
||||||
|
- 先让播放页内部信号统一
|
||||||
|
|
||||||
|
等第一批跑通之后,第二批再评估要不要升级为:
|
||||||
|
|
||||||
|
- 根据 `Request.route.strPlayType`
|
||||||
|
- 根据 `Request.route.intPlayIndex`
|
||||||
|
- 输出当前真实播放页 URL
|
||||||
|
|
||||||
|
## 九、建议验收方式
|
||||||
|
|
||||||
|
每改完 1 个文件,至少做一次页面级验收。
|
||||||
|
|
||||||
|
### 页面源代码验收
|
||||||
|
|
||||||
|
确认:
|
||||||
|
|
||||||
|
1. canonical 仍存在
|
||||||
|
2. `og:url` 与 canonical 完全一致
|
||||||
|
3. JSON-LD `url` 与 canonical 完全一致
|
||||||
|
|
||||||
|
### 域名级优先验收
|
||||||
|
|
||||||
|
优先看:
|
||||||
|
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `ningxiaowei.com`
|
||||||
|
|
||||||
|
## 十、验收后的日志观察
|
||||||
|
|
||||||
|
改完这 5 个播放页之后,连续看 3 天最值得盯的是:
|
||||||
|
|
||||||
|
1. `play|301` 是否下降
|
||||||
|
2. `play|200` 是否更稳
|
||||||
|
3. `detail|301` 是否开始和 `play|301` 一起收敛
|
||||||
|
|
||||||
|
## 一句话交接
|
||||||
|
|
||||||
|
> 老模板第一批播放页 patch 的核心不是“做得多花”,而是先让 canonical、`og:url`、JSON-LD `url` 说同一句话;只要这 5 个播放页先统一收口,深页的百度识别成本就会明显下降。
|
||||||
214
docs/old-tmp-seo/27-老模板SitemapPatch模板-2026-04-17.md
Normal file
214
docs/old-tmp-seo/27-老模板SitemapPatch模板-2026-04-17.md
Normal file
@@ -0,0 +1,214 @@
|
|||||||
|
# 1296-SEONexus 老模板 Sitemap Patch 模板 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档专门服务第一批 5 个 `sitemap-main.xml` 文件。
|
||||||
|
|
||||||
|
适用文件:
|
||||||
|
|
||||||
|
- `videoDadi/sitemap/sitemap-main.xml`
|
||||||
|
- `videoDingZhu/sitemap/sitemap-main.xml`
|
||||||
|
- `videoBoKu/sitemap/sitemap-main.xml`
|
||||||
|
- `videoLaoNiu/sitemap/sitemap-main.xml`
|
||||||
|
- `videoNuNu/sitemap/sitemap-main.xml`
|
||||||
|
|
||||||
|
它的目标不是一步做成终极 sitemap,而是给主 Codex 一份“先止损、先收口”的 patch 模板。
|
||||||
|
|
||||||
|
## 一、这 5 个文件当前共同问题
|
||||||
|
|
||||||
|
5 套文件当前完全同构,问题也完全一致:
|
||||||
|
|
||||||
|
1. host 使用 `https://www.{$DomainModel->d_domain}`
|
||||||
|
2. 页面逻辑明显像小说站:
|
||||||
|
- `novel:category`
|
||||||
|
- `novel:sort`
|
||||||
|
- `novel:status`
|
||||||
|
- `site:nflurl`
|
||||||
|
|
||||||
|
这意味着当前 `sitemap-main.xml` 至少存在两层问题:
|
||||||
|
|
||||||
|
- host 口径和页面主输出不一致
|
||||||
|
- 页型逻辑本身很可能就不属于视频站
|
||||||
|
|
||||||
|
## 二、为什么第一批不建议“直接重建完整视频 sitemap”
|
||||||
|
|
||||||
|
因为第一批当前更重要的是:
|
||||||
|
|
||||||
|
- 先停止输出错误信号
|
||||||
|
- 先停止 sitemap 自己制造 `www` 级跳转
|
||||||
|
|
||||||
|
如果现在就直接重建完整视频 sitemap,会立刻引入这些风险:
|
||||||
|
|
||||||
|
- 需要重新确认视频分类页、榜单页、详情页到底要进哪些
|
||||||
|
- 需要确认对应模板是否都已有稳定最终 URL
|
||||||
|
- 需要确认分页和去重策略
|
||||||
|
|
||||||
|
这会让第一批从“快速止损”变成“大重构”。
|
||||||
|
|
||||||
|
## 三、第一批最稳策略
|
||||||
|
|
||||||
|
### 策略名:最小正确集
|
||||||
|
|
||||||
|
第一批建议把 `sitemap-main.xml` 收缩成只保留:
|
||||||
|
|
||||||
|
1. 首页
|
||||||
|
2. 榜单首页
|
||||||
|
|
||||||
|
同时完成两件事:
|
||||||
|
|
||||||
|
- 去掉 `www`
|
||||||
|
- 删除整段明显错误的小说站逻辑
|
||||||
|
|
||||||
|
## 四、为什么这个策略是当前最稳的
|
||||||
|
|
||||||
|
因为现在 `robots.txt` 已经统一指向:
|
||||||
|
|
||||||
|
```txt
|
||||||
|
Sitemap: https://{$DomainModel->d_domain}/sitemap_index.xml
|
||||||
|
```
|
||||||
|
|
||||||
|
也就是说:
|
||||||
|
|
||||||
|
- `robots.txt` 已经在告诉蜘蛛“请走裸域 sitemap”
|
||||||
|
|
||||||
|
但 `sitemap-main.xml` 还在吐:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
https://www.{$DomainModel->d_domain}
|
||||||
|
```
|
||||||
|
|
||||||
|
这本身就在制造冲突。
|
||||||
|
|
||||||
|
所以第一批先做:
|
||||||
|
|
||||||
|
- `robots.txt` 继续保持不动
|
||||||
|
- `sitemap-main.xml` 收口到与它一致
|
||||||
|
|
||||||
|
这是最容易立刻减少内部冲突的一刀。
|
||||||
|
|
||||||
|
## 五、推荐 patch 思路
|
||||||
|
|
||||||
|
### 当前错误版本的典型结构
|
||||||
|
|
||||||
|
当前文件大致是:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<url>
|
||||||
|
<loc>https://www.{$DomainModel->d_domain}/</loc>
|
||||||
|
...
|
||||||
|
</url>
|
||||||
|
|
||||||
|
<url>
|
||||||
|
<loc>https://www.{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
|
||||||
|
...
|
||||||
|
</url>
|
||||||
|
|
||||||
|
{novel:category ...}
|
||||||
|
{novel:sort ...}
|
||||||
|
{novel:status ...}
|
||||||
|
<url>
|
||||||
|
<loc>https://www.{$DomainModel->d_domain}{site:nflurl ... /}</loc>
|
||||||
|
...
|
||||||
|
</url>
|
||||||
|
{/novel:status}
|
||||||
|
{/novel:sort}
|
||||||
|
{/novel:category}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 第一批建议改成
|
||||||
|
|
||||||
|
保留首页和榜单页,但去掉 `www`:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
|
<url>
|
||||||
|
<loc>https://{$DomainModel->d_domain}/</loc>
|
||||||
|
<lastmod>{:date('Y-m-d')}</lastmod>
|
||||||
|
<changefreq>daily</changefreq>
|
||||||
|
<priority>1.0</priority>
|
||||||
|
</url>
|
||||||
|
|
||||||
|
<url>
|
||||||
|
<loc>https://{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
|
||||||
|
<lastmod>{:date('Y-m-d')}</lastmod>
|
||||||
|
<changefreq>daily</changefreq>
|
||||||
|
<priority>1.0</priority>
|
||||||
|
</url>
|
||||||
|
</urlset>
|
||||||
|
```
|
||||||
|
|
||||||
|
## 六、推荐 patch 结果的优点
|
||||||
|
|
||||||
|
这个“最小正确集”版本有 4 个优点:
|
||||||
|
|
||||||
|
1. 不再输出明显错误的小说站路径
|
||||||
|
2. 不再继续输出 `www`
|
||||||
|
3. 不需要先设计视频分类 sitemap 结构
|
||||||
|
4. 最容易快速验证是否减少 `/|301` 和 host 级冲突
|
||||||
|
|
||||||
|
## 七、当前不建议在第一批做的事
|
||||||
|
|
||||||
|
下面这些更适合第二批:
|
||||||
|
|
||||||
|
- 把视频分类页全部灌进 `sitemap-main.xml`
|
||||||
|
- 把详情页或播放页直接灌进 `sitemap-main.xml`
|
||||||
|
- 在 `sitemap-main.xml` 里处理复杂分页
|
||||||
|
- 重新设计多 sitemap 分片策略
|
||||||
|
|
||||||
|
不是这些没价值,而是它们更适合在第一批止损之后做。
|
||||||
|
|
||||||
|
## 八、和 `robots.txt` 的关系
|
||||||
|
|
||||||
|
当前 5 套 `robots.txt` 的最后一行已经统一是:
|
||||||
|
|
||||||
|
```txt
|
||||||
|
Sitemap: https://{$DomainModel->d_domain}/sitemap_index.xml
|
||||||
|
```
|
||||||
|
|
||||||
|
因此第一批 patch 的原则是:
|
||||||
|
|
||||||
|
- 让 `sitemap-main.xml` 向 `robots.txt` 靠齐
|
||||||
|
- 而不是反过来去改 `robots.txt`
|
||||||
|
|
||||||
|
这也是为什么当前建议:
|
||||||
|
|
||||||
|
- `robots.txt` 暂不主改
|
||||||
|
- 主改 `sitemap-main.xml`
|
||||||
|
|
||||||
|
## 九、建议验收方式
|
||||||
|
|
||||||
|
每改完 1 个 `sitemap-main.xml`,先做最小验收。
|
||||||
|
|
||||||
|
### 页面源代码验收
|
||||||
|
|
||||||
|
确认:
|
||||||
|
|
||||||
|
1. XML 可以正常访问
|
||||||
|
2. 首页 `<loc>` 是裸域,不是 `www`
|
||||||
|
3. 榜单页 `<loc>` 是裸域,不是 `www`
|
||||||
|
4. 文件里不再出现:
|
||||||
|
- `novel:category`
|
||||||
|
- `novel:sort`
|
||||||
|
- `novel:status`
|
||||||
|
- `site:nflurl`
|
||||||
|
|
||||||
|
### 域名级优先验收
|
||||||
|
|
||||||
|
优先看:
|
||||||
|
|
||||||
|
- `sctyjz.com`
|
||||||
|
- `www.ap-hulan.com`
|
||||||
|
- `hymdrz.com`
|
||||||
|
|
||||||
|
## 十、验收后的日志观察
|
||||||
|
|
||||||
|
改完这 5 个 sitemap 之后,连续看 3 天最值得盯的是:
|
||||||
|
|
||||||
|
1. `/|301` 是否下降
|
||||||
|
2. `home|301` 是否下降
|
||||||
|
3. host 分裂是否开始减轻
|
||||||
|
|
||||||
|
## 十一、一句话交接
|
||||||
|
|
||||||
|
> 老模板第一批 sitemap patch 的核心不是“马上做大做全”,而是先让 sitemap 不再输出明显错误的小说站路径,不再自带 `www` 级冲突;只要先把 sitemap-main 收成最小正确集,就已经是在给百度减损。
|
||||||
246
docs/old-tmp-seo/28-老模板第一批施工总表-2026-04-17.md
Normal file
246
docs/old-tmp-seo/28-老模板第一批施工总表-2026-04-17.md
Normal file
@@ -0,0 +1,246 @@
|
|||||||
|
# 1297-SEONexus 老模板第一批施工总表 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档是老模板第一批 SEO 实施的最终总表。
|
||||||
|
|
||||||
|
它把前面的:
|
||||||
|
|
||||||
|
- [24-老模板第一批施工索引页-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/24-老模板第一批施工索引页-2026-04-17.md)
|
||||||
|
- [25-老模板分类页Patch模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/25-老模板分类页Patch模板-2026-04-17.md)
|
||||||
|
- [26-老模板播放页Patch模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/26-老模板播放页Patch模板-2026-04-17.md)
|
||||||
|
- [27-老模板SitemapPatch模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/27-老模板SitemapPatch模板-2026-04-17.md)
|
||||||
|
|
||||||
|
压缩成一张主 Codex 可以直接照着执行的表。
|
||||||
|
|
||||||
|
## 一、实施边界
|
||||||
|
|
||||||
|
这次只改老模板 5 套:
|
||||||
|
|
||||||
|
- `videoDadi`
|
||||||
|
- `videoDingZhu`
|
||||||
|
- `videoBoKu`
|
||||||
|
- `videoLaoNiu`
|
||||||
|
- `videoNuNu`
|
||||||
|
|
||||||
|
不碰:
|
||||||
|
|
||||||
|
- `videoGpt1`
|
||||||
|
- `VideoService`
|
||||||
|
- `SiteContext`
|
||||||
|
- 路由层
|
||||||
|
|
||||||
|
## 二、第一批总任务
|
||||||
|
|
||||||
|
总共 15 个文件,分 3 组:
|
||||||
|
|
||||||
|
1. 分类页 5 个
|
||||||
|
2. 播放页 5 个
|
||||||
|
3. sitemap-main 5 个
|
||||||
|
|
||||||
|
推荐施工顺序固定为:
|
||||||
|
|
||||||
|
1. 分类页
|
||||||
|
2. 播放页
|
||||||
|
3. sitemap-main
|
||||||
|
|
||||||
|
## 三、逐组施工总表
|
||||||
|
|
||||||
|
### A 组:分类页 5 个
|
||||||
|
|
||||||
|
#### 文件
|
||||||
|
|
||||||
|
- [videoDadi/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getCategoryType.html:15)
|
||||||
|
- [videoDingZhu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getCategoryType.html:15)
|
||||||
|
- [videoBoKu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getCategoryType.html:15)
|
||||||
|
- [videoLaoNiu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getCategoryType.html:15)
|
||||||
|
- [videoNuNu/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getCategoryType.html:15)
|
||||||
|
|
||||||
|
#### 统一改动
|
||||||
|
|
||||||
|
- 增加 `meta name="robots" content="index,follow"`
|
||||||
|
- 增加 canonical
|
||||||
|
- 把 `og:url` 改成分类页真实 URL
|
||||||
|
- 把 JSON-LD `CollectionPage.url` 改成分类页真实 URL
|
||||||
|
|
||||||
|
#### 参考模板
|
||||||
|
|
||||||
|
- [25-老模板分类页Patch模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/25-老模板分类页Patch模板-2026-04-17.md)
|
||||||
|
- [videoGpt1/getCategoryType.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getCategoryType.html:13)
|
||||||
|
|
||||||
|
#### 改后先验
|
||||||
|
|
||||||
|
- `ningxiaowei.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
- `sctyjz.com`
|
||||||
|
- `www.ap-hulan.com`
|
||||||
|
|
||||||
|
#### 预期日志信号
|
||||||
|
|
||||||
|
- `category|200` 上升
|
||||||
|
- `/|301` 下降
|
||||||
|
- `home|301` 下降
|
||||||
|
|
||||||
|
### B 组:播放页 5 个
|
||||||
|
|
||||||
|
#### 文件
|
||||||
|
|
||||||
|
- [videoDadi/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/video/getVideoPlayUrl.html:22)
|
||||||
|
- [videoDingZhu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/video/getVideoPlayUrl.html:22)
|
||||||
|
- [videoBoKu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/video/getVideoPlayUrl.html:22)
|
||||||
|
- [videoLaoNiu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/video/getVideoPlayUrl.html:22)
|
||||||
|
- [videoNuNu/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/video/getVideoPlayUrl.html:22)
|
||||||
|
|
||||||
|
#### 统一改动
|
||||||
|
|
||||||
|
- 保留现有 canonical 结构
|
||||||
|
- 把 `og:url` 改成与 canonical 一致
|
||||||
|
- 把 JSON-LD `url` 改成与 canonical 一致
|
||||||
|
|
||||||
|
#### 当前策略
|
||||||
|
|
||||||
|
- 第一批采用保守收口
|
||||||
|
- 统一到当前已有的默认播放页 `site:vpurl`
|
||||||
|
- 不先做“当前线路当前集数”精确化
|
||||||
|
|
||||||
|
#### 参考模板
|
||||||
|
|
||||||
|
- [26-老模板播放页Patch模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/26-老模板播放页Patch模板-2026-04-17.md)
|
||||||
|
- [videoGpt1/getVideoPlayUrl.html](/www/wwwroot/VideoSource2/code/app/home/view/videoGpt1/video/getVideoPlayUrl.html:113)
|
||||||
|
|
||||||
|
#### 改后先验
|
||||||
|
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `ningxiaowei.com`
|
||||||
|
|
||||||
|
#### 预期日志信号
|
||||||
|
|
||||||
|
- `play|301` 下降
|
||||||
|
- `play|200` 更稳
|
||||||
|
|
||||||
|
### C 组:sitemap-main 5 个
|
||||||
|
|
||||||
|
#### 文件
|
||||||
|
|
||||||
|
- [videoDadi/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoDadi/sitemap/sitemap-main.xml:1)
|
||||||
|
- [videoDingZhu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoDingZhu/sitemap/sitemap-main.xml:1)
|
||||||
|
- [videoBoKu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoBoKu/sitemap/sitemap-main.xml:1)
|
||||||
|
- [videoLaoNiu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoLaoNiu/sitemap/sitemap-main.xml:1)
|
||||||
|
- [videoNuNu/sitemap-main.xml](/www/wwwroot/VideoSource2/code/app/home/view/videoNuNu/sitemap/sitemap-main.xml:1)
|
||||||
|
|
||||||
|
#### 统一改动
|
||||||
|
|
||||||
|
- 去掉 `www`
|
||||||
|
- 删除明显错误的小说站逻辑:
|
||||||
|
- `novel:category`
|
||||||
|
- `novel:sort`
|
||||||
|
- `novel:status`
|
||||||
|
- `site:nflurl`
|
||||||
|
- 第一批先收缩成“最小正确集”:
|
||||||
|
- 首页
|
||||||
|
- 榜单首页
|
||||||
|
|
||||||
|
#### 为什么先这样做
|
||||||
|
|
||||||
|
- `robots.txt` 当前已经统一指向裸域 `sitemap_index.xml`
|
||||||
|
- 先让 `sitemap-main.xml` 和它一致
|
||||||
|
- 先停止 sitemap 自己制造错误信号
|
||||||
|
|
||||||
|
#### 参考模板
|
||||||
|
|
||||||
|
- [27-老模板SitemapPatch模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/27-老模板SitemapPatch模板-2026-04-17.md)
|
||||||
|
|
||||||
|
#### 改后先验
|
||||||
|
|
||||||
|
- `sctyjz.com`
|
||||||
|
- `www.ap-hulan.com`
|
||||||
|
- `hymdrz.com`
|
||||||
|
|
||||||
|
#### 预期日志信号
|
||||||
|
|
||||||
|
- `/|301` 下降
|
||||||
|
- `home|301` 下降
|
||||||
|
- host 分裂减轻
|
||||||
|
|
||||||
|
## 四、逐步验收顺序
|
||||||
|
|
||||||
|
不要 15 个文件一次全改完再看。
|
||||||
|
|
||||||
|
更稳的节奏是:
|
||||||
|
|
||||||
|
### 第 1 步:先落分类页 5 个
|
||||||
|
|
||||||
|
先验源码:
|
||||||
|
|
||||||
|
- canonical 是否存在
|
||||||
|
- `og:url` 是否等于分类页 URL
|
||||||
|
- `CollectionPage.url` 是否等于分类页 URL
|
||||||
|
|
||||||
|
再看日志:
|
||||||
|
|
||||||
|
- `category|200`
|
||||||
|
- `/|301`
|
||||||
|
- `home|301`
|
||||||
|
|
||||||
|
### 第 2 步:再落播放页 5 个
|
||||||
|
|
||||||
|
先验源码:
|
||||||
|
|
||||||
|
- canonical 是否存在
|
||||||
|
- `og:url` 是否和 canonical 一致
|
||||||
|
- JSON-LD `url` 是否和 canonical 一致
|
||||||
|
|
||||||
|
再看日志:
|
||||||
|
|
||||||
|
- `play|301`
|
||||||
|
- `play|200`
|
||||||
|
|
||||||
|
### 第 3 步:最后落 sitemap-main 5 个
|
||||||
|
|
||||||
|
先验源码:
|
||||||
|
|
||||||
|
- XML 是否可正常访问
|
||||||
|
- 是否还有 `novel`/`nflurl`
|
||||||
|
- host 是否已经去掉 `www`
|
||||||
|
|
||||||
|
再看日志:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
- `home|301`
|
||||||
|
- host 分裂
|
||||||
|
|
||||||
|
## 五、6 个核心日志指标
|
||||||
|
|
||||||
|
第一批实施后,每天优先只看这 6 个:
|
||||||
|
|
||||||
|
1. `/|301`
|
||||||
|
2. `home|301`
|
||||||
|
3. `category|200`
|
||||||
|
4. `play|301`
|
||||||
|
5. `play|200`
|
||||||
|
6. `other|404`
|
||||||
|
|
||||||
|
## 六、失败时优先回查
|
||||||
|
|
||||||
|
如果改完后没有改善,或者出现倒退,先看:
|
||||||
|
|
||||||
|
1. 分类页 canonical 是否写错
|
||||||
|
2. 播放页三件套是否还没统一
|
||||||
|
3. sitemap 是否仍在输出错误 host
|
||||||
|
4. 是否误伤旧 deep link 的承接能力
|
||||||
|
|
||||||
|
## 七、建议主 Codex 的最小执行方式
|
||||||
|
|
||||||
|
如果主 Codex 现在要正式开工,最小合理动作是:
|
||||||
|
|
||||||
|
1. 先提交分类页 5 个 patch
|
||||||
|
2. 验证
|
||||||
|
3. 再提交播放页 5 个 patch
|
||||||
|
4. 验证
|
||||||
|
5. 再提交 sitemap-main 5 个 patch
|
||||||
|
|
||||||
|
不要把 15 个文件混成一笔难以归因的大改。
|
||||||
|
|
||||||
|
## 一句话交接
|
||||||
|
|
||||||
|
> 老模板第一批 SEO 落地,现在最稳的执行方式就是按这张总表分三段施工:先分类页、再播放页、最后 sitemap-main;每一段都先看源码、再看重点域名、再看 6 个核心日志指标,始终保持只改老模板 5 套,不扩散到 GPT 模板和共享底层。
|
||||||
224
docs/old-tmp-seo/29-老模板第一批提交节奏建议-2026-04-17.md
Normal file
224
docs/old-tmp-seo/29-老模板第一批提交节奏建议-2026-04-17.md
Normal file
@@ -0,0 +1,224 @@
|
|||||||
|
# 1298-SEONexus 老模板第一批提交节奏建议 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档只解决一个实际问题:
|
||||||
|
|
||||||
|
- 主 Codex 如果要正式开始落老模板第一批 SEO patch,应该怎么分提交、怎么分复测,才最稳
|
||||||
|
|
||||||
|
它不再补新的改动点,而是把现有 15 个目标文件拆成可执行节奏。
|
||||||
|
|
||||||
|
## 一、总原则
|
||||||
|
|
||||||
|
这批改动最怕的不是“没想法”,而是:
|
||||||
|
|
||||||
|
- 一次改太多
|
||||||
|
- 改完看不出哪一刀起作用
|
||||||
|
- 如果效果不对,也不知道该回退哪一组
|
||||||
|
|
||||||
|
所以第一批一定要遵守:
|
||||||
|
|
||||||
|
1. 分 3 次提交
|
||||||
|
2. 每次提交只改一类文件
|
||||||
|
3. 每次提交后都先看源码,再看重点域名,再看日志
|
||||||
|
|
||||||
|
## 二、推荐提交拆分
|
||||||
|
|
||||||
|
### Commit 1:分类页 5 个
|
||||||
|
|
||||||
|
建议范围:
|
||||||
|
|
||||||
|
- `videoDadi/video/getCategoryType.html`
|
||||||
|
- `videoDingZhu/video/getCategoryType.html`
|
||||||
|
- `videoBoKu/video/getCategoryType.html`
|
||||||
|
- `videoLaoNiu/video/getCategoryType.html`
|
||||||
|
- `videoNuNu/video/getCategoryType.html`
|
||||||
|
|
||||||
|
建议提交信息风格:
|
||||||
|
|
||||||
|
- `align legacy category page canonical and url signals`
|
||||||
|
|
||||||
|
这一笔的目标很单纯:
|
||||||
|
|
||||||
|
- 先把分类页从“像首页”改成“就是分类页”
|
||||||
|
|
||||||
|
#### 提交后先验
|
||||||
|
|
||||||
|
先验页面源代码:
|
||||||
|
|
||||||
|
- canonical 是否存在
|
||||||
|
- `og:url` 是否等于分类页 URL
|
||||||
|
- `CollectionPage.url` 是否等于分类页 URL
|
||||||
|
|
||||||
|
再验重点域名:
|
||||||
|
|
||||||
|
- `ningxiaowei.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
- `sctyjz.com`
|
||||||
|
- `www.ap-hulan.com`
|
||||||
|
|
||||||
|
再看日志:
|
||||||
|
|
||||||
|
- `category|200`
|
||||||
|
- `/|301`
|
||||||
|
- `home|301`
|
||||||
|
|
||||||
|
### Commit 2:播放页 5 个
|
||||||
|
|
||||||
|
建议范围:
|
||||||
|
|
||||||
|
- `videoDadi/video/getVideoPlayUrl.html`
|
||||||
|
- `videoDingZhu/video/getVideoPlayUrl.html`
|
||||||
|
- `videoBoKu/video/getVideoPlayUrl.html`
|
||||||
|
- `videoLaoNiu/video/getVideoPlayUrl.html`
|
||||||
|
- `videoNuNu/video/getVideoPlayUrl.html`
|
||||||
|
|
||||||
|
建议提交信息风格:
|
||||||
|
|
||||||
|
- `align legacy play page canonical og and jsonld urls`
|
||||||
|
|
||||||
|
这一笔的目标也很单纯:
|
||||||
|
|
||||||
|
- 先把播放页三件套说成同一句话
|
||||||
|
|
||||||
|
#### 提交后先验
|
||||||
|
|
||||||
|
先验页面源代码:
|
||||||
|
|
||||||
|
- canonical 是否存在
|
||||||
|
- `og:url` 是否与 canonical 一致
|
||||||
|
- JSON-LD `url` 是否与 canonical 一致
|
||||||
|
|
||||||
|
再验重点域名:
|
||||||
|
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `ningxiaowei.com`
|
||||||
|
|
||||||
|
再看日志:
|
||||||
|
|
||||||
|
- `play|301`
|
||||||
|
- `play|200`
|
||||||
|
- `detail|301`
|
||||||
|
|
||||||
|
### Commit 3:sitemap-main 5 个
|
||||||
|
|
||||||
|
建议范围:
|
||||||
|
|
||||||
|
- `videoDadi/sitemap/sitemap-main.xml`
|
||||||
|
- `videoDingZhu/sitemap/sitemap-main.xml`
|
||||||
|
- `videoBoKu/sitemap/sitemap-main.xml`
|
||||||
|
- `videoLaoNiu/sitemap/sitemap-main.xml`
|
||||||
|
- `videoNuNu/sitemap/sitemap-main.xml`
|
||||||
|
|
||||||
|
建议提交信息风格:
|
||||||
|
|
||||||
|
- `shrink legacy sitemap main to minimal valid set`
|
||||||
|
|
||||||
|
这一笔目标:
|
||||||
|
|
||||||
|
- 先让 sitemap 不再输出错误小说逻辑
|
||||||
|
- 先让 sitemap host 跟主输出口径一致
|
||||||
|
|
||||||
|
#### 提交后先验
|
||||||
|
|
||||||
|
先验 sitemap:
|
||||||
|
|
||||||
|
- XML 是否正常
|
||||||
|
- 是否还有 `novel` / `nflurl`
|
||||||
|
- host 是否还是 `www`
|
||||||
|
|
||||||
|
再验重点域名:
|
||||||
|
|
||||||
|
- `sctyjz.com`
|
||||||
|
- `www.ap-hulan.com`
|
||||||
|
- `hymdrz.com`
|
||||||
|
|
||||||
|
再看日志:
|
||||||
|
|
||||||
|
- `/|301`
|
||||||
|
- `home|301`
|
||||||
|
- host 分裂
|
||||||
|
|
||||||
|
## 三、每次提交后都要做的 3 层验证
|
||||||
|
|
||||||
|
### 1. 源码层
|
||||||
|
|
||||||
|
先看页面源代码,不要先看感觉:
|
||||||
|
|
||||||
|
- canonical
|
||||||
|
- `og:url`
|
||||||
|
- JSON-LD
|
||||||
|
- sitemap XML
|
||||||
|
|
||||||
|
### 2. 页面层
|
||||||
|
|
||||||
|
确认页面能正常打开,不报错,不空白,不走异常跳转。
|
||||||
|
|
||||||
|
### 3. 日志层
|
||||||
|
|
||||||
|
至少连续看 1 到 3 个窗口:
|
||||||
|
|
||||||
|
- 是否向目标方向变化
|
||||||
|
- 有没有明显副作用
|
||||||
|
|
||||||
|
## 四、建议的节奏安排
|
||||||
|
|
||||||
|
最稳节奏不是一口气三笔全上,而是:
|
||||||
|
|
||||||
|
### 节奏 A:保守型
|
||||||
|
|
||||||
|
1. 先提 Commit 1
|
||||||
|
2. 看半天到 1 天
|
||||||
|
3. 确认分类页无回退
|
||||||
|
4. 再提 Commit 2
|
||||||
|
5. 再看半天到 1 天
|
||||||
|
6. 再提 Commit 3
|
||||||
|
|
||||||
|
适合:
|
||||||
|
|
||||||
|
- 当前正式服对波动敏感
|
||||||
|
- 希望每一笔都能清楚归因
|
||||||
|
|
||||||
|
### 节奏 B:中速型
|
||||||
|
|
||||||
|
1. 白天提 Commit 1
|
||||||
|
2. 晚些时候提 Commit 2
|
||||||
|
3. 第二天再提 Commit 3
|
||||||
|
|
||||||
|
适合:
|
||||||
|
|
||||||
|
- 想加快节奏
|
||||||
|
- 但仍然保留基本归因能力
|
||||||
|
|
||||||
|
当前建议优先选:
|
||||||
|
|
||||||
|
- 节奏 A
|
||||||
|
|
||||||
|
## 五、什么情况要暂停继续提交
|
||||||
|
|
||||||
|
如果出现下面任一情况,不要继续往下提下一笔:
|
||||||
|
|
||||||
|
1. 页面源代码没有按预期输出
|
||||||
|
2. 页面打开异常
|
||||||
|
3. `404` 明显增加
|
||||||
|
4. `detail|200 / play|200` 明显下降
|
||||||
|
5. `/|301` 反而明显增加
|
||||||
|
|
||||||
|
这时应该先停在当前提交点回看,而不是硬着头皮把下一组也推上去。
|
||||||
|
|
||||||
|
## 六、当前最值得固定看的 6 个日志指标
|
||||||
|
|
||||||
|
三笔提交都共用这 6 个核心指标:
|
||||||
|
|
||||||
|
1. `/|301`
|
||||||
|
2. `home|301`
|
||||||
|
3. `category|200`
|
||||||
|
4. `play|301`
|
||||||
|
5. `play|200`
|
||||||
|
6. `other|404`
|
||||||
|
|
||||||
|
这 6 个指标已经足够判断第一批是否朝正确方向走。
|
||||||
|
|
||||||
|
## 七、一句话交接
|
||||||
|
|
||||||
|
> 老模板第一批最稳的提交方式,不是把 15 个文件一把推上去,而是按“分类页 5 个 -> 播放页 5 个 -> sitemap-main 5 个”分 3 笔提交,每笔之后都先做源码、页面、日志三层验证,确认无副作用再推进下一笔。
|
||||||
542
docs/old-tmp-seo/30-老模板最新蜘蛛日志实战分析-2026-04-17.md
Normal file
542
docs/old-tmp-seo/30-老模板最新蜘蛛日志实战分析-2026-04-17.md
Normal file
@@ -0,0 +1,542 @@
|
|||||||
|
# 1299-SEONexus 老模板最新蜘蛛日志实战分析 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档只服务老模板 `1001-1005` 的 SEO 主线。
|
||||||
|
|
||||||
|
目标不是泛泛而谈“蜘蛛有波动”,而是把 `2026-04-17` 当前仓库内最新的 spider workbench 聚合数据,直接翻译成主 Codex 可执行的判断。
|
||||||
|
|
||||||
|
明确边界:
|
||||||
|
|
||||||
|
- 只看老模板:`videoDadi / videoDingZhu / videoBoKu / videoLaoNiu / videoNuNu`
|
||||||
|
- 不把 `videoGpt1` 混进本轮结论
|
||||||
|
- 当前重点是百度主线,同时兼看 `bytespider / sogou`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、数据来源
|
||||||
|
|
||||||
|
本轮结论不能只看单个 `latest` 文件,而要分两层理解:
|
||||||
|
|
||||||
|
1. 最近一次 push 摘要
|
||||||
|
- `code/storage/domain-spider-crawl/latest/spider-crawl.summary.json`
|
||||||
|
- `code/storage/domain-spider-crawl/latest/spider-crawl.summary.html`
|
||||||
|
2. 工作台 24h 聚合逻辑
|
||||||
|
- `code/app/common/helper/DomainSpiderCrawlWorkbenchHelper.php`
|
||||||
|
- 通过 `buildSummary(...)` 聚合最近窗口内多次 run
|
||||||
|
|
||||||
|
这里要特别提醒后续主 Codex:
|
||||||
|
|
||||||
|
- `latest/spider-crawl.summary.json` 会被 `SeoCollector::saveCrawlLogs()` 每次新 push 直接覆盖
|
||||||
|
- 它代表“最近一次 push 摘要”
|
||||||
|
- 不天然等于“最近 24h 全局聚合”
|
||||||
|
|
||||||
|
`2026-04-17 20:30` 复核时就已经看到这个现象:
|
||||||
|
|
||||||
|
- `latest` 文件只剩一小批最近推送数据
|
||||||
|
- 但 workbench 24h 聚合后,老模板依然有连续深抓记录
|
||||||
|
|
||||||
|
所以本页正文以下结论,统一以 `WorkbenchHelper::buildSummary(..., windowHours=24, selectedBots=baiduspider,bytespider,sogou)` 为准。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、当前全局结论
|
||||||
|
|
||||||
|
当前这批老模板域名,按 `2026-04-17 20:30` 的 24h 聚合视角,蜘蛛数据呈现出 4 个非常明确的信号:
|
||||||
|
|
||||||
|
1. 已经有百度深抓样本
|
||||||
|
- 不是“完全没抓”
|
||||||
|
- 已经出现 `detail / play` 命中
|
||||||
|
2. 入口层仍然偏弱
|
||||||
|
- `robots_requests = 11`
|
||||||
|
- `sitemap_requests = 2`
|
||||||
|
- `category_requests = 1`
|
||||||
|
3. 当前异常主因不是 5xx
|
||||||
|
- `500 = 0`
|
||||||
|
- 主要是 `301 / 403 / 444`
|
||||||
|
4. 当前最该处理的是“入口质量”和“旧路由信号”
|
||||||
|
- 不是把老模板误判成 GPT 模板结构问题
|
||||||
|
|
||||||
|
工作台聚合概览:
|
||||||
|
|
||||||
|
- 总请求:`72`
|
||||||
|
- 域名数:`14`
|
||||||
|
- 蜘蛛数:`2`
|
||||||
|
- 首页请求:`33`
|
||||||
|
- 分类请求:`1`
|
||||||
|
- 详情请求:`21`
|
||||||
|
- 播放请求:`4`
|
||||||
|
- robots 请求:`11`
|
||||||
|
- sitemap 请求:`2`
|
||||||
|
- 状态分布:
|
||||||
|
- `200 = 34`
|
||||||
|
- `301 = 24`
|
||||||
|
- `403 = 6`
|
||||||
|
- `444 = 8`
|
||||||
|
- `500 = 0`
|
||||||
|
|
||||||
|
这说明当前阶段不是服务整体炸了,而是:
|
||||||
|
|
||||||
|
- 百度已经开始进部分深页
|
||||||
|
- 但分类层和 sitemap 层仍然明显偏弱
|
||||||
|
- 同时入口层的 `403/444` 还在反复拖累蜘蛛体验
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、已经确认属于老模板的代表域名
|
||||||
|
|
||||||
|
本轮已从正式库 `domain` 表确认以下域名及模板归属:
|
||||||
|
|
||||||
|
| 域名 | t_id | 模板 |
|
||||||
|
| --- | ---: | --- |
|
||||||
|
| `proenerji.com` | `1001` | `videoDadi` |
|
||||||
|
| `qf123.net` | `1001` | `videoDadi` |
|
||||||
|
| `qingyejianshe.com` | `1002` | `videoDingZhu` |
|
||||||
|
| `tvwallmountreview.com` | `1002` | `videoDingZhu` |
|
||||||
|
| `yagyjt.com` | `1002` | `videoDingZhu` |
|
||||||
|
| `ctshuhua.com` | `1003` | `videoBoKu` |
|
||||||
|
| `ningxiaowei.com` | `1003` | `videoBoKu` |
|
||||||
|
| `yqshu8.com` | `1004` | `videoLaoNiu` |
|
||||||
|
| `syzhzs.com` | `1005` | `videoNuNu` |
|
||||||
|
| `yahuawang88.com` | `1005` | `videoNuNu` |
|
||||||
|
|
||||||
|
所以当前 spider workbench 里这批代表站点,确实就是老模板主线,不是 GPT 模板误入。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、最关键的 3 条判断
|
||||||
|
|
||||||
|
### 1. 百度已经给了 `yagyjt.com` 深抓机会
|
||||||
|
|
||||||
|
这是本轮最重要的正向样本。
|
||||||
|
|
||||||
|
工作台给出的状态:
|
||||||
|
|
||||||
|
- host:`yagyjt.com`
|
||||||
|
- 模板:`1002 / videoDingZhu`
|
||||||
|
- 总请求:`28`
|
||||||
|
- 深页请求:`16`
|
||||||
|
- 详情请求:`12`
|
||||||
|
- 播放请求:`4`
|
||||||
|
- 首页请求:`6`
|
||||||
|
- robots 请求:`3`
|
||||||
|
- sitemap 请求:`2`
|
||||||
|
- 分类请求:`1`
|
||||||
|
|
||||||
|
说明:
|
||||||
|
|
||||||
|
- 百度并不是只停留在首页
|
||||||
|
- 这个站已经被拉进 detail/play 维度
|
||||||
|
- 同时入口层也已经开始探测 `robots / sitemap / category`
|
||||||
|
- 它应该被当成老模板第一优先样板站
|
||||||
|
|
||||||
|
但它同时也有明显问题:
|
||||||
|
|
||||||
|
- `anomaly_count = 18`
|
||||||
|
- 深页异常主要是 `301`
|
||||||
|
- 命中的 URL 形态是:
|
||||||
|
- `/voddetail/...`
|
||||||
|
- `/vodplay/...`
|
||||||
|
|
||||||
|
这说明百度仍然在消费旧路由资产,当前站点靠 `301` 把蜘蛛导向现行规范地址。
|
||||||
|
|
||||||
|
结论:
|
||||||
|
|
||||||
|
- 这不是致命故障
|
||||||
|
- 但会拖慢抓取效率和权重沉淀速度
|
||||||
|
- 未来 7 天内,这个站最值得持续观察
|
||||||
|
|
||||||
|
### 2. 老模板群的真正短板仍然是“分类层没起量”
|
||||||
|
|
||||||
|
最新聚合里:
|
||||||
|
|
||||||
|
- `category_requests = 1`
|
||||||
|
- `sitemap_requests = 2`
|
||||||
|
|
||||||
|
虽然已经不再是绝对 `0`,但这个量级依然远远弱于深页和首页,所以这比单纯的深页 `301` 更值得重视。
|
||||||
|
|
||||||
|
因为它意味着:
|
||||||
|
|
||||||
|
- 百度当前对老模板站群的抓取入口仍然偏窄
|
||||||
|
- 主要仍靠首页或历史旧链接进入
|
||||||
|
- 分类页还没有形成稳定抓取面
|
||||||
|
- sitemap 也只是开始露头,还没形成可见收益
|
||||||
|
|
||||||
|
这也正好验证了本轮已落地的第一批模板修正方向是对的:
|
||||||
|
|
||||||
|
1. 分类页 canonical 修正
|
||||||
|
2. 分类页 `og:url` 修正
|
||||||
|
3. 分类页 JSON-LD `url` 修正
|
||||||
|
4. 播放页 canonical / `og:url` / JSON-LD 对齐
|
||||||
|
5. sitemap 主输出去掉 `www + novel` 旧噪音
|
||||||
|
|
||||||
|
### 2.1 这里还要额外防一个“统计口径误判”
|
||||||
|
|
||||||
|
虽然最新 `24h` 聚合里显示:
|
||||||
|
|
||||||
|
- `category_requests = 1`
|
||||||
|
|
||||||
|
但这条数据不能被机械理解成:
|
||||||
|
|
||||||
|
- “蜘蛛完全没有碰过分类页”
|
||||||
|
|
||||||
|
原因是:
|
||||||
|
|
||||||
|
1. spider workbench 本身不会按 URL 自动识别分类页
|
||||||
|
2. 它依赖上游推送时已经写好的 `page_type`
|
||||||
|
3. 当前仓库内 `DomainSpiderCrawlLogSchemaHelper` 只做枚举归一,不做 URL 路径识别
|
||||||
|
|
||||||
|
也就是:
|
||||||
|
|
||||||
|
- 如果前端 spiderlog-agent 把分类 URL 直接标成了 `other`
|
||||||
|
- 工作台这里就会继续把它统计成 `other`
|
||||||
|
- 最终看起来会像“分类始终为 0”
|
||||||
|
|
||||||
|
本轮已经在真实 payload 里看到过一条直接证据:
|
||||||
|
|
||||||
|
- run:
|
||||||
|
`20260417/201003_crawl_log_push_f72827`
|
||||||
|
- host:
|
||||||
|
`sctyjz.com`
|
||||||
|
- url:
|
||||||
|
`/videotype-zong-yi/all-1948-nuo-wei-all/yin-du-yu-page1`
|
||||||
|
- 当前标记:
|
||||||
|
`page_type = other`
|
||||||
|
- bot:
|
||||||
|
`googlebot`
|
||||||
|
- status:
|
||||||
|
`444`
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 至少在当前采集链里,分类 URL 被误标成 `other` 是真实存在的
|
||||||
|
- 所以后续主 Codex 看 `category_requests = 0` 时,必须同时保留一个判断分支:
|
||||||
|
- 可能是真没抓
|
||||||
|
- 也可能是上游 page_type 归类口径不完整
|
||||||
|
|
||||||
|
不过要注意:
|
||||||
|
|
||||||
|
- 在我额外抽查的最近数个 `2026-04-17` run 里
|
||||||
|
- 暂时还没有找到 `baiduspider / bytespider / sogou` 的分类 URL 被误标成 `other` 的直接样本
|
||||||
|
|
||||||
|
所以当前更稳的表达是:
|
||||||
|
|
||||||
|
> 老模板分类抓取当前仍然偏弱,而且 `category` 指标本身仍存在口径风险,不能单独作为百度触达面的唯一判断依据。
|
||||||
|
|
||||||
|
### 3. `bytespider` 当前不是“没来”,而是“来了但 robots 层体验差”
|
||||||
|
|
||||||
|
最新异常里,最高优先级几乎都集中在:
|
||||||
|
|
||||||
|
- `qf123.net`
|
||||||
|
- `www.proenerji.com`
|
||||||
|
- `www.ctshuhua.com`
|
||||||
|
- `www.qf123.net`
|
||||||
|
- `www.qingyejianshe.com`
|
||||||
|
- `www.syzhzs.com`
|
||||||
|
- `www.yagyjt.com`
|
||||||
|
- `www.tvwallmountreview.com`
|
||||||
|
|
||||||
|
共同特征:
|
||||||
|
|
||||||
|
- URL:`/robots.txt`
|
||||||
|
- bot:`bytespider`
|
||||||
|
- 状态:`403 / 444`
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 头条蜘蛛不是没探测
|
||||||
|
- 它已经反复试图读取入口文件
|
||||||
|
- 但当前入口层对它不友好
|
||||||
|
|
||||||
|
同时,现有老模板 `robots.txt` 模板里只明确放行了:
|
||||||
|
|
||||||
|
- `Baiduspider`
|
||||||
|
- `360Spider`
|
||||||
|
- `Sogou web spider`
|
||||||
|
- `Sogou inst spider`
|
||||||
|
- `YisouSpider`
|
||||||
|
- `Quarkbot`
|
||||||
|
- `Googlebot`
|
||||||
|
|
||||||
|
没有显式放行 `Bytespider`。
|
||||||
|
|
||||||
|
结论分两层:
|
||||||
|
|
||||||
|
1. 从“百度 7 天冲量”主目标看
|
||||||
|
- `bytespider` 不是第一优先级
|
||||||
|
- 不应该压过百度分类/深页主线
|
||||||
|
2. 从“国内蜘蛛入口完整度”看
|
||||||
|
- 后续可以单独给老模板 robots 增补 `Bytespider`
|
||||||
|
- 但前提是先确认线上 `403/444` 是否来自模板输出,还是前端防护层
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 五、当前不能误判的点
|
||||||
|
|
||||||
|
### 1. 不能把 `301` 一律当致命异常
|
||||||
|
|
||||||
|
以 `yagyjt.com` 为例,百度命中的是:
|
||||||
|
|
||||||
|
- `/voddetail/...`
|
||||||
|
- `/vodplay/...`
|
||||||
|
|
||||||
|
这更像是历史收录或历史外链还在发挥作用。
|
||||||
|
|
||||||
|
如果当前站点已经把它们稳定 `301` 到规范地址,那么它的问题是:
|
||||||
|
|
||||||
|
- 抓取成本高
|
||||||
|
- 信号绕路
|
||||||
|
|
||||||
|
而不是:
|
||||||
|
|
||||||
|
- 页面完全打不开
|
||||||
|
- 老模板彻底不可抓
|
||||||
|
|
||||||
|
### 2. 当前没有证据说明老模板普遍 5xx
|
||||||
|
|
||||||
|
最新 24h 聚合里:
|
||||||
|
|
||||||
|
- `500 = 0`
|
||||||
|
|
||||||
|
所以本轮不能把精力浪费在“怀疑后端整体炸了”上。
|
||||||
|
|
||||||
|
更应该盯的是:
|
||||||
|
|
||||||
|
- 分类抓取为什么还没起来
|
||||||
|
- sitemap 为什么没有形成可见命中
|
||||||
|
- 已深抓样板站能不能进一步减少旧路由依赖
|
||||||
|
|
||||||
|
### 3. `1270` 不能代替老模板 SEO 主线
|
||||||
|
|
||||||
|
`1270` 当前仍然主要是 GPT 模板交接总文档。
|
||||||
|
|
||||||
|
老模板这一支继续推进时,应优先参考:
|
||||||
|
|
||||||
|
- `1269`
|
||||||
|
- `1286`
|
||||||
|
- `1287`
|
||||||
|
- `1289`
|
||||||
|
- `1290`
|
||||||
|
- `1291`
|
||||||
|
- `1292`
|
||||||
|
- `1293`
|
||||||
|
- `1294`
|
||||||
|
- `1295`
|
||||||
|
- `1296`
|
||||||
|
- 本文 `1299`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 六、对主 Codex 最有价值的执行建议
|
||||||
|
|
||||||
|
### 优先级 A:持续观察并放大 `yagyjt.com`
|
||||||
|
|
||||||
|
原因:
|
||||||
|
|
||||||
|
- 它已经是百度深抓样板
|
||||||
|
- 模板归属明确:`1002 / videoDingZhu`
|
||||||
|
- 最适合作为“老模板 7 天冲量”的核心跟踪站
|
||||||
|
|
||||||
|
建议动作:
|
||||||
|
|
||||||
|
1. 复核 `yagyjt.com` 当前详情页和播放页规范地址是否稳定
|
||||||
|
2. 观察旧 `/voddetail`、`/vodplay` 是否始终 301 到唯一规范 URL
|
||||||
|
3. 看未来 24-72 小时内,百度是否开始从 `detail/play 301` 转向规范深页 200
|
||||||
|
|
||||||
|
### 优先级 B:盯分类层起量,而不是继续沉迷首页
|
||||||
|
|
||||||
|
因为最新数据说明:
|
||||||
|
|
||||||
|
- 首页已经有命中
|
||||||
|
- 深页也不是完全没有
|
||||||
|
- 但分类层和 sitemap 层仍然显著偏弱
|
||||||
|
|
||||||
|
这意味着后续最该看的提升信号是:
|
||||||
|
|
||||||
|
1. 是否开始出现 `category_requests > 0`
|
||||||
|
2. 是否开始有分类页 200 被百度命中
|
||||||
|
3. 是否由分类页继续向详情页扩散
|
||||||
|
|
||||||
|
### 优先级 C:把 `robots` 的国内蜘蛛兼容性单独列为副线
|
||||||
|
|
||||||
|
这条线不能抢主线,但也不能完全忽略。
|
||||||
|
|
||||||
|
建议:
|
||||||
|
|
||||||
|
1. 先确认 `403/444` 是前端防护层行为,还是应用层输出问题
|
||||||
|
2. 如果模板输出可控,再评估是否给老模板 `robots.txt` 增补:
|
||||||
|
- `User-agent: Bytespider`
|
||||||
|
- `Allow: /`
|
||||||
|
3. 即便要改,也应单独开小任务,不要和百度主线混着验
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 七、一句话总结
|
||||||
|
|
||||||
|
当前老模板 SEO 主线的真实状态是:
|
||||||
|
|
||||||
|
> 百度已经开始给个别老模板站深抓机会,但站群整体仍然缺少分类层放量;短期最值得做的是围绕 `yagyjt.com` 这种已深抓样板站压旧路由成本、盯分类抓取起量,而不是把精力继续带偏到 GPT 模板或不存在的 5xx 故障上。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 八、2026-04-17 晚间追加:工作台 page_type 口径补强已落地
|
||||||
|
|
||||||
|
在继续复核真实 payload 后,本轮又确认了一个会直接影响判断的问题:
|
||||||
|
|
||||||
|
- spider workbench 的统计高度依赖上游推送的 `page_type`
|
||||||
|
- 如果上游把老模板历史路由打成 `other`
|
||||||
|
- 工作台就会把真实分类 / 详情 / 播放流量低估掉
|
||||||
|
|
||||||
|
### 已确认的真实误标样本
|
||||||
|
|
||||||
|
1. 分类页误标
|
||||||
|
- `/videotype-zong-yi/all-1948-nuo-wei-all/yin-du-yu-page1`
|
||||||
|
- 原始 `page_type = other`
|
||||||
|
2. 播放页误标
|
||||||
|
- `/video-play/ni-tian-zhi-zun-26066-fengchao-137`
|
||||||
|
- 原始 `page_type = other`
|
||||||
|
3. 详情页漏算线索
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
- `/video-info/...`
|
||||||
|
- 在最近 run 中由 `baiduspider` 命中 `200 / 301`
|
||||||
|
- 但原始 bucket 仍可能落在 `other`
|
||||||
|
|
||||||
|
### 已落地的修正
|
||||||
|
|
||||||
|
本轮已在抓取摘要 ingest 阶段增加“路径兜底识别”,仅在上游值为空或为 `other` 时生效:
|
||||||
|
|
||||||
|
- 文件:
|
||||||
|
- [DomainSpiderCrawlLogSchemaHelper.php](/www/wwwroot/VideoSource2/code/app/common/helper/DomainSpiderCrawlLogSchemaHelper.php:1)
|
||||||
|
- [DomainSpiderCrawlLogHelper.php](/www/wwwroot/VideoSource2/code/app/common/helper/DomainSpiderCrawlLogHelper.php:1)
|
||||||
|
- 兜底识别范围:
|
||||||
|
- `videotype / vodtype / fenlei` -> `category`
|
||||||
|
- `video-info / voddetail / neirong-` -> `detail`
|
||||||
|
- `video-play / vodplay / bf-` -> `play`
|
||||||
|
- `robots.txt` -> `robots`
|
||||||
|
- `sitemap*` -> `sitemap`
|
||||||
|
- `search / get-index` -> `search`
|
||||||
|
|
||||||
|
### 本地复核结果
|
||||||
|
|
||||||
|
用真实 run:
|
||||||
|
|
||||||
|
- `20260417/201003_crawl_log_push_f72827`
|
||||||
|
|
||||||
|
重新过 ingest 后,结果已经变为:
|
||||||
|
|
||||||
|
1. `/videotype-zong-yi/...` -> `category`
|
||||||
|
2. `/video-play/...` -> `play`
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 当前 workbench 的老模板分类/播放统计,后续会比之前更接近真实情况
|
||||||
|
- `category=0` 这类结论之后必须结合新 ingest 结果再判断
|
||||||
|
- 这次修正只影响蜘蛛分析口径,不会直接改动老模板页面输出,也不会直接影响 `videoGpt1` 模板渲染
|
||||||
|
|
||||||
|
### 已追加重建 latest 摘要
|
||||||
|
|
||||||
|
为了避免 admin2 / workbench 继续读取旧的 `latest` 静态摘要,本轮还额外重建了:
|
||||||
|
|
||||||
|
- `code/storage/domain-spider-crawl/latest/spider-crawl.summary.json`
|
||||||
|
- `code/storage/domain-spider-crawl/latest/spider-crawl.summary.html`
|
||||||
|
|
||||||
|
重建时间:
|
||||||
|
|
||||||
|
- `2026-04-17T20:20:54+08:00`
|
||||||
|
|
||||||
|
重建后,按最近 `24` 个 run 合并统计得到的页面类型分布为:
|
||||||
|
|
||||||
|
- `robots = 281`
|
||||||
|
- `home = 77`
|
||||||
|
- `detail = 34`
|
||||||
|
- `play = 11`
|
||||||
|
- `category = 4`
|
||||||
|
- `sitemap = 2`
|
||||||
|
- `other = 17`
|
||||||
|
|
||||||
|
这和修正前相比,至少已经明确证明:
|
||||||
|
|
||||||
|
1. 分类页不再是绝对 `0`
|
||||||
|
2. 旧 `video-info / video-play / videotype` family 的流量不再全部沉到底部 `other`
|
||||||
|
3. 后续再看老模板“百度有没有进分类 / 详情 / 播放”,工作台数据可信度会更高
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 九、2026-04-17 20:30 再复核补充
|
||||||
|
|
||||||
|
在继续用 `DomainSpiderCrawlWorkbenchHelper::buildSummary(...)` 复核后,当前还要再补 3 条交接级结论。
|
||||||
|
|
||||||
|
### 1. 当前正式应以 24h 聚合视角为主,不应以 `latest` 覆盖文件为主
|
||||||
|
|
||||||
|
`latest/spider-crawl.summary.json` 在 `20:30` 时已经被新的前端 push 覆盖成一份很小的最近样本。
|
||||||
|
|
||||||
|
但同一时刻按 workbench 24h 聚合得到的真实视角仍然是:
|
||||||
|
|
||||||
|
- 总请求:`72`
|
||||||
|
- 详情:`21`
|
||||||
|
- 播放:`4`
|
||||||
|
- 分类:`1`
|
||||||
|
- sitemap:`2`
|
||||||
|
- robots:`11`
|
||||||
|
|
||||||
|
因此后续主 Codex 如果看到:
|
||||||
|
|
||||||
|
- `latest` 很小
|
||||||
|
- 甚至只剩少量 `robots/home`
|
||||||
|
|
||||||
|
不要直接判断成:
|
||||||
|
|
||||||
|
- 老模板蜘蛛量掉空
|
||||||
|
- 深页信号消失
|
||||||
|
|
||||||
|
更稳的做法是始终回到 24h 聚合视角看趋势。
|
||||||
|
|
||||||
|
### 2. `yagyjt.com` 目前仍是第一样板站,但问题已明确集中到入口层
|
||||||
|
|
||||||
|
截至 `20:30` 的 host detail:
|
||||||
|
|
||||||
|
- 总请求:`28`
|
||||||
|
- 深页请求:`16`
|
||||||
|
- 异常:`18`
|
||||||
|
- 状态:
|
||||||
|
- `200 = 10`
|
||||||
|
- `301 = 10`
|
||||||
|
- `444 = 7`
|
||||||
|
- `403 = 1`
|
||||||
|
|
||||||
|
当前最高优先级异常已经非常集中:
|
||||||
|
|
||||||
|
- `/robots.txt`
|
||||||
|
- `/sitemap_index.xml`
|
||||||
|
- `/videotype/1-dian-ying`
|
||||||
|
- `/`
|
||||||
|
|
||||||
|
也就是说,这个站已经不是“有没有深抓”的问题,而是:
|
||||||
|
|
||||||
|
- 已经深抓
|
||||||
|
- 但入口质量还不够稳
|
||||||
|
|
||||||
|
所以后续如果要拿一个站做百度 7 天冲量观察,优先还是盯它。
|
||||||
|
|
||||||
|
### 3. `www.ningxiaowei.com` 更适合当“深链承接效率”样本
|
||||||
|
|
||||||
|
截至 `20:30` 的 host detail:
|
||||||
|
|
||||||
|
- 总请求:`8`
|
||||||
|
- 深页请求:`8`
|
||||||
|
- 全部都是 `detail`
|
||||||
|
- 状态:
|
||||||
|
- `200 = 4`
|
||||||
|
- `301 = 4`
|
||||||
|
|
||||||
|
它的特点不是入口层扩张,而是:
|
||||||
|
|
||||||
|
- 百度已经明确在消费 `/video-info/...` 这类当前有效 family
|
||||||
|
- 但还没有看到首页 / 分类 / sitemap 同步扩张
|
||||||
|
|
||||||
|
因此它更适合当:
|
||||||
|
|
||||||
|
- 详情页 URL family 正确性观察样本
|
||||||
|
- 深链 `301 -> 200` 承接效率样本
|
||||||
|
|
||||||
|
不适合拿来代替 `yagyjt.com` 做入口层样板。
|
||||||
259
docs/old-tmp-seo/31-老模板样板站域名级SEO任务单-2026-04-17.md
Normal file
259
docs/old-tmp-seo/31-老模板样板站域名级SEO任务单-2026-04-17.md
Normal file
@@ -0,0 +1,259 @@
|
|||||||
|
# 1300-SEONexus 老模板样板站域名级 SEO 任务单 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档把当前最值得持续盯的两个老模板样板站,直接拆成域名级任务。
|
||||||
|
|
||||||
|
适用对象:
|
||||||
|
|
||||||
|
- 主 Codex
|
||||||
|
- 后续接手老模板 SEO 的人工
|
||||||
|
- 需要从“站群泛分析”切到“样板站逐项修正”的人
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、样板站 1:`yagyjt.com`
|
||||||
|
|
||||||
|
### 基本归属
|
||||||
|
|
||||||
|
- 域名:`yagyjt.com`
|
||||||
|
- 模板:`t_id = 1002`
|
||||||
|
- 视图目录:`videoDingZhu`
|
||||||
|
- URL family:
|
||||||
|
- `VIDEO_INFO_URL = 模板7 = /shipin/{slug}-{id}`
|
||||||
|
- `VIDEO_PLAY_URL = 模板7 = /shipin-play/{slug}-{id}-{line}-{episode}`
|
||||||
|
- `VIDEO_CATEGORY_URL = 模板7 = /shipinfenlei-{parent}/{category}-{year}-{area}-{order}/{lang}-page{page}`
|
||||||
|
|
||||||
|
### 当前蜘蛛状态
|
||||||
|
|
||||||
|
基于最新 workbench 明细:
|
||||||
|
|
||||||
|
- 总请求:`28`
|
||||||
|
- 深页请求:`16`
|
||||||
|
- 深抓比例:`57.1%`
|
||||||
|
- 页面分布:
|
||||||
|
- `detail = 12`
|
||||||
|
- `play = 4`
|
||||||
|
- `home = 6`
|
||||||
|
- `robots = 3`
|
||||||
|
- `sitemap = 2`
|
||||||
|
- `category = 1`
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 百度已经真实进入深页
|
||||||
|
- 这是当前老模板站群里最值得当样板站的域名
|
||||||
|
|
||||||
|
### 当前主要问题
|
||||||
|
|
||||||
|
#### 1. 入口层异常比深页跳转更急
|
||||||
|
|
||||||
|
最近异常里最高优先级是:
|
||||||
|
|
||||||
|
- `/robots.txt => 444`
|
||||||
|
- `/robots.txt => 403`(`bytespider`)
|
||||||
|
- `/sitemap_index.xml => 444`
|
||||||
|
- `/videotype/1-dian-ying => 444`
|
||||||
|
- `/ => 444`
|
||||||
|
|
||||||
|
这里的真实含义是:
|
||||||
|
|
||||||
|
- 百度虽然已经能命中深页
|
||||||
|
- 但首页、分类、robots、sitemap 这一整层入口并不稳定
|
||||||
|
- 深抓是在“入口不够干净”的前提下硬跑出来的
|
||||||
|
|
||||||
|
#### 2. 深页仍然大量消费旧 family
|
||||||
|
|
||||||
|
当前百度命中的深页异常主要是:
|
||||||
|
|
||||||
|
- `/voddetail/... => 301`
|
||||||
|
- `/vodplay/... => 301`
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 对 `yagyjt.com` 来说,当前配置的主 family 并不是:
|
||||||
|
- `/voddetail/...`
|
||||||
|
- `/vodplay/...`
|
||||||
|
- `/videotype/...`
|
||||||
|
- 当前规范 family 实际是:
|
||||||
|
- `/shipin/...`
|
||||||
|
- `/shipin-play/...`
|
||||||
|
- `/shipinfenlei-...`
|
||||||
|
- 百度仍然在消费历史旧 family
|
||||||
|
- 当前站点靠 301 导向现行规范地址
|
||||||
|
- 这不是致命错误
|
||||||
|
- 但会持续消耗抓取预算
|
||||||
|
|
||||||
|
#### 3. 当前更该盯的是入口层 `444/403` 是否继续下降
|
||||||
|
|
||||||
|
当前 host detail 状态分布已经比较清楚:
|
||||||
|
|
||||||
|
- `200 = 10`
|
||||||
|
- `301 = 10`
|
||||||
|
- `444 = 7`
|
||||||
|
- `403 = 1`
|
||||||
|
|
||||||
|
这意味着:
|
||||||
|
|
||||||
|
- `301` 还是老旧 family 被消费的表现
|
||||||
|
- 真正拖累入口扩张的,是 `robots / sitemap / 分类 / 首页` 上反复出现的 `444/403`
|
||||||
|
|
||||||
|
### 对主 Codex 的直接任务
|
||||||
|
|
||||||
|
1. 先排查 `yagyjt.com` 的前端入口层
|
||||||
|
- `robots.txt`
|
||||||
|
- `sitemap_index.xml`
|
||||||
|
- 首页 `/`
|
||||||
|
- 一级分类 `/videotype/1-dian-ying`
|
||||||
|
2. 优先确认这些 444 是不是前端 Nginx / WAF / 缓存层造成
|
||||||
|
3. 确认 `voddetail`、`vodplay` 到当前规范详情/播放地址的 301 链是否始终唯一、稳定
|
||||||
|
4. 未来 24-72 小时重点观察:
|
||||||
|
- 入口层 444 是否下降
|
||||||
|
- 分类页是否由 `1` 继续往上抬
|
||||||
|
- 深页 301 是否逐渐被规范深页 200 替代
|
||||||
|
|
||||||
|
### 当前补充实测
|
||||||
|
|
||||||
|
本轮在当前服务器上直接走公网 HTTP 样本验证时,已看到:
|
||||||
|
|
||||||
|
- `http://yagyjt.com/voddetail/shuang-qiang-huang-ying-gu-624 => 444`
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- `yagyjt.com` 的入口层异常不是纯工作台统计错觉
|
||||||
|
- 至少在当前外部 HTTP 访问链路上,前端层确实存在直接拦截或异常关闭连接的问题
|
||||||
|
|
||||||
|
### 一句话判断
|
||||||
|
|
||||||
|
> `yagyjt.com` 不是“没抓起来”,而是“已经抓起来,但入口层很脏”;它适合作为老模板 7 天冲量的头号样板站。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、样板站 2:`www.ningxiaowei.com`
|
||||||
|
|
||||||
|
### 基本归属
|
||||||
|
|
||||||
|
- 主域:`ningxiaowei.com`
|
||||||
|
- 当前抓取 host:`www.ningxiaowei.com`
|
||||||
|
- 模板:`t_id = 1003`
|
||||||
|
- 视图目录:`videoBoKu`
|
||||||
|
- URL family:
|
||||||
|
- `VIDEO_INFO_URL = 模板4 = /video-info/{slug}-{id}`
|
||||||
|
- `VIDEO_PLAY_URL = 模板4 = /video-play/{slug}-{id}-{line}-{episode}`
|
||||||
|
- `VIDEO_CATEGORY_URL = 模板4 = /videotype-{parent}/{category}-{year}-{area}-{order}/{lang}-page{page}`
|
||||||
|
|
||||||
|
### 当前蜘蛛状态
|
||||||
|
|
||||||
|
基于最新 workbench 明细:
|
||||||
|
|
||||||
|
- 总请求:`8`
|
||||||
|
- 深页请求:`8`
|
||||||
|
- 深抓比例:`100%`
|
||||||
|
- 页面分布:
|
||||||
|
- `detail = 8`
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 这个站当前不是“入口页试探”
|
||||||
|
- 而是百度已经直接命中当前配置的详情 family
|
||||||
|
|
||||||
|
### 当前主要问题
|
||||||
|
|
||||||
|
#### 1. 百度已经进入当前规范详情 family,但跳转链还需看干净
|
||||||
|
|
||||||
|
已确认命中的 URL 包括:
|
||||||
|
|
||||||
|
- `/video-info/you-li-xi-si-zong-he-zheng-di-yi-ji-78641`
|
||||||
|
- `/video-info/jing-cha-gu-shi-chao-ji-jing-cha-5933`
|
||||||
|
- `/video-info/zhang-jiang-tian-di-da-ji-xing-60553`
|
||||||
|
|
||||||
|
并且状态是:
|
||||||
|
|
||||||
|
- `301`
|
||||||
|
- `200`
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- 对 `ningxiaowei.com` 来说,`/video-info/...` 本身就是当前配置的规范详情 family
|
||||||
|
- 所以这里的 `301 + 200` 不能直接理解成“旧详情 family 残留”
|
||||||
|
- 更需要优先怀疑的是:
|
||||||
|
- `www / 裸域` host 归一
|
||||||
|
- `http / https` 归一
|
||||||
|
- 或同一路径上的额外跳转
|
||||||
|
|
||||||
|
#### 2. 当前问题比 `yagyjt.com` 更纯
|
||||||
|
|
||||||
|
`www.ningxiaowei.com` 目前没暴露出那么多首页/分类/robots 异常。
|
||||||
|
|
||||||
|
它更像是:
|
||||||
|
|
||||||
|
- 入口噪音少
|
||||||
|
- 当前规范详情 family 已经被百度深抓
|
||||||
|
- 但 host / 跳转链的规范化还不够干净
|
||||||
|
- 当前状态分布也符合这个判断:
|
||||||
|
- `200 = 4`
|
||||||
|
- `301 = 4`
|
||||||
|
|
||||||
|
### 对主 Codex 的直接任务
|
||||||
|
|
||||||
|
1. 当前已确认 `www.ningxiaowei.com` 的规范详情 family 就是 `/video-info/...`
|
||||||
|
2. 检查 `/video-info/...` 的 301 到底跳向哪里
|
||||||
|
3. 优先排查是否存在:
|
||||||
|
- `www -> 裸域`
|
||||||
|
- `http -> https`
|
||||||
|
- 同一路径被重复跳转
|
||||||
|
4. 目标应是:
|
||||||
|
- 详情页规范链尽量压缩成一次可预期跳转
|
||||||
|
- 最终稳定落到唯一详情 URL
|
||||||
|
|
||||||
|
### 当前补充实测
|
||||||
|
|
||||||
|
本轮在当前服务器上直接走公网 HTTP 样本验证时,已看到:
|
||||||
|
|
||||||
|
- `http://www.ningxiaowei.com/video-info/jing-cha-gu-shi-chao-ji-jing-cha-5933 => 444`
|
||||||
|
|
||||||
|
这说明:
|
||||||
|
|
||||||
|
- `www.ningxiaowei.com` 当前也不是“只有工作台里才异常”
|
||||||
|
- 至少在当前 HTTP 外部链路上,详情页入口依然会被前端层直接掐断
|
||||||
|
- 所以主 Codex 后续排查时,不应只盯应用模板,还要同步看前端站群 / WAF / Nginx 入口规则
|
||||||
|
|
||||||
|
### 一句话判断
|
||||||
|
|
||||||
|
> `www.ningxiaowei.com` 不是“旧详情 family 残留站”,而是“当前规范详情 family 已被百度深抓,但 host / 跳转链仍需压缩”的样板站。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、主线优先级建议
|
||||||
|
|
||||||
|
当前最稳顺序:
|
||||||
|
|
||||||
|
1. 先做 `yagyjt.com`
|
||||||
|
- 因为它既有入口问题,又有深页问题
|
||||||
|
- 修复收益最大
|
||||||
|
2. 再做 `www.ningxiaowei.com`
|
||||||
|
- 因为它更像“规范详情 family 跳转链压缩专项”
|
||||||
|
- 适合做第二个样板站
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、Day1 直接执行重点
|
||||||
|
|
||||||
|
如果主 Codex 现在就要落地第一天动作,建议只做下面 4 件事:
|
||||||
|
|
||||||
|
1. 盯 `yagyjt.com` 的入口层异常
|
||||||
|
- 重点确认 `/robots.txt`、`/sitemap_index.xml`、`/`、`/videotype/1-dian-ying`
|
||||||
|
- 目标不是先改模板,而是先确认 `444/403` 出在前端入口层还是应用层
|
||||||
|
2. 盯 `yagyjt.com` 的旧 family 消耗
|
||||||
|
- 抽样确认 `/voddetail/...`、`/vodplay/...` 是否始终单跳或稳定跳到唯一规范 URL
|
||||||
|
3. 盯 `www.ningxiaowei.com` 的详情页跳转链
|
||||||
|
- 重点看 `/video-info/...` 是否存在 `www / 裸域` 或 `http / https` 的重复跳转
|
||||||
|
4. 盯 24h 聚合,不盯单个 `latest`
|
||||||
|
- `latest/spider-crawl.summary.json` 会被最近一次 push 覆盖
|
||||||
|
- 真正判断趋势时,要看 workbench 的 24h 聚合视角
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 五、一句话交接
|
||||||
|
|
||||||
|
> 老模板下一步不该再停留在“站群泛讨论”,而应该直接围绕 `yagyjt.com` 和 `www.ningxiaowei.com` 两个样板站做域名级推进:前者先清入口层 444 和历史旧 family 消耗,后者先把当前规范详情 family 的 host / 跳转链压缩干净。
|
||||||
154
docs/old-tmp-seo/32-老模板样板站URL-Family对照表-2026-04-17.md
Normal file
154
docs/old-tmp-seo/32-老模板样板站URL-Family对照表-2026-04-17.md
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
# 1301-SEONexus 老模板样板站 URL Family 对照表 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档只做一件事:
|
||||||
|
|
||||||
|
- 把老模板样板站“当前配置的规范 URL family”
|
||||||
|
- 和“蜘蛛当前实际命中的 URL family”
|
||||||
|
- 放到一张表里对照
|
||||||
|
|
||||||
|
这样后续主 Codex 在判断 `301`、旧路由、规范化时,不会把“当前规范 family”误判成“历史残留 family”。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、`yagyjt.com`
|
||||||
|
|
||||||
|
### 站点配置
|
||||||
|
|
||||||
|
- 域名:`yagyjt.com`
|
||||||
|
- 模板:`t_id = 1002`
|
||||||
|
- 视图:`videoDingZhu`
|
||||||
|
|
||||||
|
当前 `t_cfg` 配置:
|
||||||
|
|
||||||
|
- `VIDEO_INFO_URL = sfg_id 1052 = 模板7`
|
||||||
|
- `VIDEO_PLAY_URL = sfg_id 1060 = 模板7`
|
||||||
|
- `VIDEO_CATEGORY_URL = sfg_id 1044 = 模板7`
|
||||||
|
|
||||||
|
### 当前规范 family
|
||||||
|
|
||||||
|
1. 详情页
|
||||||
|
- `/shipin/{slug}-{id}`
|
||||||
|
2. 播放页
|
||||||
|
- `/shipin-play/{slug}-{id}-{line}-{episode}`
|
||||||
|
3. 分类页
|
||||||
|
- `/shipinfenlei-{parent}/{category}-{year}-{area}-{order}/{lang}-page{page}`
|
||||||
|
|
||||||
|
### 当前蜘蛛命中 family
|
||||||
|
|
||||||
|
已看到的典型命中:
|
||||||
|
|
||||||
|
1. 详情页旧 family
|
||||||
|
- `/voddetail/...`
|
||||||
|
2. 播放页旧 family
|
||||||
|
- `/vodplay/...`
|
||||||
|
3. 分类页旧 family
|
||||||
|
- `/videotype/1-dian-ying`
|
||||||
|
|
||||||
|
### 结论
|
||||||
|
|
||||||
|
对 `yagyjt.com` 来说:
|
||||||
|
|
||||||
|
- `voddetail`
|
||||||
|
- `vodplay`
|
||||||
|
- `videotype`
|
||||||
|
|
||||||
|
都不是当前配置的主 family。
|
||||||
|
|
||||||
|
因此这里的 `301` 更接近:
|
||||||
|
|
||||||
|
- 历史收录仍在消费旧路由
|
||||||
|
- 当前站点在把旧 family 导向现行规范 family
|
||||||
|
|
||||||
|
这类问题的目标是:
|
||||||
|
|
||||||
|
- 保持 301 稳定
|
||||||
|
- 减少旧 family 继续消耗百度抓取预算
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、`ningxiaowei.com`
|
||||||
|
|
||||||
|
### 站点配置
|
||||||
|
|
||||||
|
- 域名:`ningxiaowei.com`
|
||||||
|
- 模板:`t_id = 1003`
|
||||||
|
- 视图:`videoBoKu`
|
||||||
|
|
||||||
|
当前 `t_cfg` 配置:
|
||||||
|
|
||||||
|
- `VIDEO_INFO_URL = sfg_id 1049 = 模板4`
|
||||||
|
- `VIDEO_PLAY_URL = sfg_id 1057 = 模板4`
|
||||||
|
- `VIDEO_CATEGORY_URL = sfg_id 1041 = 模板4`
|
||||||
|
|
||||||
|
### 当前规范 family
|
||||||
|
|
||||||
|
1. 详情页
|
||||||
|
- `/video-info/{slug}-{id}`
|
||||||
|
2. 播放页
|
||||||
|
- `/video-play/{slug}-{id}-{line}-{episode}`
|
||||||
|
3. 分类页
|
||||||
|
- `/videotype-{parent}/{category}-{year}-{area}-{order}/{lang}-page{page}`
|
||||||
|
|
||||||
|
### 当前蜘蛛命中 family
|
||||||
|
|
||||||
|
已看到的典型命中:
|
||||||
|
|
||||||
|
1. 详情页
|
||||||
|
- `/video-info/...`
|
||||||
|
|
||||||
|
并且状态同时出现:
|
||||||
|
|
||||||
|
- `301`
|
||||||
|
- `200`
|
||||||
|
|
||||||
|
### 结论
|
||||||
|
|
||||||
|
对 `ningxiaowei.com` 来说:
|
||||||
|
|
||||||
|
- `/video-info/...`
|
||||||
|
|
||||||
|
本身就是当前配置的规范详情 family。
|
||||||
|
|
||||||
|
所以这里不能简单解读成:
|
||||||
|
|
||||||
|
- “百度还在抓旧详情页”
|
||||||
|
|
||||||
|
更合理的解释应优先是:
|
||||||
|
|
||||||
|
1. `www / 裸域` host 归一
|
||||||
|
2. `http / https` 归一
|
||||||
|
3. 单路径多跳
|
||||||
|
|
||||||
|
这类问题的目标是:
|
||||||
|
|
||||||
|
- 压缩跳转链
|
||||||
|
- 保证规范详情 URL 唯一且稳定
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、主 Codex 不要混淆的判断
|
||||||
|
|
||||||
|
### `yagyjt.com`
|
||||||
|
|
||||||
|
可以判断为:
|
||||||
|
|
||||||
|
- 旧 family 仍在被百度访问
|
||||||
|
|
||||||
|
### `ningxiaowei.com`
|
||||||
|
|
||||||
|
不要再判断为:
|
||||||
|
|
||||||
|
- `/video-info` 是旧 family
|
||||||
|
|
||||||
|
更准确的说法应该是:
|
||||||
|
|
||||||
|
- `/video-info` 就是当前规范详情 family
|
||||||
|
- 现在的问题是 host / scheme / 跳转链层面的规范化
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、一句话结论
|
||||||
|
|
||||||
|
> `yagyjt.com` 的问题是“百度还在消费旧 family”,而 `ningxiaowei.com` 的问题是“当前规范 family 已被百度深抓,但跳转链还不够干净”,这两类问题不能混着处理。
|
||||||
134
docs/old-tmp-seo/33-老模板样板站Day1执行单-2026-04-17.md
Normal file
134
docs/old-tmp-seo/33-老模板样板站Day1执行单-2026-04-17.md
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
# 1302-SEONexus 老模板样板站 Day1 执行单 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档只保留主 Codex 当天最该执行的动作。
|
||||||
|
|
||||||
|
它不再重复长篇背景,而是把老模板当前最值得推进的两类工作,压缩成 Day1 可直接落地的顺序。
|
||||||
|
|
||||||
|
适用范围:
|
||||||
|
|
||||||
|
- 只服务老模板 `1001-1005`
|
||||||
|
- 不涉及 `videoGpt1`
|
||||||
|
- 只围绕当前两个样板站:
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、Day1 总目标
|
||||||
|
|
||||||
|
当天目标不是“7 天内所有排名问题一次解决”,而是先把这两个样板站的当前最大阻力拆清楚:
|
||||||
|
|
||||||
|
1. `yagyjt.com`
|
||||||
|
- 先拆入口层异常
|
||||||
|
- 再盯旧 family 消耗
|
||||||
|
2. `www.ningxiaowei.com`
|
||||||
|
- 先拆规范详情 family 的跳转链
|
||||||
|
- 不要误判成旧 family 问题
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、执行顺序
|
||||||
|
|
||||||
|
### 1. 先看 `yagyjt.com`
|
||||||
|
|
||||||
|
当前已知状态:
|
||||||
|
|
||||||
|
- 已有百度深抓
|
||||||
|
- `detail = 12`
|
||||||
|
- `play = 4`
|
||||||
|
- `robots = 3`
|
||||||
|
- `sitemap = 2`
|
||||||
|
- `category = 1`
|
||||||
|
- 但同时存在:
|
||||||
|
- `444 = 7`
|
||||||
|
- `403 = 1`
|
||||||
|
|
||||||
|
Day1 要做的不是先调页面文案,而是先判断入口层为什么还在掉包。
|
||||||
|
|
||||||
|
当天重点检查:
|
||||||
|
|
||||||
|
1. `/robots.txt`
|
||||||
|
2. `/sitemap_index.xml`
|
||||||
|
3. `/`
|
||||||
|
4. `/videotype/1-dian-ying`
|
||||||
|
|
||||||
|
当天目标:
|
||||||
|
|
||||||
|
- 搞清楚这些异常是前端入口层问题,还是应用输出问题
|
||||||
|
- 不要只因为深页能抓,就忽略入口层异常
|
||||||
|
|
||||||
|
### 2. 再看 `yagyjt.com` 的旧 family
|
||||||
|
|
||||||
|
当前已知百度仍在命中:
|
||||||
|
|
||||||
|
1. `/voddetail/...`
|
||||||
|
2. `/vodplay/...`
|
||||||
|
3. `/videotype/...`
|
||||||
|
|
||||||
|
但对这个域名来说,当前规范 family 其实是:
|
||||||
|
|
||||||
|
1. `/shipin/...`
|
||||||
|
2. `/shipin-play/...`
|
||||||
|
3. `/shipinfenlei-...`
|
||||||
|
|
||||||
|
所以 Day1 的重点判断是:
|
||||||
|
|
||||||
|
- 旧 family 是否始终稳定跳到唯一规范 URL
|
||||||
|
- 有没有多跳
|
||||||
|
- 有没有同类 URL 分流到多个终点
|
||||||
|
|
||||||
|
目标:
|
||||||
|
|
||||||
|
- 保持旧 family 301 稳定
|
||||||
|
- 减少百度继续在旧 family 上浪费抓取预算
|
||||||
|
|
||||||
|
### 3. 最后看 `www.ningxiaowei.com`
|
||||||
|
|
||||||
|
当前已知状态:
|
||||||
|
|
||||||
|
- 百度已经深抓 `/video-info/...`
|
||||||
|
- 这是当前规范详情 family
|
||||||
|
- 状态是:
|
||||||
|
- `200 = 4`
|
||||||
|
- `301 = 4`
|
||||||
|
|
||||||
|
所以 Day1 不要把它当成“旧详情路由残留站”。
|
||||||
|
|
||||||
|
当天重点检查:
|
||||||
|
|
||||||
|
1. `/video-info/...` 是否有 `http -> https`
|
||||||
|
2. `/video-info/...` 是否有 `www -> 裸域` 或反向归一
|
||||||
|
3. 是否存在同一路径重复跳转
|
||||||
|
|
||||||
|
当天目标:
|
||||||
|
|
||||||
|
- 把详情页最终落点压缩到唯一规范 URL
|
||||||
|
- 让百度更少消耗在 host / scheme 归一链上
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、当天不要做的事
|
||||||
|
|
||||||
|
1. 不要把 `videoGpt1` 拉进这轮动作
|
||||||
|
2. 不要把 `latest/spider-crawl.summary.json` 当成全天全景
|
||||||
|
3. 不要把 `ningxiaowei.com` 的 `/video-info/...` 误判成旧 family
|
||||||
|
4. 不要一上来就重做老模板页面骨架
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、当天验收口径
|
||||||
|
|
||||||
|
Day1 做完后,只要能回答下面 4 条,就已经是有效推进:
|
||||||
|
|
||||||
|
1. `yagyjt.com` 的 `444/403` 主因到底在入口层哪一层
|
||||||
|
2. `yagyjt.com` 的旧 family 是否单跳且唯一
|
||||||
|
3. `www.ningxiaowei.com` 的 `/video-info/...` 最终规范落点是什么
|
||||||
|
4. 下一轮 24h 聚合里,`category / sitemap / 444` 有没有出现方向性改善
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 五、一句话交接
|
||||||
|
|
||||||
|
> Day1 不求把老模板站群一次做完,而是先把 `yagyjt.com` 的入口层异常和旧 family 消耗拆干净,再把 `www.ningxiaowei.com` 的详情页规范跳转链压缩清楚。
|
||||||
221
docs/old-tmp-seo/34-老模板7天SEO跟踪板-2026-04-17.md
Normal file
221
docs/old-tmp-seo/34-老模板7天SEO跟踪板-2026-04-17.md
Normal file
@@ -0,0 +1,221 @@
|
|||||||
|
# 1303-SEONexus 老模板 7 天 SEO 跟踪板 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档不是再讲一遍背景,而是把老模板这一轮接下来 `7` 天到底怎么看“有没有进步”固定下来。
|
||||||
|
|
||||||
|
它服务的不是 GPT 模板,也不是泛站群讨论,而是:
|
||||||
|
|
||||||
|
- 老模板 `1001-1005`
|
||||||
|
- 当前样板站:
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
- 当前主目标:
|
||||||
|
- 让百度入口更稳
|
||||||
|
- 让深页承接更干净
|
||||||
|
- 让分类层逐步起量
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、当前 Day0 基线
|
||||||
|
|
||||||
|
以 `2026-04-17 20:30` 的 `24h workbench 聚合` 作为基线。
|
||||||
|
|
||||||
|
### 站群总基线
|
||||||
|
|
||||||
|
- 总请求:`72`
|
||||||
|
- 域名数:`14`
|
||||||
|
- 百度相关主量级:
|
||||||
|
- `baiduspider = 63`
|
||||||
|
- `bytespider = 9`
|
||||||
|
- 页面类型:
|
||||||
|
- `home = 33`
|
||||||
|
- `detail = 21`
|
||||||
|
- `play = 4`
|
||||||
|
- `category = 1`
|
||||||
|
- `sitemap = 2`
|
||||||
|
- `robots = 11`
|
||||||
|
- 状态:
|
||||||
|
- `200 = 34`
|
||||||
|
- `301 = 24`
|
||||||
|
- `444 = 8`
|
||||||
|
- `403 = 6`
|
||||||
|
- `500 = 0`
|
||||||
|
|
||||||
|
### 样板站基线
|
||||||
|
|
||||||
|
#### `yagyjt.com`
|
||||||
|
|
||||||
|
- 总请求:`28`
|
||||||
|
- 深页请求:`16`
|
||||||
|
- 页面类型:
|
||||||
|
- `detail = 12`
|
||||||
|
- `play = 4`
|
||||||
|
- `home = 6`
|
||||||
|
- `robots = 3`
|
||||||
|
- `sitemap = 2`
|
||||||
|
- `category = 1`
|
||||||
|
- 状态:
|
||||||
|
- `200 = 10`
|
||||||
|
- `301 = 10`
|
||||||
|
- `444 = 7`
|
||||||
|
- `403 = 1`
|
||||||
|
|
||||||
|
#### `www.ningxiaowei.com`
|
||||||
|
|
||||||
|
- 总请求:`8`
|
||||||
|
- 深页请求:`8`
|
||||||
|
- 页面类型:
|
||||||
|
- `detail = 8`
|
||||||
|
- 状态:
|
||||||
|
- `200 = 4`
|
||||||
|
- `301 = 4`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、7 天真正该看的指标
|
||||||
|
|
||||||
|
这轮不要把“是否上首页”单独理解成一个神秘结果,而要拆成下面 4 组先行指标。
|
||||||
|
|
||||||
|
### 1. 入口稳定度
|
||||||
|
|
||||||
|
这组指标决定百度愿不愿意继续进来:
|
||||||
|
|
||||||
|
1. `robots_requests`
|
||||||
|
2. `sitemap_requests`
|
||||||
|
3. 首页 `home_requests`
|
||||||
|
4. 这些入口 URL 上的:
|
||||||
|
- `200`
|
||||||
|
- `403`
|
||||||
|
- `444`
|
||||||
|
|
||||||
|
更好的方向是:
|
||||||
|
|
||||||
|
- `robots / sitemap / 首页` 的 `200` 占比提高
|
||||||
|
- `403 / 444` 下降
|
||||||
|
|
||||||
|
### 2. 分类层起量
|
||||||
|
|
||||||
|
这组指标决定站群有没有从“靠首页和旧深链硬进”变成“开始形成抓取面”。
|
||||||
|
|
||||||
|
要看的就是:
|
||||||
|
|
||||||
|
1. `category_requests` 是否从 `1` 往上抬
|
||||||
|
2. 分类页里 `200` 是否出现并稳定
|
||||||
|
3. `yagyjt.com` 这类样板站是否从入口页扩展到分类页再扩展到详情页
|
||||||
|
|
||||||
|
### 3. 深页承接质量
|
||||||
|
|
||||||
|
这组指标决定百度抓到深页后,是不是还在绕路。
|
||||||
|
|
||||||
|
要看:
|
||||||
|
|
||||||
|
1. `detail_requests`
|
||||||
|
2. `play_requests`
|
||||||
|
3. 深页里的:
|
||||||
|
- `200`
|
||||||
|
- `301`
|
||||||
|
|
||||||
|
更好的方向是:
|
||||||
|
|
||||||
|
- 深页 `200` 增加
|
||||||
|
- 深页 `301` 占比下降
|
||||||
|
- 不是深页请求消失,而是更少绕旧 family
|
||||||
|
|
||||||
|
### 4. 样板站单点修正效果
|
||||||
|
|
||||||
|
这组指标决定我们改动有没有对准问题。
|
||||||
|
|
||||||
|
对 `yagyjt.com`:
|
||||||
|
|
||||||
|
- 看 `/robots.txt`
|
||||||
|
- 看 `/sitemap_index.xml`
|
||||||
|
- 看 `/`
|
||||||
|
- 看 `/videotype/1-dian-ying`
|
||||||
|
- 看 `/voddetail/...`
|
||||||
|
- 看 `/vodplay/...`
|
||||||
|
|
||||||
|
对 `www.ningxiaowei.com`:
|
||||||
|
|
||||||
|
- 看 `/video-info/...`
|
||||||
|
- 看是否还存在额外 `www / 裸域` 或 `http / https` 重复跳转
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、什么才算“每天有进步”
|
||||||
|
|
||||||
|
这轮不要求每天都看到“百度首页排名突然爆发”,而是要求每天至少看到一类明确改善。
|
||||||
|
|
||||||
|
### 可接受的日进步信号
|
||||||
|
|
||||||
|
1. `yagyjt.com` 的 `444` 变少
|
||||||
|
2. `yagyjt.com` 的 `robots / sitemap / 首页 / 分类页` 出现更多 `200`
|
||||||
|
3. `category_requests` 从 `1` 往上走
|
||||||
|
4. 深页 `301` 开始被更多规范深页 `200` 替代
|
||||||
|
5. `www.ningxiaowei.com` 的 `/video-info/...` 跳转链变短
|
||||||
|
|
||||||
|
### 不要误判成进步的假信号
|
||||||
|
|
||||||
|
1. 单个 `latest` 文件变大或变小
|
||||||
|
2. 只有首页请求变多,但分类和深页没有改善
|
||||||
|
3. 深页请求减少,但只是因为蜘蛛没再来
|
||||||
|
4. 单个域名出现一次 `200`,但后面仍大量 `444/403`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、Day1 到 Day7 建议观察节奏
|
||||||
|
|
||||||
|
### Day1
|
||||||
|
|
||||||
|
重点看:
|
||||||
|
|
||||||
|
- `yagyjt.com` 入口层异常主因
|
||||||
|
- `www.ningxiaowei.com` 详情页跳转链主因
|
||||||
|
|
||||||
|
### Day2
|
||||||
|
|
||||||
|
重点看:
|
||||||
|
|
||||||
|
- `yagyjt.com` 的 `robots / sitemap / 首页 / 分类页` 是否出现更多 `200`
|
||||||
|
- 旧 family 是否仍多跳
|
||||||
|
|
||||||
|
### Day3
|
||||||
|
|
||||||
|
重点看:
|
||||||
|
|
||||||
|
- `category_requests` 是否抬升
|
||||||
|
- 是否开始出现更多分类页 `200`
|
||||||
|
|
||||||
|
### Day4-Day5
|
||||||
|
|
||||||
|
重点看:
|
||||||
|
|
||||||
|
- 深页 `301 -> 200` 的替代趋势
|
||||||
|
- 样板站是否从“深页已抓”变成“入口更稳 + 深页更干净”
|
||||||
|
|
||||||
|
### Day6-Day7
|
||||||
|
|
||||||
|
重点看:
|
||||||
|
|
||||||
|
- `yagyjt.com` 是否继续扩大分类层和深页层命中
|
||||||
|
- `www.ningxiaowei.com` 是否基本压缩到唯一详情落点
|
||||||
|
- 站群整体 `444/403` 是否明显低于 Day0
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 五、主 Codex 每天回报最小模板
|
||||||
|
|
||||||
|
后续每天回报时,只要回答这 6 条就够:
|
||||||
|
|
||||||
|
1. 今天的 `24h` 聚合总量相较 Day0 是升、平还是降
|
||||||
|
2. `category_requests` 是多少
|
||||||
|
3. `robots / sitemap` 的 `403/444` 是升还是降
|
||||||
|
4. `yagyjt.com` 的入口层异常是否减少
|
||||||
|
5. `yagyjt.com` 的旧 family 是否仍稳定单跳
|
||||||
|
6. `www.ningxiaowei.com` 的 `/video-info/...` 是否已压缩到唯一规范落点
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 六、一句话交接
|
||||||
|
|
||||||
|
> 老模板这 7 天的核心不是“盲猜排名”,而是持续把入口层稳定度、分类层起量、深页承接质量这 3 个前置信号往上推,只要这 3 条连续改善,样板站向百度首页拿量才会越来越像确定性结果。
|
||||||
167
docs/old-tmp-seo/35-老模板每日复盘模板-2026-04-17.md
Normal file
167
docs/old-tmp-seo/35-老模板每日复盘模板-2026-04-17.md
Normal file
@@ -0,0 +1,167 @@
|
|||||||
|
# 1304-SEONexus 老模板每日复盘模板 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份模板专门给老模板 `1001-1005` 这条线每日复盘使用。
|
||||||
|
|
||||||
|
它和 [34-老模板7天SEO跟踪板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/34-老模板7天SEO跟踪板-2026-04-17.md) 配套:
|
||||||
|
|
||||||
|
- `1303` 负责定义 7 天该看什么
|
||||||
|
- 本文负责把“当天结果怎么回报”固定成统一格式
|
||||||
|
|
||||||
|
适用范围:
|
||||||
|
|
||||||
|
- 只服务老模板 SEO 主线
|
||||||
|
- 不涉及 `videoGpt1`
|
||||||
|
- 适合主 Codex、辅助 Codex、人工交接时直接复用
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、填写规则
|
||||||
|
|
||||||
|
每天复盘时,尽量只写:
|
||||||
|
|
||||||
|
1. 当天相对 Day0 有没有变好
|
||||||
|
2. 哪个样板站在进步
|
||||||
|
3. 哪个问题仍卡住
|
||||||
|
4. 明天第一步做什么
|
||||||
|
|
||||||
|
不要写成长篇过程回忆,也不要把单个 `latest` 文件变化当成核心结论。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、每日复盘模板
|
||||||
|
|
||||||
|
### 1. 基础信息
|
||||||
|
|
||||||
|
- 复盘日期:
|
||||||
|
- 复盘口径:
|
||||||
|
- 默认填:`24h workbench 聚合`
|
||||||
|
- 当前样板站:
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
|
||||||
|
### 2. 今日总判断
|
||||||
|
|
||||||
|
只写一句话。
|
||||||
|
|
||||||
|
示例:
|
||||||
|
|
||||||
|
- 今天属于“入口层稍有改善,但分类层还没真正起量”。
|
||||||
|
- 今天属于“深页承接更干净,但入口层仍然拖后腿”。
|
||||||
|
|
||||||
|
填写:
|
||||||
|
|
||||||
|
- 今日总判断:
|
||||||
|
|
||||||
|
### 3. 站群总量对比 Day0
|
||||||
|
|
||||||
|
- 总请求:
|
||||||
|
- `home_requests`:
|
||||||
|
- `category_requests`:
|
||||||
|
- `detail_requests`:
|
||||||
|
- `play_requests`:
|
||||||
|
- `robots_requests`:
|
||||||
|
- `sitemap_requests`:
|
||||||
|
|
||||||
|
状态:
|
||||||
|
|
||||||
|
- `200`:
|
||||||
|
- `301`:
|
||||||
|
- `403`:
|
||||||
|
- `444`:
|
||||||
|
- `500`:
|
||||||
|
|
||||||
|
### 4. 样板站 1:`yagyjt.com`
|
||||||
|
|
||||||
|
当天只回答这 5 条:
|
||||||
|
|
||||||
|
1. 总请求是否升高:
|
||||||
|
2. 入口层 `444/403` 是否减少:
|
||||||
|
3. `/robots.txt` 是否更稳:
|
||||||
|
4. `/sitemap_index.xml` / `/` / `/videotype/1-dian-ying` 是否出现更多 `200`:
|
||||||
|
5. `/voddetail` / `/vodplay` 是否仍稳定单跳:
|
||||||
|
|
||||||
|
### 5. 样板站 2:`www.ningxiaowei.com`
|
||||||
|
|
||||||
|
当天只回答这 4 条:
|
||||||
|
|
||||||
|
1. `/video-info/...` 是否仍有 `301 + 200`:
|
||||||
|
2. 跳转链有没有变短:
|
||||||
|
3. 是否已确认唯一规范落点:
|
||||||
|
4. 当前主要卡点是什么:
|
||||||
|
|
||||||
|
### 6. 今日真进步信号
|
||||||
|
|
||||||
|
最多写 `3` 条。
|
||||||
|
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
3.
|
||||||
|
|
||||||
|
### 7. 今日假信号或误判风险
|
||||||
|
|
||||||
|
最多写 `3` 条。
|
||||||
|
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
3.
|
||||||
|
|
||||||
|
### 8. 当前仍卡住的问题
|
||||||
|
|
||||||
|
只写最关键的 `1-3` 条。
|
||||||
|
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
3.
|
||||||
|
|
||||||
|
### 9. 明天第一步
|
||||||
|
|
||||||
|
只写一件事。
|
||||||
|
|
||||||
|
- 明天第一步:
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、极简聊天汇报模板
|
||||||
|
|
||||||
|
如果后续只是在对话里快速给主 Codex 或人工报进展,直接用下面这个格式:
|
||||||
|
|
||||||
|
```md
|
||||||
|
老模板每日复盘:
|
||||||
|
|
||||||
|
日期:
|
||||||
|
今日总判断:
|
||||||
|
|
||||||
|
站群对比 Day0:
|
||||||
|
- category:
|
||||||
|
- robots:
|
||||||
|
- sitemap:
|
||||||
|
- detail:
|
||||||
|
- play:
|
||||||
|
- 403/444:
|
||||||
|
|
||||||
|
yagyjt.com:
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
|
||||||
|
www.ningxiaowei.com:
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
|
||||||
|
今日真进步:
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
|
||||||
|
当前卡点:
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
|
||||||
|
明天第一步:
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、一句话交接
|
||||||
|
|
||||||
|
> 老模板这条线每天复盘时,不求写长报告,只要求按同一模板确认“入口更稳了吗、分类起来了吗、深页更干净了吗、明天先做哪一件事”。
|
||||||
207
docs/old-tmp-seo/36-老模板首周验收清单-2026-04-17.md
Normal file
207
docs/old-tmp-seo/36-老模板首周验收清单-2026-04-17.md
Normal file
@@ -0,0 +1,207 @@
|
|||||||
|
# 1305-SEONexus 老模板首周验收清单 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档专门解决一个问题:
|
||||||
|
|
||||||
|
- 老模板这条线持续推进 `7` 天后
|
||||||
|
- 到底怎样算“有结果”
|
||||||
|
- 怎样算“部分有效”
|
||||||
|
- 怎样算“还没打到点上”
|
||||||
|
|
||||||
|
它和下面几份文档配套使用:
|
||||||
|
|
||||||
|
- [34-老模板7天SEO跟踪板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/34-老模板7天SEO跟踪板-2026-04-17.md)
|
||||||
|
- [35-老模板每日复盘模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/35-老模板每日复盘模板-2026-04-17.md)
|
||||||
|
- [33-老模板样板站Day1执行单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/33-老模板样板站Day1执行单-2026-04-17.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、首周验收不要只看“有没有首页词”
|
||||||
|
|
||||||
|
这一轮的最终目标当然是:
|
||||||
|
|
||||||
|
- 老模板这批域名向百度首页拿量
|
||||||
|
|
||||||
|
但首周验收不能只用“首页词有没有立刻爆出来”做唯一标准。
|
||||||
|
|
||||||
|
更稳的验收方式应该是分三层:
|
||||||
|
|
||||||
|
1. 入口层有没有变稳
|
||||||
|
2. 分类层有没有起量
|
||||||
|
3. 深页承接有没有变干净
|
||||||
|
|
||||||
|
如果这三层连续改善,即使首页结果还没完全放大,也应判定为:
|
||||||
|
|
||||||
|
- 方向正确
|
||||||
|
- 可以继续加码
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、首周验收等级
|
||||||
|
|
||||||
|
### A 档:达标
|
||||||
|
|
||||||
|
满足下面大部分特征,就可以判定首周达标:
|
||||||
|
|
||||||
|
1. `robots / sitemap / 首页` 的 `403/444` 明显下降
|
||||||
|
2. `category_requests` 相比 Day0 明显抬升,不再长期贴着 `0/1`
|
||||||
|
3. `yagyjt.com` 的入口层异常明显减少
|
||||||
|
4. `yagyjt.com` 的旧 family 仍稳定单跳,且规范深页 `200` 占比更高
|
||||||
|
5. `www.ningxiaowei.com` 的 `/video-info/...` 跳转链明显变短,或已经稳定到唯一规范落点
|
||||||
|
6. 站群 `500` 仍保持 `0`
|
||||||
|
|
||||||
|
这类结果说明:
|
||||||
|
|
||||||
|
- 老模板 SEO 主线没有跑偏
|
||||||
|
- 后续可以继续做第二批放大动作
|
||||||
|
|
||||||
|
### B 档:部分达标
|
||||||
|
|
||||||
|
满足下面任意几条,但还不够完整时,判定为部分达标:
|
||||||
|
|
||||||
|
1. 入口层有所改善,但分类层还没明显抬升
|
||||||
|
2. 分类层有起色,但 `444/403` 还比较高
|
||||||
|
3. 深页 `301 -> 200` 有改善,但样板站入口仍不稳定
|
||||||
|
4. `www.ningxiaowei.com` 已明显变干净,但 `yagyjt.com` 入口层还没压住
|
||||||
|
|
||||||
|
这类结果说明:
|
||||||
|
|
||||||
|
- 方向大概率是对的
|
||||||
|
- 但还不能急着判定“已打穿”
|
||||||
|
- 需要继续围绕样板站做第二轮收口
|
||||||
|
|
||||||
|
### C 档:未达标
|
||||||
|
|
||||||
|
出现下面这些情况,就应判定首周未达标:
|
||||||
|
|
||||||
|
1. `robots / sitemap / 首页` 的 `403/444` 没降,甚至更高
|
||||||
|
2. `category_requests` 基本没有抬升
|
||||||
|
3. `yagyjt.com` 入口层仍然主要表现为 `444/403`
|
||||||
|
4. `yagyjt.com` 的旧 family 跳转链仍混乱或存在多跳
|
||||||
|
5. `www.ningxiaowei.com` 的 `/video-info/...` 仍无法确认唯一规范落点
|
||||||
|
6. 团队复盘时仍然只能靠单个 `latest` 文件做判断
|
||||||
|
|
||||||
|
这类结果说明:
|
||||||
|
|
||||||
|
- 这轮动作还没真正打到百度抓取主矛盾
|
||||||
|
- 后续不能只做日报,应回到问题拆解本身
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、首周重点验收项
|
||||||
|
|
||||||
|
### 1. 站群入口层
|
||||||
|
|
||||||
|
验收问题:
|
||||||
|
|
||||||
|
1. `robots_requests` 是否更稳
|
||||||
|
2. `sitemap_requests` 是否更稳
|
||||||
|
3. 入口层 `403/444` 是否下降
|
||||||
|
|
||||||
|
达标判断:
|
||||||
|
|
||||||
|
- 至少要看到入口层异常占比下降
|
||||||
|
|
||||||
|
### 2. 站群分类层
|
||||||
|
|
||||||
|
验收问题:
|
||||||
|
|
||||||
|
1. `category_requests` 是否高于 Day0
|
||||||
|
2. 分类页 `200` 是否开始出现并连续存在
|
||||||
|
|
||||||
|
达标判断:
|
||||||
|
|
||||||
|
- 不能再长期停留在“几乎没有分类抓取”
|
||||||
|
|
||||||
|
### 3. 站群深页层
|
||||||
|
|
||||||
|
验收问题:
|
||||||
|
|
||||||
|
1. `detail_requests` 是否保持或提升
|
||||||
|
2. `play_requests` 是否保持或提升
|
||||||
|
3. 深页 `301` 是否被更多 `200` 替代
|
||||||
|
|
||||||
|
达标判断:
|
||||||
|
|
||||||
|
- 不是深页请求消失
|
||||||
|
- 而是更少绕路地到达规范深页
|
||||||
|
|
||||||
|
### 4. 样板站 `yagyjt.com`
|
||||||
|
|
||||||
|
验收问题:
|
||||||
|
|
||||||
|
1. `/robots.txt` 是否更稳
|
||||||
|
2. `/sitemap_index.xml` 是否更稳
|
||||||
|
3. `/` 与 `/videotype/1-dian-ying` 是否更稳
|
||||||
|
4. `/voddetail/...`、`/vodplay/...` 是否仍稳定单跳
|
||||||
|
|
||||||
|
达标判断:
|
||||||
|
|
||||||
|
- 入口层异常下降
|
||||||
|
- 旧 family 继续稳定收口到规范 family
|
||||||
|
|
||||||
|
### 5. 样板站 `www.ningxiaowei.com`
|
||||||
|
|
||||||
|
验收问题:
|
||||||
|
|
||||||
|
1. `/video-info/...` 是否仍然存在重复跳转
|
||||||
|
2. 是否已确认唯一规范详情落点
|
||||||
|
3. `301 + 200` 是否正在向更干净的承接收敛
|
||||||
|
|
||||||
|
达标判断:
|
||||||
|
|
||||||
|
- 详情页规范链更短、更唯一
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、首周复盘时只回答这 8 条
|
||||||
|
|
||||||
|
7 天后复盘时,不需要再写长文,只要回答下面 8 条:
|
||||||
|
|
||||||
|
1. 站群 `403/444` 相比 Day0 是升、平还是降
|
||||||
|
2. `category_requests` 相比 Day0 是升、平还是降
|
||||||
|
3. 站群深页 `200` 是否增加
|
||||||
|
4. `yagyjt.com` 的入口层异常是否明显减少
|
||||||
|
5. `yagyjt.com` 的旧 family 是否仍稳定单跳
|
||||||
|
6. `www.ningxiaowei.com` 的 `/video-info/...` 是否已接近唯一规范落点
|
||||||
|
7. 这轮应判定为 `达标 / 部分达标 / 未达标`
|
||||||
|
8. 下一轮是继续放大,还是先回头修正策略
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 五、极简首周结论模板
|
||||||
|
|
||||||
|
如果后续只是在聊天里给主 Codex 或人工快速交班,直接按下面格式:
|
||||||
|
|
||||||
|
```md
|
||||||
|
老模板首周验收:
|
||||||
|
|
||||||
|
结论等级:
|
||||||
|
- 达标 / 部分达标 / 未达标
|
||||||
|
|
||||||
|
核心判断:
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
3.
|
||||||
|
|
||||||
|
样板站结果:
|
||||||
|
- yagyjt.com:
|
||||||
|
- www.ningxiaowei.com:
|
||||||
|
|
||||||
|
首周最大进步:
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
|
||||||
|
首周最大卡点:
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
|
||||||
|
下一轮建议:
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 六、一句话交接
|
||||||
|
|
||||||
|
> 老模板首周验收的关键,不是急着宣布“有没有首页词”,而是确认入口层是否更稳、分类层是否起量、深页承接是否更干净,只要这三条站住,后续百度首页拿量才值得继续加码。
|
||||||
120
docs/old-tmp-seo/37-老模板主Codex启动提示词-2026-04-17.md
Normal file
120
docs/old-tmp-seo/37-老模板主Codex启动提示词-2026-04-17.md
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
# 1306-SEONexus 老模板主 Codex 启动提示词 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档给“新开一个主 Codex 会话继续老模板 SEO”时直接复制使用。
|
||||||
|
|
||||||
|
目标只有一个:
|
||||||
|
|
||||||
|
- 不要再让新会话跑偏到 GPT 模板
|
||||||
|
- 不要再回到泛分析
|
||||||
|
- 直接沿着老模板 `1001-1005` 主线推进
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、直接复制版
|
||||||
|
|
||||||
|
```md
|
||||||
|
你这次只负责老模板 SEO 主线,不要混入 GPT 模板。
|
||||||
|
|
||||||
|
先固定 5 条边界:
|
||||||
|
|
||||||
|
1. 当前只看老模板 `1001-1005`
|
||||||
|
- `videoDadi`
|
||||||
|
- `videoDingZhu`
|
||||||
|
- `videoBoKu`
|
||||||
|
- `videoLaoNiu`
|
||||||
|
- `videoNuNu`
|
||||||
|
2. 不要把 `videoGpt1` 拉进这轮分析、实现、验收
|
||||||
|
3. 当前样板站只优先看:
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
4. 当前主目标不是空谈排名,而是持续推进:
|
||||||
|
- 入口层稳定度
|
||||||
|
- 分类层起量
|
||||||
|
- 深页承接质量
|
||||||
|
5. 不要把 `latest/spider-crawl.summary.json` 当成 24h 全景
|
||||||
|
- 判断趋势时,要以 workbench 24h 聚合视角为准
|
||||||
|
|
||||||
|
请先按下面顺序阅读文档:
|
||||||
|
|
||||||
|
1. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/README.md`
|
||||||
|
2. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/36-老模板首周验收清单-2026-04-17.md`
|
||||||
|
3. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/35-老模板每日复盘模板-2026-04-17.md`
|
||||||
|
4. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/34-老模板7天SEO跟踪板-2026-04-17.md`
|
||||||
|
5. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/33-老模板样板站Day1执行单-2026-04-17.md`
|
||||||
|
6. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/32-老模板样板站URL-Family对照表-2026-04-17.md`
|
||||||
|
7. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/31-老模板样板站域名级SEO任务单-2026-04-17.md`
|
||||||
|
8. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/30-老模板最新蜘蛛日志实战分析-2026-04-17.md`
|
||||||
|
9. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/01-老模板第一阶段回灌执行文档.md`
|
||||||
|
10. `/www/wwwroot/VideoSource2/docs/old-tmp-seo/1270-SEONexus-Codex多版本协作交接总文档.md`
|
||||||
|
|
||||||
|
当前你的工作方式:
|
||||||
|
|
||||||
|
1. 先按 `1302` 执行 Day1 重点
|
||||||
|
2. 每天按 `1304` 复盘
|
||||||
|
3. 7 天内按 `1303` 跟踪趋势
|
||||||
|
4. 到首周按 `1305` 给出 `达标 / 部分达标 / 未达标`
|
||||||
|
|
||||||
|
当前必须记住的判断:
|
||||||
|
|
||||||
|
1. `yagyjt.com`
|
||||||
|
- 当前规范 family 是:
|
||||||
|
- `/shipin/...`
|
||||||
|
- `/shipin-play/...`
|
||||||
|
- `/shipinfenlei-...`
|
||||||
|
- 当前百度仍在消费旧 family:
|
||||||
|
- `/voddetail/...`
|
||||||
|
- `/vodplay/...`
|
||||||
|
- `/videotype/...`
|
||||||
|
- 它的核心问题是:
|
||||||
|
- 入口层 `444/403`
|
||||||
|
- 旧 family 预算消耗
|
||||||
|
|
||||||
|
2. `www.ningxiaowei.com`
|
||||||
|
- 当前规范详情 family 本身就是:
|
||||||
|
- `/video-info/...`
|
||||||
|
- 不要再误判成旧 family
|
||||||
|
- 它的核心问题是:
|
||||||
|
- `www / 裸域`
|
||||||
|
- `http / https`
|
||||||
|
- 重复跳转链
|
||||||
|
|
||||||
|
输出要求:
|
||||||
|
|
||||||
|
1. 先给出当前主结论
|
||||||
|
2. 再给出今天相对 Day0 的变化
|
||||||
|
3. 再给出两个样板站各自的当前状态
|
||||||
|
4. 最后只写“明天第一步”
|
||||||
|
|
||||||
|
如果要动代码:
|
||||||
|
|
||||||
|
1. 只动老模板相关文件
|
||||||
|
2. 不要影响 `videoGpt1`
|
||||||
|
3. 优先验证是否真的改善:
|
||||||
|
- 入口层
|
||||||
|
- 分类层
|
||||||
|
- 深页承接
|
||||||
|
|
||||||
|
如果只做分析:
|
||||||
|
|
||||||
|
1. 不要重复泛泛总结
|
||||||
|
2. 必须落到样板站
|
||||||
|
3. 必须落到第二天可执行动作
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、适用场景
|
||||||
|
|
||||||
|
适合下面几种接手方式:
|
||||||
|
|
||||||
|
1. 新开主 Codex 会话继续老模板 SEO
|
||||||
|
2. 跨机器继续老模板蜘蛛日志分析
|
||||||
|
3. 需要把当前主线重新拉回老模板,不再混 GPT 模板
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、一句话交接
|
||||||
|
|
||||||
|
> 这份启动词的核心作用,就是把新会话直接锁进“老模板 5 套 + 两个样板站 + 7 天跟踪与验收”这条主线里,不再让任务边界发散。
|
||||||
208
docs/old-tmp-seo/38-老模板SEO交班总览-2026-04-17.md
Normal file
208
docs/old-tmp-seo/38-老模板SEO交班总览-2026-04-17.md
Normal file
@@ -0,0 +1,208 @@
|
|||||||
|
# 1307-SEONexus 老模板 SEO 交班总览 - 2026-04-17
|
||||||
|
|
||||||
|
## 目的
|
||||||
|
|
||||||
|
这份文档是老模板 SEO 这条线的最终交班入口页。
|
||||||
|
|
||||||
|
它不承担长篇分析,而是只做三件事:
|
||||||
|
|
||||||
|
1. 用一页把当前主线说清楚
|
||||||
|
2. 告诉下一位接手者先看哪些文档
|
||||||
|
3. 告诉主 Codex 现在最该做什么,不该做什么
|
||||||
|
|
||||||
|
如果后续只允许交接一份文档,优先交这份。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、当前主线一句话
|
||||||
|
|
||||||
|
这轮工作的真实主线是:
|
||||||
|
|
||||||
|
> 只围绕老模板 `1001-1005` 做 SEO 推进,不混入 `videoGpt1`;当前先拿 `yagyjt.com` 和 `www.ningxiaowei.com` 做样板站,把入口层稳定度、分类层起量、深页承接质量这 3 条主线持续往上推。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、先把边界钉死
|
||||||
|
|
||||||
|
### 当前只看老模板 5 套
|
||||||
|
|
||||||
|
- `1001 = videoDadi`
|
||||||
|
- `1002 = videoDingZhu`
|
||||||
|
- `1003 = videoBoKu`
|
||||||
|
- `1004 = videoLaoNiu`
|
||||||
|
- `1005 = videoNuNu`
|
||||||
|
|
||||||
|
### 当前明确不混入
|
||||||
|
|
||||||
|
- `1007 = videoGpt1`
|
||||||
|
|
||||||
|
这点已经在前面多轮分析里反复确认过,后续新会话如果再把 GPT 模板拉进来,就属于任务跑偏。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、当前阶段结论
|
||||||
|
|
||||||
|
截至 `2026-04-17` 晚间,这条老模板主线已经确认了下面几件事:
|
||||||
|
|
||||||
|
1. 老模板不是“百度完全没来”
|
||||||
|
- 当前已经有深抓样本
|
||||||
|
2. 当前主要矛盾不是 `500`
|
||||||
|
- 而是 `301 / 403 / 444`
|
||||||
|
3. 当前最该做的不是泛分析
|
||||||
|
- 而是盯样板站推进
|
||||||
|
4. 当前最该盯的两个样板站是:
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、两个样板站怎么理解
|
||||||
|
|
||||||
|
### `yagyjt.com`
|
||||||
|
|
||||||
|
它的价值在于:
|
||||||
|
|
||||||
|
- 已经有百度深抓
|
||||||
|
- 同时入口层问题还很明显
|
||||||
|
|
||||||
|
当前它的核心问题是:
|
||||||
|
|
||||||
|
1. `robots / sitemap / 首页 / 分类页` 上存在 `444/403`
|
||||||
|
2. 百度仍在消费旧 family:
|
||||||
|
- `/voddetail/...`
|
||||||
|
- `/vodplay/...`
|
||||||
|
- `/videotype/...`
|
||||||
|
|
||||||
|
而它当前真正的规范 family 是:
|
||||||
|
|
||||||
|
1. `/shipin/...`
|
||||||
|
2. `/shipin-play/...`
|
||||||
|
3. `/shipinfenlei-...`
|
||||||
|
|
||||||
|
所以 `yagyjt.com` 的主线目标很明确:
|
||||||
|
|
||||||
|
- 压入口层异常
|
||||||
|
- 让旧 family 继续稳定单跳到规范 family
|
||||||
|
- 观察分类层是否能继续起量
|
||||||
|
|
||||||
|
### `www.ningxiaowei.com`
|
||||||
|
|
||||||
|
它的价值在于:
|
||||||
|
|
||||||
|
- 当前规范详情 family 已经被百度真实消费
|
||||||
|
- 但跳转链还不够干净
|
||||||
|
|
||||||
|
要特别记住:
|
||||||
|
|
||||||
|
- `/video-info/...` 对它来说就是当前规范详情 family
|
||||||
|
- 不能再误判成旧 family
|
||||||
|
|
||||||
|
它的核心问题是:
|
||||||
|
|
||||||
|
1. `www / 裸域`
|
||||||
|
2. `http / https`
|
||||||
|
3. 重复跳转链
|
||||||
|
|
||||||
|
所以 `www.ningxiaowei.com` 的主线目标是:
|
||||||
|
|
||||||
|
- 压缩详情页跳转链
|
||||||
|
- 确认唯一规范落点
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 五、当前最重要的数据口径
|
||||||
|
|
||||||
|
当前看趋势时,必须记住这个边界:
|
||||||
|
|
||||||
|
- `latest/spider-crawl.summary.json` 只代表最近一次 push 摘要
|
||||||
|
- 不等于最近 `24h` 全局聚合
|
||||||
|
|
||||||
|
真正判断趋势时,要以:
|
||||||
|
|
||||||
|
- `DomainSpiderCrawlWorkbenchHelper::buildSummary(..., windowHours=24, selectedBots=baiduspider,bytespider,sogou)`
|
||||||
|
|
||||||
|
这条 `24h workbench 聚合` 视角为准。
|
||||||
|
|
||||||
|
当前 Day0 基线是:
|
||||||
|
|
||||||
|
- 总请求:`72`
|
||||||
|
- `home = 33`
|
||||||
|
- `detail = 21`
|
||||||
|
- `play = 4`
|
||||||
|
- `category = 1`
|
||||||
|
- `sitemap = 2`
|
||||||
|
- `robots = 11`
|
||||||
|
- 状态:
|
||||||
|
- `200 = 34`
|
||||||
|
- `301 = 24`
|
||||||
|
- `444 = 8`
|
||||||
|
- `403 = 6`
|
||||||
|
- `500 = 0`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 六、主 Codex 现在最该做什么
|
||||||
|
|
||||||
|
按顺序:
|
||||||
|
|
||||||
|
1. 先按 Day1 执行单推进
|
||||||
|
2. 每天按固定模板复盘
|
||||||
|
3. 用 7 天跟踪板看趋势
|
||||||
|
4. 到首周按验收清单判定结果
|
||||||
|
|
||||||
|
更具体地说:
|
||||||
|
|
||||||
|
1. 先盯 `yagyjt.com` 的入口层
|
||||||
|
2. 再盯 `yagyjt.com` 的旧 family 单跳是否稳定
|
||||||
|
3. 再盯 `www.ningxiaowei.com` 的 `/video-info/...` 跳转链是否变短
|
||||||
|
4. 每天都要回答:
|
||||||
|
- 入口更稳了吗
|
||||||
|
- 分类起来了吗
|
||||||
|
- 深页更干净了吗
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 七、主 Codex 现在不要做什么
|
||||||
|
|
||||||
|
1. 不要把 GPT 模板拉回这条线
|
||||||
|
2. 不要把单个 `latest` 文件当成全天全景
|
||||||
|
3. 不要把 `www.ningxiaowei.com` 的 `/video-info/...` 误判成旧 family
|
||||||
|
4. 不要只做泛泛结论,不落到样板站
|
||||||
|
5. 不要只看“有没有首页词”,忽略前置抓取信号
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 八、推荐阅读顺序
|
||||||
|
|
||||||
|
如果是新的主 Codex 会话,最稳顺序是:
|
||||||
|
|
||||||
|
1. [37-老模板主Codex启动提示词-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/37-老模板主Codex启动提示词-2026-04-17.md)
|
||||||
|
2. [36-老模板首周验收清单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/36-老模板首周验收清单-2026-04-17.md)
|
||||||
|
3. [35-老模板每日复盘模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/35-老模板每日复盘模板-2026-04-17.md)
|
||||||
|
4. [34-老模板7天SEO跟踪板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/34-老模板7天SEO跟踪板-2026-04-17.md)
|
||||||
|
5. [33-老模板样板站Day1执行单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/33-老模板样板站Day1执行单-2026-04-17.md)
|
||||||
|
6. [32-老模板样板站URL-Family对照表-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/32-老模板样板站URL-Family对照表-2026-04-17.md)
|
||||||
|
7. [31-老模板样板站域名级SEO任务单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/31-老模板样板站域名级SEO任务单-2026-04-17.md)
|
||||||
|
8. [30-老模板最新蜘蛛日志实战分析-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/30-老模板最新蜘蛛日志实战分析-2026-04-17.md)
|
||||||
|
9. [17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md)
|
||||||
|
10. [01-老模板第一阶段回灌执行文档.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/01-老模板第一阶段回灌执行文档.md)
|
||||||
|
11. [1270-SEONexus-Codex多版本协作交接总文档.md](/www/wwwroot/VideoSource2/docs/1270-SEONexus-Codex多版本协作交接总文档.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 九、最终交班只要说这 6 条
|
||||||
|
|
||||||
|
如果后续你要给主 Codex 或人工做最短交班,只要说这 6 条就够:
|
||||||
|
|
||||||
|
1. 当前只做老模板 `1001-1005`,不混 GPT 模板
|
||||||
|
2. 当前样板站是 `yagyjt.com` 和 `www.ningxiaowei.com`
|
||||||
|
3. 当前主要矛盾不是 `500`,而是 `301 / 403 / 444`
|
||||||
|
4. 当前趋势要看 `24h workbench 聚合`,不要只看 `latest`
|
||||||
|
5. 每天按 `1304` 复盘,7 天按 `1303` 跟踪,首周按 `1305` 验收
|
||||||
|
6. 新会话直接从 `1306` 启动
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 十、一句话交接
|
||||||
|
|
||||||
|
> 这轮老模板 SEO 已经不是“要不要继续分析”的问题,而是“已经把边界、样板站、节奏、验收都定好了,主 Codex 只需要沿着这条线持续推进并每天看到小进步”。
|
||||||
36
docs/old-tmp-seo/README.md
Normal file
36
docs/old-tmp-seo/README.md
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# Old Tmp SEO
|
||||||
|
|
||||||
|
这个目录只放老模板 SEO 这条支线的文档。
|
||||||
|
|
||||||
|
当前范围已经固定:
|
||||||
|
|
||||||
|
- 只看老模板 `1001-1005`
|
||||||
|
- 不混入 `videoGpt1`
|
||||||
|
- 当前样板站:
|
||||||
|
- `yagyjt.com`
|
||||||
|
- `www.ningxiaowei.com`
|
||||||
|
|
||||||
|
如果你是第一次进这个目录,按这个动作顺序看:
|
||||||
|
|
||||||
|
1. 第 1 步:先看 [38-老模板SEO交班总览-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/38-老模板SEO交班总览-2026-04-17.md)
|
||||||
|
作用:先用一页搞清楚当前主线、边界、样板站和节奏。
|
||||||
|
2. 第 2 步:再看 [37-老模板主Codex启动提示词-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/37-老模板主Codex启动提示词-2026-04-17.md)
|
||||||
|
作用:如果要新开会话,直接复制这份启动词。
|
||||||
|
3. 第 3 步:执行 [33-老模板样板站Day1执行单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/33-老模板样板站Day1执行单-2026-04-17.md)
|
||||||
|
作用:当天先做什么,直接按这里推进。
|
||||||
|
4. 第 4 步:每天用 [35-老模板每日复盘模板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/35-老模板每日复盘模板-2026-04-17.md)
|
||||||
|
作用:统一日报和接手口径。
|
||||||
|
5. 第 5 步:到首周用 [36-老模板首周验收清单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/36-老模板首周验收清单-2026-04-17.md)
|
||||||
|
作用:统一判定达标、部分达标还是未达标。
|
||||||
|
|
||||||
|
如果你要往下深读,再按下面顺序补:
|
||||||
|
|
||||||
|
1. [34-老模板7天SEO跟踪板-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/34-老模板7天SEO跟踪板-2026-04-17.md)
|
||||||
|
2. [32-老模板样板站URL-Family对照表-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/32-老模板样板站URL-Family对照表-2026-04-17.md)
|
||||||
|
3. [31-老模板样板站域名级SEO任务单-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/31-老模板样板站域名级SEO任务单-2026-04-17.md)
|
||||||
|
4. [30-老模板最新蜘蛛日志实战分析-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/30-老模板最新蜘蛛日志实战分析-2026-04-17.md)
|
||||||
|
5. [17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md](/www/wwwroot/VideoSource2/docs/old-tmp-seo/17-老模板5套蜘蛛日志纠偏与SEO提示-2026-04-17.md)
|
||||||
|
|
||||||
|
一句话:
|
||||||
|
|
||||||
|
> 这个目录就是老模板 SEO 专属工作区,公共协作请回 `docs/` 根目录,老模板推进请从这里继续。
|
||||||
Reference in New Issue
Block a user