aidevops 2.52.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/AGENTS.md +614 -0
- package/.agent/accounts.md +65 -0
- package/.agent/aidevops/add-new-mcp-to-aidevops.md +456 -0
- package/.agent/aidevops/api-integrations.md +335 -0
- package/.agent/aidevops/architecture.md +510 -0
- package/.agent/aidevops/configs.md +274 -0
- package/.agent/aidevops/docs.md +244 -0
- package/.agent/aidevops/extension.md +311 -0
- package/.agent/aidevops/mcp-integrations.md +340 -0
- package/.agent/aidevops/mcp-troubleshooting.md +162 -0
- package/.agent/aidevops/memory-patterns.md +172 -0
- package/.agent/aidevops/providers.md +217 -0
- package/.agent/aidevops/recommendations.md +321 -0
- package/.agent/aidevops/requirements.md +301 -0
- package/.agent/aidevops/resources.md +214 -0
- package/.agent/aidevops/security-requirements.md +174 -0
- package/.agent/aidevops/security.md +350 -0
- package/.agent/aidevops/service-links.md +400 -0
- package/.agent/aidevops/services.md +357 -0
- package/.agent/aidevops/setup.md +153 -0
- package/.agent/aidevops/troubleshooting.md +389 -0
- package/.agent/aidevops.md +124 -0
- package/.agent/build-plus.md +244 -0
- package/.agent/content/guidelines.md +109 -0
- package/.agent/content.md +87 -0
- package/.agent/health.md +59 -0
- package/.agent/legal.md +59 -0
- package/.agent/loop-state/full-loop.local.md +16 -0
- package/.agent/loop-state/ralph-loop.local.md +10 -0
- package/.agent/marketing.md +440 -0
- package/.agent/memory/README.md +260 -0
- package/.agent/onboarding.md +796 -0
- package/.agent/plan-plus.md +245 -0
- package/.agent/research.md +100 -0
- package/.agent/sales.md +333 -0
- package/.agent/scripts/101domains-helper.sh +701 -0
- package/.agent/scripts/add-missing-returns.sh +140 -0
- package/.agent/scripts/agent-browser-helper.sh +311 -0
- package/.agent/scripts/agno-setup.sh +712 -0
- package/.agent/scripts/ahrefs-mcp-wrapper.js +168 -0
- package/.agent/scripts/aidevops-update-check.sh +71 -0
- package/.agent/scripts/ampcode-cli.sh +522 -0
- package/.agent/scripts/auto-version-bump.sh +156 -0
- package/.agent/scripts/autogen-helper.sh +512 -0
- package/.agent/scripts/beads-sync-helper.sh +596 -0
- package/.agent/scripts/closte-helper.sh +5 -0
- package/.agent/scripts/cloudron-helper.sh +321 -0
- package/.agent/scripts/codacy-cli-chunked.sh +581 -0
- package/.agent/scripts/codacy-cli.sh +442 -0
- package/.agent/scripts/code-audit-helper.sh +5 -0
- package/.agent/scripts/coderabbit-cli.sh +417 -0
- package/.agent/scripts/coderabbit-pro-analysis.sh +238 -0
- package/.agent/scripts/commands/code-simplifier.md +86 -0
- package/.agent/scripts/commands/full-loop.md +246 -0
- package/.agent/scripts/commands/postflight-loop.md +103 -0
- package/.agent/scripts/commands/recall.md +182 -0
- package/.agent/scripts/commands/remember.md +132 -0
- package/.agent/scripts/commands/save-todo.md +175 -0
- package/.agent/scripts/commands/session-review.md +154 -0
- package/.agent/scripts/comprehensive-quality-fix.sh +106 -0
- package/.agent/scripts/context-builder-helper.sh +522 -0
- package/.agent/scripts/coolify-cli-helper.sh +674 -0
- package/.agent/scripts/coolify-helper.sh +380 -0
- package/.agent/scripts/crawl4ai-examples.sh +401 -0
- package/.agent/scripts/crawl4ai-helper.sh +1078 -0
- package/.agent/scripts/crewai-helper.sh +681 -0
- package/.agent/scripts/dev-browser-helper.sh +513 -0
- package/.agent/scripts/dns-helper.sh +396 -0
- package/.agent/scripts/domain-research-helper.sh +917 -0
- package/.agent/scripts/dspy-helper.sh +285 -0
- package/.agent/scripts/dspyground-helper.sh +291 -0
- package/.agent/scripts/eeat-score-helper.sh +1242 -0
- package/.agent/scripts/efficient-return-fix.sh +92 -0
- package/.agent/scripts/extract-opencode-prompts.sh +128 -0
- package/.agent/scripts/find-missing-returns.sh +113 -0
- package/.agent/scripts/fix-auth-headers.sh +104 -0
- package/.agent/scripts/fix-common-strings.sh +254 -0
- package/.agent/scripts/fix-content-type.sh +100 -0
- package/.agent/scripts/fix-error-messages.sh +130 -0
- package/.agent/scripts/fix-misplaced-returns.sh +74 -0
- package/.agent/scripts/fix-remaining-literals.sh +152 -0
- package/.agent/scripts/fix-return-statements.sh +41 -0
- package/.agent/scripts/fix-s131-default-cases.sh +249 -0
- package/.agent/scripts/fix-sc2155-simple.sh +102 -0
- package/.agent/scripts/fix-shellcheck-critical.sh +187 -0
- package/.agent/scripts/fix-string-literals.sh +273 -0
- package/.agent/scripts/full-loop-helper.sh +773 -0
- package/.agent/scripts/generate-opencode-agents.sh +497 -0
- package/.agent/scripts/generate-opencode-commands.sh +1629 -0
- package/.agent/scripts/generate-skills.sh +366 -0
- package/.agent/scripts/git-platforms-helper.sh +640 -0
- package/.agent/scripts/gitea-cli-helper.sh +743 -0
- package/.agent/scripts/github-cli-helper.sh +702 -0
- package/.agent/scripts/gitlab-cli-helper.sh +682 -0
- package/.agent/scripts/gsc-add-user-helper.sh +325 -0
- package/.agent/scripts/gsc-sitemap-helper.sh +678 -0
- package/.agent/scripts/hetzner-helper.sh +485 -0
- package/.agent/scripts/hostinger-helper.sh +229 -0
- package/.agent/scripts/keyword-research-helper.sh +1815 -0
- package/.agent/scripts/langflow-helper.sh +544 -0
- package/.agent/scripts/linkedin-automation.py +241 -0
- package/.agent/scripts/linter-manager.sh +599 -0
- package/.agent/scripts/linters-local.sh +434 -0
- package/.agent/scripts/list-keys-helper.sh +488 -0
- package/.agent/scripts/local-browser-automation.py +339 -0
- package/.agent/scripts/localhost-helper.sh +744 -0
- package/.agent/scripts/loop-common.sh +806 -0
- package/.agent/scripts/mainwp-helper.sh +728 -0
- package/.agent/scripts/markdown-formatter.sh +338 -0
- package/.agent/scripts/markdown-lint-fix.sh +311 -0
- package/.agent/scripts/mass-fix-returns.sh +58 -0
- package/.agent/scripts/mcp-diagnose.sh +167 -0
- package/.agent/scripts/mcp-inspector-helper.sh +449 -0
- package/.agent/scripts/memory-helper.sh +650 -0
- package/.agent/scripts/monitor-code-review.sh +255 -0
- package/.agent/scripts/onboarding-helper.sh +706 -0
- package/.agent/scripts/opencode-github-setup-helper.sh +797 -0
- package/.agent/scripts/opencode-test-helper.sh +213 -0
- package/.agent/scripts/pagespeed-helper.sh +464 -0
- package/.agent/scripts/pandoc-helper.sh +362 -0
- package/.agent/scripts/postflight-check.sh +555 -0
- package/.agent/scripts/pre-commit-hook.sh +259 -0
- package/.agent/scripts/pre-edit-check.sh +169 -0
- package/.agent/scripts/qlty-cli.sh +356 -0
- package/.agent/scripts/quality-cli-manager.sh +525 -0
- package/.agent/scripts/quality-feedback-helper.sh +462 -0
- package/.agent/scripts/quality-fix.sh +263 -0
- package/.agent/scripts/quality-loop-helper.sh +1108 -0
- package/.agent/scripts/ralph-loop-helper.sh +836 -0
- package/.agent/scripts/ralph-upstream-check.sh +341 -0
- package/.agent/scripts/secretlint-helper.sh +847 -0
- package/.agent/scripts/servers-helper.sh +241 -0
- package/.agent/scripts/ses-helper.sh +619 -0
- package/.agent/scripts/session-review-helper.sh +404 -0
- package/.agent/scripts/setup-linters-wizard.sh +379 -0
- package/.agent/scripts/setup-local-api-keys.sh +330 -0
- package/.agent/scripts/setup-mcp-integrations.sh +472 -0
- package/.agent/scripts/shared-constants.sh +246 -0
- package/.agent/scripts/site-crawler-helper.sh +1487 -0
- package/.agent/scripts/snyk-helper.sh +940 -0
- package/.agent/scripts/sonarcloud-autofix.sh +193 -0
- package/.agent/scripts/sonarcloud-cli.sh +191 -0
- package/.agent/scripts/sonarscanner-cli.sh +455 -0
- package/.agent/scripts/spaceship-helper.sh +747 -0
- package/.agent/scripts/stagehand-helper.sh +321 -0
- package/.agent/scripts/stagehand-python-helper.sh +321 -0
- package/.agent/scripts/stagehand-python-setup.sh +441 -0
- package/.agent/scripts/stagehand-setup.sh +439 -0
- package/.agent/scripts/system-cleanup.sh +340 -0
- package/.agent/scripts/terminal-title-helper.sh +388 -0
- package/.agent/scripts/terminal-title-setup.sh +549 -0
- package/.agent/scripts/test-stagehand-both-integration.sh +317 -0
- package/.agent/scripts/test-stagehand-integration.sh +309 -0
- package/.agent/scripts/test-stagehand-python-integration.sh +341 -0
- package/.agent/scripts/todo-ready.sh +263 -0
- package/.agent/scripts/tool-version-check.sh +362 -0
- package/.agent/scripts/toon-helper.sh +469 -0
- package/.agent/scripts/twilio-helper.sh +917 -0
- package/.agent/scripts/updown-helper.sh +279 -0
- package/.agent/scripts/validate-mcp-integrations.sh +250 -0
- package/.agent/scripts/validate-version-consistency.sh +131 -0
- package/.agent/scripts/vaultwarden-helper.sh +597 -0
- package/.agent/scripts/vercel-cli-helper.sh +816 -0
- package/.agent/scripts/verify-mirrors.sh +169 -0
- package/.agent/scripts/version-manager.sh +831 -0
- package/.agent/scripts/webhosting-helper.sh +471 -0
- package/.agent/scripts/webhosting-verify.sh +238 -0
- package/.agent/scripts/wordpress-mcp-helper.sh +508 -0
- package/.agent/scripts/worktree-helper.sh +595 -0
- package/.agent/scripts/worktree-sessions.sh +577 -0
- package/.agent/seo/dataforseo.md +215 -0
- package/.agent/seo/domain-research.md +532 -0
- package/.agent/seo/eeat-score.md +659 -0
- package/.agent/seo/google-search-console.md +366 -0
- package/.agent/seo/gsc-sitemaps.md +282 -0
- package/.agent/seo/keyword-research.md +521 -0
- package/.agent/seo/serper.md +278 -0
- package/.agent/seo/site-crawler.md +387 -0
- package/.agent/seo.md +236 -0
- package/.agent/services/accounting/quickfile.md +159 -0
- package/.agent/services/communications/telfon.md +470 -0
- package/.agent/services/communications/twilio.md +569 -0
- package/.agent/services/crm/fluentcrm.md +449 -0
- package/.agent/services/email/ses.md +399 -0
- package/.agent/services/hosting/101domains.md +378 -0
- package/.agent/services/hosting/closte.md +177 -0
- package/.agent/services/hosting/cloudflare.md +251 -0
- package/.agent/services/hosting/cloudron.md +478 -0
- package/.agent/services/hosting/dns-providers.md +335 -0
- package/.agent/services/hosting/domain-purchasing.md +344 -0
- package/.agent/services/hosting/hetzner.md +327 -0
- package/.agent/services/hosting/hostinger.md +287 -0
- package/.agent/services/hosting/localhost.md +419 -0
- package/.agent/services/hosting/spaceship.md +353 -0
- package/.agent/services/hosting/webhosting.md +330 -0
- package/.agent/social-media.md +69 -0
- package/.agent/templates/plans-template.md +114 -0
- package/.agent/templates/prd-template.md +129 -0
- package/.agent/templates/tasks-template.md +108 -0
- package/.agent/templates/todo-template.md +89 -0
- package/.agent/tools/ai-assistants/agno.md +471 -0
- package/.agent/tools/ai-assistants/capsolver.md +326 -0
- package/.agent/tools/ai-assistants/configuration.md +221 -0
- package/.agent/tools/ai-assistants/overview.md +209 -0
- package/.agent/tools/ai-assistants/status.md +171 -0
- package/.agent/tools/ai-assistants/windsurf.md +193 -0
- package/.agent/tools/ai-orchestration/autogen.md +406 -0
- package/.agent/tools/ai-orchestration/crewai.md +445 -0
- package/.agent/tools/ai-orchestration/langflow.md +405 -0
- package/.agent/tools/ai-orchestration/openprose.md +487 -0
- package/.agent/tools/ai-orchestration/overview.md +362 -0
- package/.agent/tools/ai-orchestration/packaging.md +647 -0
- package/.agent/tools/browser/agent-browser.md +464 -0
- package/.agent/tools/browser/browser-automation.md +400 -0
- package/.agent/tools/browser/chrome-devtools.md +282 -0
- package/.agent/tools/browser/crawl4ai-integration.md +422 -0
- package/.agent/tools/browser/crawl4ai-resources.md +277 -0
- package/.agent/tools/browser/crawl4ai-usage.md +416 -0
- package/.agent/tools/browser/crawl4ai.md +585 -0
- package/.agent/tools/browser/dev-browser.md +341 -0
- package/.agent/tools/browser/pagespeed.md +260 -0
- package/.agent/tools/browser/playwright.md +266 -0
- package/.agent/tools/browser/playwriter.md +310 -0
- package/.agent/tools/browser/stagehand-examples.md +456 -0
- package/.agent/tools/browser/stagehand-python.md +483 -0
- package/.agent/tools/browser/stagehand.md +421 -0
- package/.agent/tools/build-agent/agent-review.md +224 -0
- package/.agent/tools/build-agent/build-agent.md +784 -0
- package/.agent/tools/build-mcp/aidevops-plugin.md +476 -0
- package/.agent/tools/build-mcp/api-wrapper.md +445 -0
- package/.agent/tools/build-mcp/build-mcp.md +240 -0
- package/.agent/tools/build-mcp/deployment.md +401 -0
- package/.agent/tools/build-mcp/server-patterns.md +632 -0
- package/.agent/tools/build-mcp/transports.md +366 -0
- package/.agent/tools/code-review/auditing.md +383 -0
- package/.agent/tools/code-review/automation.md +219 -0
- package/.agent/tools/code-review/best-practices.md +203 -0
- package/.agent/tools/code-review/codacy.md +151 -0
- package/.agent/tools/code-review/code-simplifier.md +174 -0
- package/.agent/tools/code-review/code-standards.md +309 -0
- package/.agent/tools/code-review/coderabbit.md +101 -0
- package/.agent/tools/code-review/management.md +155 -0
- package/.agent/tools/code-review/qlty.md +248 -0
- package/.agent/tools/code-review/secretlint.md +565 -0
- package/.agent/tools/code-review/setup.md +250 -0
- package/.agent/tools/code-review/snyk.md +563 -0
- package/.agent/tools/code-review/tools.md +230 -0
- package/.agent/tools/content/summarize.md +353 -0
- package/.agent/tools/context/augment-context-engine.md +468 -0
- package/.agent/tools/context/context-builder-agent.md +76 -0
- package/.agent/tools/context/context-builder.md +375 -0
- package/.agent/tools/context/context7.md +371 -0
- package/.agent/tools/context/dspy.md +302 -0
- package/.agent/tools/context/dspyground.md +374 -0
- package/.agent/tools/context/llm-tldr.md +219 -0
- package/.agent/tools/context/osgrep.md +488 -0
- package/.agent/tools/context/prompt-optimization.md +338 -0
- package/.agent/tools/context/toon.md +292 -0
- package/.agent/tools/conversion/pandoc.md +304 -0
- package/.agent/tools/credentials/api-key-management.md +154 -0
- package/.agent/tools/credentials/api-key-setup.md +224 -0
- package/.agent/tools/credentials/environment-variables.md +180 -0
- package/.agent/tools/credentials/vaultwarden.md +382 -0
- package/.agent/tools/data-extraction/outscraper.md +974 -0
- package/.agent/tools/deployment/coolify-cli.md +388 -0
- package/.agent/tools/deployment/coolify-setup.md +353 -0
- package/.agent/tools/deployment/coolify.md +345 -0
- package/.agent/tools/deployment/vercel.md +390 -0
- package/.agent/tools/git/authentication.md +132 -0
- package/.agent/tools/git/gitea-cli.md +193 -0
- package/.agent/tools/git/github-actions.md +207 -0
- package/.agent/tools/git/github-cli.md +223 -0
- package/.agent/tools/git/gitlab-cli.md +190 -0
- package/.agent/tools/git/opencode-github-security.md +350 -0
- package/.agent/tools/git/opencode-github.md +328 -0
- package/.agent/tools/git/opencode-gitlab.md +252 -0
- package/.agent/tools/git/security.md +196 -0
- package/.agent/tools/git.md +207 -0
- package/.agent/tools/opencode/oh-my-opencode.md +375 -0
- package/.agent/tools/opencode/opencode-anthropic-auth.md +446 -0
- package/.agent/tools/opencode/opencode.md +651 -0
- package/.agent/tools/social-media/bird.md +437 -0
- package/.agent/tools/task-management/beads.md +336 -0
- package/.agent/tools/terminal/terminal-title.md +251 -0
- package/.agent/tools/ui/shadcn.md +196 -0
- package/.agent/tools/ui/ui-skills.md +115 -0
- package/.agent/tools/wordpress/localwp.md +311 -0
- package/.agent/tools/wordpress/mainwp.md +391 -0
- package/.agent/tools/wordpress/scf.md +527 -0
- package/.agent/tools/wordpress/wp-admin.md +729 -0
- package/.agent/tools/wordpress/wp-dev.md +940 -0
- package/.agent/tools/wordpress/wp-preferred.md +398 -0
- package/.agent/tools/wordpress.md +95 -0
- package/.agent/workflows/branch/bugfix.md +63 -0
- package/.agent/workflows/branch/chore.md +95 -0
- package/.agent/workflows/branch/experiment.md +115 -0
- package/.agent/workflows/branch/feature.md +59 -0
- package/.agent/workflows/branch/hotfix.md +98 -0
- package/.agent/workflows/branch/refactor.md +92 -0
- package/.agent/workflows/branch/release.md +96 -0
- package/.agent/workflows/branch.md +347 -0
- package/.agent/workflows/bug-fixing.md +267 -0
- package/.agent/workflows/changelog.md +129 -0
- package/.agent/workflows/code-audit-remote.md +279 -0
- package/.agent/workflows/conversation-starter.md +69 -0
- package/.agent/workflows/error-feedback.md +578 -0
- package/.agent/workflows/feature-development.md +355 -0
- package/.agent/workflows/git-workflow.md +702 -0
- package/.agent/workflows/multi-repo-workspace.md +268 -0
- package/.agent/workflows/plans.md +709 -0
- package/.agent/workflows/postflight.md +604 -0
- package/.agent/workflows/pr.md +571 -0
- package/.agent/workflows/preflight.md +278 -0
- package/.agent/workflows/ralph-loop.md +773 -0
- package/.agent/workflows/release.md +498 -0
- package/.agent/workflows/session-manager.md +254 -0
- package/.agent/workflows/session-review.md +311 -0
- package/.agent/workflows/sql-migrations.md +631 -0
- package/.agent/workflows/version-bump.md +283 -0
- package/.agent/workflows/wiki-update.md +333 -0
- package/.agent/workflows/worktree.md +477 -0
- package/LICENSE +21 -0
- package/README.md +1446 -0
- package/VERSION +1 -0
- package/aidevops.sh +1746 -0
- package/bin/aidevops +21 -0
- package/package.json +75 -0
- package/scripts/npm-postinstall.js +60 -0
- package/setup.sh +2366 -0
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Google Search Console MCP setup and usage
|
|
3
|
+
mode: subagent
|
|
4
|
+
tools:
|
|
5
|
+
read: true
|
|
6
|
+
write: true
|
|
7
|
+
edit: true
|
|
8
|
+
bash: true
|
|
9
|
+
glob: true
|
|
10
|
+
grep: true
|
|
11
|
+
webfetch: true
|
|
12
|
+
task: true
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Google Search Console MCP Setup & Usage
|
|
16
|
+
|
|
17
|
+
<!-- AI-CONTEXT-START -->
|
|
18
|
+
|
|
19
|
+
## Quick Reference
|
|
20
|
+
|
|
21
|
+
- **MCP Integration**: Google Search Console API for AI assistants
|
|
22
|
+
- **Credentials**: `~/.config/aidevops/gsc-credentials.json` (service account JSON key)
|
|
23
|
+
- **Setup**: Google Cloud Project → Enable Search Console API → Service Account → Add to GSC properties
|
|
24
|
+
- **Capabilities**: Search analytics, URL inspection, indexing requests, sitemap management
|
|
25
|
+
- **Key Methods**: `getSearchAnalytics()`, `getTopPages()`, `getTopQueries()`, `getCoreWebVitals()`
|
|
26
|
+
- **Metrics**: clicks, impressions, ctr, position
|
|
27
|
+
- **Dimensions**: query, page, country, device, searchAppearance
|
|
28
|
+
- **Bulk Setup**: Use Playwright to add service account to all GSC properties automatically
|
|
29
|
+
|
|
30
|
+
## Setup Steps
|
|
31
|
+
|
|
32
|
+
### 1. Google Cloud Project Setup
|
|
33
|
+
|
|
34
|
+
1. Go to [Google Cloud Console](https://console.cloud.google.com)
|
|
35
|
+
2. Create or select a project
|
|
36
|
+
3. Enable the **Google Search Console API**
|
|
37
|
+
4. Go to **Credentials** → **Create Credentials** → **Service Account**
|
|
38
|
+
5. Name it (e.g., `aidevops`) and create
|
|
39
|
+
6. Go to **Keys** tab → **Add Key** → **Create new key** → **JSON**
|
|
40
|
+
7. Save the downloaded file to `~/.config/aidevops/gsc-credentials.json`
|
|
41
|
+
8. Set permissions: `chmod 600 ~/.config/aidevops/gsc-credentials.json`
|
|
42
|
+
|
|
43
|
+
### 2. Add Service Account to GSC Properties
|
|
44
|
+
|
|
45
|
+
The service account email (e.g., `aidevops@project-id.iam.gserviceaccount.com`) must be added as a user to each GSC property.
|
|
46
|
+
|
|
47
|
+
**Manual method**: GSC → Property → Settings → Users and permissions → Add user
|
|
48
|
+
|
|
49
|
+
**Automated method**: Use Playwright to bulk-add to all properties (see below)
|
|
50
|
+
|
|
51
|
+
### 3. Verify Access
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Test GSC MCP connection
|
|
55
|
+
opencode mcp list | grep -i search
|
|
56
|
+
```
|
|
57
|
+
<!-- AI-CONTEXT-END -->
|
|
58
|
+
|
|
59
|
+
## Automated Bulk Setup with Playwright
|
|
60
|
+
|
|
61
|
+
Add the service account to all GSC properties automatically:
|
|
62
|
+
|
|
63
|
+
```javascript
|
|
64
|
+
// Save as gsc-add-service-account.js
|
|
65
|
+
import { chromium } from 'playwright';
|
|
66
|
+
|
|
67
|
+
const SERVICE_ACCOUNT = "your-service-account@project.iam.gserviceaccount.com";
|
|
68
|
+
|
|
69
|
+
async function main() {
|
|
70
|
+
// Launch Chrome with user profile (logged into Google)
|
|
71
|
+
const browser = await chromium.launchPersistentContext(
|
|
72
|
+
'/Users/USERNAME/Library/Application Support/Google/Chrome/Default',
|
|
73
|
+
{ headless: false, channel: 'chrome' }
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
const page = await browser.newPage();
|
|
77
|
+
await page.goto("https://search.google.com/search-console", { waitUntil: 'networkidle' });
|
|
78
|
+
await page.waitForTimeout(2000);
|
|
79
|
+
|
|
80
|
+
// Get all domains from the page
|
|
81
|
+
const html = await page.content();
|
|
82
|
+
const domainRegex = /sc-domain:([a-z0-9.-]+)/g;
|
|
83
|
+
const matches = [...html.matchAll(domainRegex)];
|
|
84
|
+
const domains = [...new Set(matches.map(m => m[1]))];
|
|
85
|
+
|
|
86
|
+
console.log(`Found ${domains.length} properties`);
|
|
87
|
+
|
|
88
|
+
for (const domain of domains) {
|
|
89
|
+
console.log(`Processing ${domain}...`);
|
|
90
|
+
|
|
91
|
+
try {
|
|
92
|
+
await page.goto(`https://search.google.com/search-console/users?resource_id=sc-domain:${domain}`,
|
|
93
|
+
{ waitUntil: 'networkidle' });
|
|
94
|
+
await page.waitForTimeout(400);
|
|
95
|
+
|
|
96
|
+
const content = await page.content();
|
|
97
|
+
|
|
98
|
+
// Skip if no access or already added
|
|
99
|
+
if (content.includes("don't have access")) {
|
|
100
|
+
console.log(` ⏭ No access`);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
if (content.includes(SERVICE_ACCOUNT)) {
|
|
104
|
+
console.log(` ⏭ Already added`);
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// Click ADD USER, type email, press Enter
|
|
109
|
+
await page.click('text=ADD USER');
|
|
110
|
+
await page.waitForTimeout(400);
|
|
111
|
+
await page.keyboard.type(SERVICE_ACCOUNT, { delay: 5 });
|
|
112
|
+
await page.keyboard.press('Enter');
|
|
113
|
+
await page.waitForTimeout(1000);
|
|
114
|
+
|
|
115
|
+
console.log(` ✓ Added`);
|
|
116
|
+
} catch (error) {
|
|
117
|
+
console.error(` ✗ ${error.message}`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
await browser.close();
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
main().catch(console.error);
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Run with: `node gsc-add-service-account.js`
|
|
128
|
+
|
|
129
|
+
**Requirements**:
|
|
130
|
+
- Playwright installed: `npm install playwright`
|
|
131
|
+
- Chrome browser with logged-in Google session
|
|
132
|
+
- User must have Owner access to GSC properties
|
|
133
|
+
|
|
134
|
+
## Search Performance Analysis
|
|
135
|
+
|
|
136
|
+
### **Query Performance Metrics**
|
|
137
|
+
|
|
138
|
+
```javascript
|
|
139
|
+
// Get search performance data for specific queries
|
|
140
|
+
await googleSearchConsole.getSearchAnalytics({
|
|
141
|
+
siteUrl: "https://your-website.com",
|
|
142
|
+
startDate: "2024-01-01",
|
|
143
|
+
endDate: "2024-12-31",
|
|
144
|
+
dimensions: ["query", "page", "country", "device"],
|
|
145
|
+
metrics: ["clicks", "impressions", "ctr", "position"]
|
|
146
|
+
});
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### **Top Performing Pages**
|
|
150
|
+
|
|
151
|
+
```javascript
|
|
152
|
+
// Analyze top performing pages by clicks
|
|
153
|
+
await googleSearchConsole.getTopPages({
|
|
154
|
+
siteUrl: "https://your-website.com",
|
|
155
|
+
startDate: "2024-11-01",
|
|
156
|
+
endDate: "2024-11-30",
|
|
157
|
+
orderBy: "clicks",
|
|
158
|
+
limit: 50
|
|
159
|
+
});
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Keyword Research & Analysis
|
|
163
|
+
|
|
164
|
+
### **Top Search Queries**
|
|
165
|
+
|
|
166
|
+
```javascript
|
|
167
|
+
// Get top search queries driving traffic
|
|
168
|
+
await googleSearchConsole.getTopQueries({
|
|
169
|
+
siteUrl: "https://your-website.com",
|
|
170
|
+
startDate: "2024-10-01",
|
|
171
|
+
endDate: "2024-10-31",
|
|
172
|
+
orderBy: "impressions",
|
|
173
|
+
limit: 100
|
|
174
|
+
});
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### **Query Position Tracking**
|
|
178
|
+
|
|
179
|
+
```javascript
|
|
180
|
+
// Track specific keyword positions over time
|
|
181
|
+
await googleSearchConsole.trackKeywordPositions({
|
|
182
|
+
siteUrl: "https://your-website.com",
|
|
183
|
+
queries: ["ai assisted devops", "automation framework", "mcp integration"],
|
|
184
|
+
startDate: "2024-01-01",
|
|
185
|
+
endDate: "2024-12-31",
|
|
186
|
+
groupBy: "month"
|
|
187
|
+
});
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Device & Geographic Analysis
|
|
191
|
+
|
|
192
|
+
### **Device Performance Breakdown**
|
|
193
|
+
|
|
194
|
+
```javascript
|
|
195
|
+
// Analyze performance across different devices
|
|
196
|
+
await googleSearchConsole.getDevicePerformance({
|
|
197
|
+
siteUrl: "https://your-website.com",
|
|
198
|
+
startDate: "2024-11-01",
|
|
199
|
+
endDate: "2024-11-30",
|
|
200
|
+
devices: ["desktop", "mobile", "tablet"],
|
|
201
|
+
metrics: ["clicks", "impressions", "ctr", "position"]
|
|
202
|
+
});
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### **Geographic Performance**
|
|
206
|
+
|
|
207
|
+
```javascript
|
|
208
|
+
// Get performance data by country
|
|
209
|
+
await googleSearchConsole.getGeographicPerformance({
|
|
210
|
+
siteUrl: "https://your-website.com",
|
|
211
|
+
startDate: "2024-11-01",
|
|
212
|
+
endDate: "2024-11-30",
|
|
213
|
+
countries: ["USA", "GBR", "CAN", "AUS"],
|
|
214
|
+
orderBy: "clicks"
|
|
215
|
+
});
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## Technical SEO Monitoring
|
|
219
|
+
|
|
220
|
+
### **Index Coverage Analysis**
|
|
221
|
+
|
|
222
|
+
```javascript
|
|
223
|
+
// Check index coverage status
|
|
224
|
+
await googleSearchConsole.getIndexCoverage({
|
|
225
|
+
siteUrl: "https://your-website.com",
|
|
226
|
+
category: "all", // or "error", "valid", "excluded", "warning"
|
|
227
|
+
platform: "web" // or "mobile"
|
|
228
|
+
});
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### **Core Web Vitals Monitoring**
|
|
232
|
+
|
|
233
|
+
```javascript
|
|
234
|
+
// Monitor Core Web Vitals performance
|
|
235
|
+
await googleSearchConsole.getCoreWebVitals({
|
|
236
|
+
siteUrl: "https://your-website.com",
|
|
237
|
+
category: "all", // or "good", "needs_improvement", "poor"
|
|
238
|
+
platform: "desktop" // or "mobile"
|
|
239
|
+
});
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## Competitive Analysis
|
|
243
|
+
|
|
244
|
+
### **Search Appearance Features**
|
|
245
|
+
|
|
246
|
+
```javascript
|
|
247
|
+
// Analyze search appearance features (rich snippets, etc.)
|
|
248
|
+
await googleSearchConsole.getSearchAppearance({
|
|
249
|
+
siteUrl: "https://your-website.com",
|
|
250
|
+
startDate: "2024-11-01",
|
|
251
|
+
endDate: "2024-11-30",
|
|
252
|
+
searchAppearance: ["richSnippet", "ampBlueLink", "ampNonRichResult"]
|
|
253
|
+
});
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### **Click-Through Rate Optimization**
|
|
257
|
+
|
|
258
|
+
```javascript
|
|
259
|
+
// Identify pages with high impressions but low CTR
|
|
260
|
+
await googleSearchConsole.getCTROpportunities({
|
|
261
|
+
siteUrl: "https://your-website.com",
|
|
262
|
+
startDate: "2024-11-01",
|
|
263
|
+
endDate: "2024-11-30",
|
|
264
|
+
minImpressions: 100,
|
|
265
|
+
maxCTR: 0.05, // 5% CTR threshold
|
|
266
|
+
orderBy: "impressions"
|
|
267
|
+
});
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## Issue Detection & Monitoring
|
|
271
|
+
|
|
272
|
+
### **Manual Actions Check**
|
|
273
|
+
|
|
274
|
+
```javascript
|
|
275
|
+
// Check for manual actions against the site
|
|
276
|
+
await googleSearchConsole.getManualActions({
|
|
277
|
+
siteUrl: "https://your-website.com"
|
|
278
|
+
});
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### **Security Issues Monitoring**
|
|
282
|
+
|
|
283
|
+
```javascript
|
|
284
|
+
// Monitor security issues
|
|
285
|
+
await googleSearchConsole.getSecurityIssues({
|
|
286
|
+
siteUrl: "https://your-website.com"
|
|
287
|
+
});
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
## Reporting & Analytics
|
|
291
|
+
|
|
292
|
+
### **Monthly Performance Report**
|
|
293
|
+
|
|
294
|
+
```javascript
|
|
295
|
+
// Generate comprehensive monthly report
|
|
296
|
+
await googleSearchConsole.generateMonthlyReport({
|
|
297
|
+
siteUrl: "https://your-website.com",
|
|
298
|
+
month: "2024-11",
|
|
299
|
+
includeMetrics: ["clicks", "impressions", "ctr", "position"],
|
|
300
|
+
includeDimensions: ["query", "page", "country", "device"],
|
|
301
|
+
exportFormat: "json" // or "csv"
|
|
302
|
+
});
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
### **Competitor Comparison**
|
|
306
|
+
|
|
307
|
+
```javascript
|
|
308
|
+
// Compare performance with competitor keywords
|
|
309
|
+
await googleSearchConsole.compareWithCompetitors({
|
|
310
|
+
siteUrl: "https://your-website.com",
|
|
311
|
+
competitorQueries: ["devops automation", "infrastructure management"],
|
|
312
|
+
startDate: "2024-11-01",
|
|
313
|
+
endDate: "2024-11-30",
|
|
314
|
+
metrics: ["position", "clicks", "impressions"]
|
|
315
|
+
});
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
## Troubleshooting
|
|
319
|
+
|
|
320
|
+
### Empty Results from API
|
|
321
|
+
|
|
322
|
+
If the API returns empty results `{}`:
|
|
323
|
+
- Service account not added to any GSC properties
|
|
324
|
+
- Use the Playwright script above to bulk-add access
|
|
325
|
+
|
|
326
|
+
### "No access to property" Error
|
|
327
|
+
|
|
328
|
+
- The service account email must be added as a user (Full or Owner permission)
|
|
329
|
+
- Domain must be verified in GSC first
|
|
330
|
+
|
|
331
|
+
### Connection Issues
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
# Check credentials file exists and has correct permissions
|
|
335
|
+
ls -la ~/.config/aidevops/gsc-credentials.json
|
|
336
|
+
|
|
337
|
+
# Verify service account email
|
|
338
|
+
cat ~/.config/aidevops/gsc-credentials.json | grep client_email
|
|
339
|
+
|
|
340
|
+
# Test MCP connection
|
|
341
|
+
opencode mcp list
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### Chrome Profile Path (for Playwright)
|
|
345
|
+
|
|
346
|
+
- **macOS**: `/Users/USERNAME/Library/Application Support/Google/Chrome/Default`
|
|
347
|
+
- **Linux**: `~/.config/google-chrome/Default`
|
|
348
|
+
- **Windows**: `%LOCALAPPDATA%\Google\Chrome\User Data\Default`
|
|
349
|
+
|
|
350
|
+
## MCP Configuration
|
|
351
|
+
|
|
352
|
+
Add to your MCP config (`~/.config/opencode/mcp.json` or similar):
|
|
353
|
+
|
|
354
|
+
```json
|
|
355
|
+
{
|
|
356
|
+
"mcpServers": {
|
|
357
|
+
"google-search-console": {
|
|
358
|
+
"command": "npx",
|
|
359
|
+
"args": ["-y", "@anthropic/google-search-console-mcp"],
|
|
360
|
+
"env": {
|
|
361
|
+
"GOOGLE_APPLICATION_CREDENTIALS": "~/.config/aidevops/gsc-credentials.json"
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
```
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Google Search Console sitemap submission via Playwright browser automation
|
|
3
|
+
mode: subagent
|
|
4
|
+
tools:
|
|
5
|
+
read: true
|
|
6
|
+
write: true
|
|
7
|
+
edit: true
|
|
8
|
+
bash: true
|
|
9
|
+
glob: true
|
|
10
|
+
grep: true
|
|
11
|
+
webfetch: true
|
|
12
|
+
task: true
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Google Search Console Sitemap Submission
|
|
16
|
+
|
|
17
|
+
<!-- AI-CONTEXT-START -->
|
|
18
|
+
|
|
19
|
+
## Quick Reference
|
|
20
|
+
|
|
21
|
+
- **Purpose**: Automate sitemap submissions to Google Search Console
|
|
22
|
+
- **Method**: Playwright browser automation with persistent Chrome profile
|
|
23
|
+
- **Script**: `~/.aidevops/agents/scripts/gsc-sitemap-helper.sh`
|
|
24
|
+
- **Config**: `~/.config/aidevops/gsc-config.json`
|
|
25
|
+
- **Profile**: `~/.aidevops/.agent-workspace/chrome-gsc-profile/`
|
|
26
|
+
- **Screenshots**: `/tmp/gsc-screenshots/` (verification)
|
|
27
|
+
|
|
28
|
+
**Commands**:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Submit sitemap for single domain
|
|
32
|
+
~/.aidevops/agents/scripts/gsc-sitemap-helper.sh submit example.com
|
|
33
|
+
|
|
34
|
+
# Submit sitemaps for multiple domains
|
|
35
|
+
~/.aidevops/agents/scripts/gsc-sitemap-helper.sh submit example.com example.net example.org
|
|
36
|
+
|
|
37
|
+
# Submit from file (one domain per line)
|
|
38
|
+
~/.aidevops/agents/scripts/gsc-sitemap-helper.sh submit --file domains.txt
|
|
39
|
+
|
|
40
|
+
# Check sitemap status
|
|
41
|
+
~/.aidevops/agents/scripts/gsc-sitemap-helper.sh status example.com
|
|
42
|
+
|
|
43
|
+
# List all sitemaps for a domain
|
|
44
|
+
~/.aidevops/agents/scripts/gsc-sitemap-helper.sh list example.com
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Note**: Add `~/.aidevops/agents/scripts` to your PATH for shorter commands, or use the full path as shown above.
|
|
48
|
+
|
|
49
|
+
**Prerequisites**:
|
|
50
|
+
- Domain verified in Google Search Console
|
|
51
|
+
- Sitemap accessible at URL (test with `curl https://example.com/sitemap.xml`)
|
|
52
|
+
- User logged into Google in the Chrome profile
|
|
53
|
+
- Node.js and Playwright installed
|
|
54
|
+
|
|
55
|
+
<!-- AI-CONTEXT-END -->
|
|
56
|
+
|
|
57
|
+
## When to Use
|
|
58
|
+
|
|
59
|
+
- After deploying a new site
|
|
60
|
+
- After adding `sitemap.xml` to a domain
|
|
61
|
+
- When setting up multiple domains (like a portfolio of sites)
|
|
62
|
+
- After major site restructuring that changes sitemap content
|
|
63
|
+
|
|
64
|
+
## How It Works
|
|
65
|
+
|
|
66
|
+
1. Opens Chrome with persistent profile (preserves Google login)
|
|
67
|
+
2. Navigates to GSC sitemaps page for each domain
|
|
68
|
+
3. Fills sitemap URL in "Add a new sitemap" input
|
|
69
|
+
4. Clicks SUBMIT button (finds it relative to input, not sidebar feedback button)
|
|
70
|
+
5. Verifies success via screenshot
|
|
71
|
+
6. Handles domains that already have sitemaps submitted
|
|
72
|
+
|
|
73
|
+
## Technical Details
|
|
74
|
+
|
|
75
|
+
### Chrome Profile Setup
|
|
76
|
+
|
|
77
|
+
Uses `chromium.launchPersistentContext()` with a dedicated profile directory and stealth flags to avoid "browser isn't secure" warnings:
|
|
78
|
+
|
|
79
|
+
```javascript
|
|
80
|
+
{
|
|
81
|
+
ignoreDefaultArgs: ['--enable-automation'],
|
|
82
|
+
args: [
|
|
83
|
+
'--disable-blink-features=AutomationControlled',
|
|
84
|
+
'--disable-infobars',
|
|
85
|
+
'--no-first-run',
|
|
86
|
+
'--no-default-browser-check'
|
|
87
|
+
]
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### GSC UI Specifics
|
|
92
|
+
|
|
93
|
+
- **SUBMIT button**: A `div[role="button"]` not a `<button>` element
|
|
94
|
+
- **Sidebar conflict**: There's also a "Submit feedback" link - must avoid clicking that
|
|
95
|
+
- **Button location**: Found relative to input field (walk up DOM to find container)
|
|
96
|
+
- **Input format**: Requires FULL URL: `https://www.domain.com/sitemap.xml` not just `sitemap.xml`
|
|
97
|
+
- **Button state**: Disabled until input has valid content
|
|
98
|
+
|
|
99
|
+
### Finding the Correct Submit Button
|
|
100
|
+
|
|
101
|
+
```javascript
|
|
102
|
+
const submitBtn = await input.evaluateHandle(el => {
|
|
103
|
+
let parent = el.parentElement;
|
|
104
|
+
for (let i = 0; i < 10; i++) {
|
|
105
|
+
if (!parent) break;
|
|
106
|
+
const btn = parent.querySelector('[role="button"]');
|
|
107
|
+
if (btn && btn.textContent.trim().toUpperCase() === 'SUBMIT') {
|
|
108
|
+
return btn;
|
|
109
|
+
}
|
|
110
|
+
parent = parent.parentElement;
|
|
111
|
+
}
|
|
112
|
+
return null;
|
|
113
|
+
});
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Detecting Already Submitted
|
|
117
|
+
|
|
118
|
+
Look for sitemap in table (not just page content, as "sitemap.xml" appears in input placeholder):
|
|
119
|
+
|
|
120
|
+
```javascript
|
|
121
|
+
const sitemapInTable = await page.$('table:has-text("sitemap.xml")') ||
|
|
122
|
+
await page.$('tr:has-text("sitemap.xml")') ||
|
|
123
|
+
await page.$('[role="row"]:has-text("sitemap.xml")');
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Configuration
|
|
127
|
+
|
|
128
|
+
Store in `~/.config/aidevops/gsc-config.json`:
|
|
129
|
+
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"chrome_profile_dir": "~/.aidevops/.agent-workspace/chrome-gsc-profile",
|
|
133
|
+
"default_sitemap_path": "sitemap.xml",
|
|
134
|
+
"screenshot_dir": "/tmp/gsc-screenshots",
|
|
135
|
+
"timeout_ms": 60000,
|
|
136
|
+
"headless": false
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## First-Time Setup
|
|
141
|
+
|
|
142
|
+
1. **Install dependencies**:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
~/.aidevops/agents/scripts/gsc-sitemap-helper.sh setup
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
2. **Login to Google** (first run opens browser for manual login):
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
~/.aidevops/agents/scripts/gsc-sitemap-helper.sh login
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
3. **Verify access**:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
~/.aidevops/agents/scripts/gsc-sitemap-helper.sh list example.com
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Usage Examples
|
|
161
|
+
|
|
162
|
+
### Single Domain
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
# Submit sitemap for one domain
|
|
166
|
+
gsc-sitemap-helper.sh submit example.com
|
|
167
|
+
|
|
168
|
+
# With custom sitemap path
|
|
169
|
+
gsc-sitemap-helper.sh submit example.com --sitemap news-sitemap.xml
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Multiple Domains
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
# Submit to multiple domains
|
|
176
|
+
gsc-sitemap-helper.sh submit example.com example.net example.org
|
|
177
|
+
|
|
178
|
+
# From file
|
|
179
|
+
echo -e "example.com\nexample.net\nexample.org" > domains.txt
|
|
180
|
+
gsc-sitemap-helper.sh submit --file domains.txt
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Status Checking
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
# Check if sitemap is submitted
|
|
187
|
+
gsc-sitemap-helper.sh status example.com
|
|
188
|
+
|
|
189
|
+
# List all sitemaps for a domain
|
|
190
|
+
gsc-sitemap-helper.sh list example.com
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Batch Operations
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
# Dry run (show what would be done)
|
|
197
|
+
gsc-sitemap-helper.sh submit --dry-run example.com example.net
|
|
198
|
+
|
|
199
|
+
# Skip already-submitted domains
|
|
200
|
+
gsc-sitemap-helper.sh submit --skip-existing example.com example.net
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Troubleshooting
|
|
204
|
+
|
|
205
|
+
### "Browser isn't secure" Warning
|
|
206
|
+
|
|
207
|
+
The script uses stealth flags to prevent this. If it still appears:
|
|
208
|
+
|
|
209
|
+
1. Close all Chrome instances
|
|
210
|
+
2. Delete the profile: `rm -rf ~/.aidevops/.agent-workspace/chrome-gsc-profile`
|
|
211
|
+
3. Run `gsc-sitemap-helper.sh login` to create fresh profile
|
|
212
|
+
|
|
213
|
+
### "No access" Error
|
|
214
|
+
|
|
215
|
+
- Domain not verified in GSC for this Google account
|
|
216
|
+
- Check GSC manually: https://search.google.com/search-console
|
|
217
|
+
|
|
218
|
+
### Submit Button Not Clicking
|
|
219
|
+
|
|
220
|
+
- Check screenshot in `/tmp/gsc-screenshots/`
|
|
221
|
+
- May be clicking feedback button instead of submit
|
|
222
|
+
- Script uses DOM traversal to find correct button
|
|
223
|
+
|
|
224
|
+
### Session Expired
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
# Re-login to refresh session
|
|
228
|
+
gsc-sitemap-helper.sh login
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Sitemap Not Accessible
|
|
232
|
+
|
|
233
|
+
Before submitting, verify sitemap is accessible:
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
curl -I https://www.example.com/sitemap.xml
|
|
237
|
+
# Should return 200 OK with Content-Type: application/xml
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
## Integration with Other Tools
|
|
241
|
+
|
|
242
|
+
### With Site Crawler
|
|
243
|
+
|
|
244
|
+
After crawling a site, submit its sitemap:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# Crawl site
|
|
248
|
+
site-crawler-helper.sh crawl https://example.com
|
|
249
|
+
|
|
250
|
+
# Submit sitemap
|
|
251
|
+
gsc-sitemap-helper.sh submit example.com
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### With MainWP (WordPress Fleet)
|
|
255
|
+
|
|
256
|
+
Submit sitemaps for all managed WordPress sites:
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
# Get domains from MainWP
|
|
260
|
+
mainwp-helper.sh list-sites | awk '{print $2}' > wp-domains.txt
|
|
261
|
+
|
|
262
|
+
# Submit sitemaps
|
|
263
|
+
gsc-sitemap-helper.sh submit --file wp-domains.txt
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### With Coolify Deployments
|
|
267
|
+
|
|
268
|
+
After deploying a new site:
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
# Deploy site
|
|
272
|
+
coolify-helper.sh deploy my-app
|
|
273
|
+
|
|
274
|
+
# Submit sitemap
|
|
275
|
+
gsc-sitemap-helper.sh submit my-app.example.com
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
## Related
|
|
279
|
+
|
|
280
|
+
- `seo/google-search-console.md` - GSC API integration (analytics, not sitemaps)
|
|
281
|
+
- `tools/browser/playwright.md` - Playwright automation patterns
|
|
282
|
+
- `seo/site-crawler.md` - Site auditing and crawling
|