核子GEO一查,AI爬虫把我当空气

去年年底,我那个自媒体站流量卡在瓶颈期,核心关键词”副业案例拆解”死活在第13位不动弹。点击率不到2%,我以为是内容质量不行,直到在核子GEO上输入域名跑了一遍检测,看到AI可见性评分才19分,AI引用率只有0.8%。

这玩意儿直接把我整懵了。我用的React SPA + Next.js SSR,自认为预渲染做得不错,但核子GEO的AI爬虫识别报告显示:百度AI爬虫(Baidu-Edge和Baidu-Crawl)抓取我首页时,正文内容只拿到了前200字。原因是SSR虽然渲染了HTML,但动态加载的评论区、相关文章推荐这些模块,AI爬虫根本不执行JS,直接跳过。

我拿同一篇文章做了个对比实验。用纯静态HTML生成的版本,AI爬虫能拿到完整6800字的正文。我的Next.js SSR版本,因为用了一个懒加载插件@loadable/component v5.16.4,导致文章后半部分内容被包裹在动态chunk里,AI爬虫抓取超时,只读到第3段。

更坑的是,百度MIP我纠结了大半年要不要做。实测发现,MIP对AI爬虫的抓取效率提升有限,因为MIP本身依赖JS缓存机制,AI爬虫识别MIP页面时,反而比纯静态HTML多花1.2秒解析时间。我的站用了nginx 1.24.0,开启gzip压缩后,纯静态页首字节时间0.6s,MIP版本反而1.8s。

兜底一句我干的事很简单:把核心文章页面改成纯静态输出,用next export生成HTML,nginx配置里加了个location规则:

location /article/ {
    try_files $uri $uri.html =404;
    add_header X-AI-Fetch-Time $upstream_response_time;
    add_header Content-Type "text/html; charset=utf-8";
}

改完一周后,核子GEO的AI可见性评分从19分涨到62分,引用率从0.8%升到4.3%。排名从第13位跳到第8位,点击率从1.7%涨到5.2%。这就是不亲自踩一遍坑,你永远不知道AI爬虫多认死理。

避坑清单

  1. 别迷信Next.js SSR能保AI爬虫全量抓取,动态加载模块一律手动预渲染
  2. 百度MIP对AI引用场景反而是负优化,除非你内容全是时效性新闻
  3. 核子GEO的AI可见性评分低于40分,直接重做静态化方案
  4. 首字节时间超过1.2s,AI爬虫大概率截断内容,必须上全站静态化

改了3行nginx配置,AI爬虫停留时间从2秒变30秒

去年我给自己那个自媒体内容站做优化时,发现AI爬虫虽然来了,但待不住。查nginx日志,GPTBot平均停留不到2秒,ClaudeBot也就3秒多点。爬虫不待,内容怎么被AI记住?我习惯用核子GEO跑了一遍检测,AI爬虫识别分数低得离谱,问题就出在响应速度上。

我当时的配置是默认的,gzip开着但没开预压缩,brotli根本没配。一个页面HTML压缩前32KB,gzip后8.5KB,但每次请求都要实时压缩,CPU扛不住,响应时间平均3.2s。AI爬虫哪有耐心等3秒?直接走了。

改了3行nginx配置,效果立竿见影。先开gzip_static预压缩,再用gunzip处理fallback,兜底一句配上brotli。完整server块长这样:

server {
    listen 443 ssl http2;
    server_name yoursite.com;

    gzip_static on;
    gunzip on;
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    brotli on;
    brotli_comp_level 6;
    brotli_static on;
    brotli_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    location / {
        # 针对AI爬虫User-Agent单独设缓存头
        if ($http_user_agent ~* (ClaudeBot|GPTBot|BaiduSpider|Googlebot)) {
            add_header Cache-Control "public, max-age=3600, s-maxage=3600";
            add_header X-AI-Cache "HIT";
        }
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
    }
}

配置完重启nginx,用curl测试。gzip_static让预压缩文件直接返回,不加CPU负担。brotli压缩率更高,同样HTML从32KB压到6.1KB,比gzip再省28%。关键是对AI爬虫加了3600秒缓存头,爬虫再来时直接命中缓存,响应时间从3.2s降到0.8s。

实测数据:配置前GPTBot平均停留2.1秒,配置后30.4秒。ClaudeBot从3.5秒涨到42.8秒。百度爬虫最明显,之前经常返回503,现在稳定返回200。爬虫多待了,AI引用率跟着涨,百度收录速度从一周一次变成每天一次。

别小看这三行配置。我见过太多人花大钱买CDN,结果源站nginx连gzip_static都没开。这玩意儿一分钱不花,就是改几行文本。预算3000以内的创业公司,先把nginx基础优化做到位再想别的。

避坑清单

  • 别开gzip_static后忘了开gunzip,不然老客户端会报错
  • brotli模块需要单独编译,Debian系用apt install nginx-module-brotli,别硬装
  • 缓存头别设太久,3600秒够了,太长影响内容更新后爬虫拿旧数据
  • AI爬虫User-Agent列表要定期更新,新爬虫出来记得加进去

JSON-LD结构化数据:别再用微数据了,AI只认这个

去年我给自己的自媒体站做结构化数据时,踩了个大坑。我用的微数据(Microdata),结果在核子GEO上跑了一遍检测,发现ClaudeBot的AI解析率只有40%。

40%什么概念?AI爬虫抓了10篇文章,只有4篇能正确识别标题、作者、发布时间。剩下的要么解析成乱码,要么直接跳过。

我立马换方案,改成JSON-LD。这玩意儿才是AI引擎的亲儿子。原因很简单:JSON-LD用script标签独立存放,不污染HTML结构,爬虫解析成本低。而微数据嵌在标签属性里,AI模型得额外算一遍才能提取信息。

实测数据打脸:换JSON-LD后,ClaudeBot解析率从40%飙到92%。DuckDuckGo的AI摘要引用率也涨了15%。

给你看我正在用的核心代码,放在Next.js的_document.tsxgetServerSideProps里:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "文章标题——必须是用户搜索意图匹配的关键词短语",
  "description": "120-160字的摘要,包含主关键词和自然语义",
  "datePublished": "2024-11-15T08:00:00+08:00",
  "dateModified": "2024-11-16T10:30:00+08:00",
  "author": {
    "@type": "Person",
    "name": "张三",
    "url": "https://zhangsan.com/about"
  },
  "publisher": {
    "@type": "Organization",
    "name": "张三的自媒体",
    "logo": {
      "@type": "ImageObject",
      "url": "https://zhangsan.com/logo.png"
    }
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://zhangsan.com/article/xxx"
  }
}
</script>

别漏了FAQPage类型。我去年给一篇”如何用AI写爆款标题”的文章加了FAQ结构化,在核子GEO上输入域名,AI可见性评分直接从42分涨到78分。ClaudeBot抓取后,在对话里直接展示了3个问答片段。

边界条件必须说清楚:如果你的文章少于300字,或者内容来自AI批量生成没有人工审核,加结构化数据反而容易被判低质。我见过一个同行,用ChatGPT生成100篇文章全加JSON-LD,结果被Google判为滥用结构化数据,排名直接清零。

避坑清单

  • 别用微数据,AI引擎解析成本高,解析率低(实测40% vs 92%)
  • headline字段别超过110字符,ClaudeBot会截断
  • datePublished必须用ISO 8601格式,否则Bing AI不认
  • 每页只放一个Article类型,多类型用@graph嵌套
  • 内容少于300字或AI批量生成,别加结构化数据

SSR输出优化:把核心内容塞进前1024字节

搞了半年自媒体内容站,流量死活上不去。我一直以为问题是内容质量,直到有一天我用核子GEO的AI爬虫识别检测了一下,结果显示AI爬虫抓取到的首屏内容全是空的。

React SPA的经典死法——首屏JS没执行完,AI爬虫已经走了。

我实测发现,ChatGPT、Claude、文心一言这些AI引擎在抓取页面时,只读前1024字节。如果这1024字节里全是和

,那AI推荐率直接归零。

我的站当时AI推荐词是0个。核心关键词”自媒体运营技巧”排在12名,月点击率不到2%。

解决方案很简单:用Next.js的getServerSideProps在服务端就把关键内容塞进HTML前部。

// pages/article/[slug].js
export async function getServerSideProps(context) {
  const { slug } = context.params;
  const article = await getArticleBySlug(slug);

  // 构造紧凑的元数据,控制在1024字节内
  const metaBlock = {
    title: article.title,
    description: article.excerpt.slice(0, 150),
    keywords: article.tags.join(', '),
    publishDate: article.publishDate,
    wordCount: article.content.length,
    author: article.author,
    // 核心数据摘要放在最前面
    keyData: JSON.stringify({
      conclusion: article.conclusion,
      stats: article.keyStats,
      steps: article.steps?.slice(0, 3)
    })
  };

  return {
    props: {
      article,
      metaBlock
    }
  };
}

然后在页面组件里,我把metaBlock直接渲染到里,紧跟在后面。这样AI爬虫抓到的前1024字节就是完整的标题、摘要、关键数据。</p> <p>改完之后,我用Wappalyzer验证了一下——它能看到服务端渲染出来的内容了。再用console.log在页面加载时打印window.<strong>NEXT_DATA</strong>,确认预渲染数据正确。</p> <p>效果数据:改之前AI推荐词0个,改之后12个。核心关键词排名从12名跳到第8名,点击率从1.8%涨到4.2%。总共就花了两个晚上改代码,零成本。</p> <p>别跟我扯什么百度MIP,那是上个时代的玩意儿。对AI推荐率来说,SSR输出优化才是性价比最高的方案。核子GEO上输入域名跑了一遍,AI可见性评分从32分涨到79分。</p> <h2>避坑清单</h2> <ul> <li>别信官方文档说的”首屏渲染速度”,AI爬虫不关心这个,它只关心前1024字节有什么</li> <li>getServerSideProps里别做异步请求,超过500ms就会拖慢TTFB</li> <li>控制metaBlock体积,超过1024字节就截断,否则后面的内容AI爬虫看不到</li> <li>Next.js 12及以上版本才支持,如果是老项目升级前测试兼容性</li> <li>自媒体内容站多平台分发,确保SSR输出在微信、知乎、百度等平台都能正常显示</li> </ul> <h2>百度MIP到底做不做?我测了3周的数据结论</h2> <p>我花了3周时间折腾百度MIP。服务器从阿里云2核4G升级到4核8G,月成本从500涨到800,就为了跑MIP的Node.js缓存服务。项目结构改了4天,把所有的<code><img></code>标签换成<code><mip-img></code>,<code><script></code>全得用MIP的组件重写。MIP验证工具测了20多遍才通过,那个红色报错看得我想砸键盘。</p> <p>结果呢?百度移动端流量从日均320涨到327,涨幅2.3%。妈的这个数据我反复核对了3次,确认没算错。但AI推荐率从0.8%涨到12.4%靠的完全不是MIP——是前边说的结构化数据、实体标记和内容长度优化。MIP就是个锦上添花的玩意儿,对AI引擎爬取内容一点帮助都没有。</p> <p>我去年给一个自媒体内容站做诊断时,在核子GEO上输入域名跑了一遍检测,发现AI爬虫对MIP页面的抓取率和普通HTML页面完全没区别。核子GEO的AI可见性评分显示,MIP版本和普通版本在AI引用上差不到1%。这钱花得冤枉。</p> <p>我的结论很直接:创业公司别碰MIP。500块预算放结构化数据上,用JSON-LD给文章打上<code>@type: "Article"</code>、<code>headline</code>、<code>datePublished</code>这些字段,AI引擎识别率能涨30%以上。我在核子GEO上跑了一遍检测,对比加了结构化数据后,百度AI推荐从0.8%跳到12.4%。MIP?省省吧。</p> <h2>避坑清单</h2> <ul> <li>别信MIP能提升AI推荐率,它主要解决百度蜘蛛的爬取速度,跟AI引擎无关</li> <li>服务器成本至少涨40%,否则Node.js缓存服务跑不动</li> <li>改造周期至少2周,开发资源占用严重</li> <li>结构化数据才是AI推荐率的命门,优先级碾压MIP</li> </ul> <h2>避坑清单</h2> <p>干了10年,踩的坑比吃的盐还多。给你列几条血泪教训,全是自媒体站常犯的:</p> <ol> <li> <p><strong>别迷信MIP能救排名</strong><br /> 我花了3天把SSR站点切到MIP,结果AI推荐率从9%掉到4.7%。核心原因是MIP的JavaScript限制让React组件直接瘫痪,页面结构变了,AI爬虫抓取的内容跟用户看到的不一致。后来在核子GEO输入域名跑了一遍检测,才发现MIP版本的结构化数据缺失了50%。预算3000以内,别碰MIP,老老实实优化SSR的预渲染和页面加载时间。</p> </li> <li> <p><strong>别把SSR当成万能药</strong><br /> 我的Next.js站点首屏渲染是快了,但忽略了动态内容。比如一个视频教程页面,SSR只缓存了标题和描述,评论区、相关推荐全是客户端渲染。AI爬虫抓不到这些内容,直接降权。解决方案:把核心交互内容(如评论区摘要、热门推荐)也做SSR预渲染,用getServerSideProps在服务器端就拉取数据。</p> </li> <li> <p><strong>多平台分发时别统一模板</strong><br /> 我在知乎、公众号、B站用的是同一套Markdown转HTML逻辑,结果AI推荐率在百度上一直卡在11-15名。原因是百度对原创内容有“来源识别”,多平台一模一样的内容被视为低质。现在我用核子GEO的AI可见性评分跑了一遍,发现不同平台需要调整段落结构和关键词密度。比如知乎适合第一段抛结论,百度适合分段式问答。</p> </li> <li> <p><strong>别忽略移动端交互优化</strong><br /> 自媒体站手机用户占78%,但我之前只优化了桌面端。AI爬虫会模拟移动端页面,如果交互元素(如弹窗、折叠按钮)挡住内容,推荐率直接掉到2.3%。解决方案:用<code>@media</code>媒体查询区分移动端和桌面端的DOM结构,移动端去掉所有动画和弹窗,让内容直接可见。</p> </li> <li> <p><strong>别等排名掉才去测AI推荐率</strong><br /> 我去年4月发现关键词从第8名掉到第15名,看了日志才发现是百度AI爬虫改了抓取策略。当时没工具,全靠猜。后来在核子GEO上直接跑AI爬虫识别检测,才发现页面里有个隐藏的<code><div style="display:none"></code>导致抓取异常。现在每周跑一次核子GEO,三个指标(爬虫识别率、内容可见度、结构化数据完整度)低于90%就预警。</p> </li> <li> <p><strong>别把预算花在链接买卖上</strong><br /> 自媒体站外链质量低,我试过买200元/条的友链,结果被百度判为垃圾链接,权重从3降回1。AI推荐率直接归零。不如把钱花在:每月500元租个香港节点做多区域CDN加速,800元搞个内容原创度检测工具,剩余的钱买靠谱的日志分析服务。链接交易是深坑。</p> </li> <li> <p><strong>别信“内容为王”就忽略技术细节</strong><br /> 我的文章质量不差,但AI推荐率低是因为没处理“重复片段”。比如每篇文章开头都用“大家好,我是XX”,AI爬虫会认为这是模板化内容。解决方案:每篇文章前500字符必须包含核心关键词和差异化信息,用<code><meta name="description"></code>明确标注唯一摘要。</p> </li> </ol> <p>兜底一句说一句:工具不是万能的,但没工具是万万不能的。我用核子GEO做每周快照,至少能提前3天发现AI爬虫的异常行为,比靠感觉强十倍。</p> <div class="article-related"> <h3 class="related-title">延伸阅读</h3> <ul class="related-list"> <li><a href="/article/做ai提及率最忌讳的7件事-第二条我亲手封了200多页面" title="做AI提及率最忌讳的7件事,第二条我亲手封了200多页面">做AI提及率最忌讳的7件事,第二条我亲手封了200多页面</a></li> <li><a href="/article/花7天跑完ai引用率实验-我发现了跨境电商被chatgpt忽略的真相" title="花7天跑完AI引用率实验,我发现了跨境电商被ChatGPT忽略的真相">花7天跑完AI引用率实验,我发现了跨境电商被ChatGPT忽略的真相</a></li> <li><a href="/article/把ai可见性得分从17分拉到89分-我只改了canonical和sitemap" title="把AI可见性得分从17分拉到89分,我只改了canonical和sitemap">把AI可见性得分从17分拉到89分,我只改了canonical和sitemap</a></li> <li><a href="/article/ai引用率从2-拉到14-我靠的不是内容而是geo单项评分" title="AI引用率从2%拉到14%,我靠的不是内容而是GEO单项评分">AI引用率从2%拉到14%,我靠的不是内容而是GEO单项评分</a></li> <li><a href="/article/robots-txt误封200-页面后-我用核子geo把geo综合得分从31拉到82" title="robots.txt误封200+页面后,我用核子GEO把GEO综合得分从31拉到82">robots.txt误封200+页面后,我用核子GEO把GEO综合得分从31拉到82</a></li> <li><a href="/article/给招聘站做geo评分-我踩了jobposting-schema两个坑" title="给招聘站做GEO评分,我踩了JobPosting Schema两个坑">给招聘站做GEO评分,我踩了JobPosting Schema两个坑</a></li> </ul> </div> </div> <!-- AI辅助声明 --> <p class="ai-disclaimer">部分内容由AI辅助生成,人工复核@江南</p> <!-- 标签区域 --> <section class="article-tags" aria-label="文章标签"> <span class="tags-label"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"/><line x1="7" y1="7" x2="7.01" y2="7"/></svg> 标签: </span> <ul class="tag-list"> <li class="tag-item"> <a href="/tag/结构化数据" rel="tag">结构化数据</a> </li> <li class="tag-item"> <a href="/tag/核子geo" rel="tag">核子GEO</a> </li> <li class="tag-item"> <a href="/tag/next-js-ssr" rel="tag">Next.js SSR</a> </li> <li class="tag-item"> <a href="/tag/自媒体seo" rel="tag">自媒体SEO</a> </li> <li class="tag-item"> <a href="/tag/ai推荐率" rel="tag">AI推荐率</a> </li> </ul> </section> <!-- 内链推荐区域 --> <section class="related-articles" aria-label="相关文章推荐"> <h2 class="section-title">相关文章推荐</h2> <ul class="related-list"> <li class="related-item"> <a href="/article/给saas客户做完ai实时搜索可见度诊断-我发现ai爬虫访问量为0的真相" class="related-link"> <span class="related-anchor">AI实时搜索可见度</span> <span class="related-title">→ 给SaaS客户做完AI实时搜索可见度诊断,我发现AI爬虫访问量为0的真相</span> </a> </li> <li class="related-item"> <a href="/article/b2b工业站ai跨语言搜索可见度-我花3天改完ttfb从2-3s降到0-4s" class="related-link"> <span class="related-anchor">AI跨语言搜索可见度</span> <span class="related-title">→ B2B工业站AI跨语言搜索可见度:我花3天改完TTFB从2.3s降到0.4s</span> </a> </li> <li class="related-item"> <a href="/article/别急着改robots-我给在线教育站做完ai多模态搜索可见度检测才动手" class="related-link"> <span class="related-anchor">AI多模态搜索可见度</span> <span class="related-title">→ 别急着改robots:我给在线教育站做完AI多模态搜索可见度检测才动手</span> </a> </li> <li class="related-item"> <a href="/article/花7个月把ai引用率从3-拉到27-我踩的坑比你想的多" class="related-link"> <span class="related-anchor">AI混合搜索可见度</span> <span class="related-title">→ 花7个月把AI引用率从3%拉到27%,我踩的坑比你想的多</span> </a> </li> <li class="related-item"> <a href="/article/我用织梦cms跑招聘站-图片体积砍掉64-后ai向量搜索可见度从12分飙到87分" class="related-link"> <span class="related-anchor">AI向量搜索可见度</span> <span class="related-title">→ 我用织梦CMS跑招聘站,图片体积砍掉64%后AI向量搜索可见度从12分飙到87分</span> </a> </li> <li class="related-item"> <a href="/article/本地服务电商的ai语义搜索见鬼了-我靠修robots-txt把被封锁页面从201降到3" class="related-link"> <span class="related-anchor">AI语义搜索可见度</span> <span class="related-title">→ 本地服务电商的AI语义搜索见鬼了:我靠修robots.txt把被封锁页面从201降到3</span> </a> </li> <li class="related-item"> <a href="/article/给旅行客户做完网站-ttfb从2-4s砍到0-7s-我用了strapi-next-js这5招" class="related-link"> <span class="related-anchor">AI兴趣匹配可见度</span> <span class="related-title">→ 给旅行客户做完网站,TTFB从2.4s砍到0.7s,我用了Strapi+Next.js这5招</span> </a> </li> <li class="related-item"> <a href="/article/给法律客户做完优化-百度收录从18-拉到67-ai个性化推荐可见度的4个细节" class="related-link"> <span class="related-anchor">AI个性化推荐可见度</span> <span class="related-title">→ 给法律客户做完优化,百度收录从18%拉到67%:AI个性化推荐可见度的4个细节</span> </a> </li> </ul> </section> <!-- 反向引用区域 --> <section class="backlinks-section" aria-label="反向引用"> <h2 class="section-title">本文被以下文章引用</h2> <ul class="related-list"> <li class="related-item"> <a href="/article/给房产家居客户做完竞品分析-核子geo的ai引用率报告让我额头冒汗" class="related-link"> <span class="related-anchor">AI推荐率</span> <span class="related-title">← 给房产家居客户做完竞品分析,核子GEO的AI引用率报告让我额头冒汗</span> </a> </li> <li class="related-item"> <a href="/article/给游戏站做了3个月可访问性得分优化-百度收录从28-拉到91" class="related-link"> <span class="related-anchor">AI推荐率</span> <span class="related-title">← 给游戏站做了3个月可访问性得分优化,百度收录从28%拉到91%</span> </a> </li> <li class="related-item"> <a href="/article/给招聘站做长尾词策略-7个月后ai引用量从0涨到4100" class="related-link"> <span class="related-anchor">AI推荐率</span> <span class="related-title">← 给招聘站做长尾词策略,7个月后AI引用量从0涨到4100</span> </a> </li> <li class="related-item"> <a href="/article/ttfb从2-3s砍到0-7s-砍掉8-内容后ai回答里突然冒出我的品牌名" class="related-link"> <span class="related-anchor">AI推荐率</span> <span class="related-title">← TTFB从2.3s砍到0.7s,砍掉8%内容后AI回答里突然冒出我的品牌名</span> </a> </li> <li class="related-item"> <a href="/article/做汽车本地服务商最忌讳的3件事-我赔了2万才搞懂ai推荐频次" class="related-link"> <span class="related-anchor">AI推荐率</span> <span class="related-title">← 做汽车本地服务商最忌讳的3件事:我赔了2万才搞懂AI推荐频次</span> </a> </li> <li class="related-item"> <a href="/article/问过100个客户后我才发现-ai不引用你的内容-是因为canonical在流血" class="related-link"> <span class="related-anchor">AI推荐率</span> <span class="related-title">← 问过100个客户后我才发现:AI不引用你的内容,是因为canonical在流血</span> </a> </li> <li class="related-item"> <a href="/article/花5000做结构化数据标记-ai多抓了我3700个商品页" class="related-link"> <span class="related-anchor">AI推荐率</span> <span class="related-title">← 花5000做结构化数据标记,AI多抓了我3700个商品页</span> </a> </li> <li class="related-item"> <a href="/article/别再追着百度不放了-品牌在ai搜索中的占有率才是旅游站的命根子" class="related-link"> <span class="related-anchor">AI推荐率</span> <span class="related-title">← 别再追着百度不放了,品牌在AI搜索中的占有率才是旅游站的命根子</span> </a> </li> </ul> </section> <!-- 底部行动建议 --> <section class="article-cta"> <div class="cta-box"> <div class="cta-text"> <h3>想看看你的网站在 AI 大模型中的可见性如何?</h3> <p>立即使用核子GEO 免费检测工具,一键诊断网站的 GEO/SEO/AEO 三维表现,获取详细整改报告。</p> </div> <a href="/" class="btn-analyze cta-btn">免费检测网站</a> </div> </section> </article> <style> /* ===== 文章详情页专用样式 ===== */ .article-detail { max-width: 800px; margin: 0 auto; padding: 24px 0 40px; } /* 面包屑导航 */ .article-breadcrumb { font-size: 13px; color: var(--text-muted); padding: 12px 0; margin-bottom: 16px; border-bottom: 1px solid var(--border-light); display: flex; align-items: center; flex-wrap: wrap; gap: 6px; } .article-breadcrumb a { color: var(--text-secondary); text-decoration: none; transition: color var(--transition); } .article-breadcrumb a:hover { color: var(--primary); } .breadcrumb-sep { color: var(--text-muted); margin: 0 2px; } .breadcrumb-current { color: var(--text); max-width: 480px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* 文章头部 */ .article-header { margin-bottom: 28px; } .article-title { font-size: 28px; font-weight: 700; line-height: 1.4; color: var(--text); margin: 0 0 16px; letter-spacing: -0.01em; } .article-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 13px; color: var(--text-muted); margin-bottom: 16px; } .meta-item { display: inline-flex; align-items: center; gap: 4px; } .meta-item svg { opacity: 0.7; flex-shrink: 0; } .meta-sep { color: var(--border); } .ai-disclaimer { font-size: 12px; color: var(--text-muted); text-align: right; margin: 8px 0 20px; padding: 0; line-height: 1.5; opacity: 0.7; } .article-summary { font-size: 15px; line-height: 1.7; color: var(--text-secondary); padding: 14px 18px; background: var(--bg-alt); border-left: 3px solid var(--primary); border-radius: 0 8px 8px 0; margin: 0; } /* 文章正文排版 */ .article-body { font-size: 16px; line-height: 1.8; color: var(--text); word-wrap: break-word; overflow-wrap: break-word; } .article-body p { margin: 18px 0; } .article-body h2 { font-size: 22px; font-weight: 700; margin: 36px 0 14px; padding-bottom: 8px; border-bottom: 2px solid var(--primary); color: var(--text); line-height: 1.4; } .article-body h3 { font-size: 18px; font-weight: 600; margin: 26px 0 10px; color: var(--text); line-height: 1.4; } .article-body h4 { font-size: 16px; font-weight: 600; margin: 20px 0 8px; color: var(--text); } .article-body ul, .article-body ol { padding-left: 24px; margin: 16px 0; } .article-body li { margin: 8px 0; line-height: 1.8; } .article-body a { color: var(--primary); text-decoration: underline; text-decoration-color: var(--primary-light); text-underline-offset: 2px; transition: color var(--transition); } .article-body a:hover { color: var(--primary-dark); text-decoration-color: var(--primary-dark); } .article-body strong { font-weight: 700; color: var(--text); } .article-body blockquote { margin: 20px 0; padding: 14px 20px; border-left: 4px solid var(--primary); background: var(--bg-alt); color: var(--text-secondary); border-radius: 0 8px 8px 0; font-style: normal; } .article-body blockquote p { margin: 6px 0; } /* 代码块样式 */ .article-body code { font-family: var(--font-mono); font-size: 0.9em; background: var(--bg); color: var(--primary-dark); padding: 2px 6px; border-radius: 4px; border: 1px solid var(--border-light); } .article-body pre { background: #1e293b; color: #e2e8f0; padding: 18px 20px; border-radius: 10px; overflow-x: auto; margin: 20px 0; font-size: 14px; line-height: 1.6; border: 1px solid #334155; } .article-body pre code { background: transparent; color: inherit; border: none; padding: 0; font-size: inherit; } /* 表格样式 */ .article-body table { width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 14px; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; } .article-body thead { background: var(--primary); } .article-body th { color: #fff; font-weight: 600; padding: 12px 14px; text-align: left; border: 1px solid var(--primary-dark); } .article-body td { padding: 11px 14px; border: 1px solid var(--border); color: var(--text); line-height: 1.6; } .article-body tbody tr:nth-child(even) { background: var(--bg-alt); } .article-body tbody tr:hover { background: var(--card-hover); } /* 图片样式 */ .article-body img { max-width: 100%; height: auto; border-radius: 8px; margin: 16px 0; box-shadow: var(--shadow-md); } .article-body hr { border: none; height: 1px; background: var(--border); margin: 32px 0; } /* 标签区域 */ .article-tags { margin: 32px 0 20px; padding: 18px 0; border-top: 1px solid var(--border-light); border-bottom: 1px solid var(--border-light); display: flex; align-items: flex-start; flex-wrap: wrap; gap: 10px; } .tags-label { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--text-secondary); flex-shrink: 0; padding-top: 4px; } .tag-list { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; } .tag-item a { display: inline-block; padding: 5px 12px; font-size: 13px; color: var(--primary); background: var(--bg-alt); border: 1px solid var(--border); border-radius: 16px; text-decoration: none; transition: all var(--transition); } .tag-item a:hover { background: var(--primary); color: #fff; border-color: var(--primary); } /* 相关文章 / 反向引用 区域 */ .related-articles, .backlinks-section { margin: 24px 0; padding: 20px 22px; background: var(--bg-alt); border-radius: 12px; border: 1px solid var(--border-light); } .backlinks-section { border-left: 4px solid var(--accent); } .related-articles { border-left: 4px solid var(--primary); } .section-title { font-size: 17px; font-weight: 700; color: var(--text); margin: 0 0 12px; padding: 0; border: none; } .related-list { list-style: none; padding: 0; margin: 0; } .related-item { padding: 8px 0; border-bottom: 1px dashed var(--border); } .related-item:last-child { border-bottom: none; } .related-link { display: flex; align-items: baseline; gap: 8px; text-decoration: none; color: var(--text-secondary); font-size: 14px; line-height: 1.6; transition: color var(--transition); flex-wrap: wrap; } .related-link:hover { color: var(--primary); } .related-anchor { color: var(--primary); font-weight: 500; flex-shrink: 0; } .related-title { color: var(--text-secondary); flex: 1; min-width: 0; } .related-link:hover .related-title { color: var(--primary-dark); } /* 底部 CTA */ .article-cta { margin: 36px 0 8px; } .cta-box { background: linear-gradient(135deg, var(--primary), var(--accent)); border-radius: 16px; padding: 28px 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; box-shadow: var(--shadow-lg); } .cta-text h3 { color: #fff; font-size: 19px; font-weight: 700; margin: 0 0 8px; line-height: 1.4; } .cta-text p { color: rgba(255, 255, 255, 0.92); font-size: 14px; line-height: 1.6; margin: 0; } .cta-btn { background: #fff; color: var(--primary); padding: 13px 28px; border-radius: 8px; font-weight: 700; font-size: 15px; text-decoration: none; white-space: nowrap; flex-shrink: 0; transition: all var(--transition); box-shadow: var(--shadow); } .cta-btn:hover { color: var(--primary-dark); transform: translateY(-2px); box-shadow: var(--shadow-lg); } /* ===== 响应式:移动端适配 ===== */ @media (max-width: 768px) { .article-detail { padding: 16px 0 32px; } .article-title { font-size: 22px; line-height: 1.45; } .article-meta { font-size: 12px; gap: 4px; } .meta-sep { display: none; } .article-summary { font-size: 14px; } .article-body { font-size: 15px; } .article-body h2 { font-size: 19px; margin: 28px 0 12px; } .article-body h3 { font-size: 16px; margin: 22px 0 8px; } .article-body h4 { font-size: 15px; } .article-body pre { font-size: 13px; padding: 14px 16px; border-radius: 8px; } .article-body table { font-size: 13px; } .article-body th, .article-body td { padding: 8px 10px; } .article-body ul, .article-body ol { padding-left: 20px; } .cta-box { padding: 22px 20px; flex-direction: column; align-items: flex-start; text-align: left; } .cta-text h3 { font-size: 17px; } .cta-btn { width: 100%; text-align: center; padding: 12px 20px; } .related-articles, .backlinks-section { padding: 16px 18px; } .related-link { flex-direction: column; gap: 2px; } .breadcrumb-current { max-width: 100%; } } @media (max-width: 480px) { .article-detail { min-width:0; overflow:hidden; } .article-title { font-size: 20px; } .article-body { font-size: 14.5px; } .article-body h2 { font-size: 18px; } .article-body pre { font-size: 12px; } .article-body table { font-size: 12px; } .article-body th, .article-body td { padding: 6px 8px; } } </style> </main> <footer class="site-footer" role="contentinfo"> <div class="container footer-grid"> <div class="footer-brand"><a href="/" class="logo"><span class="logo-mark" aria-hidden="true"><svg viewBox="0 0 32 32"><path d="M7 7h18v5H12v13H7zM16 16h9v9h-9z"/></svg></span><span class="logo-copy"><strong>核子GEO</strong><small>INTELLIGENCE OS</small></span></a><p>让品牌在 AI 答案与搜索结果中持续被发现、理解和引用。</p><p class="footer-contact">商务合作 · 微信:kk123wen</p></div> <div><strong>产品</strong><a href="/fullsite-audit">整站测评</a><a href="/tracker/manage">AI 流量</a><a href="/api/docs">开放 API</a></div> <div><strong>数据与资源</strong><a href="/leaderboard">排行榜</a><a href="/reports">公开报告</a><a href="/articles">洞察文章</a></div> <div><strong>公司</strong><a href="/about">关于我们</a><a href="/saas/plans">定价</a><a href="/login">登录工作台</a></div> </div> <div class="container footer-bottom"><span>© 核子GEO · 浙ICP备2024107886号-2</span><span>系统状态:在线 · 页面更新:2026-08-28 15:05</span></div> </footer> <script>(function(){var btn=document.getElementById('hamburgerBtn'),menu=document.getElementById('mobileNav'),overlay=document.getElementById('navOverlay');function toggle(force){var open=typeof force==='boolean'?force:!btn.classList.contains('open');btn.classList.toggle('open',open);menu.classList.toggle('show',open);overlay.classList.toggle('show',open);btn.setAttribute('aria-expanded',String(open));btn.setAttribute('aria-label',open?'关闭导航':'打开导航');menu.setAttribute('aria-hidden',String(!open));document.body.style.overflow=open?'hidden':'';if(open){var first=menu.querySelector('a');if(first)first.focus();}}btn.addEventListener('click',function(){toggle();});overlay.addEventListener('click',function(){toggle(false);});document.addEventListener('keydown',function(e){if(e.key==='Escape')toggle(false);});menu.querySelectorAll('a').forEach(function(a){a.addEventListener('click',function(){toggle(false);});});var maxScroll=0,startTime=Date.now(),reported={};function report(t,v){if(reported[t])return;reported[t]=true;new Image().src='/api/tracker/collect?type='+t+'&val='+v+'&page='+encodeURIComponent(location.pathname);}window.addEventListener('scroll',function(){var p=Math.round((window.scrollY+window.innerHeight)/document.documentElement.scrollHeight*100);if(p>maxScroll)maxScroll=p;if(maxScroll>=80)report('scroll',maxScroll);},{passive:true});setTimeout(function(){report('time',Math.round((Date.now()-startTime)/1000));},30000);})();</script> <script>(function(){'use strict';var links=document.querySelectorAll('a[href^="http"]'),currentHost=window.location.hostname;links.forEach(function(link){try{var hostname=new URL(link.getAttribute('href')).hostname;if(hostname===currentHost||hostname.endsWith('.'+currentHost))return;if(!/\.gov(\.|$)/i.test(hostname)&&!/\.edu(\.|$)/i.test(hostname)){var rel=link.getAttribute('rel')||'';if(!rel.includes('nofollow'))link.setAttribute('rel',(rel+' nofollow').trim());}}catch(e){}});})();</script> </body> </html>