search-console
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseGoogle Search Console
Google Search Console
Pull search performance data, index coverage, and Core Web Vitals from Google Search Console API.
从Google Search Console API拉取搜索表现数据、索引覆盖率和Core Web Vitals数据。
Prerequisites
前置条件
Requires Google OAuth credentials:
GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRET- A valid OAuth access token with scope
https://www.googleapis.com/auth/webmasters.readonly
Set credentials in , , or .
.env.env.local~/.claude/.env.global需要Google OAuth凭证:
GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRET- 拥有权限范围的有效OAuth访问令牌
https://www.googleapis.com/auth/webmasters.readonly
在、或中设置凭证。
.env.env.local~/.claude/.env.globalGetting an Access Token
获取访问令牌
bash
undefinedbash
undefinedStep 1: Authorization URL (user visits in browser)
步骤1:授权URL(用户在浏览器中访问)
Step 2: Exchange code for tokens
步骤2:用授权码交换令牌
curl -s -X POST "https://oauth2.googleapis.com/token"
-d "code={AUTH_CODE}"
-d "client_id=${GOOGLE_CLIENT_ID}"
-d "client_secret=${GOOGLE_CLIENT_SECRET}"
-d "redirect_uri=urn:ietf:wg:oauth:2.0:oob"
-d "grant_type=authorization_code"
-d "code={AUTH_CODE}"
-d "client_id=${GOOGLE_CLIENT_ID}"
-d "client_secret=${GOOGLE_CLIENT_SECRET}"
-d "redirect_uri=urn:ietf:wg:oauth:2.0:oob"
-d "grant_type=authorization_code"
curl -s -X POST "https://oauth2.googleapis.com/token"
-d "code={AUTH_CODE}"
-d "client_id=${GOOGLE_CLIENT_ID}"
-d "client_secret=${GOOGLE_CLIENT_SECRET}"
-d "redirect_uri=urn:ietf:wg:oauth:2.0:oob"
-d "grant_type=authorization_code"
-d "code={AUTH_CODE}"
-d "client_id=${GOOGLE_CLIENT_ID}"
-d "client_secret=${GOOGLE_CLIENT_SECRET}"
-d "redirect_uri=urn:ietf:wg:oauth:2.0:oob"
-d "grant_type=authorization_code"
Step 3: Refresh expired token
步骤3:刷新过期的令牌
curl -s -X POST "https://oauth2.googleapis.com/token"
-d "refresh_token={REFRESH_TOKEN}"
-d "client_id=${GOOGLE_CLIENT_ID}"
-d "client_secret=${GOOGLE_CLIENT_SECRET}"
-d "grant_type=refresh_token"
-d "refresh_token={REFRESH_TOKEN}"
-d "client_id=${GOOGLE_CLIENT_ID}"
-d "client_secret=${GOOGLE_CLIENT_SECRET}"
-d "grant_type=refresh_token"
undefinedcurl -s -X POST "https://oauth2.googleapis.com/token"
-d "refresh_token={REFRESH_TOKEN}"
-d "client_id=${GOOGLE_CLIENT_ID}"
-d "client_secret=${GOOGLE_CLIENT_SECRET}"
-d "grant_type=refresh_token"
-d "refresh_token={REFRESH_TOKEN}"
-d "client_id=${GOOGLE_CLIENT_ID}"
-d "client_secret=${GOOGLE_CLIENT_SECRET}"
-d "grant_type=refresh_token"
undefinedListing Available Sites
列出可用站点
bash
curl -s -H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
"https://www.googleapis.com/webmasters/v3/sites" \
| python3 -c "
import json, sys
data = json.load(sys.stdin)
for site in data.get('siteEntry', []):
print(f\"{site['siteUrl']} | Permission: {site['permissionLevel']}\")
"The site URL format is either (URL prefix) or (domain property).
https://example.com/sc-domain:example.combash
curl -s -H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
"https://www.googleapis.com/webmasters/v3/sites" \
| python3 -c "
import json, sys
data = json.load(sys.stdin)
for site in data.get('siteEntry', []):
print(f\"{site['siteUrl']} | 权限: {site['permissionLevel']}\")
"站点URL格式可以是(URL前缀)或(域名属性)。
https://example.com/sc-domain:example.com1. Search Performance Report
1. 搜索表现报告
The core report: queries, pages, clicks, impressions, CTR, and average position.
核心报告:查询词、页面、点击量、曝光量、CTR和平均排名。
API Endpoint
API端点
POST https://www.googleapis.com/webmasters/v3/sites/{siteUrl}/searchAnalytics/queryNote: The must be URL-encoded (e.g., or ).
{siteUrl}https%3A%2F%2Fexample.com%2Fsc-domain%3Aexample.comPOST https://www.googleapis.com/webmasters/v3/sites/{siteUrl}/searchAnalytics/query注意:必须进行URL编码(例如:或)。
{siteUrl}https%3A%2F%2Fexample.com%2Fsc-domain%3Aexample.comTop Queries
热门查询词
bash
curl -s -X POST \
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/searchAnalytics/query" \
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"startDate": "2024-01-01",
"endDate": "2024-03-31",
"dimensions": ["query"],
"rowLimit": 50,
"startRow": 0
}'bash
curl -s -X POST \
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/searchAnalytics/query" \
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"startDate": "2024-01-01",
"endDate": "2024-03-31",
"dimensions": ["query"],
"rowLimit": 50,
"startRow": 0
}'Top Pages
热门页面
bash
curl -s -X POST \
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/searchAnalytics/query" \
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"startDate": "2024-01-01",
"endDate": "2024-03-31",
"dimensions": ["page"],
"rowLimit": 50
}'bash
curl -s -X POST \
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/searchAnalytics/query" \
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"startDate": "2024-01-01",
"endDate": "2024-03-31",
"dimensions": ["page"],
"rowLimit": 50
}'Query + Page Combination
查询词+页面组合
bash
curl -s -X POST \
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/searchAnalytics/query" \
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"startDate": "2024-01-01",
"endDate": "2024-03-31",
"dimensions": ["query", "page"],
"rowLimit": 100,
"dimensionFilterGroups": [{
"filters": [{
"dimension": "page",
"operator": "contains",
"expression": "/blog/"
}]
}]
}'bash
curl -s -X POST \
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/searchAnalytics/query" \
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"startDate": "2024-01-01",
"endDate": "2024-03-31",
"dimensions": ["query", "page"],
"rowLimit": 100,
"dimensionFilterGroups": [{
"filters": [{
"dimension": "page",
"operator": "contains",
"expression": "/blog/"
}]
}]
}'Available Dimensions
可用维度
| Dimension | Description |
|---|---|
| Search query |
| URL |
| Country code (ISO 3166-1 alpha-3) |
| |
| Individual date |
| Rich result type |
| 维度 | 说明 |
|---|---|
| 搜索查询词 |
| URL |
| 国家代码(ISO 3166-1 alpha-3) |
| |
| 单个日期 |
| 富结果类型 |
Response Parsing
响应解析
bash
curl -s -X POST "..." | python3 -c "
import json, sys
data = json.load(sys.stdin)
print(f\"{'Query':<50} {'Clicks':>8} {'Impr':>8} {'CTR':>8} {'Pos':>6}\")
print('-' * 82)
for row in data.get('rows', []):
keys = ' + '.join(row.get('keys', []))
print(f\"{keys:<50} {row['clicks']:>8} {row['impressions']:>8} {row['ctr']*100:>7.1f}% {row['position']:>6.1f}\")
"bash
curl -s -X POST "..." | python3 -c "
import json, sys
data = json.load(sys.stdin)
print(f\"{'查询词':<50} {'点击量':>8} {'曝光量':>8} {'CTR':>8} {'排名':>6}\")
print('-' * 82)
for row in data.get('rows', []):
keys = ' + '.join(row.get('keys', []))
print(f\"{keys:<50} {row['clicks']:>8} {row['impressions']:>8} {row['ctr']*100:>7.1f}% {row['position']:>6.1f}\")
"2. Search Performance by Date
2. 按日期统计的搜索表现
Track daily trends for queries and pages.
bash
curl -s -X POST \
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/searchAnalytics/query" \
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"startDate": "2024-01-01",
"endDate": "2024-03-31",
"dimensions": ["date"],
"rowLimit": 1000
}'To track a specific query over time:
bash
curl -s -X POST \
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/searchAnalytics/query" \
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"startDate": "2024-01-01",
"endDate": "2024-03-31",
"dimensions": ["date"],
"dimensionFilterGroups": [{
"filters": [{
"dimension": "query",
"operator": "equals",
"expression": "your target keyword"
}]
}]
}'追踪查询词和页面的每日趋势。
bash
curl -s -X POST \
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/searchAnalytics/query" \
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"startDate": "2024-01-01",
"endDate": "2024-03-31",
"dimensions": ["date"],
"rowLimit": 1000
}'追踪特定查询词的时间趋势:
bash
curl -s -X POST \
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/searchAnalytics/query" \
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"startDate": "2024-01-01",
"endDate": "2024-03-31",
"dimensions": ["date"],
"dimensionFilterGroups": [{
"filters": [{
"dimension": "query",
"operator": "equals",
"expression": "your target keyword"
}]
}]
}'3. Index Coverage (URL Inspection API)
3. 索引覆盖率(URL检测API)
Check if a specific URL is indexed.
检查特定URL是否已被索引。
Endpoint
端点
POST https://searchconsole.googleapis.com/v1/urlInspection/index:inspectPOST https://searchconsole.googleapis.com/v1/urlInspection/index:inspectExample curl
curl示例
bash
curl -s -X POST \
"https://searchconsole.googleapis.com/v1/urlInspection/index:inspect" \
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"inspectionUrl": "https://example.com/page-to-check",
"siteUrl": "sc-domain:example.com"
}'bash
curl -s -X POST \
"https://searchconsole.googleapis.com/v1/urlInspection/index:inspect" \
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"inspectionUrl": "https://example.com/page-to-check",
"siteUrl": "sc-domain:example.com"
}'Response Fields
响应字段
| Field | Description |
|---|---|
| |
| |
| |
| When Googlebot last crawled |
| |
| |
| 字段 | 说明 |
|---|---|
| |
| |
| |
| Googlebot上次抓取的时间 |
| |
| |
4. Sitemaps
4. 站点地图
List and check sitemap status.
列出并检查站点地图状态。
List Sitemaps
列出站点地图
bash
curl -s -H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/sitemaps" \
| python3 -c "
import json, sys
data = json.load(sys.stdin)
for sm in data.get('sitemap', []):
print(f\"URL: {sm['path']}\")
print(f\" Type: {sm.get('type','')} | Submitted: {sm.get('lastSubmitted','')}\")
print(f\" URLs discovered: {sm.get('contents',[{}])[0].get('submitted','?')} | Indexed: {sm.get('contents',[{}])[0].get('indexed','?')}\")
print()
"bash
curl -s -H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/sitemaps" \
| python3 -c "
import json, sys
data = json.load(sys.stdin)
for sm in data.get('sitemap', []):
print(f\"URL: {sm['path']}\")
print(f\" 类型: {sm.get('type','')} | 提交时间: {sm.get('lastSubmitted','')}\")
print(f\" 发现的URL数: {sm.get('contents',[{}])[0].get('submitted','?')} | 已索引URL数: {sm.get('contents',[{}])[0].get('indexed','?')}\")
print()
"Submit a Sitemap
提交站点地图
bash
curl -s -X PUT -H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/sitemaps/https%3A%2F%2Fexample.com%2Fsitemap.xml"bash
curl -s -X PUT -H "Authorization: Bearer ${GSC_ACCESS_TOKEN}" \
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/sitemaps/https%3A%2F%2Fexample.com%2Fsitemap.xml"5. Opportunity Identification
5. 机会识别
Use Search Console data to find SEO opportunities.
利用Search Console数据找到SEO优化机会。
Low-Hanging Fruit: High Impressions, Low CTR
低难度优化点:高曝光量、低CTR
Queries with many impressions but low CTR suggest the title/description needs optimization.
bash
undefined曝光量高但CTR低的查询词,说明标题/描述需要优化。
bash
undefinedPull queries, then filter for: impressions > 100 AND ctr < 0.03 AND position < 20
拉取查询词数据,然后筛选:曝光量>100 且 CTR<0.03 且 排名<20
curl -s -X POST
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/searchAnalytics/query"
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}"
-H "Content-Type: application/json"
-d '{ "startDate": "2024-01-01", "endDate": "2024-03-31", "dimensions": ["query", "page"], "rowLimit": 1000 }' | python3 -c " import json, sys data = json.load(sys.stdin) print('== Low CTR Opportunities (High impressions, low CTR, good position) ==') print(f"{'Query':<40} {'Page':<40} {'Impr':>6} {'CTR':>7} {'Pos':>5}") for row in data.get('rows', []): if row['impressions'] > 100 and row['ctr'] < 0.03 and row['position'] < 20: print(f"{row['keys'][0]:<40} {row['keys'][1][-40:]:<40} {row['impressions']:>6} {row['ctr']*100:>6.1f}% {row['position']:>5.1f}") "
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/searchAnalytics/query"
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}"
-H "Content-Type: application/json"
-d '{ "startDate": "2024-01-01", "endDate": "2024-03-31", "dimensions": ["query", "page"], "rowLimit": 1000 }' | python3 -c " import json, sys data = json.load(sys.stdin) print('== Low CTR Opportunities (High impressions, low CTR, good position) ==') print(f"{'Query':<40} {'Page':<40} {'Impr':>6} {'CTR':>7} {'Pos':>5}") for row in data.get('rows', []): if row['impressions'] > 100 and row['ctr'] < 0.03 and row['position'] < 20: print(f"{row['keys'][0]:<40} {row['keys'][1][-40:]:<40} {row['impressions']:>6} {row['ctr']*100:>6.1f}% {row['position']:>5.1f}") "
undefinedcurl -s -X POST
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/searchAnalytics/query"
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}"
-H "Content-Type: application/json"
-d '{ "startDate": "2024-01-01", "endDate": "2024-03-31", "dimensions": ["query", "page"], "rowLimit": 1000 }' | python3 -c " import json, sys data = json.load(sys.stdin) print('== 低CTR优化机会(高曝光、低CTR、排名靠前) ==') print(f"{'查询词':<40} {'页面':<40} {'曝光量':>6} {'CTR':>7} {'排名':>5}") for row in data.get('rows', []): if row['impressions'] > 100 and row['ctr'] < 0.03 and row['position'] < 20: print(f"{row['keys'][0]:<40} {row['keys'][1][-40:]:<40} {row['impressions']:>6} {row['ctr']*100:>6.1f}% {row['position']:>5.1f}") "
"https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Aexample.com/searchAnalytics/query"
-H "Authorization: Bearer ${GSC_ACCESS_TOKEN}"
-H "Content-Type: application/json"
-d '{ "startDate": "2024-01-01", "endDate": "2024-03-31", "dimensions": ["query", "page"], "rowLimit": 1000 }' | python3 -c " import json, sys data = json.load(sys.stdin) print('== 低CTR优化机会(高曝光、低CTR、排名靠前) ==') print(f"{'查询词':<40} {'页面':<40} {'曝光量':>6} {'CTR':>7} {'排名':>5}") for row in data.get('rows', []): if row['impressions'] > 100 and row['ctr'] < 0.03 and row['position'] < 20: print(f"{row['keys'][0]:<40} {row['keys'][1][-40:]:<40} {row['impressions']:>6} {row['ctr']*100:>6.1f}% {row['position']:>5.1f}") "
undefinedStriking Distance: Position 5-20
接近前排的关键词:排名5-20名
Queries ranking on page 1-2 that could be pushed to top 5 with content optimization.
bash
undefined排名在第1-2页的查询词,通过内容优化可以推进到前5名。
bash
undefinedFilter for position between 5 and 20 with decent impressions
筛选排名在5到20之间且曝光量不错的查询词
curl -s -X POST "..." | python3 -c "
import json, sys
data = json.load(sys.stdin)
print('== Striking Distance Keywords (Position 5-20) ==')
opps = [r for r in data.get('rows',[]) if 5 <= r['position'] <= 20 and r['impressions'] > 50]
opps.sort(key=lambda x: x['impressions'], reverse=True)
for row in opps[:30]:
print(f"{row['keys'][0]:<50} Pos: {row['position']:>5.1f} Impr: {row['impressions']:>6} Clicks: {row['clicks']:>4}")
"
undefinedcurl -s -X POST "..." | python3 -c "
import json, sys
data = json.load(sys.stdin)
print('== 接近前排的关键词(排名5-20) ==')
opps = [r for r in data.get('rows',[]) if 5 <= r['position'] <= 20 and r['impressions'] > 50]
opps.sort(key=lambda x: x['impressions'], reverse=True)
for row in opps[:30]:
print(f"{row['keys'][0]:<50} 排名: {row['position']:>5.1f} 曝光量: {row['impressions']:>6} 点击量: {row['clicks']:>4}")
"
undefinedCannibalization Detection
关键词内部竞争检测
Find queries where multiple pages compete for the same keyword.
bash
undefined找到多个页面竞争同一关键词的查询词。
bash
undefinedPull query+page data, then group by query to find duplicates
拉取查询词+页面数据,然后按查询词分组找到重复项
curl -s -X POST "..." | python3 -c "
import json, sys
from collections import defaultdict
data = json.load(sys.stdin)
query_pages = defaultdict(list)
for row in data.get('rows', []):
query_pages[row['keys'][0]].append({
'page': row['keys'][1],
'clicks': row['clicks'],
'impressions': row['impressions'],
'position': row['position']
})
print('== Keyword Cannibalization (multiple pages for same query) ==')
for query, pages in sorted(query_pages.items(), key=lambda x: -sum(p['impressions'] for p in x[1])):
if len(pages) > 1:
total_impr = sum(p['impressions'] for p in pages)
if total_impr > 100:
print(f"\nQuery: {query} ({total_impr} total impressions)")
for p in sorted(pages, key=lambda x: -x['impressions']):
print(f" {p['page'][-60:]} Pos: {p['position']:.1f} Impr: {p['impressions']} Clicks: {p['clicks']}")
"
---curl -s -X POST "..." | python3 -c "
import json, sys
from collections import defaultdict
data = json.load(sys.stdin)
query_pages = defaultdict(list)
for row in data.get('rows', []):
query_pages[row['keys'][0]].append({
'page': row['keys'][1],
'clicks': row['clicks'],
'impressions': row['impressions'],
'position': row['position']
})
print('== 关键词内部竞争(同一查询词对应多个页面) ==')
for query, pages in sorted(query_pages.items(), key=lambda x: -sum(p['impressions'] for p in x[1])):
if len(pages) > 1:
total_impr = sum(p['impressions'] for p in pages)
if total_impr > 100:
print(f"\n查询词: {query}(总曝光量: {total_impr})")
for p in sorted(pages, key=lambda x: -x['impressions']):
print(f" {p['page'][-60:]} 排名: {p['position']:.1f} 曝光量: {p['impressions']} 点击量: {p['clicks']}")
"
---Workflow: Full Search Performance Audit
工作流:完整的搜索表现审计
When asked for a complete GSC audit:
- Overall Metrics: Total clicks, impressions, avg CTR, avg position for last 90 days vs previous 90 days
- Top 30 Queries: By clicks, with CTR and position
- Top 20 Pages: By clicks, with CTR and position
- Device Breakdown: Desktop vs mobile performance
- Low-Hanging Fruit: High impressions + low CTR opportunities
- Striking Distance: Position 5-20 keywords with optimization potential
- Cannibalization: Queries with multiple competing pages
- Index Coverage: Spot-check important URLs
- Sitemap Health: Verify sitemaps are submitted and indexed
当被要求进行完整的GSC审计时:
- 整体指标:过去90天的总点击量、曝光量、平均CTR、平均排名,与之前90天对比
- Top30查询词:按点击量排序,包含CTR和排名
- Top20页面:按点击量排序,包含CTR和排名
- 设备细分:桌面端 vs 移动端表现
- 低难度优化点:高曝光+低CTR的优化机会
- 接近前排的关键词:排名5-20、有优化潜力的关键词
- 内部竞争:存在多个竞争页面的查询词
- 索引覆盖率:抽查重要URL
- 站点地图健康度:验证站点地图已提交并被索引
Report Format
报告格式
undefinedundefinedSearch Console Audit: {domain}
Search Console审计报告: {domain}
Period: {date range}
周期: {时间范围}
Summary
摘要
| Metric | Current | Previous | Change |
|---|---|---|---|
| Clicks | X | Y | +Z% |
| Impressions | X | Y | +Z% |
| Avg CTR | X% | Y% | +Z pp |
| Avg Position | X | Y | +Z |
| 指标 | 当前周期 | 上一周期 | 变化 |
|---|---|---|---|
| 点击量 | X | Y | +Z% |
| 曝光量 | X | Y | +Z% |
| 平均CTR | X% | Y% | +Z个百分点 |
| 平均排名 | X | Y | +Z |
Top Queries
热门查询词
| Query | Clicks | Impressions | CTR | Position |
|---|---|---|---|---|
| ... | ... | ... | ... | ... |
| 查询词 | 点击量 | 曝光量 | CTR | 排名 |
|---|---|---|---|---|
| ... | ... | ... | ... | ... |
Optimization Opportunities
优化机会
Title/Description Optimization (High Impressions, Low CTR)
标题/描述优化(高曝光、低CTR)
- "{query}" - {impressions} impressions, {ctr}% CTR, position {pos}
- Page: {url}
- Recommendation: ...
- "{query}" - {impressions}次曝光,{ctr}% CTR,排名{pos}
- 页面: {url}
- 建议: ...
Content Optimization (Striking Distance)
内容优化(接近前排的关键词)
- "{query}" - position {pos}, {impressions} impressions
- Action: Add {query} to H2, expand section on {topic}
- "{query}" - 排名{pos},{impressions}次曝光
- 行动: 在H2中添加{query},扩展{topic}相关内容
Cannibalization Fixes
内部竞争修复
- "{query}" appears on {n} pages
- Consolidate to: {best_url}
- Redirect/noindex: {other_urls}
---- "{query}" 出现在{n}个页面
- 合并到: {best_url}
- 重定向/禁止索引: {other_urls}
---Rate Limits
速率限制
- Search Analytics API: 1,200 queries per minute
- URL Inspection API: 2,000 inspections per day per property
- Data freshness: Search data is typically 2-3 days behind
- 搜索分析API:每分钟1200次查询
- URL检测API:每个属性每天2000次检测
- 数据新鲜度:搜索数据通常滞后2-3天
Common Errors
常见错误
| Error | Cause | Fix |
|---|---|---|
| 403 | No access to this property | Verify ownership in GSC |
| 400 | Invalid date range | Dates must be within last 16 months |
| Empty rows | No data matching filters | Broaden date range or remove filters |
| 错误 | 原因 | 修复方案 |
|---|---|---|
| 403 | 无该属性的访问权限 | 在GSC中验证所有权 |
| 400 | 无效的日期范围 | 日期必须在过去16个月内 |
| 空结果 | 没有匹配筛选条件的数据 | 扩大日期范围或移除筛选条件 |