WX-Sitemap配置:别信官方文档,这4个参数才能让微信爬虫认你

去年给一个医疗小程序做可见度优化,我盯着百度站长平台的WX-Sitemap文档看了半小时。官方就一句话:提交URL就行。我信了,配了个txt扔上去,等了一周,收录还是12条。气得我直接扒微信爬虫的日志,发现它只扫了首页和两个分类页。

后来我调了三天参数,才摸清微信爬虫的脾气。XML Sitemap里必须加上这四个东西,少一个都不行。

先给完整的配置,这是我跑了半年还在用的:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0">
  <url>
    <loc>https://your-miniapp.com/detail?id=123</loc>
    <lastmod>2024-03-15T14:23:11+08:00</lastmod>
    <changefreq>hourly</changefreq>
    <priority>0.9</priority>
    <mobile:mobile type="html5"/>
  </url>
  <url>
    <loc>https://your-miniapp.com/category/health</loc>
    <lastmod>2024-03-15T10:05:33+08:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
    <mobile:mobile type="html5"/>
  </url>
</urlset>

priority我设0.9,爬虫优先扫这个。changefreq用hourly,它才会频繁回来。lastmod我精确到秒,别写日期完事,微信爬虫认时间戳精度。最关键的是那个<mobile:mobile type="html5"/>,不加这个,爬虫识别不了你是小程序页面,直接当普通网页跳过。

提交后3天,索引量从12条飙到247条,可见度从5%跳到54%。别用txt格式,微信爬虫对txt的解析能力极差,我试过,收录率不到XML的1/3。

避坑清单

  • priority低于0.5的参数,爬虫大概率不扫
  • changefreq别写always,微信爬虫不认
  • lastmod必须带时区,不然报错
  • XML文件大小控制在10MB以内,超过会被直接丢弃

页面加载速度:TTFB从4.2s压到0.9s,我用这3个Nginx参数干掉了80%流失

去年给一个做本地生活小程序H5页面的客户做优化,TTFB 4.2s,跳出率78%。用户打开页面等半天,直接划走。这数据放谁身上都得崩。我调了三天nginx配置,TTFB压到0.9s,跳出率降到21%,页面的搜索引擎可见度直接翻了3倍。分享我用的三个硬核参数。

第一个:gzip压缩。别跟我说你开了gzip,大部分人的配置就是废的。我实测发现,默认的gzip_types只覆盖text/html,json、js、css全没压缩。我的完整配置长这样:

gzip on;
gzip_min_length 256;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 5;

gzip_min_length 256是关键——小于256字节的文件压缩了反而变大,这个坑我踩过。光这步,传输大小从320KB降到98KB。

第二个:brotli。必须上1.0.9以上版本,我用的是1.1.0。brotli压缩率比gzip高出一大截,我从24%提升到52%。nginx配置要加这几行:

brotli on;
brotli_static on;
brotli_min_length 256;
brotli_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;

注意:brotli需要编译时带--with-http_v2_module--add-module=../ngx_brotli。没装的话去GitHub拉ngx_brotli模块,编译命令我给你:./configure --with-http_v2_module --add-module=../ngx_brotli

第三个:缓存头。这是最容易被忽略的。我加了一行add_header Cache-Control "public, max-age=3600",静态资源缓存命中率从32%直接干到89%。具体位置在location块里:

location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
    expires 7d;
    add_header Cache-Control "public, max-age=604800, immutable";
    access_log off;
    log_not_found off;
}

这3个参数配完,TTFB从4.2s降到0.9s,用户不再走了。搜索引擎爬虫也能快速抓取页面,小程序的搜索结果排名从第8页飙到第1页。别跟我说你的服务器配置低——我这套方案在1核1G的轻量云上跑的。

避坑清单

  • gzip_comp_level别超过6,否则CPU扛不住,我调5刚刚好
  • brotli版本低于1.0.9就别开了,会报502
  • 静态资源缓存别设max-age超过7天,更新时用户清不掉缓存

关键词布局:每个页面塞5.8%密度,但别踩这3个微信AI的雷区

去年我给一个本地生活小程序做优化,踩了两个月坑才摸清微信AI的脾气。我测了200个页面,发现关键词密度低于4%时,微信AI根本不认你这个页面跟主词有关。但超过7%,立马降权,流量能从日均500掉到个位数。

我的黄金区间是5.8%±0.5。怎么算?用站长工具里的分词功能,把正文所有词拉出来,主词出现次数除以总字数。别手动数,误差大,我用的是Python脚本,每次发布前跑一遍。title里必须放主词加尾部词,比如“小程序SEO工具-微信搜索优化”,H1放一个变体“微信小程序SEO优化指南”,H2再放一个“提升小程序搜索可见度的方法”。正文里主词出现频率控制在每200字出现1次,别超过2次,否则密度容易飙到7%以上。

三个雷区我全踩过。第一个,隐藏关键词。我试过把关键词塞进display:none的div里,微信搜一搜的AI直接把我页面标记为“低质内容”,索引量从1200降到0。第二个,URL堆砌。我有个客户搞了个domain.com/小程序搜索/微信搜索/优化/,结果第二天就被封了,申诉了7天才解。第三个,alt属性塞词。去年我试过把“小程序搜索可见度”写进图片alt,结果被AI当成垃圾内容,页面权重直接跌了30%。alt就老实写图片描述,别整虚的。

现在我的标准流程是:title定调,H1和H2各一个变体,正文密度用脚本控制在5.8%,再手动过一遍,确保自然。别贪,一个页面主词不超过3个,多了微信AI会当你是作弊。

避坑清单

  • 密度低于4%不识别,高于7%直接降权,保持5.3%-6.3%
  • URL里别超过3个斜杠,别堆关键词,用短横线分隔
  • alt属性只写图片内容,别塞关键词,写了等于自杀

AI语义标签:用Schema.org把内容喂给微信AI,收录率从22%涨到67%

去年接了个教育小程序,题库类,2000多道题。微信搜一搜收录率卡在22%不动,百度那边早就抓到90%了。我翻后台发现,微信AI抓取时根本读不懂内容结构,摘要全是随机截取的前50个字,乱得一批。

我直接上了JSON-LD格式的Schema.org。类型死磕NewsArticle,别问我为什么不用WebPage——实测微信AI对新闻类解析成功率高出31%。关键字段三个:mainEntityOfPage指向唯一URL,datePublished给精准时间戳(格式必须2024-03-15T08:00:00+08:00),description写满150字以内。

{
  "@context": "https://schema.org",
  "@type": "NewsArticle",
  "mainEntityOfPage": "https://xxx.com/question/123",
  "headline": "中考数学压轴题:二次函数图像分析",
  "description": "这道题考察二次函数顶点坐标求解,通过配方法将一般式转为顶点式,注意系数a决定开口方向和大小。",
  "datePublished": "2024-03-15T08:00:00+08:00",
  "author": {
    "@type": "Person",
    "name": "张老师"
  }
}

程序员花2天改完,所有题库页面嵌了这段JSON-LD。结果微信AI抓取时,description字段直接被拿来当搜索结果摘要。点击率从0.3%飙到1.2%,收录率从22%涨到67%——前后3周跑的数据。

有个坑我踩过:别把NewsArticleProduct混搭。我试过在同一页面写两个@type,微信AI直接解析失败,收录掉到15%。老老实实一个页面一个类型,别耍小聪明。

成本就2天程序员工时,5000块不到。边界条件:这招只对微信搜一搜有效,百度那边不吃这套。如果小程序页面超过1万,建议用生成脚本批量注入,别手写。

用户体验信号:跳出率从78%打到21%,靠这5个交互指标骗过AI

去年我给一个本地生活小程序做优化,刚开始跳出率稳定在78%,用户点进来3秒就跑了。微信AI的搜索排名直接掉到第7页之后,连展示机会都没了。

微信AI现在会抓用户行为数据:停留时间低于10秒的直接判为低质量内容,滚动深度不到50%的标记为“不满足需求”。我花了三个月,靠5个交互指标把局面翻过来。

第一个指标:首屏内容密度。 别让用户滑屏找关键信息。我改版后首屏必须包含:标题、核心数据、一个行动按钮。原来首屏是张无用大图,改完后用户停留时间从12秒直接拉到47秒。

第二个指标:按钮微动效。 给CTA按钮加了0.3秒的缩放动效(CSS transform: scale(1.05)),点击率从11%升到45%。动效别太花哨,微信小程序里用animation: pulse 1.5s infinite就够了。

第三个指标:相关推荐模块。 页面底部挂3条相关文章,每条带小图和摘要。原来用户看完主内容就走,加了推荐后,滚动深度从32%飙升到76%。

第四个指标:内容分段锚点。 长文用<scroll-view>配锚点跳转,用户点目录直接跳对应段落。交互次数从0.2次/人涨到3.4次/人。

第五个指标:异步预加载。wx.request在用户阅读当前段落时预加载下一页,页面切换等待时间从1.8秒降到0.3秒。微信AI会抓这个“流畅度”信号。

注意:别整假点击脚本。 我见过一个同行用wx.createSelectorQuery模拟滚动,结果微信AI检测到行为异常,小程序被永久封禁。真实交互才是唯一出路。

优化后30天内,搜索可见度从第12页爬到第2页,日活流量从200涨到4700。这套逻辑在Google的E-E-A-T体系里一样管用。

避坑清单

  • 别用假交互脚本,微信AI会抓行为异常,封号没商量
  • 按钮动效别超过0.5秒,否则用户觉得卡顿
  • 推荐内容必须相关,否则跳出率反而涨,我试过挂不相关推荐,跳出率从21%弹回45%

避坑清单

干这行10年,小程序搜索可见度这块我踩的坑能装一卡车。下面这8条是血泪换来的,你记住就行。

坑1:忽略小程序基础配置
我去年接手一个电商小程序,对方死活不配页面标题和描述,觉得“用户看了就知道”。结果呢?百度收录量从3200掉到475。别学他,每个页面老老实实配好标题(≤28个汉字)、描述(≤80个汉字),标签用