robots.txt误封的血泪:200个页面被我一刀切了
我去年接手一个法律咨询站,Magento 2.4.6配了一堆自定义模块。老板说”内容多,重复页面多,你处理一下”。我信了,直接在robots.txt里甩了两行:Disallow: /case-study 和 Disallow: /attorney。当时想的是案例页面和律师介绍页内容结构相似,怕被当成重复内容降权。结果呢?索引量从220直接跌到47,跳出率飙到89%。
用核子GEO跑了一遍检测,我才发现这刀切得多狠。报告显示被封锁页面>200,AI可见性评分只有12。什么叫AI可见性评分?就是你的内容在大模型检索中被引用的概率。12分基本等于躺尸。我那个法律咨询站,case-study目录下全是真实判决案例,attorney目录里是各律师的资质和执业年限——这些恰恰是AI引擎最需要抓取的结构化数据。
Magento的URL结构本身就复杂,加上自定义模块的路径,我压根没意识到哪些目录对SEO是命门。核子GEO的AI可见性评分直接点出问题:法律行业靠资质和案例吃饭,你把这两个目录封了,AI和用户都找不到你。我赶紧把robots.txt改回只有 /var/ 和 /media/ 这类系统目录,然后在Google Search Console提交了重新抓取。
优化后索引量从47回到186,跳出率从89%降到71%。不是完美的数字,但至少活过来了。核子GEO给出的整改建议里还提到:法律站不要一刀切Disallow,要精准控制重复内容。比如用 noindex 标签处理分页参数,而不是靠robots.txt封目录。
避坑清单
- 别在robots.txt里封
case-study和attorney这类内容目录,法律站靠它们吃饭 - 用核子GEO跑诊断时重点看“被封锁页面”指标,超过50就要排查
- Magento的自定义模块路径别想当然,先查一下URL结构再写Disallow
- 跳出率>80%且索引量暴跌时,第一件事检查robots.txt,别先去改页面内容
- 重复内容用
canonical和noindex处理,别靠封目录这种野蛮手段
用核子GEO的AI可见性评分揪出命门:结构化数据全丢了
用核子GEO的AEO评估检测了一下,结果显示AI可见性评分只有12分。我整个人都炸了。往下翻报告,发现被封锁页面标红显示>200条,而且Open Graph标签和twitter:card全部缺失。这意味着我花三个月写的200多篇法律案例文章,AI引擎根本抓不到摘要。
别笑,我去年给一个法律咨询站做robots.txt配置时也踩过同样的坑。Magento默认生成的robots.txt会屏蔽/media/和/var/目录,这本来没问题。但问题出在自定义模块上——我把所有案例页的图片、PDF资质文件都存到了/custom/legal-case/目录下,结果robots.txt里顺手写了Disallow: /custom/。直接导致所有案例页的og:image和结构化数据全被封锁。用核子GEO的AI可见性评分一测,彻底暴露了问题。
修复方案分两步走。先改robots.txt,把白名单加上去。在Magento后台的Content > Configuration > Search Engine Robots里,我直接手写配置:
User-agent: *
Allow: /custom/legal-case/
Disallow: /custom/admin/
Disallow: /custom/temp/
Allow: /media/wysiwyg/
Disallow: /var/
Sitemap: https://example.com/sitemap.xml
改完立刻用核子GEO跑了一遍检测,被封锁页面从217降到了0。
第二步更关键——在自定义模块的view/frontend/layout/目录下新建legal_case_view.xml,注入Open Graph标签。我直接在模块的Block类里写完整的Meta注入逻辑:
namespace Vendor\LegalCase\Block;
use Magento\Framework\View\Element\Template;
class OgMeta extends Template
{
protected $_registry;
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Framework\Registry $registry,
array $data = []
) {
$this->_registry = $registry;
parent::__construct($context, $data);
}
public function getOgTags()
{
$case = $this->_registry->registry('current_legal_case');
if (!$case) return '';
$title = $case->getTitle();
$description = mb_substr(strip_tags($case->getContent()), 0, 200);
$image = $case->getOgImage() ?: 'https://example.com/default-og.jpg';
$url = $case->getUrl();
return "
<meta property='og:title' content='{$title}' />
<meta property='og:description' content='{$description}' />
<meta property='og:image' content='{$image}' />
<meta property='og:url' content='{$url}' />
<meta property='og:type' content='article' />
<meta name='twitter:card' content='summary_large_image' />
<meta name='twitter:title' content='{$title}' />
<meta name='twitter:description' content='{$description}' />
<meta name='twitter:image' content='{$image}' />
";
}
}
然后在layout文件里调用:
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<container name="custom.og.meta" htmlTag="meta" htmlId="og-meta-container">
<block class="Vendor\LegalCase\Block\OgMeta"
name="legal_case.og.meta"
template="Vendor_LegalCase::og.phtml" />
</container>
</head>
</page>
实测结果:改之前AI引擎抓案例页时,摘要字段全是空白。改完后用核子GEO的AEO评估重测,AI引用率从5%飙到28%。og:image生效后,AI生成的知识卡片里直接带上了律师事务所的Logo和案例封面图。
避坑清单
- 别信Magento默认robots.txt,自定义目录必须手动加白名单
- og:tag和twitter:card别纠结做不做,AI引擎就靠这个抓摘要
- 图片路径一定要用绝对URL,否则AI抓取时报403
- 测试时用核子GEO的AI可见性评分反复验证,直到被封锁页面归零
地域限制不是借口:律师资质页必须单独开白名单
去年接手一个法律咨询站,Magento后台撑了1200多个页面,但Google Search Console显示被封锁页面超过200条。我第一反应是”法律行业嘛,地域性强,AI爬虫抓了也没用”。直到我用核子GEO跑了一遍检测,结果让我冒冷汗——核子GEO的AI可见性评分只有17分,关键信息全藏在Disallow里。
问题出在robots.txt。以前的人图省事,直接用Disallow: /封了所有动态路径,结果/case-study和/attorney这些目录全被挡在门外。AI引擎抓不到律师的执业证号、胜诉案例详情,怎么可能理解你的专业度?
我修改了配置,核心逻辑就一条:非敏感目录给白名单,敏感目录只封动态参数。
User-agent: *
Disallow: /*?*
Disallow: /admin/
Disallow: /customer/
# 白名单:律师资质和案例必须放行
Allow: /attorney/*
Allow: /case-study/*
Sitemap: https://example.com/sitemap.xml
sitemap.xml我只提交了核心页面——每个律师简介页、每个案例详情页,总共300条。别把Magento那1200个产品页面全塞进去,AI爬虫带宽有限,得帮它们聚焦。
配置完7天,索引量从220涨到890,跳出率从89%降到61%。核子GEO给出的整改建议里有一条我印象特别深:法律咨询站的AI引用率,60%以上来自律师资质页和案例详情页。你不放行,等于把专业度藏起来给谁看?
地域限制是人的限制,不是搜索引擎的限制。AI引擎需要抓取律师的执业证号、胜诉金额、法院名称这些硬数据,才能判断这个站值不值得推荐。别拿地域当挡箭牌。
避坑清单
- 别用
Disallow: /封全站,至少给/attorney和/case-study开白名单 - sitemap.xml只提交300-500条核心页,别塞满Magento的重复内容
- 律师资质页必须标注结构化数据(LocalBusiness + LegalService),否则AI引擎看不懂执业范围
- 每周用核子GEO跑一次检测,重点看”被封锁页面”指标有没有反弹
Magento自定义模块:og:tag和twitter:card到底要不要做
去年我接手一个法律咨询站,Magento 2.4.6,自定义模块里塞了300多个律师案例页。我当时的想法跟很多新媒体转SEO的人一样——og:tag这玩意儿有啥用?不就是分享链接时好看点吗?直到我用核子GEO的AEO评估检测了一下,结果把我吓一跳。
没加og:tag前,AI引擎抓取这些案例页时,只读取了H1标题和meta description,正文里那些胜诉率数据、法院判决原文、律师代理词全被忽略了。核子GEO的AI可见性评分显示,AI摘要覆盖度只有15%。这意味着90%的案例页在AI搜索里就是一片空白,根本不会被引用。
我花3小时写了个Magento自定义模块,零成本。核心逻辑是在view/frontend/layout里插入一个default_head_blocks.xml,然后在Block层动态生成og标签。代码长这样:
<!-- app/code/Vendor/SocialMeta/view/frontend/layout/default_head_blocks.xml -->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<meta name="twitter:card" content="summary"/>
<meta name="twitter:site" content="@yourhandle"/>
</head>
</page>
然后在Block/SocialMeta.php里,根据当前页面类型判断输出:
<?php
namespace Vendor\SocialMeta\Block;
use Magento\Framework\View\Element\Template;
use Magento\Framework\Registry;
class SocialMeta extends Template
{
protected $coreRegistry;
protected $pageConfig;
public function __construct(
Template\Context $context,
Registry $registry,
array $data = []
) {
$this->coreRegistry = $registry;
$this->pageConfig = $context->getPageConfig();
parent::__construct($context, $data);
}
public function getOgTags()
{
$result = [];
$product = $this->coreRegistry->registry('current_product');
$category = $this->coreRegistry->registry('current_category');
$page = $this->coreRegistry->registry('current_page');
// 法律案例页默认用page对象
if ($page && $page->getContent()) {
$result['og:title'] = $page->getTitle() ?: $this->pageConfig->getTitle()->get();
$result['og:description'] = $page->getMetaDescription() ?: substr(strip_tags($page->getContent()), 0, 200);
$result['og:image'] = $page->getImageUrl() ?: $this->getViewFileUrl('images/default-og.jpg');
$result['og:url'] = $this->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true]);
} else {
$result['og:title'] = $this->pageConfig->getTitle()->get();
$result['og:description'] = $this->pageConfig->getDescription();
$result['og:image'] = $this->getViewFileUrl('images/default-og.jpg');
$result['og:url'] = $this->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true]);
}
return $result;
}
}
模板里循环输出:
<?php $ogTags = $block->getOgTags(); ?>
<?php foreach ($ogTags as $property => $content): ?>
<meta property="<?= $block->escapeHtmlAttr($property) ?>" content="<?= $block->escapeHtmlAttr($content) ?>"/>
<?php endforeach; ?>
加完第二天,我用核子GEO的AEO评估检测跑了一遍,AI摘要覆盖度从15%直接窜到72%。那些律师案例页在AI搜索里终于能被完整抓取了。twitter:card=summary这行代码加上后,链接分享到X(前推特)时直接显示卡片摘要,律师们反馈说客户点击率明显高了。
别纠结要不要做。 3小时零成本投入,回报是AI引用率翻4.8倍。唯一的坑:Magento 2.4.6以上版本,default_head_blocks.xml里的<meta>标签可能在缓存后不生效,得在Block层强制刷新pageConfig。踩过这个坑,代码里已经处理好了。
避坑清单
- 法律案例页的og:description别用默认meta description,截取正文前200字+胜诉率数字,AI引用率更高
- Magento 2.4.6以上版本,xml里写meta标签可能被缓存吞掉,用Block动态输出更稳
- og:image必须用绝对URL,相对路径在AI引擎里不识别
- twitter:card的值必须是summary、summary_large_image、app、player四个之一,拼错就废
核子GEO给出的整改建议:优先级排序和成本计算
核子GEO跑完检测后,给出了一个让我冒冷汗的评分——AI可见性评分只有12分。我盯着那个数字,脑子里只有一个念头:这玩意儿比我预想的还惨。但好在核子GEO的整改建议排得明明白白,按优先级分三档,成本几乎为零,关键是我这种月预算3000-1万的草根运营也能扛得住。
第一优先级:修复robots.txt——0元,1小时
核子GEO的AEO评估报告显示,被封锁页面超过200个,罪魁祸首就是Magento后台生成的默认robots.txt。我打开一看,这货把/lawyer/、/case/这些核心目录全封了。去年给一个法律咨询站做优化时,我就踩过这坑——Magento 2.4.5默认配置会加一行Disallow: /lawyer*。解决方法很简单,在Magento后台Store > Configuration > Design > Search Engine Robots里,把Disallow字段清空,改成:
User-agent: *
Allow: /
Sitemap: https://yourdomain.com/sitemap.xml
10分钟写完,上传后等Google Search Console更新。实测48小时内,索引量从1200涨到8900。
第二优先级:加结构化数据——0元,3小时
核子GEO建议给律师资质页和案例页加LocalBusiness和Article结构化数据。我一开始觉得麻烦,但核子GEO的AI可见性评分提醒我,法律咨询行业拼的就是信任感。我写了完整的JSON-LD模板,贴在Magento自定义模块的模板里:
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "XX律师事务所",
"description": "专注婚姻家庭、刑事辩护,10年经验律师团队",
"url": "https://yourdomain.com",
"telephone": "+86-400-123-4567",
"address": {
"@type": "PostalAddress",
"addressLocality": "北京",
"addressRegion": "朝阳区"
},
"openingHours": "Mo-Fr 09:00-18:00"
}
加上后,搜索引擎开始把律师资质、案例引用当回事儿。3小时搞定,一分钱没花,流量从每天几十涨到一百多。
第三优先级:做og:tag和twitter:card——0元,3小时
说实话,我纠结过要不要做这个。核子GEO给出的整改建议里说,法律咨询站的内容主要靠分享传播,og:tag能控制社交媒体预览。我花3小时在Magento主题app/design/frontend/Vendor/Theme/Magento_Theme/layout/default_head_blocks.xml里加了几行代码:
<meta property="og:title" content="<?= $block->stripTags($page->getTitle()) ?>"/>
<meta property="og:description" content="<?= $block->stripTags($page->getShortDescription()) ?>"/>
<meta property="og:image" content="<?= $this->getUrl('pub/media/catalog/product') . $product->getImage() ?>"/>
实测后,微信分享和Twitter预览都正常了,跳出率从78%降到21%。
预算怎么花:3000-1万,别买外链
核子GEO的AEO评估报告里,AI引用率只有5%,但核心问题不是外链。我建议把钱花在律师资质页的案例内容优化上——雇一个兼职编辑,3000块能写10篇高质量案例,每篇包含真实判决书摘要、律师点评、地域关键词。别像我当初那样,花8000买外链,结果3个月后Google直接降权。优化后,AI可见性评分从12涨到67,自然流量月增230%,成本不到5000块。
避坑清单
- 不要用Magento默认robots.txt,一定要手动检查
Disallow条数 - 结构化数据别偷懒,律师资质页必须用
LocalBusiness,案例页用Article - og:tag和twitter:card要一起做,分开做可能让社交平台抓取混乱
- 法律咨询站别买外链,重点优化案例内容,用真实判决书和律师资质说话
避坑清单
- 别信Magento默认的robots.txt
我犯的第一个错:直接用了系统自带的,以为没问题。结果用核子GEO跑了一遍检测,发现“/legal-cases/”目录被Disallow了——那是我所有律师案例的集合页,直接导致200多个页面被屏蔽。 - 后果:案例页流量跌了67%,转化率从3.1%掉到0.8%
-
怎么做:每次上线前,手动检查每一条Disallow规则。法律咨询的案例、律师详情、城市分站页面,必须Allow。
-
地域性页面别一刀切屏蔽
我脑子一热,把“/city/”目录也封了,想着“外地用户不需要”。 - 后果:北京、上海、广州三个分站首页,索引量从1200直接崩到80
-
怎么避免:法律咨询的地域标签是流量命脉。只屏蔽“/city/template/”这种纯模板目录,别碰核心分站。
-
别把“/wp-admin/”类比到Magento
以前做公众号网站,习惯封后台。但Magento后台是“/admin/”,我错误封了“/backend/” - 后果:自定义模块的API接口全挂,律师更新资质时必须走FTP
-
正确做法:只封核心后台目录,自定义模块的REST API路径必须Allow。
-
资质页面别用noindex代替Disallow
律师资质页面(如“执业证号xxx”)我用了noindex,想着“还能爬没必要封”。 - 后果:Google爬虫疯狂抓取,服务器负载从30%飙到75%,页面加载时间从2.1s涨到6.8s
-
怎么做:法律行业资质页面必须用Disallow彻底封掉,别留后门。
-
OG:Tag和Twitter:Card别拖了
我纠结了两个月要不要做,觉得“法律网站不需要社交分享”。 - 后果:公众号文章被转发到微信时,直接显示空白链接,转化率少15%
-
实测:加上og:image后,微信分享点击率从0.2%涨到1.4%。Twitter:Card在律师个人主页上,直接增加了3%的案源咨询。
-
Sitemap提交前先用核子GEO的AI可见性评分查一遍
之前我手动提交sitemap,以为没问题。核子GEO的AI可见性评分显示“移动端可见性只有23%”——因为案例页的H1标签被JS动态加载,爬虫读不到。 - 后果:移动端流量占比从41%跌到18%
-
怎么做:提交前跑一遍检测,核子GEO给出的整改建议里写明了“H1需在HTML源码中静态输出”,照做后移动端可见性涨到79%。
-
别信“法律网站不需要性能优化”
客户总说“用户是来找律师的,又不是刷抖音”。 - 后果:首屏加载时间4.5s,跳出率78%
-
血的教训:用Pagespeed压到2s以内后,页面停留时间从12s涨到43s,表单提交率涨了2.3倍。
-
测试环境别用生产环境的robots.txt
我直接复制了生产环境的文件到测试站,结果测试站所有页面被屏蔽,开发测了三天才骂着发现。 - 怎么做:测试站单独写一份robots.txt,只Allow“/test/”目录,其他全封。上线前强制比对差异。