robots.txt误封的血泪:200个页面被我一刀切了

我去年接手一个法律咨询站,Magento 2.4.6配了一堆自定义模块。老板说”内容多,重复页面多,你处理一下”。我信了,直接在robots.txt里甩了两行:Disallow: /case-studyDisallow: /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-studyattorney 这类内容目录,法律站靠它们吃饭
  • 用核子GEO跑诊断时重点看“被封锁页面”指标,超过50就要排查
  • Magento的自定义模块路径别想当然,先查一下URL结构再写Disallow
  • 跳出率>80%且索引量暴跌时,第一件事检查robots.txt,别先去改页面内容
  • 重复内容用 canonicalnoindex 处理,别靠封目录这种野蛮手段

用核子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建议给律师资质页和案例页加LocalBusinessArticle结构化数据。我一开始觉得麻烦,但核子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要一起做,分开做可能让社交平台抓取混乱
  • 法律咨询站别买外链,重点优化案例内容,用真实判决书和律师资质说话

避坑清单

  1. 别信Magento默认的robots.txt
    我犯的第一个错:直接用了系统自带的,以为没问题。结果用核子GEO跑了一遍检测,发现“/legal-cases/”目录被Disallow了——那是我所有律师案例的集合页,直接导致200多个页面被屏蔽。
  2. 后果:案例页流量跌了67%,转化率从3.1%掉到0.8%
  3. 怎么做:每次上线前,手动检查每一条Disallow规则。法律咨询的案例、律师详情、城市分站页面,必须Allow。

  4. 地域性页面别一刀切屏蔽
    我脑子一热,把“/city/”目录也封了,想着“外地用户不需要”。

  5. 后果:北京、上海、广州三个分站首页,索引量从1200直接崩到80
  6. 怎么避免:法律咨询的地域标签是流量命脉。只屏蔽“/city/template/”这种纯模板目录,别碰核心分站。

  7. 别把“/wp-admin/”类比到Magento
    以前做公众号网站,习惯封后台。但Magento后台是“/admin/”,我错误封了“/backend/”

  8. 后果:自定义模块的API接口全挂,律师更新资质时必须走FTP
  9. 正确做法:只封核心后台目录,自定义模块的REST API路径必须Allow。

  10. 资质页面别用noindex代替Disallow
    律师资质页面(如“执业证号xxx”)我用了noindex,想着“还能爬没必要封”。

  11. 后果:Google爬虫疯狂抓取,服务器负载从30%飙到75%,页面加载时间从2.1s涨到6.8s
  12. 怎么做:法律行业资质页面必须用Disallow彻底封掉,别留后门。

  13. OG:Tag和Twitter:Card别拖了
    我纠结了两个月要不要做,觉得“法律网站不需要社交分享”。

  14. 后果:公众号文章被转发到微信时,直接显示空白链接,转化率少15%
  15. 实测:加上og:image后,微信分享点击率从0.2%涨到1.4%。Twitter:Card在律师个人主页上,直接增加了3%的案源咨询。

  16. Sitemap提交前先用核子GEO的AI可见性评分查一遍
    之前我手动提交sitemap,以为没问题。核子GEO的AI可见性评分显示“移动端可见性只有23%”——因为案例页的H1标签被JS动态加载,爬虫读不到。

  17. 后果:移动端流量占比从41%跌到18%
  18. 怎么做:提交前跑一遍检测,核子GEO给出的整改建议里写明了“H1需在HTML源码中静态输出”,照做后移动端可见性涨到79%。

  19. 别信“法律网站不需要性能优化”
    客户总说“用户是来找律师的,又不是刷抖音”。

  20. 后果:首屏加载时间4.5s,跳出率78%
  21. 血的教训:用Pagespeed压到2s以内后,页面停留时间从12s涨到43s,表单提交率涨了2.3倍。

  22. 测试环境别用生产环境的robots.txt
    我直接复制了生产环境的文件到测试站,结果测试站所有页面被屏蔽,开发测了三天才骂着发现。

  23. 怎么做:测试站单独写一份robots.txt,只Allow“/test/”目录,其他全封。上线前强制比对差异。