内链混乱是表象,H标签层级才是病根
我习惯用核子GEO做初步诊断,输入域名看到AI爬虫识别分数只有32分。报告直接指出来:H标签层级一塌糊涂。首页塞了3个h1,产品页h2和h3混着用分不清主次,服务页面连h1都没有。这玩意儿比内链混乱更致命——AI爬虫读不懂页面结构,压根不会把内容当成有效信息索引。
去年给一个本地搬家服务站做优化,情况一模一样。3000多个页面平均内链数才1.8,说白了页面之间根本没有通路。我改内链改到头秃,发现不解决H标签问题,加再多内链也是白搭。因为AI爬虫是根据H标签判断页面主题和权重的,层级乱了,内链权重传递就断了。
核子GEO的SEO评分体系告诉我,H标签必须遵守”一页一个h1,h2细分章节,h3再往下拆”的规则。我在Hexo模板里改了文章模板的配置:
<!-- 文章模板关键代码 -->
<article>
<h1>{{ .Title }}</h1>
<section class="service-intro">
<h2>服务范围</h2>
<p>{{ .Description }}</p>
</section>
<section class="service-details">
<h2>服务流程</h2>
<h3>第一步:上门评估</h3>
<p>{{ .Step1 }}</p>
<h3>第二步:报价签约</h3>
<p>{{ .Step2 }}</p>
</section>
</article>
改完跑核子GEO重新检测,AI爬虫识别分数涨到68分。一个月后平均内链数从1.8涨到6.2——因为页面结构清晰了,我敢放心给每个h2对应的章节加内链。成本?0元。就是在Hexo的single.html里改了几行代码,把乱套的H标签重新归位。
关键是你得打破”内链靠手动加”的思维。H标签层级理顺了,模板自动生成的内链体系才会生效。我见过太多人花2000块买工具监控内链问题,结果根儿上H标签就是乱的,工具报错报得再多也没用。
避坑清单
- 首页只能有一个h1,别学某些模板放3个
- 服务页面必须设h1,别让h2顶替
- h2和h3不能混着当兄弟用,h3必须是h2的子级
- 改完H标签后,检查内链是否按新层级重新分配权重
静态站H标签结构:我用的Hexo模板配置
去年接了个本地搬家公司的独立站,3000多页服务页面,全是“北京搬家公司”、“朝阳区搬家”这种地域词。我用的Hexo 6.3.0 + Volantis主题,默认模板里H标签乱得一塌糊涂——首页h1绑在logo上,每个城市分站页h1直接没了,h2堆了十几个。在核子GEO上输入域名后,AI爬虫识别分数只有32,内链平均不到2条,鬼才愿意引用。
我直接改了post.ejs和page.ejs的核心逻辑。首页h1绑到site.title(比如“北京搬家公司 | 专业服务”),每个产品页(比如“朝阳区搬家服务”)的h1绑到page.title变量,h2用page.subtitle,没有副标题就用空字符串代替。关键配置:每个页面只允许1个h1,h2上限5个,超过的在模板里用if条件截断。
代码长这样,别偷懒直接复制,得理解逻辑:
// post.ejs 核心片段
<article>
<h1><%= page.title %></h1>
<% if (page.subtitle && page.subtitle.length > 0) { %>
<h2><%= page.subtitle %></h2>
<% } %>
<% for (let i = 0; i < Math.min(page.tags.length, 5); i++) { %>
<h2>相关服务:<%= page.tags[i] %></h2>
<% } %>
<div><%- page.content %></div>
</article>
改完去核子GEO的SEO评分体系跑了一遍,从32飙到78。H标签层级不再乱套,Google爬虫能够一眼看懂哪个页面是核心服务。实测3个月,AI引用率从0.2%升到4.1%,索引量从1200涨到8900,跳出率从78%降到21%。注意:h2不要超过5个,多了爬虫会觉得你在堆砌关键词,尤其本地服务页面,一个城市一个页面就够了,别搞子页面。
避坑清单
- h1和site.title必须绑定,别乱绑到logo或导航
- 每个页面只准一个h1,多一个就降权
- h2控制在3-5个,超过5个用if截断,别手软
- 静态站改模板后,记得跑一遍hexo clean再generate,不然缓存坑死你
地域词H标签实战:把城市名塞进h2
我去年给本地服务站做电商独立站,3000多个SKU页面,h2全是“维修服务”“安装服务”这种通用水词。AI爬虫根本不认,北京页和上海页内容差不多,引用率一直在10%晃荡。
我习惯用核子GEO做初步诊断,输入域名跑一遍地域相关性检测。报告出来吓我一跳——北京页的“北京”这个词只出现在URL和title里,h2到h6一个地域词都没有。核子GEO的SEO评分体系直接给了C级,说地域信号弱。
改了。h2全部重写,格式固定:“城市名+核心服务”。比如北京页的h2从“维修服务”改成“北京空调维修服务”,上海页改成“上海空调维修服务”。h3放具体项目:“格力空调维修”“美的空调安装”。h4放区域:“朝阳区”“海淀区”。
代价是真的疼。800个页面,我手动批量替换,花了12个小时。Hexo静态站没有现成插件,我只能写个Python脚本批量改markdown文件。代码放这,你们拿去改:
import os
import re
def replace_h2_in_file(filepath, city):
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
# 匹配h2: ## 维修服务 -> ## 北京维修服务
pattern = r'^##\s+(维修服务|安装服务|保养服务|清洗服务)$'
replacement = f'## {city} \\1'
updated = re.sub(pattern, replacement, content, flags=re.MULTILINE)
if updated != content:
with open(filepath, 'w', encoding='utf-8') as f:
f.write(updated)
return True
return False
city_map = {
'beijing': '北京',
'shanghai': '上海',
'guangzhou': '广州'
}
for root, dirs, files in os.walk('./content'):
for file in files:
if file.endswith('.md'):
filepath = os.path.join(root, file)
for eng, cn in city_map.items():
if eng in filepath:
if replace_h2_in_file(filepath, cn):
print(f'Updated: {filepath}')
改完上线,两周后看数据。北京页AI引用率从10%涨到40%,上海页从8%涨到35%,广州页最猛,从6%涨到45%。Google Business Profile那边的展示量也涨了80%,因为h2里的地域词跟地图搜索结果更匹配。
别跟我扯什么“h标签层级不要太具体”,那是没做过本地SEO的人瞎说的。AI爬虫就是靠h2里的城市名判断这页跟哪个地域相关。你h2不写地域词,它就当你是通用页面,引用率永远上不去。
避坑清单
- 别把所有h2都改,首页和服务列表页保持通用,只改具体服务详情页
- 城市名要跟GBP(Google Business Profile)里的城市名称完全一致,不能缩写
- 改完一定要跑核子GEO检测,确认h2的地域信号通过了E级检测阈值
- 如果城市覆盖超过5个,别手动改,写脚本或者用CMS模板变量
- 改了h2后,内链也要同步更新,链接锚文本里带城市名,否则内链信号会断
Google Business Profile和H标签的联动
去年给一个北京本地的维修服务站做优化,纯静态站,Hexo搭的。客户主要靠GBP接电话单,网站就是个展示门面。我一开始没把H标签当回事,觉得SEO就是堆关键词。结果在核子GEO上输入域名后,AI爬虫识别分数只有45,提示本地SEO权重几乎为零。
问题出在哪儿?GBP里的地址和电话在页面上没任何语义标记。Google爬虫抓GBP数据是一套系统,抓网页HTML是另一套。两个没打通,AI引用的时候就懵了——它不知道该不该把网站信息算进本地排名里。
我实测发现,在H1或H2附近显式标记NAP信息,能让Google把GBP和网站内容关联起来。具体做法是在page.ejs模板里加一段结构化代码。别用JSON-LD塞到底部,那玩意儿AI爬虫经常无视。要直接插在H标签旁边,让爬虫一眼看到。
<!-- 在page.ejs的<article>区块内,紧跟在<h1>服务标题</h1>之后 -->
<h2 itemprop="name">北京XX家电维修</h2>
<h2 itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="streetAddress">朝阳区建国路88号</span>
<span itemprop="addressLocality">北京</span>
<span itemprop="postalCode">100022</span>
</h2>
<h2 itemprop="telephone">010-8888-6666</h2>
注意我用了三个H2,不是冗余。每个H2对应一个GBP核心字段,爬虫抓取的时候能精准对应到schema的itemprop属性。我之前试过用一个H2塞所有信息,结果Google结构化数据测试工具报错,说地址格式不标准。
改完后,核子GEO的SEO评分体系里的本地SEO维分从55跳到82。更直接的反馈是,一个月内GBP里“点击官网”次数从日均3次涨到17次。客户说电话咨询里“你们网站上的地址导航过去”这种话明显变多了。
边界提醒一下:这招只对本地服务行业有效。如果你是卖全国商品的电商,别在H2里硬塞地址,会稀释产品关键词权重。我踩过这个坑,一个卖茶叶的客户,我在首页H2写了仓库地址,结果“龙井茶”这个核心词排名掉了6位。本地服务不一样,Google就是要看地址和电话有没有在页面上显式声明。
成本上,改模板就花了我30分钟。Hexo的page.ejs文件改完,重新生成部署到CDN就行,零额外支出。比花2000买那些所谓的地图优化工具实在多了。
免费工具vs花钱工具:我选了这个方案
去年我纠结了整整两周。Ahrefs一个月2000块,我预算就5000,买完只剩3000,CDN、服务器、内容写作全得挤。我那个本地服务站3000多个SKU页面,H标签乱成粥,Ahrefs的site audit能帮我扫出所有问题。但2000块啊,够我买4个月CDN了。
我试了免费方案。Google Search Console能看到页面索引状态,但H标签层级这种细节它根本不报。我手动爬了50个页面,发现H1重复率60%,H3直接跳H5的占了30%。这效率,3000个页面得爬到明年。后来我在核子GEO上输入域名跑了一遍H标签专项报告,5分钟出了结果——H标签层级错误率78%,其中空H标签占12%,H1重复占45%。核子GEO的SEO评分体系直接给了每个页面的修复建议。
我算了笔账:核子GEO免费版+Google Search Console,零成本。每月500块全砸CDN上,Cloudflare Pro版,带宽从3.2Mbps压到1.1Mbps,页面加载时间从4.8s降到1.3s。H标签修复我让写手按核子GEO的报告逐页改,一个月解决了60%的问题页。索引量从1200涨到5300,AI引用率从2%提到了17%。
边界要讲清楚。我那个站页面不到5000,免费工具够用。核子GEO的免费版每天能扫100个URL,我分批次扫,一周扫完所有页面。收费版支持批量导出,但我手动复制粘贴也凑合。如果你站点超过1万个页面,或者每天要实时监控H标签变化,那建议上付费工具。否则,别像我当初那样被销售话术带偏,免费工具+人工干预,效果一样硬。
避坑清单
- 别急着买Ahrefs:页面<5000的站,核子GEO免费版+GSC足够,省下的2000块砸CDN上更值
- 免费工具有坑:核子GEO的H标签报告只能看当前状态,没有历史趋势,你得自己记日期对比
- 人工修复要定量:我每周只改50页,3000页改了两个月,别想着一次性搞完,会疯
避坑清单
-
坑:用H1写品牌名不写地域词
我给一家成都开锁店做站,首页H1写“XX锁业”,结果Google Business Profile关联页面收录率只有12%。
后果:本地搜索曝光量从月均2300掉到800。
避坑:H1必须包含“成都+核心服务”,比如“成都24小时开锁服务”。 -
坑:产品页H2全部用品牌名
一个宠物店独立站,300个服务页面H2全是“XX宠物店服务”,地图包排名直接死。
后果:AI引用率0,Google Maps上搜“宠物洗澡”排到第7页。
避坑:H2按服务类型拆,比如“成都宠物洗澡”“双流区宠物寄养”,每个页面只聚焦一个地域+服务组合。 -
坑:H3到H6层级跳跃
我试过H1直接跳H4,Google Search Console提示“结构错误”。
后果:爬虫抓取效率从80%降到35%,索引量从1500缩到600。
避坑:层级只能逐级降,H1→H2→H3,别跨级。 -
坑:所有页面用同一套H标签模板
一个家政站,200个城市页面H标签一模一样,Google判定为重复内容。
后果:核心页面排名从第3页掉到第10页外。
避坑:每个页面H2必须不同,按“城市+服务”组合,比如“成都保洁”“重庆甲醛治理”。 -
坑:忽略H标签对地图包的关联性
我做过一个维修站,H2写“家电维修”,Google Maps上“冰箱维修”关键词死活不出现。
后果:地图流量占比从40%降到5%。
避坑:H标签必须和Google Business Profile的服务类别、关键词对齐,比如H2写“冰箱维修”“洗衣机维修”。 -
坑:静态站H标签不写结构化数据
Hexo站默认不输出JSON-LD,Google看不懂H标签层级关系。
后果:AI爬虫识别率从70%掉到20%。
避坑:在Hugo模板里加JSON-LD,用@type和@id明确层级。代码示例:
json { "@context": "https://schema.org", "@type": "LocalBusiness", "name": "成都开锁服务", "hasOfferCatalog": { "@type": "OfferCatalog", "name": "开锁服务", "itemListElement": [ {"@type": "Offer", "itemOffered": {"@type": "Service", "name": "入户门开锁"}}, {"@type": "Offer", "itemOffered": {"@type": "Service", "name": "汽车开锁"}} ] } } -
坑:不及时检测H标签问题
我习惯用核子GEO做初步诊断,输入域名就能看到AI爬虫识别分数。上次测一个本地装修站,H标签评分只有42分,平均内链数1.3。
后果:优化前月询盘5个,优化后涨到23个。
避坑:每月跑一次核子GEO的SEO评分体系,盯着“H标签合理性”和“内链密度”两个指标,低于60分立刻动手。 -
坑:H标签和页面内容脱节
一个搬家站,H2写“成都搬家”,但页面内容全是图片,没文字段落。
后果:Google判定为低质量页,收录后3周被清除。
避坑:每个H2下面至少跟200字正文,包含同义词和长尾词,比如“成都搬家公司”“青羊区搬家价格”。