← Back to Plugins
Integration

Seo Operator

nourddine34 By nourddine34 👁 110 views ▲ 0 votes

AI-powered SEO operations plugin for OpenClaw with technical SEO auditing, website crawling, WordPress integration, approval workflows, and verified SEO actions.

GitHub

Install

npm install
npm

README

# OpenClaw SEO Operator

An OpenClaw tool plugin that turns an OpenClaw agent into an SEO operations agent: crawling,
technical/on-page audits, WordPress + Rank Math, Google Search Console, competitor/backlink/local
SEO intelligence, a unified status overview with transparent priority scoring, report generation,
change detection, and a safety-gated recommend -> approve -> execute -> verify -> rollback action
engine — across one or many isolated projects/sites in a single installation.

**This is Part 5 of 5**: production hardening. See [PRODUCTION_READINESS.md](docs/PRODUCTION_READINESS.md)
for the honest, current verdict on what's ready to run against a real site and what isn't.

## Documentation

| | |
|---|---|
| [INSTALLATION.md](docs/INSTALLATION.md) | Build, load, verify |
| [QUICKSTART.md](docs/QUICKSTART.md) | Shortest path from zero to a fix executed |
| [ONBOARDING.md](docs/ONBOARDING.md) | The full guided setup flow |
| [CONFIGURATION.md](docs/CONFIGURATION.md) | Config shape, credentials, single vs. multi-site |
| [ARCHITECTURE.md](docs/ARCHITECTURE.md) | Layer-by-layer code map |
| [SECURITY.md](docs/SECURITY.md) | SSRF protection, credential handling, injection/traversal review |
| [AGENT_SECURITY.md](docs/AGENT_SECURITY.md) | Treating crawled content as untrusted input |
| [MULTI_SITE.md](docs/MULTI_SITE.md) | Project/credential/data isolation, verified |
| [PRIORITY_ENGINE.md](docs/PRIORITY_ENGINE.md) | The transparent scoring formula |
| [CHANGE_DETECTION.md](docs/CHANGE_DETECTION.md) | Comparing two audits without false alarms |
| [WORDPRESS_SETUP.md](docs/WORDPRESS_SETUP.md) | Application Password setup, what's actually writable |
| [GSC_SETUP.md](docs/GSC_SETUP.md) | OAuth setup |
| [CRAWLER_CONFIGURATION.md](docs/CRAWLER_CONFIGURATION.md) | Crawl parameters and what's respected automatically |
| [AUDIT_RULES.md](docs/AUDIT_RULES.md) | Every rule, by category |
| [ACTION_APPROVAL_MODEL.md](docs/ACTION_APPROVAL_MODEL.md) | The full DETECT..ROLLBACK lifecycle |
| [BACKLINKS.md](docs/BACKLINKS.md) | What backlink discovery actually does (and doesn't) |
| [LOCAL_SEO.md](docs/LOCAL_SEO.md) | NAP consistency, local audit, what's NOT verified |
| [PLUGIN_UX.md](docs/PLUGIN_UX.md) | Human-friendly error messages, before/after |
| [SCHEDULING.md](docs/SCHEDULING.md) | Why this plugin can't self-schedule, and what to do instead |
| [PERFORMANCE.md](docs/PERFORMANCE.md) | What's bounded, the one real bottleneck, why it's untouched |
| [TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) | Common errors and what they mean |
| [DEVELOPMENT.md](docs/DEVELOPMENT.md) | Conventions for extending this plugin |
| [TESTING.md](docs/TESTING.md) | How the suite is organized, what's not covered |
| [CONTRIBUTING.md](docs/CONTRIBUTING.md) | Contribution checklist |
| [EXAMPLE_USE_CASE.md](docs/EXAMPLE_USE_CASE.md) | A full worked conversation |
| [KNOWN_LIMITATIONS.md](docs/KNOWN_LIMITATIONS.md) | The consolidated, honest gap list |
| [ROADMAP.md](docs/ROADMAP.md) | What's next, in priority order |
| [PRODUCTION_READINESS.md](docs/PRODUCTION_READINESS.md) | The verdict |
| [RELEASE_NOTES.md](RELEASE_NOTES.md) | This release |

## Architecture (short version — see [ARCHITECTURE.md](docs/ARCHITECTURE.md))

```
src/
  index.ts          Plugin entry point (defineToolPlugin), registers 34 tools
  config/           TypeBox config schema — single-site + multi-project
  domain/           Typed domain models
  projects/         Multi-project scope resolution
  priority/         Priority-scoring engine
  safety/           Action safety classification
  security/         SSRF guard, IP-range checks, credential redaction, untrusted-content fencing
  errors/           Typed error hierarchy + human-friendly message mapping
  logging/          Structured, redacting operation logger
  storage/          Repository interface + JSON-file implementation
  adapters/         HTTP fetch with SSRF validation, timeout, retry, size cap
  crawler/          BFS crawler, robots.txt, sitemap, HTML extraction, link graph
  audit-engine/     Rules, health score, comparison, change detection
  integrations/     wordpress/ search-console/ backlinks/ local-seo/ website/
  services/         Orchestration — every function takes an explicit projectId
  action-engine/    Recommend -> prepare -> approve -> execute -> verify -> rollback
  tools/            One thin file per model-facing tool
```

## Tools (34)

**Overview & reporting**: `seo_health`, `seo_status` (Command Center), `seo_report_generate`

**Crawl & audit**: `seo_crawl_site`, `seo_site_inspect`, `seo_audit_run`, `seo_audit_summary`,
`seo_issues_list`, `seo_issue_get`, `seo_page_info`, `seo_audit_compare`, `seo_change_detect`

**WordPress**: `wordpress_test_connection`, `wordpress_pages`, `wordpress_page_analysis`

**Search Console**: `search_console_test_connection`, `search_console_opportunities`

**Intelligence**: `competitor_add`, `competitor_list`, `competitor_analyze`, `backlinks_discover`,
`backlinks_list`, `backlinks_qualify`, `local_audit`, `content_opportunities`,
`internal_link_recommendations`

**Actions**: `action_plan_prepare`, `action_plan_list`, `action_plan_show`, `action_decide`,
`action_modify`, `action_execute`, `action_verify`, `action_rollback`

All read-only except the intelligence-tracking writes (local plugin storage only, never the live
site — `competitor_add`, `backlinks_discover`, `backlinks_qualify`, `local_audit`'s optional
upsert) and the action-engine writes, which are approval-gated by default. See
[ACTION_APPROVAL_MODEL.md](docs/ACTION_APPROVAL_MODEL.md).

## What's new in Part 5

- **Multi-project isolation** (`projects/`) — the substantial gap closed this part: every
  service/tool now takes an explicit `projectId`, every stored record carries one, credentials
  never fall back across projects. See [MULTI_SITE.md](docs/MULTI_SITE.md).
- **`seo_status`** — the SEO Command Center: one call for health, prioritized problems,
  opportunity counts, and action status.
- **Priority Engine** (`priority/priority-engine.ts`) — documented, transparent scoring; never
  predicts traffic.
- **`seo_report_generate`** — the full report (executive summary through change history) as
  JSON + markdown.
- **`seo_change_detect`** — structural change detection between two audits, designed to avoid
  false alarms.
- **Human-friendly errors** (`errors/human-message.ts`) — plain language plus a next step,
  in place of raw error codes.
- **Untrusted-content fencing** wired into `seo_page_info` and `wordpress_page_analysis`.
- A full documentation set (this table), an honest [KNOWN_LIMITATIONS.md](docs/KNOWN_LIMITATIONS.md),
  and the [PRODUCTION_READINESS.md](docs/PRODUCTION_READINESS.md) verdict.

## Build

```bash
npm install
npm run build            # tsc -p tsconfig.json
npm test                 # vitest — 530 tests as of this release
npm run plugin:build      # build, then `openclaw plugins build --entry ./dist/index.js`
npm run plugin:validate   # build, then `openclaw plugins validate --entry ./dist/index.js`
```

See [INSTALLATION.md](docs/INSTALLATION.md) to load it into OpenClaw.
integration

Comments

Sign in to leave a comment

Loading comments...