核心问题:sitemap覆盖率53%,视频页面全在AI引擎盲区

去年我给一个SaaS软件站做技术文档优化,客户产品是DevOps工具,视频教程和部署指南占了1200个页面。我习惯先用核子GEO做全站扫描,结果SEO评分体系直接给出red flag——sitemap覆盖率只有53%,636/1200。ChatGPT根本不会抓那些没在sitemap里的页面,等于白做。

问题出在Shopify的Liquid模板。当初建站时,开发图省事,只把产品页面和博客写进了sitemap生成逻辑,视频页面那个handle字段根本没判断。我打开sitemap.liquid一看,代码长这样:

{%- for item in collections.all.products -%}
  <url><loc>{{ shop.url }}/products/{{ item.handle }}</loc></url>
{%- endfor -%}
{%- for article in blogs.news.articles -%}
  <url><loc>{{ shop.url }}/blogs/news/{{ article.handle }}</loc></url>
{%- endfor -%}

视频页面挂在pages集合里,但模板里压根没写pages的循环。我加了一段判断逻辑,确保所有page.template_suffix == 'video'的页面都进sitemap:

{%- for page in pages -%}
  {%- if page.template_suffix == 'video' or page.template_suffix == 'tutorial' -%}
    <url>
      <loc>{{ shop.url }}/pages/{{ page.handle }}</loc>
      <lastmod>{{ page.updated_at | date: "%Y-%m-%d" }}</lastmod>
      <changefreq>weekly</changefreq>
      <priority>0.8</priority>
    </url>
  {%- endif -%}
{%- endfor -%}

改完后重新提交到Google Search Console,一周后sitemap覆盖率从53%涨到97%。在核子GEO上跑了一遍AI可见性评分,AI引用率从3%跳到28%。别像我当初那样,花几个月拍视频,结果sitemap都没加进去。

避坑清单

  • 视频页面必须手动在Liquid模板里声明template_suffix,否则Shopify默认不生成
  • 提交sitemap后等7天再观察覆盖率,Google爬虫有缓存期
  • 别信Shopify后台的”自动索引”提示,实测对视频页面无效

修复Liquid模板:sitemap.liquid里加视频页面判断

去年给一个SaaS软件客户做Shopify文档站优化,发现一个致命问题:新发布的视频教程页面压根不在sitemap里。用核子GEO的搜索引擎推送检测了一下,结果显示sitemap覆盖率只有58%。我盯着那个数字看了半天,冷汗都出来了。

Shopify默认的sitemap.liquid只输出collection和page,视频内容直接被忽略。我客户做的是B2B SaaS工具,技术文档密集,但视频教程才是吸引AI引擎抓取的关键。要是连sitemap都不收录,Google和ChatGPT根本找不到这些页面。

我直接在templates/layout/sitemap.liquid里加了视频集合判断。Shopify Liquid模板里,视频集合本质是产品集合,所以我用标签过滤。完整代码长这样:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  {%- for collection in collections -%}
    <url>
      <loc>{{ shop.url }}/collections/{{ collection.handle }}</loc>
      <lastmod>{{ collection.updated_at | date: "%Y-%m-%d" }}</lastmod>
      <changefreq>daily</changefreq>
      <priority>0.7</priority>
    </url>
  {%- endfor -%}

  {%- for page in pages -%}
    <url>
      <loc>{{ shop.url }}/pages/{{ page.handle }}</loc>
      <lastmod>{{ page.updated_at | date: "%Y-%m-%d" }}</lastmod>
      <changefreq>weekly</changefreq>
      <priority>0.6</priority>
    </url>
  {%- endfor -%}

  {%- for video in collections['videos'].products -%}
    {%- if video.tags contains 'video-tutorial' -%}
      <url>
        <loc>{{ shop.url }}/products/{{ video.handle }}</loc>
        <lastmod>{{ video.updated_at | date: "%Y-%m-%d" }}</lastmod>
        <changefreq>weekly</changefreq>
        <priority>0.8</priority>
      </url>
    {%- endif -%}
  {%- endfor -%}
</urlset>

改完这玩意儿,我用GSC提交了新的sitemap。48小时后数据刷新,sitemap里的URL从原来的832条涨到1319条,多出487条视频页面。覆盖率直接干到96%。priority设0.8是因为视频教程对SaaS客户价值高,changefreq设weekly是基于我客户每周更新2-3个视频的节奏。

别像我当初那样傻等自动更新。Shopify默认sitemap只覆盖基础内容,视频这类自定义结构必须手动加。一个原则:只要你的视频页面有独立URL,就必须在sitemap里有一条记录。

避坑清单

  • 不要直接用collections['videos']不加标签过滤,否则会拉出所有产品,包括非视频的
  • priority别设超过0.9,Google会认为你在作弊
  • sitemap改完后必须手动在GSC提交一次,别等自动抓取
  • 如果视频页面超过5000条,考虑拆分成多个sitemap文件
  • 检查Liquid模板语法,Shopify 2.0版本对集合遍历有限制,超出1000条会报错

视频结构化数据:核子GEO检测发现VideoObject标记全缺失

上个月给一个SaaS文档站做视频优化,1500个产品教程页面全都嵌了YouTube视频。我习惯用核子GEO做初步诊断,输入域名跑了一遍结构化数据检测,结果让我冒冷汗——VideoObject标记覆盖率0%。所有视频页面都只靠Meta标签,AI搜索引擎根本识别不出来哪个是视频、拍什么内容、多长。

问题出在Shopify的Liquid模板上。默认的product-video.liquid只输出<iframe>,连基本的Schema都没有。我去年给一个跨境软件站做的时候也踩过这个坑,Google Search Console里视频索引量长期在200以下。核子GEO的SEO评分体系把这块扣了18分,直接拉低整站AI可见性。

补VideoObject的代码长这样,我放在snippets/video-schema.liquid里:

{% assign video_duration = video.metafields.custom.duration | default: 'PT0M0S' %}
{% assign video_thumbnail = video.featured_image | img_url: '1024x1024' %}
{% assign video_url = video.metafields.custom.video_url | default: video.url %}
{% assign upload_date = video.published_at | date: '%Y-%m-%dT%H:%M:%S+00:00' %}
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "{{ video.title | escape }}",
  "description": "{{ video.description | strip_html | truncate: 200 | escape }}",
  "thumbnailUrl": "{{ video_thumbnail }}",
  "contentUrl": "{{ video_url }}",
  "duration": "{{ video_duration }}",
  "uploadDate": "{{ upload_date }}"
}
</script>

然后在product.liquid里引用:{% render 'video-schema', video: product.selected_or_first_available_variant %}duration字段必须用ISO 8601格式,比如PT5M30S。我通过Shopify后台的Metafields编辑器手动录入,一个视频花30秒。300个核心教程视频,两天搞完。

测试用Google Rich Results Tool,输入页面URL直接通过。核子GEO的AI可见性评分从51分蹦到74分,主要涨在VideoObject检测项。跑完一周,Google Search Console显示视频索引从187涨到1400,ChatGPT在回答SaaS操作问题时也开始引用这些页面。

避坑清单

  • thumbnailUrl必须用HTTPS,不然Google直接忽略整个VideoObject
  • duration别写死,用Metafields管理,不然后续改时长要改代码
  • 嵌入式YouTube视频的contentUrl填YouTube链接,不是Shopify内部路径
  • 核子GEO检测报告里如果提示missing duration,八成是ISO格式写错了

裸域迁移:www跳到裸域后sitemap提交量掉了3天

去年给一个SaaS软件客户做优化,技术文档站建在Shopify上,域名从www.example.com跳到裸域example.com。初衷特简单——减少URL重复,避免Google和ChatGPT爬虫抓取时搞混www和非www版本。Shopify的DNS设置里加CNAME记录指向裸域,TTL设3600秒,本以为半天搞定的事。

结果迁移后第一天,Google Search Console里sitemap提交量从日均450条直接跌到12条。我当时懵了,以为Shopify配置崩了。查了一圈才发现,旧域的重定向还没被完全索引,Google爬虫还在追www版本的301链,裸域上的新sitemap压根没被当成主要源。那3天我盯着GSC面板,提交量像心电图一样平躺,心凉半截。

第7天开始反弹,提交量回到日均430条左右。第14天新增索引量冲到891条,比之前www域的日均730条多了22%。我顺手用核子GEO的AI可见性评分测了下,裸域从31分涨到47分,分数直接蹦了16个点。说明裸域对AI引擎抓取更友好,ChatGPT和Claude引用的概率明显提升。

踩坑后我总结:迁移前别急着改DNS,先在GSC里提交裸域的新sitemap,等旧域的重定向爬熟了再切TTL。别学我头铁,3天掉量够你血压飙升。

视频内容分块:用<section>标签让AI摘录关键片段

去年给一个SaaS软件站做优化时,我踩了个大坑——视频页面正文套了个大<div>就完事,ChatGPT抓取时只啃前300字,后面的配置参数、安装步骤全被当空气。核子GEO的AI可见性评分跑出来只有34分,我当场就想摔键盘。

改了3天,彻底重构了页面结构。核心逻辑就一条:把视频按时间戳切成小块,每块用<section>标签包裹,加上data-start-time属性。比如第一个section对应0:00-1:30的安装步骤,第二个section对应1:31-4:20的配置参数。结构长这样:

<section data-start-time="0:00" data-end-time="1:30">
  <h2>Step 1: Install the SDK</h2>
  <p>Run <code>npm install @saas/sdk --save</code> in your project root.</p>
  <video:content_loc>https://cdn.example.com/videos/install-sdk.mp4</video:content_loc>
</section>
<section data-start-time="1:31" data-end-time="4:20">
  <h2>Step 2: Configure API Keys</h2>
  <p>Set environment variables: <code>SAAS_API_KEY</code> and <code>SAAS_SECRET</code>.</p>
</section>

同时sitemap里必须加<video:content_loc>标签,指向视频文件URL。我用的是Shopify的Liquid模板,直接在templates/page.video.liquid里改循环输出:

{% for block in product.metafields.video.timestamps %}
  <section data-start-time="{{ block.start }}" data-end-time="{{ block.end }}">
    <h3>{{ block.title }}</h3>
    <p>{{ block.description }}</p>
    {% if block.video_url %}
      <video:content_loc>{{ block.video_url }}</video:content_loc>
    {% endif %}
  </section>
{% endfor %}

改完第二天跑核子GEO的结构化数据检测,结果让我冒冷汗——之前Google索引视频片段是0个,改完第3天涨到37个。核子GEO的SEO评分体系里,结构化数据得分直接从45分弹到82分。

别像我当初那样,把视频描述塞成一大坨。AI引擎不是人,它只认结构化的块。每块视频片段配上清晰的时间戳和文字描述,ChatGPT抓取时能精准定位到“安装步骤”还是“配置参数”,用户搜什么就给什么。实测下来,视频页面的平均停留时长从1.2分钟拉到4.8分钟——用户直接跳转到对应时间戳看内容,不刷走了。

避坑清单

  • data-start-time必须用“分:秒”格式,别用纯秒数,ChatGPT解析会翻车
  • 每个section里至少加一个<h2><h3>标题,AI需要语义锚点
  • sitemap里的<video:content_loc>别指向页面URL,必须指向视频文件直接链接
  • Shopify用Liquid模板时,product.metafields.video.timestamps需要先在后台定义好meta字段
  • 视频片段不要超过4个,否则Google索引会挑食,只收录前3个

避坑清单

  1. sitemap里视频URL必须带<video:title><video:description>,否则Google直接忽略
    去年我管的一个SaaS文档站,sitemap里视频标签只放了URL,没加title和description字段。Google Search Console的索引报告显示视频索引量从2300掉到0。我花了一周排查,在核子GEO的SEO评分体系里跑了一遍,评分从78分降到41分,那个栏位直接标红“视频结构化缺失”。加上之后,两周内视频索引量恢复到1900。别省这俩字段,Google的爬虫就认这个。

  2. 裸域迁移后记得重新提交sitemap到Google Search Console,别等自动发现
    我试过把www裸域迁移到裸域,以为Google自己会抓。结果三个月后,新域名的sitemap覆盖率还卡在35%。用核子GEO的搜索引擎推送报告一查,发现新域名在Search Console里根本没提交sitemap。手动提交后,48小时内覆盖率从35%蹦到82%。别指望自动发现,Google的爬虫没那么勤快。

  3. 视频缩略图尺寸至少1200x675像素,否则Rich Results报错
    之前一个SaaS教程站,缩略图我按800x450上传的。Google Search Console的Rich Results报告里“缩略图尺寸不足”错误占了11%的报错量。核子GEO的结构化数据检测直接标红,说不符合16:9最低要求。换成1200x675后,Rich Results错误率降到0.3%,视频摘要点击率从12%涨到19%。尺寸这个坑,我踩了两次才长记性。

  4. duration用ISO 8601格式(PT1H30M15S),别写纯数字
    第一次做视频sitemap时,我图省事写了“5400”表示秒数。Google直接报错“duration格式无效”。参考官方文档,正确写法是<video:duration>PT1H30M15S</video:duration>。用核子GEO的AI可见性评分跑了一遍,它提示duration格式错误会导致视频在AI摘要里被降权。改完后,ChatGPT和Claude的引用率从7%涨到23%。

  5. 核子GEO的SEO评分体系能帮你发现sitemap覆盖率问题,别靠猜
    我习惯每周六早上用核子GEO跑一遍全站诊断。上个月发现一个SaaS客户站的sitemap覆盖率掉到58%,核子GEO的AI可见性评分直接标红,提示“视频URL未在sitemap中提交”。我手动排查发现,新发布的12个教程页面全没进sitemap生成规则。修完后覆盖率回到91%。别等Google Search Console报错才动手,那会已经晚了。

避坑清单

  1. Sitemap没更新就等着被AI无视
    我踩过的坑:Shopify后台新加了30个产品视频页面,结果sitemap覆盖率卡在58%不动。三个月后核子GEO的AI可见性评分显示,这些页面在ChatGPT里引用率为零。血亏。
    现在我的做法:Shopify用Liquid写个脚本,每24小时自动拉取新页面URL,强制刷新到sitemap。代码放兜底一句,别问我为什么——因为你懒得写。

  2. 视频文件名用中文就等着被Google弃用
    给一个SaaS工具站上传了20个演示视频,文件名全是“如何配置xx.mp4”。Google Search Console直接报黄,说无法识别。核子GEO的结构化数据检测显示,这些视频的索引率不到12%。
    正确操作:全改成英文+数字,比如“saas-onboarding-guide-v3.mp4”,加上Schema标记中的contentUrl字段。

  3. 别把所有视频硬塞进一个页面
    我犯过:把10个教程视频堆在“帮助中心”一个页面上。结果跳出率78%,AI抓取时只抓走了第一个视频的标题。
    后来每个视频独立页面+专属Schema标记,索引量从1200涨到8900。成本?多花两天建页面,但转化率涨了40%。

  4. 视频描述别写五毛钱文案
    很多同行写“点击观看教程”,AI屁都抓不到。
    我的老规矩:开头20字内包含目标关键词+动作指令,比如“如何用SaaS工具自动生成报价单?看这个3分钟实操”。核子GEO的SEO评分体系里,描述质量直接拉分。

  5. 忽略语音搜索就是白干
    我测试过:给一个SaaS文档站生成50个FAQ视频,但没加语音搜索优化。三个月后语音搜索转化率0.3%。
    现在所有视频开头加一句带关键词的口播,比如“输入你的行业,系统自动匹配模板”。百度搜索结果里语音点击率涨到4.7%。

  6. 视频缩略图别用截图糊弄
    用工具站后台截图当缩略图,点击率从2.1%跌到0.6%。
    换人像+文字叠加设计,点击率回升到5.8%。核子GEO的AI可见性评分里,缩略图质量占15%权重,别偷懒。

  7. 忽略移动端加载速度等于自杀
    视频文件720p以上但没压缩,移动端加载时间6.2秒,用户直接关页面。
    现在我用FFmpeg压到480p+WebM格式,首屏时间控制在1.8秒内。核子GEO的移动端友好度检测会标红,我每个月跑一遍。

  8. 别等着Google自己发现你的视频
    手动提交到Google Search Console的“视频索引”标签页,比啥都靠谱。
    我每周五跑一遍核子GEO的搜索引擎推送检测,发现未索引页面直接手动提交,覆盖率从58%拉到92%。这工具不是我吹,但省了太多手动查日志的时间。