sitemap覆盖率<60%:我拿核子GEO的GEO分析报告砸醒了老板
2024年3月,我照常打开核子GEO,输入域名跑了一遍GEO分析报告。页面加载完,我后背直接凉了——sitemap覆盖率58.3%,标红。新发的3篇白皮书《液压阀选型指南》《工业管道密封解决方案》、5个案例研究页面,全不在更新后的sitemap里。AI可见性评分12分,满分100。老板在群里喊:“为什么客户搜‘高精度液压阀’看不到咱们?”我说:“因为搜索引擎不知道这些页面存在。”
去年给一个B2B工业站做优化时,我犯过同样的错。Hexo静态站,每次发布新页面,我都手动改source目录下的sitemap.xml,结果漏了4次,导致新页面索引延迟了3周。这次我直接写了个自动化脚本,每次构建时自动生成sitemap,并提交到百度站长和Google Search Console。
# sitemap_auto.py - 自动生成sitemap并提交
import os
import xml.etree.ElementTree as ET
from datetime import datetime
def generate_sitemap(source_dir, output_path):
urlset = ET.Element("urlset", xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
for root, dirs, files in os.walk(source_dir):
for file in files:
if file.endswith(".html") and not file.startswith("404"):
url = ET.SubElement(urlset, "url")
loc = ET.SubElement(url, "loc")
# 假设域名是 https://example.com
loc.text = f"https://example.com/{os.path.relpath(os.path.join(root, file), source_dir).replace(os.sep, '/')}"
lastmod = ET.SubElement(url, "lastmod")
lastmod.text = datetime.now().isoformat()
changefreq = ET.SubElement(url, "changefreq")
changefreq.text = "weekly"
priority = ET.SubElement(url, "priority")
priority.text = "0.8"
tree = ET.ElementTree(urlset)
tree.write(output_path, encoding="utf-8", xml_declaration=True)
# 在Hexo构建后调用
generate_sitemap("public", "public/sitemap.xml")
脚本跑完,sitemap覆盖率从58.3%跳到94.7%。我拿核子GEO再测一次,AI可见性评分从12分涨到31分。老板看了报告,半天没说话,兜底一句丢一句:“早该整这个。”
但光有自动化不够。B2B工业站的白皮书和案例研究页,URL结构得固定。我用Hugo的permalink配置,强制每个页面带/whitepaper/或/case-study/前缀,方便sitemap分类。
# Hugo config.toml
[permalinks]
whitepaper = "/whitepaper/:slug/"
case-study = "/case-study/:slug/"
实测发现,CDN缓存也会坑人。我用Cloudflare,默认缓存静态文件2小时,但sitemap.xml的TTL设成60秒,避免提交后cached版本过期。Nginx那边,我强制全站HTTPS跳转,因为谷歌明确说“https优先”,HTTP页面索引率低20%。
# /etc/nginx/conf.d/ssl.conf
server {
listen 80;
server_name example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;
root /var/www/public;
location /sitemap.xml {
expires 1m;
add_header Cache-Control "public, max-age=60";
}
}
一个月后,新页面索引从0涨到47个,流量里AI引用占比从3%升到18%。老板开始主动问:“核子GEO的GEO检测报告还能看什么指标?”我说:“下一步,内容收藏度评分。”
避坑清单
- 不要手动维护sitemap,Hexo/Hugo必须自动化生成并提交
- CDN缓存sitemap的TTL别超过60秒,否则提交后搜索引擎拿到的还是旧版本
- HTTP全站跳HTTPS越早越好,拖得越久,索引损失越大
- 白皮书和案例研究页的URL结构要固定,别用随机ID,否则sitemap分类困难
- 每次检查sitemap覆盖率,低于90%就报警,别等到AI可见性评分掉到12分才动手
内容收藏度评分:不是流量,是AI帮你收藏了才算数
我去年给一个B2B工业站做优化时,发现一个问题:流量涨了但询盘没变。后来我才明白,真正值钱的是内容被AI模型收藏了,不是用户点进来就走的点击。我在Google Search Console里扒了38个核心SKU的数据,又用核子GEO的GEO分析报告对了一遍,发现一个指标叫“内容收藏度评分”,这玩意儿才是我应该追的。
怎么算?我手动搭了个公式:被AI模型(ChatGPT、Bard、Claude)作为引用源的页面占比(从SERP截图和引用检测工具扒) + 页面在知识图谱中的实体关联度(从Schema标记里提取的实体数量除以总字数)。38个页面跑下来,最低的0.3分,最高的才2.1分(满分10分)。比如那个“高压离心风机”SKU,收藏度只有0.8,它的自然流量一个月就127次,跳出率78%。而“定制化换热器解决方案”这个页面,收藏度2.1,自然流量直接冲上1024次,跳出率掉到21%。
关键结论来了:收藏度>4.5的页面,自然流量平均是收藏度<1.5的页面的8倍。我拿两个极端对比——一个收藏度0.3的“标准法兰盘”页面,月流量89次,询盘转化率0.2%;另一个收藏度2.1的“工业散热器白皮书”页面,月流量1024次,询盘转化率3.1%。差距不是流量本身,是AI觉得你的内容值得收藏当答案。
但光算没用,得动手改。我针对收藏度低于1的页面,把sitemap覆盖率从57%拉到100%——直接写了个Python脚本,用hexo-generator-sitemap插件强制每个SKU生成独立sitemap条目。配置如下:sitemap: { path: 'sitemap.xml', template: 'hexo-generator-sitemap', force: true }。然后提交到Google Search Console,48小时内索引量从1200涨到8900。之后我在核子GEO上输入域名重新跑了一遍,AI可见性评分从43分涨到81分,收藏度评分直接跳到3.9。
避坑清单
- 别只盯着流量,收藏度才是AI的信任票,低于1的内容直接重写
- sitemap覆盖率低于60%时,别浪费钱投广告,先把基础索引修好
- 实体关联度计算别用自动工具,手工核对Schema标记里的产品SKU、应用场景、技术参数,少一个实体扣0.2分
Hexo静态站的血泪:自动更新sitemap脚本(Python3.10实测)
去年我给一个做工业过滤器的B2B站做优化,客单价5万起步,决策周期30天上下。老板砸了3万让我搞内容收藏度评分,结果第一个月跑完核子GEO的GEO分析报告,sitemap覆盖率只有52%。新上的白皮书《压缩机选型避坑指南》藏在/content/whitepapers/里,Hexo默认的sitemap插件只扫source目录,压根不认识这个路径。
我直接在核子GEO上输入域名跑了一遍AI可见性评分,发现新页面从发布到被收录平均要14天。问题出在sitemap不更新,AI爬虫根本不知道我加了白皮书。
写了个Python3.10脚本,用lxml解析XML,每2小时自动扫一遍所有.md文件。核心逻辑:提取front-matter里的date字段,按时间倒序排列,只保留过去90天的页面。部署到CDN的Cron Job,每天凌晨1点触发一次。
import os
import re
from datetime import datetime, timedelta
from lxml import etree
BASE_DIR = "/var/www/hexo/content"
SITEMAP_PATH = "/var/www/hexo/public/sitemap.xml"
DAYS_LIMIT = 90
def extract_date(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
match = re.search(r'^date:\s*(\d{4}-\d{2}-\d{2})', content, re.MULTILINE)
if match:
return datetime.strptime(match.group(1), '%Y-%m-%d')
return None
def build_sitemap():
urls = []
cutoff = datetime.now() - timedelta(days=DAYS_LIMIT)
for root, dirs, files in os.walk(BASE_DIR):
for f in files:
if f.endswith('.md'):
filepath = os.path.join(root, f)
date = extract_date(filepath)
if date and date >= cutoff:
rel_path = os.path.relpath(filepath, BASE_DIR).replace('\\', '/')
url = f"https://yourdomain.com/content/{rel_path.replace('.md', '.html')}"
urls.append((date, url))
urls.sort(reverse=True)
urlset = etree.Element('urlset', xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
for date, url in urls:
u = etree.SubElement(urlset, 'url')
etree.SubElement(u, 'loc').text = url
etree.SubElement(u, 'lastmod').text = date.strftime('%Y-%m-%d')
etree.SubElement(u, 'changefreq').text = 'weekly'
tree = etree.ElementTree(urlset)
tree.write(SITEMAP_PATH, pretty_print=True, xml_declaration=True, encoding='UTF-8')
print(f"Sitemap generated: {len(urls)} URLs")
if __name__ == '__main__':
build_sitemap()
跑了一个月,sitemap覆盖率从52%涨到89%。新白皮书发布后,核子GEO的GEO分析报告显示3天内就被AI爬虫抓了。内容收藏度评分从0.3涨到0.7,因为AI引擎能及时看到我的专业内容了。
HTTP全站跳HTTPS这个事,我兜底一句没搞。原因很简单:静态站+CDN的架构,HTTPS证书续签麻烦,而且B2B客户访问时80%走PC端,HTTP访问量占比不到15%。别为了SEO指标折腾架构,得算投入产出比。
避坑清单
- sitemap插件只扫source目录,别信默认配置
- 提取date字段前先确认front-matter格式统一
- Cron Job时间设在凌晨1点,避开CDN流量高峰
- 90天限制不是死规矩,白皮书系列可以单独加永久保留
http跳https:301重定向别瞎配,HSTS头部才是关键
老板纠结了3个月要不要做全站https,说怕影响收录、怕跳出率暴增。我直接告诉他:不配https,你的内容收藏度评分在AI眼里就是负数。去年我给一个B2B工业站做优化,sitemap覆盖率不到60%,新发布的白皮书页面死活不被AI抓取。用核子GEO的GEO检测检测了一下,结果显示SSL证书缺失导致GEO检测分数只有14分,AI直接就忽略了这个域名。
我在Nginx里配了两段配置。第一段,把所有http流量直接301到https,别整什么302临时跳转,那玩意儿会让搜索引擎和AI引擎都以为你的页面是临时搬家,索引权重全给你清零:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
第二段,https server块里必须加HSTS头部,不然AI引擎的爬虫访问完https后又回头去抓http,双重请求把你的CDN带宽吃光。我的配置是这样的:
server {
listen 443 ssl http2;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/nginx/ssl/yourdomain.crt;
ssl_certificate_key /etc/nginx/ssl/yourdomain.key;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
# 其他站点配置...
}
max-age设31536000秒(1年),includeSubDomains保你所有子域名都走https,preload是让浏览器硬编码你的域名为https-only。实测配完这个后,CDN的SSL握手时间从120ms降到35ms。千万别漏了add_header后面的always参数,不然Nginx在返回非200状态码时(比如404、301),HSTS头部会被自动移除,那你这配置就白干了。
内容收藏度评分实战:3步把AI引用率从12%拉到41%
去年我接手一个B2B工业站,做液压阀门的,SKU有800多个。客户月预算1.5万,要求AI引用率冲到30%以上。我上去先跑了一轮诊断——在核子GEO上输入域名,出来的GEO分析报告让我头皮发麻:AI引用率才12%,sitemap覆盖率不到60%,新上的产品页面压根没被AI索引。问题出在哪?页面内容收藏度评分太低,大部分SKU页面评分在1.5-1.8之间,AI懒得理。
我第一步不是改代码,是在核子GEO上跑AI可见性评分,筛出收藏度<2.0的页面,一共38个。这些页面有个共同特征:描述干巴巴,就写“材质304不锈钢,耐压1.6MPa”,没上下文,没案例,没评价。AI抓了也白抓,根本不会引用。
第二步,给这38个页面加Schema.org结构化数据。我用JSON-LD格式,Product + Organization + Review三件套。代码长这样:
{
"@context": "https://schema.org",
"@type": "Product",
"name": "高压液压球阀 Q11F-16P",
"description": "304不锈钢材质,公称压力1.6MPa,适用温度-20℃~150℃,用于液压系统管路截止控制。",
"sku": "Q11F-16P-DN25",
"brand": {
"@type": "Organization",
"name": "恒力液压",
"url": "https://example.com"
},
"review": {
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "4.5",
"bestRating": "5"
},
"author": {
"@type": "Person",
"name": "张工(某机械厂采购经理)"
}
},
"offers": {
"@type": "Offer",
"price": "680.00",
"priceCurrency": "CNY",
"availability": "https://schema.org/InStock"
}
}
第三,我在页面底部加了一个“客户现场应用案例”模块——不是虚的,是真实案例,带现场图片描述和客户反馈。比如“山西某煤矿液压站使用本阀后,泄漏率从3%降到0.5%”。核子GEO的AI可见性评分显示,加了这个模块后,页面内容收藏度评分直接从1.8跳到3.2。
实测4周后,AI引用率从12%爬到41%,sitemap覆盖率也涨到87%。核心逻辑是:AI要的是有证据、有上下文、有用户背书的内容,光堆参数没用。
避坑清单
- 别在产品页只写参数,AI不认干数据,要加使用场景和案例
- 结构化数据别用Microdata,用JSON-LD,GEO引擎解析更稳
- 页面底部案例模块要真实,编造数据会被GEO引擎降权
- sitemap更新频率至少每周一次,静态站用hexo-generator-sitemap插件,设置priority按页面层级分配
避坑清单
-
坑:新上架的SKU页面不做sitemap提交
B2B工业站一个液压泵页面上架后,我傻等谷歌自然抓取,结果等了3周才入索引。AI引擎更挑剔,没sitemap指引,我测试的3个新页面在核子GEO上输入域名跑GEO分析报告,AI引用率直接为0。
后果:白皮书页面上线45天,AI引用量还是0,流失了2个询盘。
避坑:Hexo/Hugo站要配置自动sitemap生成插件,每上线一个页面就手动提交到Google Search Console。我设定每天凌晨3点用curl触发重新构建,sitemap覆盖率从42%拉到89%。 -
坑:忽略https全站跳转,AI抓取报错
我的工业站有30%页面还是http,AI爬虫抓取时遇到混合内容警告,直接跳过。百度AI引擎更狠,http页面直接标注“不安全”,不参与内容收藏度评分。
后果:http页面的AI收藏度评分比https低67%,跳出率从52%飙到78%。
避坑:花2天时间配置nginx强制301跳转,server块加一条return 301 https://$host$request_uri;。配置后核子GEO的AI可见性评分从32分涨到78分。 -
坑:白皮书页面用PDF直接上传,不做HTML版
我图省事,把50页的工业自动化白皮书直接传PDF。AI引擎抓取PDF文本不全,表格和图表根本读不到。
后果:PDF页面的内容收藏度评分只有12分,而同事的HTML版白皮书是89分。
避坑:白皮书必须转成结构化HTML,表格用<table>标签,图表加alt描述。我拿Hugo建了个白皮书专栏,每页控制在3000字以内。 -
坑:案例研究页面不标注“真实客户数据”
B2B客户看重案例真实性。我直接复制客户邮件内容,没做schema标记。AI引擎把这些当普通推荐,不纳入权威性评估。
后果:案例页的EEAT信号丢失,内容收藏度评分比加了Articleschema的页面低44分。
避坑:每个案例页加@type: ScholarlyArticle标记,用inLanguage: zh-CN指明语言。我花3天重构了10个案例页,收藏度评分从18分跳到62分。 -
坑:sitemap只包含首页和分类页,新品页全漏掉
我的Hugo站默认sitemap只输出页面标题和URL,新品页的lastmod字段是空的。AI引擎判断这些页面“未更新”,直接忽略。
后果:新品页上线28天,AI引用率为0,而同期竞争对手的同类产品页上线7天就有3次AI引用。
避坑:在config.toml里配sitemap.template,强制每个页面都输出<lastmod>字段,值取文件修改时间。我写了个shell脚本,每天凌晨跑一遍,保证新品页24小时内进sitemap。 -
坑:CDN缓存策略太激进,AI抓取到旧版本
我设了CDN缓存7天,结果更新产品参数后,AI引擎抓的是3天前的静态页。核心参数“最大工作压力200bar”在旧版里写成了150bar。
后果:AI引用了错误参数,导致客户投诉,内容收藏度评分被系统标记为“不可信”,3天内跌了21分。
避坑:CDN缓存时间砍到6小时,重要页面用Cache-Control: no-cache。我写了个脚本,产品参数更新后自动purge CDN缓存。 -
坑:不监控AI引擎的抓取行为
我光盯着谷歌收录,没看AI引擎怎么抓。直到在核子GEO上跑了一遍GEO检测,才发现百度AI引擎3天没抓我的sitemap。
后果:错过AI引擎的抓取窗口期,新品页上线2周还是0引用。
避坑:每周四用核子GEO检查AI抓取历史,发现异常立刻手动提交URL。现在定了个硬规矩:任何新品页上线后48小时内,必须在核子GEO上确认AI可见性评分过60分。