Yoast SEO Abilities开放写入:AI工具能直接改canonical和robots,撤回却要靠会话记忆
本文目录
- 这次Yoast到底多给了AI哪些权限?
- robots指令能改到多细
- 它是怎么接到Claude、Cursor这些工具上的?
- 第一块:Abilities API
- 第二块:MCP Adapter
- 请求长什么样
- 读回来的数据,哪些地方容易看走眼?
- 几个适合交给AI的体检任务
- AI改错了,怎么撤回?
- 比较稳妥的做法
- 谁适合现在就接,谁可以先等等?
- 权限和安全,哪几处要自己把关?
- 常见问题解答
- Yoast SEO Abilities是什么?
- 4月那次和9月这次有什么区别?
- 需要付费吗?
- AI能改焦点关键词吗?
- 改错了怎么撤回?
- 支持哪些AI工具?
- 需要WordPress哪个版本?
- 谁能使用这些能力?
- noindex传false和传null有什么区别?
- 本地站和线上站的连接方式一样吗?
- 可以按标题批量改吗?
- 权威参考资料
摘要:Yoast在9月29日的版本说明里宣布,Yoast SEO Abilities从只读分数升级到能读能改。接入WordPress的Abilities API和官方MCP Adapter后,Claude、Cursor这类AI工具可以读取一篇文章的标题、描述、robots指令、schema类型、canonical、社交预览和各项分数,并直接改写canonical、robots、基石内容和schema类型这些技术字段,还支持批量操作。焦点关键词对AI保持只读,权限沿用WordPress自带的能力检查。撤回改动依赖AI工具在当前会话里还记得旧值,会话一断,旧值就没了,所以改之前必须先读一遍。
让AI帮你查网站的SEO问题,这事很多人都干过。它能告诉你:这个商品页的schema写成了菜谱,那篇文章的canonical还指着测试站。说得都对,可然后呢?你还得自己登进后台,一篇一篇点开改。
Yoast在9月29日的版本说明里,想解决的就是“然后呢”。它的说法是,把AI工具从旁观者变成合作者:同一个AI工具,查出问题之后可以直接动手改。
这对用WordPress做外贸站、内容站的人是个实打实的变化,也带来了一个新问题:你愿不愿意让AI直接改你的noindex和canonical。下面按Yoast的发布说明和开发者文档,把它能做什么、怎么接、出了错怎么办讲清楚。
这次Yoast到底多给了AI哪些权限?
先说之前。4月28日,Yoast SEO第一次把自己接入WordPress的Abilities API,注册了三项能力:最近修改文章的SEO分数、可读性分数和包容性语言分数。任何AI工具都能稳定地查出哪些文章SEO分数偏低,但也就到此为止。它看不到分数背后的具体字段,更没法改,最后还是得有人打开wp-admin。
9月29日这次补上的就是这一段。按开发者文档,Yoast新注册了两项针对单篇文章SEO数据的能力,一读一写:
| 能力名称 | 类型 | 能做什么 |
|---|---|---|
| yoast-seo/get-post-seo-data | 只读 | 返回SEO标题、描述、robots各项指令、schema类型、canonical、Open Graph与X的社交预览、焦点关键词和三项分数 |
| yoast-seo/update-post-seo-data | 写入 | 修改指定文章的SEO字段,返回修改后的完整数据 |
发布说明强调的几个点:
- 读的时候,可以按文章ID、固定链接,也可以按标题搜。你跟AI说“帮我看看那篇讲酸面包的文章”,它一次调用就能找到,不用来回翻。
- 能写的主要技术字段是canonical、robots指令、基石内容标记和schema类型。这些本来就是Yoast管的字段,没有在内容和网站之间多塞一层东西。
- 支持批量。一次调用可以对多篇文章做读取、更新或筛选,每篇文章单独返回结果,改了什么、改在哪都看得到。
- 焦点关键词对AI只读。Yoast的理由是,这个词要你自己定,自动改掉它可能让内容简报和营销流程失效,后面所有的评估也会跟着歪。
- 权限沿用WordPress原生的能力检查,没有另一套权限系统要学,审计方式和其他管理员级访问一样。
费用方面,发布说明写的是先把你自己的大模型订阅接到Yoast,之后读取、技术字段更新和批量操作都包含在Yoast SEO里。在后台的Yoast SEO菜单下进入集成页面,这次集成页也改版了,按主题分组,新的分组叫AI与智能体。
robots指令能改到多细
开发者文档把可写的robots相关字段拆得很细:noindex、nofollow、noimageindex、noarchive、nosnippet。其中noindex是三态的:
| 传入的值 | 效果 |
|---|---|
| true | 设为noindex,这篇文章不进搜索结果 |
| false | 强制允许索引 |
| null | 清除单篇设置,回到这个文章类型的默认值 |
这个三态设计很合理,但也意味着AI传错一个值,后果差别很大。传false和传null,在大多数站上看起来一样,等哪天你把整个文章类型改成noindex,两者的区别就出来了。schema的页面类型和文章类型也能改,取值必须是编辑器里本来就接受的那些类型,传了列表之外的值会报错,什么都不改。
它是怎么接到Claude、Cursor这些工具上的?
Yoast这次没有自己造连接器,它踩的是WordPress官方的两块地基。
第一块:Abilities API
WordPress核心AI团队在2025年11月发文介绍了Abilities API,首批实现进了WordPress 6.9。它的思路是给WordPress核心、插件和主题提供一个统一的登记处,每项能力都用同样的格式登记:唯一的名称、带类型的输入和输出结构、负责检查权限的回调、负责干活的回调。登记之后,PHP、JavaScript和REST API都能发现并调用它。
WordPress 6.9自带三项核心能力:获取站点信息、获取当前用户信息、获取运行环境信息。Yoast这两项新能力,可以在站点的/wp-json/wp-abilities/v1/abilities?category=yoast-seo这个地址列出来。
第二块:MCP Adapter
Abilities API解决的是“登记”,让AI工具能用上,还需要翻译成AI工具认识的协议。这就是WordPress MCP Adapter干的事,WordPress开发者博客2月4日专门介绍过。它把登记好的能力转换成MCP工具,Claude Desktop、Claude Code、Cursor、VS Code这些支持MCP的客户端就能发现并调用。
适配器以插件形式安装,可以从GitHub仓库的发布页下载。装好后会注册一个默认MCP服务器,并提供发现能力、查看能力信息、执行能力三个工具。连接方式有两种:
| 连接方式 | 适合场景 | 需要什么 |
|---|---|---|
| STDIO | 本地开发环境 | 本机装好WP-CLI,配置里指定WordPress安装路径 |
| HTTP | 线上可公开访问的网站 | 本机装Node.js,用@automattic/mcp-wordpress-remote做远程代理,认证用WordPress应用密码或自建OAuth |
按WordPress开发者博客给的最小配置,两种方式在AI客户端里大致这样写。示例里的路径、用户名seo-bot和应用密码都是演示值,换成你自己的:
# 本地站点,STDIO方式,通过WP-CLI启动
"wordpress-mcp-server": {
"command": "wp",
"args": [
"--path=/var/www/example",
"mcp-adapter",
"serve",
"--server=mcp-adapter-default-server",
"--user=seo-bot"
]
}
# 线上站点,HTTP方式,通过远程代理
"wordpress-mcp-server": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
"env": {
"WP_API_URL": "https://example.com/wp-json/mcp/mcp-adapter-default-server",
"WP_API_USERNAME": "seo-bot",
"WP_API_PASSWORD": "abcd efgh ijkl mnop qrst uvwx"
}
}本地用HTTP代理连不上时,官方说常见原因是装了多个版本的Node.js,或者本地SSL证书有问题。--user参数决定AI以哪个WordPress用户的身份操作,这个用户有什么权限,AI就有什么权限,后面讲安全时会再提。
还有一个细节要注意:按MCP Adapter的说明,能力默认不会出现在默认服务器上,登记时要显式标记为对MCP公开。Yoast的能力在你的站上能不能被AI看到,取决于这里的配置,具体以Yoast开发者文档的接入步骤为准。
请求长什么样
不经过MCP,直接调REST接口也行。下面是按Yoast开发者文档整理的读写示例:
# 读取ID为5的文章的SEO数据
GET /wp-json/wp-abilities/v1/abilities/yoast-seo/get-post-seo-data/run?input[post_id]=5
# 按标题搜,可用逗号隔开多个短语,每页10条
GET /wp-json/wp-abilities/v1/abilities/yoast-seo/get-post-seo-data/run?input[title]=sourdough,breakfast&input[page]=2
# 写入:只传要改的字段,其余不动
POST /wp-json/wp-abilities/v1/abilities/yoast-seo/update-post-seo-data/run
{
"input": {
"post_id": 5,
"canonical": "https://example.com/sourdough/",
"schema_page_type": null
}
}写入接口只接受文章ID或固定链接,不接受标题搜索。文档的解释是,更新必须指向唯一确定的一篇文章。这个限制挺有必要,不然AI按标题模糊匹配到三篇,再一口气全改了,那就热闹了。
读回来的数据,哪些地方容易看走眼?
AI能读到数据,不代表它能读懂。Yoast返回的数据里有个设计,AI和人都容易误判:很多字段成对出现,一个是你手动设置的值,一个是最终渲染到页面上的值。
| 字段 | 值为null时的意思 | 对应的渲染字段 |
|---|---|---|
| seo_title | 没有手填,用的是标题模板 | seo_title_rendered,页面上实际输出的标题 |
| canonical | 没有手填,默认指向文章自身地址 | canonical_rendered,实际输出的规范地址 |
| open_graph_title | 没有单独设置,沿用默认 | open_graph_title_rendered |
| noindex | 没有单篇设置,跟随文章类型默认 | 无单独渲染字段,要结合文章类型设置看 |
文档里的示例就是这样:一篇讲酸面包的文章,seo_title是null,渲染出来的标题是文章名加站点名;canonical是null,渲染出来的是文章自己的地址。
如果你让AI“找出所有没设置canonical的文章并补上”,它看到一堆null,可能真的去逐篇写上自身地址。页面输出不会变,但你凭空多了几百个手填值,以后改域名或改固定链接结构时,这些写死的地址就成了隐患。更合理的指令是让它比较canonical_rendered和permalink,只挑两者不一致的出来给你看。
几个适合交给AI的体检任务
- 找出canonical_rendered和文章自身地址不一致的文章,人工判断是故意的还是迁移遗留。
- 列出所有noindex为true的文章,确认哪些是该隐藏的,哪些是误设的。
- 按文章类型统计schema页面类型和文章类型,挑出同类内容里不一致的。
- 筛出SEO分数为差、同时又被标为基石内容的文章,这类文章最该优先改。
- 检查社交预览的标题和描述是不是都在用默认值,外贸站往领英、脸书分享内容多的,值得单独设置。
这些任务只用到读取能力,风险很小。读出来的结果交给人判断,再决定哪些用写入能力去改,这是目前比较踏实的用法。
AI改错了,怎么撤回?
这是整个功能最需要看清楚的地方。
发布说明的原话是:通过WordPress Abilities API做的任何修改都可以回滚,前提是你的AI工具在上下文里还留着被改动的值。所以实际操作时,改之前先读一遍这篇文章的SEO数据,然后在同一个会话里检查改动结果。上下文一丢,旧值也跟着丢。Yoast的建议是把读取当成写入的一部分。
换成大白话:WordPress没替你存历史版本,能撤回全靠AI自己记得刚才是什么样。这里有几个容易翻车的情况:
- 会话太长,被工具自动压缩或截断,早先读到的旧值没了。
- 你关了窗口第二天再回来,想让AI“把昨天改的撤回去”,它已经不知道昨天是什么。
- 批量改了几十篇,旧值只在一大段返回结果里,AI恢复的时候漏掉几篇。
开发者文档对写入能力的标注也透露了这层风险。写入接口被标为非只读、幂等,“是否有破坏性”这一项故意没有声明。文档解释说,它只改Yoast的SEO元数据,不碰正文,但写入会覆盖旧值,传空值会清空字段,存在丢数据的可能,所以不作“无破坏”的保证。
比较稳妥的做法
- 让AI先把要改的文章批量读一遍,把结果导出成文件存在本地,别只放在对话里。
- 先在测试站上跑一遍同样的指令,看清楚它会改哪些字段,再上正式站。
- noindex、canonical这类改了会直接影响收录的字段,让AI每次只改少量文章,改完人工抽查页面源码。
- 改完一周内盯着Search Console的网页索引报告,看有没有页面突然被排除。
- 站点本身要有数据库备份,这是最后一道保险,别指望AI的记忆。
canonical被改错的后果,站内那篇canonical标签的8种误用写得比较全,比如批量指向首页、跨域指错。AI按“统一规范”的思路批量改canonical,很容易踩进其中几种。
谁适合现在就接,谁可以先等等?
Yoast的发布说明开头就点明,这次更新是给已经在配MCP连接或智能体工作流的人准备的。它还提到两类受益者:要在上面做看板或报表工具的开发者,带类型的输入输出结构让返回结果可预期,这比任何单个功能都重要;代理公司,可以在每个交付的WordPress站上用同一套标准配置,不用逐站手动重配。
放到国内做外贸站的团队,可以这么判断:
| 情况 | 建议 |
|---|---|
| 一个人维护一两个站,文章不多 | 价值有限,后台点几下比配MCP还快,可以只开读取,让AI帮你体检 |
| 代运营公司,手上几十个WordPress站 | 值得试,统一接入后可以让AI批量查schema、robots设置是否一致 |
| 站点刚改版或迁移过,遗留的canonical、noindex问题多 | 适合用读取能力快速排查,写入先在测试站验证 |
| 多人协作、作者和编辑权限混杂 | 先理清谁有高级元数据权限,再决定给哪个账号的应用密码 |
| 站点没有备份、没有测试环境 | 先别开写入 |
往大了看,这类能力是网站对AI智能体开放操作入口的一部分。站内9月写过的Lighthouse新增ARD审计,讲的是网站怎么告诉AI自己有哪些工具可用;Yoast这次做的,是让站长自己的AI工具能改站。两件事方向不同,但都说明,网站后台正在从只给人点的界面,变成也给AI调用的接口。用MCP做SEO自动化会遇到哪些坑,站内也有一篇MCP接入SEO工作流的失败复盘可以先看看。
没在用Yoast、在用Rank Math或AIOSEO的,可以先看看自己的插件有没有类似进展。几款插件怎么选,站内的Yoast、Rank Math、AIOSEO横评可以参考,这次Yoast在智能体接入上算是先走了一步。
权限和安全,哪几处要自己把关?
Yoast说权限沿用WordPress的能力检查,开发者文档写得更具体:这两项文章SEO数据能力,要求用户有高级元数据权限,也就是编辑器里控制高级设置和schema字段的那项权限;在此基础上,还会逐篇检查这个用户能不能编辑这篇文章,只返回和修改他有权编辑的文章。相比之下,4月上线的分数类能力要求的是Yoast设置管理权限。
MCP Adapter的介绍文章在安全部分说得很直白:MCP客户端是以登录用户的身份在操作WordPress,所以要把它当成应用的一部分攻击面来对待。几条落地建议:
- 给AI单独建一个WordPress用户,只给需要的权限,别直接用管理员账号的应用密码。
- 应用密码当成服务器密码管理,不要写进共享的配置文件或提交到代码仓库。站内写过WordPress独立站AI API Key泄漏的攻防,道理相通。
- 自托管站目前主要靠应用密码或JWT认证,WordPress.com那边用的是OAuth 2.1,两者安全模型不同。
- 打开访问日志,定期看AI账号调了哪些接口、改了哪些文章。
还有一点是AI本身的问题。AI工具判断“这个页面schema写错了”,依据是它读到的内容和它的理解,未必对。商品页用了菜谱schema这种明显的错误,让它改没问题;“这篇文章该不该noindex”这种需要业务判断的事,最好还是人拍板。Yoast把焦点关键词锁成只读,背后也是同一个考虑:有些决定不该交给AI。
常见问题解答
Yoast SEO Abilities是什么?
Yoast SEO接入WordPress Abilities API的一组能力,让支持MCP的AI工具读取文章的SEO数据,并修改canonical、robots、基石内容、schema类型等技术字段。
4月那次和9月这次有什么区别?
4月28日上线的三项能力只能读最近修改文章的SEO、可读性和包容性语言分数。9月29日这次能读完整的SEO字段,还能写入技术字段,并支持批量操作。
需要付费吗?
按发布说明,先把自己的大模型订阅接到Yoast,之后读取、主要SEO字段更新和批量操作都包含在Yoast SEO里。大模型本身的费用由你自己的订阅承担。
AI能改焦点关键词吗?
不能。焦点关键词对AI只读,Yoast的理由是自动改它可能打乱内容简报和营销流程,还会影响之后的所有评估。
改错了怎么撤回?
只要AI工具在当前会话里还保留着被改动的旧值,就能回滚。会话结束或上下文丢失后,旧值也就没了,所以改之前先读取并另外保存。
支持哪些AI工具?
通过WordPress MCP Adapter连接后,任何支持MCP的客户端都能调用,官方举的例子有Claude Desktop、Claude Code、Cursor和VS Code。
需要WordPress哪个版本?
Abilities API的首批实现在WordPress 6.9进入核心,还需要另外安装MCP Adapter插件。具体的版本要求以Yoast开发者文档为准。
谁能使用这些能力?
文章SEO数据的读写要求用户有Yoast的高级元数据权限,并且只能读写自己有权编辑的文章。分数类能力要求的是Yoast设置管理权限。
noindex传false和传null有什么区别?
传false是强制允许这篇文章被索引;传null是清除单篇设置,回到这个文章类型的默认值。文章类型默认被设成noindex时,两者结果不同。
本地站和线上站的连接方式一样吗?
不一样。本地开发环境一般用STDIO方式,通过WP-CLI启动MCP服务;线上站点用HTTP方式,借助mcp-wordpress-remote代理,并用应用密码或OAuth认证。
可以按标题批量改吗?
按标题搜索只用于读取。写入必须用文章ID或固定链接指定唯一的一篇文章,批量写入是对多篇明确指定的文章分别执行。
权威参考资料
本文标题:《Yoast SEO Abilities开放写入:AI工具能直接改canonical和robots,撤回却要靠会话记忆》
本文链接:https://zhangwenbao.com/yoast-seo-abilities-ai-agent-edit-seo-fields.html
版权声明:本文原创,转载与引用请注明作者与原文链接。许可协议: CC BY 4.0