site: 查询发现公告归档被收录了 300 多条,搜索结果前三页都是去年结束的活动,点进去内容已经过期,正常文章反而排到后面。乍看像缓存或者权限的锅,追下去往往不是。
register_post_type( 'notice', [ 'public' => false, 'publicly_queryable' => false, 'exclude_from_search' => true ] );
追下去是这么回事:公告自定义文章类型注册时 public 设成 true,归档页可访问,主题又没输出 noindex。sitemap 插件默认把所有公开类型都列进去。
碰到「公告搜索引擎收录」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。
先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
具体做法是,公告类型注册时把 publicly_queryable 设为 false,归档页直接 404;对单条公告输出 noindex,follow,保留详情可访问;在 sitemap 设置里排除公告类型,再提交一次。
验收就看一点,公告归档不再能被直接访问,sitemap 里也不再出现公告链接。
