SEO Meta Core
🔍 一个轻量、通用的 WordPress SEO 元数据核心插件,统一管理 Canonical、Open Graph、Twitter Card、Schema JSON-LD 和 Sitemap 规则。
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/coowinit/seo-meta-core/releases/download/v1.0.0/seo-meta-core.zip轻量级 WordPress SEO 元数据核心插件,用于统一管理 Canonical、Open Graph、Twitter / X Card、Schema JSON-LD 与 WordPress 原生 Sitemap 规则。
当前稳定版本:v1.0.0
插件定位
SEO Meta Core 不试图复制 Yoast SEO、Rank Math 或 AIOSEO,而是只处理企业网站常见且真正需要的技术 SEO 元数据,并保持结构简单、可维护、可扩展。
核心原则:
- 通用:不绑定具体网站、CPT 或 Taxonomy。
- 轻量:不做关键词评分、重定向管理器、404 日志、AI 写作等完整 SEO 套件功能。
- 单一数据源:Canonical、Social Metadata 与 Schema 尽量复用同一套页面上下文和基础元数据。
- WordPress 原生优先:Sitemap 继续由 WordPress Core 生成,本插件只控制排除范围。
- 先自动、后覆盖:首页允许人工设置社交分享信息,其他页面默认自动获取。
- 模块化:Canonical、Social、Schema、Sitemap 可独立启用或关闭。
v1.0.0 已完成并通过实站验证
Canonical ✅ Passed
Open Graph + Twitter / X ✅ Passed
Homepage Social Settings ✅ Passed
Schema JSON-LD Graph ✅ Passed
Generic Sitemap Rules ✅ Passed
Module Controls ✅ Passed
Conflict Detection ✅ Passed
1. 安装与升级
将插件目录放到:
/wp-content/plugins/seo-meta-core/
然后在 WordPress 后台启用:
插件 → SEO Meta Core → 启用
设置入口:
设置 → SEO Meta Core
从旧版本升级时可以直接覆盖插件文件。现有首页 Social 设置、Sitemap 排除规则和模块开关会继续保留。
2. 后台设置结构
设置
└── SEO Meta Core
├── 兼容性检查
├── 模块开关
├── 首页社交分享
└── Sitemap 规则
模块开关
默认启用:
Canonical
Open Graph + Twitter / X
Schema JSON-LD
Sitemap 规则
关闭模块只停止对应前台行为,不删除已保存设置。
例如:
关闭 Social
→ 不输出 Open Graph / Twitter
→ 首页 Social 标题、描述、图片仍保留
关闭 Sitemap
→ 不应用排除规则
→ 已保存的排除规则仍保留
3. Canonical
Canonical 由 SMC_Context 与 SMC_Canonical 统一解析。
默认支持:
- 首页
- 博客首页
- 单篇文章 / Page / CPT Single
- Category / Tag / 自定义 Taxonomy
- CPT Archive
- Author Archive
- Date Archive
- 分页归档
默认不输出:
404
Search
Feed
Preview
无法识别的页面类型
插件不会写死任何站点专属 CPT。若某个站点确实需要额外排除某种 Singular,可使用:
add_filter( 'smc_excluded_singular_post_types', function ( $types ) {
$types[] = 'your_post_type';
return $types;
} );
关于业务跳转与 404
SEO Meta Core 不负责 CPT 的业务路由。
例如:
某 CPT Single → 301 到第三方页面
某数据型 CPT Single → 404
应该由该内容类型自身的业务代码负责。SEO Meta Core 会根据当前 WordPress Query 状态避免在真正的 404 页面继续输出 Canonical。
4. Open Graph 与 Twitter / X Card
Open Graph 与 Twitter / X 共享 Social Metadata。
常规页面默认自动获取:
Title
Description
Canonical URL
Image
Image Width / Height / ALT
Site Name
博客文章会使用 article 类型;其他页面默认使用 website。
Twitter / X 默认输出:
twitter:card
twitter:title
twitter:description
twitter:image
有合适图片时使用:
summary_large_image
5. 首页社交分享
首页通常承担品牌定位与核心业务表达,因此提供单独人工设置:
设置 → SEO Meta Core → 首页社交分享
字段:
- 社交分享标题
- 社交分享描述
- 社交分享图片
一组数据同时复用于:
Open Graph
Twitter / X Card
Homepage Schema representative image
图片保存 WordPress Attachment ID,因此可继续读取:
URL
Width
Height
ALT
其他文章、页面、产品与自定义内容类型继续自动生成,不额外增加 SEO Meta Box。
6. 自动元数据规则
基础数据由 SMC_Metadata 统一解析。
标题
Singular → 当前标题
Category / Taxonomy → Term Name
Author → Display Name
CPT Archive → Post Type Label
Homepage → Site Name
Date Archive → Archive Title
描述
Singular
→ Manual Excerpt
→ Content Excerpt
Taxonomy
→ Term Description
Author
→ Author Description
Homepage
→ Page Excerpt / Content Excerpt
→ Site Tagline
图片优先级
1. Featured Image
2. 正文第一张 WordPress 媒体图片
3. smc_default_image_id 指定图片
4. Site Icon
5. Custom Logo
Schema 会进一步判断图片来源,避免把 Site Icon / Logo 自动当成普通页面的主图。
7. Schema JSON-LD Graph
Schema 使用统一:
{
"@context": "https://schema.org",
"@graph": []
}
而不是在同一页面分别输出多套互不关联的 JSON-LD。
当前页面类型
| WordPress 页面 | Schema |
|---|---|
| 首页 | Organization + WebSite + WebPage + 可选 ImageObject |
| 普通 Page | Organization + WebSite + WebPage |
| Blog Post | Organization + WebSite + WebPage + Person + BlogPosting + 可选 ImageObject |
| CPT Single | Organization + WebSite + WebPage + 可选 ImageObject |
| Category / Tag / Taxonomy | Organization + WebSite + CollectionPage |
| Posts Page / CPT Archive / Date Archive | CollectionPage |
| Search / 404 / Feed / Preview | 不输出 |
实体关系示意:
Organization
↑ publisher
WebSite
↑ isPartOf
WebPage
↑ mainEntityOfPage
BlogPosting
Person ── author ──> BlogPosting
ImageObject ──> WebPage / BlogPosting
Blog Post 会自动读取:
headline
description
author
publisher
image
datePublished
dateModified
articleSection
keywords
图片尺寸读取真实 WordPress 附件数据,不使用固定宽高。
当前没有强行加入的 Schema
v1.0.0 不默认生成:
Product
Offer
Review
FAQPage
BreadcrumbList
LocalBusiness
原因是这些类型往往需要更完整、真实的业务字段,不能只为了“有 Schema”而输出不完整数据。
8. Sitemap 规则
SEO Meta Core 不自行生成 sitemap.xml。
仍然由 WordPress Core 负责:
/wp-sitemap.xml
插件只通过 WordPress 原生过滤器管理排除范围:
wp_sitemaps_post_types
wp_sitemaps_taxonomies
后台会动态读取当前网站实际注册的 Public Post Types 与 Taxonomies,因此不会写死任何具体站点名称。
操作规则
勾选 = 从 Sitemap 中排除。
例如:
☐ Posts → 保留
☐ Pages → 保留
☑ Data CPT → 排除
后台会显示:
名称 | Slug | 建议 | 排除
建议状态包括:
建议保留
建议排除
按需判断
企业站倾向排除
建议只用于辅助判断,不会自动修改管理员的勾选。
通用判断原则
通常保留:
Posts
Pages
具有独立 SEO 详情页的 Product / Case / Solution 等 CPT
有真实内容和搜索价值的 Category / Taxonomy
通常可考虑排除:
后台数据型 CPT
组件型 CPT
跳转入口型 CPT
模板类内容
无独立搜索价值的分类法
Post Format
内容稀薄或重复度高的 Tags
9. Sitemap、noindex 与 exclude_from_search 的区别
这是使用插件时非常重要的一条原则:
从 Sitemap 排除
≠ noindex
≠ 禁止访问
≠ exclude_from_search
从 Sitemap 排除只表示:
WordPress 不再主动把该 Provider 列入 Sitemap
搜索引擎仍可能通过站内链接、外部链接或历史索引发现 URL。
特别注意 exclude_from_search
不要为了“从 Sitemap 排除”而随意把 CPT 设置为:
'exclude_from_search' => true,
因为这个参数不仅影响站内搜索,在某些 CPT + Taxonomy 场景中也可能导致 Term Archive 查询不到该 CPT 的内容。
如果某 CPT:
需要在 Taxonomy 页面正常展示
但不希望进入 Sitemap
推荐做法是:
CPT 查询能力
→ 由 register_post_type() 正确配置
Sitemap 是否收录
→ 在 SEO Meta Core 后台单独控制
这两个职责不要混用。
10. SEO / Metadata 冲突检测
设置页会检测一组常见 SEO / Metadata 插件,例如:
Yoast SEO
Rank Math SEO
All in One SEO
SEOPress
The SEO Framework
Slim SEO
Open Graph
Schema App
XML Sitemap Generator
如果检测到,会显示可能重叠的模块。
检测只做提醒:
不会自动停用其他插件
不会自动关闭 SEO Meta Core
不会修改其他插件数据
最终原则:
同一种前台 SEO 输出只保留一套。
冲突检测无法识别所有主题手写代码,因此迁移时仍建议查看页面源代码。
11. 从主题旧 SEO 代码迁移
推荐采用已经验证过的迁移顺序:
1. 启用 SEO Meta Core 对应模块
2. 暂时保留旧主题代码
3. 查看页面源码并验证新输出
4. 新旧输出确认一致或更优
5. 删除旧主题代码
6. 清缓存
7. 再次回归验证
建议分别迁移:
Canonical
→ Open Graph / Twitter
→ Schema
→ Sitemap Filters
不要一次性删除所有旧 SEO 代码,以免迁移过程中出现输出空档。
迁移完成后应确认:
Canonical → 只剩 1 条
Open Graph → 只剩 1 套
Twitter / X → 只剩 1 套
Schema → 只剩 1 个主 @graph
Sitemap Rules → 只由一套规则接管
12. 推荐验收清单
Canonical
首页
首页带无意义 Query String
Blog Post
Category
Category Page 2
Search
404
Social
首页人工 Social 数据
有特色图 Blog Post
无特色图 Blog Post
普通 Page
CPT Single
Category
分页归档
Schema
首页
Blog Post
Category / Taxonomy
普通 Page
404
Sitemap
后台保存排除规则
/wp-sitemap.xml Provider 是否正确变化
取消排除后是否恢复
模块关闭 / 重新开启后设置是否保留
模块开关
关闭 Canonical → 只影响 Canonical
关闭 Social → 只影响 OG / Twitter
关闭 Schema → 只影响 JSON-LD
关闭 Sitemap → 规则暂停应用但设置不丢失
13. 数据保存与卸载策略
当前卸载插件时不会自动删除人工 SEO 设置。
保留:
首页 Social Title
首页 Social Description
首页 Social Image
Sitemap 排除规则
模块启用状态
原因:这些属于站点人工配置,不应因为临时停用、删除再安装插件而被误删。
如果未来需要“彻底清理数据”,应设计为显式操作,而不是默认行为。
14. 开发者 Filters
Canonical / Metadata / Social
smc_context
smc_canonical_url
smc_should_output_canonical
smc_excluded_singular_post_types
smc_title
smc_description
smc_image
smc_default_image_id
smc_metadata
smc_should_output_open_graph
smc_open_graph_type
smc_open_graph
smc_should_output_twitter_card
smc_twitter_card
Schema
smc_should_output_schema
smc_schema_graph
smc_schema_organization
smc_schema_website
smc_schema_image_data
smc_schema_image
smc_schema_webpage
smc_schema_person
smc_schema_blog_posting
smc_schema_article
Sitemap
smc_sitemap_excluded_post_types
smc_sitemap_excluded_taxonomies
插件完成前台初始化后:
smc_ready
15. 当前范围之外
v1.0.0 暂不包含:
单篇 SEO Meta Box
Robots / noindex 管理
关键词评分
重定向管理器
404 日志
内部链接分析
XML Sitemap 自生成系统
Sitemap priority / changefreq
AI 写作功能
完整 Product / Offer / Review Schema
这些能力只有在出现真实需求时才考虑进入后续版本。
16. 版本历史
v0.1.x Canonical
v0.2.2 Homepage Social / Open Graph / Twitter
v0.3.1 Schema Semantic Calibration
v0.4.1 Generic Sitemap Rules + UI Refinement
v0.5.0 Module Controls + Conflict Detection
v1.0.0 Final Review / Stable Release
v1.0.0 Final Review
- 统一正式版本号为
1.0.0。 - 保留已经通过实站验证的四个核心模块。
- 保留模块开关与冲突检测。
- README 按稳定版重新整理。
- 明确 Sitemap / noindex /
exclude_from_search的职责边界。 - 移除 Canonical 中最后一处站点专属 CPT 默认值,插件核心不再写死特定 CPT。
- Canonical 增加当前 Query 状态复核,更好兼容业务代码在后续阶段转换为 404 的场景。
- 保持卸载不删除人工配置数据。
一句话定位
SEO Meta Core:用尽可能少的功能,把 WordPress 企业站最常用的技术 SEO 元数据统一、稳定、可控地管理起来。
Releases
1 release. Each count is every asset in that release; expand a row for the breakdown.