Work
GSC/GA4/PageSpeed 和 CrUX添加codex 访问
用于skill 相关场景:请使用 `seo-google` Skill,并在需要操作已登录的 Google 后台时使用当前 Chrome 浏览器,直接完成配置、授权和真实查询验证。不要只告诉我操作步骤。 目标是
Use this prompt
请使用 `seo-google` Skill,并在需要操作已登录的 Google 后台时使用当前 Chrome 浏览器,直接完成配置、授权和真实查询验证。不要只告诉我操作步骤。
目标是一次性把以下两个网站接入同一套本机 Google SEO 数据环境:
1. https://globalrftech.com/
2. https://www.asialeren.com/
我明确授权你在当前登录的 Google 后台执行以下操作:
- 给两个网站的 GSC 添加或检查服务账号权限
- 给两个网站对应的 GA4 资源添加 Viewer 权限
- 在现有 Google Cloud 项目中启用所需 API
- 创建一个仅限 PageSpeed 和 CrUX 使用的 API Key
- 安全更新本机配置文件
- 执行只读验证查询
禁止修改网站、服务器、WordPress、数据库、GTM 容器或 GA4 统计代码。禁止提交 sitemap、调用 Indexing API 或执行任何索引写入操作。
## 一、已知信息
预期服务账号:
globalrftech-gsc-readonly@global-rf-tech-seo.iam.gserviceaccount.com
预期 Google Cloud 项目:
global-rf-tech-seo
已知 GA4 信息:
- globalrftech.com:
- GA4 数字资源 ID:538826847
- 数据流网址:https://globalrftech.com/
- www.asialeren.com:
- 已安装 GA4 衡量 ID:G-J2RH7KGHJ8
- 已安装 GTM 容器:GTM-T87MR6CH
- 数字 GA4 资源 ID 需要从 GA4 后台真实查出,禁止用衡量 ID代替资源 ID
以上信息都要实际复核,不要仅凭提示词直接写入。
## 二、检查并接管服务账号 JSON
优先使用本次随提示词附带的服务账号 JSON。
如果没有新附件,但以下文件已经存在且有效,直接复用,不要要求我重新上传:
/Users/yep/.config/claude-seo/globalrftech-gsc-service-account.json
检查 JSON 时:
- 只允许显示:
- type
- project_id
- client_email
- 禁止显示:
- private_key
- private_key_id
- client_id
- 完整 JSON
- 禁止用 `cat`、完整 `sed` 输出或其他可能泄露私钥的方式读取
- 如果 project_id 或 client_email 与上面的预期值不一致,停止混用凭据并明确报告
## 三、安全配置本机凭据
确保目录存在:
/Users/yep/.config/claude-seo/
要求:
- 配置目录权限:700
- 服务账号文件路径:
/Users/yep/.config/claude-seo/globalrftech-gsc-service-account.json
- 服务账号文件权限:600
- 配置文件权限:600
如果附件来自 Downloads:
1. 验证有效后移动到目标位置
2. 不要保留 Downloads 中的重复私钥副本
3. 不要在移动过程中把 JSON 内容输出到终端
如果目标位置已经存在同一服务账号的有效文件,直接复用,不要重复覆盖。
## 四、检查 Python 运行依赖
先检测 `seo-google` 所需依赖是否可用,包括:
- google-api-python-client
- google-auth
- google-auth-httplib2
- google-analytics-data
如果当前 Python 已能正常运行,直接复用。
如果缺少依赖,不要污染或破坏系统 Python;创建或复用独立环境:
/Users/yep/.config/claude-seo/venv/
只在这个环境中安装所需的官方 Google API Python 客户端。
后续认证和查询验证统一使用能够正常工作的 Python 环境。
## 五、发现两个网站真实的 GSC 属性
不要假设属性一定是:
sc-domain:globalrftech.com
sc-domain:asialeren.com
必须先使用 Search Console Sites API,并使用:
https://www.googleapis.com/auth/webmasters.readonly
列出该服务账号实际可以访问的全部属性。
然后分别匹配:
- https://globalrftech.com/
- https://www.asialeren.com/
要求:
- 使用 API 实际返回的完整属性格式
- 如果返回 URL-prefix 属性,保留完整协议、域名和结尾斜杠
- 不要擅自把 URL-prefix 改成 `sc-domain:`
- 如果同时存在多个匹配属性,报告全部匹配项,并选择确实覆盖目标网站且有查询权限的属性
- 不要把两个网站的查询数据混在一起
如果服务账号尚未出现在某个 GSC 属性中:
1. 使用当前已登录的 Chrome 打开该网站的 GSC
2. 进入“设置 → 用户和权限”
3. 添加服务账号
4. 权限设置为“完整”
5. 不要设置为所有者
6. 已存在时不要重复添加
完成后再次通过 Sites API 验证,而不是只相信浏览器成功提示。
## 六、配置两个网站的 GA4
### globalrftech.com
复核 GA4 数字资源 ID `538826847` 的数据流网址是否确实是:
https://globalrftech.com/
确认无误后:
1. 打开“管理 → 媒体资源访问权限管理”
2. 检查服务账号是否已存在
3. 不存在时添加:
globalrftech-gsc-readonly@global-rf-tech-seo.iam.gserviceaccount.com
4. 角色设置为“查看者”
5. 关闭“通过电子邮件通知新用户”
6. 不要授予编辑者或管理员权限
### www.asialeren.com
先在 GA4 可访问资源中查找数据流网址为:
https://www.asialeren.com/
或衡量 ID为:
G-J2RH7KGHJ8
找到后:
1. 记录真实的纯数字 GA4 资源 ID
2. 确认数据流网址与衡量 ID均匹配
3. 给同一个服务账号添加“查看者”权限
4. 不授予编辑者或管理员权限
禁止把 `G-J2RH7KGHJ8` 当成 GA4 数字资源 ID。
如果当前 Chrome 登录账号看不到这个 GA4 资源:
- 不要创建新的 GA4 资源
- 不要修改网站统计代码
- 不要往 GlobalRF 的 GA4 资源中混入 asialeren
- 先完成其他全部配置
- 保留 GA4 页面
- 最后明确要求我切换到拥有 `G-J2RH7KGHJ8` 的 Google 账号
- 我切换后继续完成,不要重新做已经完成的步骤
## 七、启用 Google Cloud API
使用服务账号 JSON 中实际的 project_id,预期为:
global-rf-tech-seo
检查并启用:
1. Google Search Console API
2. Google Analytics Data API
3. PageSpeed Insights API
4. Chrome UX Report API
只在尚未启用时执行启用操作。
不要为了本任务启用或调用 Web Search Indexing API。
## 八、创建或复用 PageSpeed/CrUX API Key
先检查 `/Users/yep/.config/claude-seo/google-api.json` 中是否已有有效 `api_key`。
如果已有密钥,并且能正常访问 PageSpeed 和 CrUX,直接复用,不要创建重复密钥。
如果没有可用密钥:
1. 在项目 `global-rf-tech-seo` 中创建 API Key
2. 名称使用:
Codex SEO - PageSpeed & CrUX
3. API 限制只允许:
- PageSpeed Insights API
- Chrome UX Report API
4. 不要把 Google Analytics Data API、Search Console API 或其他 API 加入这个 Key
5. 应用限制设置为“无”,因为密钥用于本机服务端脚本,不能使用网站来源限制
6. 不绑定服务账号
7. 创建后不要在聊天或终端输出完整 API Key
8. 安全写入本机配置后清空剪贴板
9. 最后在 Google Cloud 凭据页面确认显示“2 个 API”
一个 PageSpeed/CrUX API Key 可以查询两个网站,不要为每个网站分别创建密钥。
## 九、安全合并 google-api.json
创建或安全合并:
/Users/yep/.config/claude-seo/google-api.json
必须保留所有已有有效字段,禁止为了新增字段覆盖原来的:
- service_account_path
- api_key
- default_property
- ga4_property_id
- 其他已有配置
核心配置至少包括:
{
"service_account_path": "/Users/yep/.config/claude-seo/globalrftech-gsc-service-account.json",
"api_key": "安全写入的现有或新 API Key",
"default_property": "Sites API 返回的 GlobalRF 正确属性",
"ga4_property_id": "properties/538826847"
}
不要把示例文本或占位符写进正式配置。
由于 `default_property` 和 `ga4_property_id` 只能作为默认值:
- 默认网站使用 globalrftech.com
- 查询 asialeren 时显式传入它自己的 GSC 属性和 GA4 数字资源 ID
- 在配置中增加一个不包含私钥的 `sites` 映射,记录两个网站的真实属性
格式如下,但只写入已经真实验证的字段:
{
"sites": {
"globalrftech.com": {
"url": "https://globalrftech.com/",
"gsc_property": "API 实际返回值",
"ga4_property_id": "properties/538826847"
},
"www.asialeren.com": {
"url": "https://www.asialeren.com/",
"gsc_property": "API 实际返回值",
"ga4_property_id": "找到后写入 properties/数字ID",
"ga4_measurement_id": "G-J2RH7KGHJ8"
}
}
}
如果 asialeren 的 GA4 数字资源 ID 尚未找到,不要写占位符;只记录已经验证的 URL、GSC 属性和衡量 ID。
## 十、运行认证检查
使用 `seo-google` 的认证检查,明确报告:
- 检测到的 Tier
- GSC 是否可用
- GA4 Data API 是否可用
- PageSpeed Insights API 是否可用
- CrUX API 是否可用
- CrUX History API 是否可用
- 服务账号邮箱
- 两个网站各自的真实 GSC 属性
- 两个网站各自的 GA4 数字资源 ID
- 哪个网站被设为默认值
完成全部连接后,目标应为 Tier 2。
如果已经是 Tier 2,但 asialeren 的 GA4 仍没有权限,必须说明“接口层级是 Tier 2,但第二个 GA4 资源尚未授权”,不能误报为两个网站全部完成。
## 十一、执行真实只读验证
### GSC
分别对两个网站执行真实 Search Analytics 查询:
- scope:webmasters.readonly
- 时间范围:最近 28 天
- 搜索类型:web
- 维度至少包含 query 和 page
- 必须确认可以返回:
- clicks
- impressions
- CTR
- position
- 报告实际数据结束日期
- 说明 GSC 通常存在数据延迟
禁止:
- 提交 sitemap
- 删除 sitemap
- 调用 Indexing API
- 修改任何 GSC 设置
### GA4
分别使用两个网站真实的数字 GA4 资源 ID执行只读查询:
- 最近 7 天和最近 28 天
- 至少验证:
- sessions
- users
- pageviews/views
- Organic Search 流量
- 主要落地页
必须通过数据流网址确认查询的是正确网站,不能只凭资源名称判断。
### PageSpeed
分别检测:
- https://globalrftech.com/
- https://www.asialeren.com/
至少执行:
- mobile Lighthouse
- desktop Lighthouse
报告:
- Performance
- Accessibility
- Best Practices
- SEO
- LCP
- CLS
- TBT
如果 Google Lighthouse 返回 `ERR_TIMED_OUT` 或 `FAILED_DOCUMENT_REQUEST`:
- 允许重试一次
- 同时确认网站在浏览器中是否能正常打开
- 报告为“Google Lighthouse 抓取超时”
- 不要误报为 API Key 或认证失败
### CrUX
分别查询两个网站的:
- 当前 CrUX 数据
- CrUX History
- origin 级数据
- PHONE 和 DESKTOP(有数据时)
如果返回 404、无指标或流量不足:
- 报告“该网站目前没有足够的 Chrome 真实用户样本”
- 不要误报为 API 没有配置
- 只要认证和 API 调用正常,就应判断 CrUX 接口连接成功
## 十二、安全和完整性检查
最后必须确认:
- `/Users/yep/.config/claude-seo/` 权限为 700
- 服务账号 JSON 权限为 600
- `google-api.json` 权限为 600
- 配置 JSON 格式有效
- 服务账号 JSON 格式有效
- 没有在聊天中输出 private_key
- 没有在终端输出 private_key
- 没有输出完整 API Key
- API Key 已从剪贴板清除
- Google Cloud 中没有创建重复 API Key
- GSC 没有添加重复用户
- GA4 没有添加重复用户
- 没有创建重复 GA4 资源
- 没有修改网站、服务器、WordPress、数据库或 GTM
如果项目中存在:
- PROJECT_CONTEXT.md
- PROJECT_LOG.md
- PROJECT_TODO.md
更新本次记录,写明:
- 两个网站的正确 GSC 属性
- 两个网站的 GA4 数字资源 ID
- API 配置状态
- 已完成验证
- 未完成项
- 继续执行点
## 十三、最终汇报格式
最终必须按以下顺序汇报:
1. 结果
2. 配置位置
3. 怎么使用
4. 检查结果
5. 注意事项
6. 下一步
7. 本轮文件完整路径
必须明确区分:
- 已经完成并经过真实查询验证的功能
- 接口已配置但网站暂时没有数据的功能
- 因账号权限无法完成的功能
最终列出两个目标网站的完整网址:
- https://globalrftech.com/
- https://www.asialeren.com/
除非出现以下情况,否则不要停在教程阶段:
- 服务账号附件和现有凭据都不存在
- 当前 Google 账号没有目标资源的管理权限
- Google Cloud 项目无权限
- 必须由我切换 Google 账号或完成登录
即使其中一个资源被权限阻塞,也要先完成其余所有可以安全完成的部分,再给出精确的单点继续要求。
No comments yet. Add the first useful note.