seo 0.2.18 → 0.2.19
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/README.md +81 -11
- package/dist/cli.js +82 -82
- package/dist/cli.js.map +1 -1
- package/dist/{dist-e8x4JREt.js → dist-B0a6PpwF.js} +108 -108
- package/dist/dist-B0a6PpwF.js.map +1 -0
- package/dist/{dist-B7Sb0jRt.js → dist-orqZyOnQ.js} +1 -1
- package/dist/index.d.ts +1028 -274
- package/dist/index.js +5775 -3678
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +6198 -3748
- package/dist/mcp.js.map +1 -1
- package/dist/{package-DLnOXW-d.js → package-Dl66IhTH.js} +2 -2
- package/dist/{package-DLnOXW-d.js.map → package-Dl66IhTH.js.map} +1 -1
- package/evals/competitor-keyword-gap.json +43 -0
- package/package.json +4 -2
- package/skills/seo/SKILL.md +11 -4
- package/dist/dist-e8x4JREt.js.map +0 -1
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<h1 align="center">SEO Skill</h1>
|
|
9
9
|
|
|
10
10
|
<p align="center">
|
|
11
|
-
The only SEO skill your agent needs.
|
|
11
|
+
The only SEO skill your agent needs. Audit sites, find search opportunities, research competitors, and verify the work from one local CLI and MCP server.
|
|
12
12
|
</p>
|
|
13
13
|
|
|
14
14
|
<p align="center">
|
|
@@ -38,17 +38,18 @@
|
|
|
38
38
|
<a href="LICENSE"><img alt="Apache 2.0 license" src="https://img.shields.io/badge/license-Apache--2.0-lightgrey?style=flat-square"></a>
|
|
39
39
|
</p>
|
|
40
40
|
|
|
41
|
-
The `seo` command
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
The `seo` command turns crawl, Search Console, Google Analytics, and optional
|
|
42
|
+
research-provider data into work you can inspect and ship. Find technical
|
|
43
|
+
blockers, recover existing demand, research new keywords and competitors,
|
|
44
|
+
review programmatic page patterns, and catch regressions after a release.
|
|
45
45
|
|
|
46
46
|
## Who this is for
|
|
47
47
|
|
|
48
48
|
- People running their own sites who want a clear audit and a ranked list of
|
|
49
49
|
fixes, without learning a heavy dashboard.
|
|
50
|
-
- AI agents that need real crawl, Search Console,
|
|
51
|
-
|
|
50
|
+
- AI agents that need real crawl, Search Console, Google Analytics, keyword,
|
|
51
|
+
result, domain, competitor, and link evidence through MCP and one packaged
|
|
52
|
+
SEO skill instead of screenshots or guesses.
|
|
52
53
|
- Developers who want to embed the same report engine in a script, a CI job, or
|
|
53
54
|
a TypeScript app.
|
|
54
55
|
|
|
@@ -67,6 +68,10 @@ optional Google Analytics property, and a local project profile. Public releases
|
|
|
67
68
|
the shared Google app. If it is unavailable in your build, setup guides you
|
|
68
69
|
through adding your own desktop OAuth client.
|
|
69
70
|
|
|
71
|
+
Research providers are optional and connected separately. Start with the main
|
|
72
|
+
report, then add DataForSEO when keyword estimates, live results, domain
|
|
73
|
+
footprints, ranking pages, or competitor research would change the decision.
|
|
74
|
+
|
|
70
75
|
That is the normal path. The `seo` command is then available in every terminal,
|
|
71
76
|
script, CI job, and local MCP client on the machine.
|
|
72
77
|
|
|
@@ -121,6 +126,13 @@ Use `seo help all` for the longer command list.
|
|
|
121
126
|
to verify the change.
|
|
122
127
|
- Save and compare crawl reports without running the same crawl again.
|
|
123
128
|
- Measure SEO changes with matched before and after Search Console windows.
|
|
129
|
+
- Discover keyword ideas, compare market estimates, inspect current results,
|
|
130
|
+
and keep useful terms in local saved sets.
|
|
131
|
+
- Find recurring search competitors, inspect their ranking pages, and filter
|
|
132
|
+
possible keyword gaps through first-party evidence and existing provider
|
|
133
|
+
ranks.
|
|
134
|
+
- Detect repeated first-party and competitor page patterns, then return bounded
|
|
135
|
+
data-source research briefs before proposing a new programmatic template.
|
|
124
136
|
- Give scripts and agents deterministic JSON, Markdown, stable rule IDs, and a
|
|
125
137
|
compact local MCP surface.
|
|
126
138
|
|
|
@@ -173,6 +185,61 @@ property with `seo start`.
|
|
|
173
185
|
|
|
174
186
|
Run `seo help` for the short path or `seo help all` for the full command list.
|
|
175
187
|
|
|
188
|
+
## Research keywords and competitors
|
|
189
|
+
|
|
190
|
+
Connect DataForSEO when you need independent market estimates or competitor
|
|
191
|
+
evidence. The connection is local and separate from Google sign-in:
|
|
192
|
+
|
|
193
|
+
```sh
|
|
194
|
+
seo providers dataforseo connect
|
|
195
|
+
seo providers dataforseo status --check
|
|
196
|
+
seo providers dataforseo limits
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Credentials use the system keychain when available, with a private local file
|
|
200
|
+
fallback. Paid requests read current endpoint prices, reserve estimated spend
|
|
201
|
+
before acquisition, record actual cost, and use local daily, monthly, request,
|
|
202
|
+
and row limits. Cached results avoid repeating paid work during their retention
|
|
203
|
+
window.
|
|
204
|
+
|
|
205
|
+
Use the existing report catalog. There are no separate provider-named report
|
|
206
|
+
commands:
|
|
207
|
+
|
|
208
|
+
```sh
|
|
209
|
+
seo reports describe keyword-research --json
|
|
210
|
+
seo reports describe domain-overview --json
|
|
211
|
+
seo reports describe competitor-keyword-gap --json
|
|
212
|
+
|
|
213
|
+
seo reports run domain-overview \
|
|
214
|
+
--params '{"domain":"example.com","countryCode":"GB","languageCode":"en"}' \
|
|
215
|
+
--json
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
The research flow now covers:
|
|
219
|
+
|
|
220
|
+
- `keyword-research`, `keyword-metrics`, and `saved-keywords` for discovery,
|
|
221
|
+
estimates, and local persistence;
|
|
222
|
+
- `serp-results` and `rank-tracking` for current or repeated exact market and
|
|
223
|
+
device-specific observations;
|
|
224
|
+
- `domain-overview`, `ranked-keywords`, and `ranking-pages` for country-level
|
|
225
|
+
domain, term, page, and repeated path evidence;
|
|
226
|
+
- `serp-competitors` for finding domains that recur across an explicit keyword
|
|
227
|
+
set without guessing whether they are a business, publisher, directory,
|
|
228
|
+
community, or marketplace;
|
|
229
|
+
- `competitor-keyword-gap` for comparing up to three relevant domains with
|
|
230
|
+
retained Search Console themes, the site's provider-observed rankings, and
|
|
231
|
+
programmatic page patterns.
|
|
232
|
+
|
|
233
|
+
Provider traffic, volume, difficulty, intent, visibility, and ranking history
|
|
234
|
+
are estimates. Search Console remains the evidence for measured search
|
|
235
|
+
performance on a property you own. A live result snapshot remains the evidence
|
|
236
|
+
for one query, market, device, and observation time. Reports can combine these
|
|
237
|
+
sources without blending their meanings or turning a missing row into zero.
|
|
238
|
+
|
|
239
|
+
Read the [research provider guide](https://seoskill.dev/docs/research-providers)
|
|
240
|
+
for setup, costs, caching, country-level limits, competitor classification, and
|
|
241
|
+
programmatic data-source checks.
|
|
242
|
+
|
|
176
243
|
Google Analytics commands sit under their provider namespace. List the properties available
|
|
177
244
|
to the connected account, then run a report with the property you need:
|
|
178
245
|
|
|
@@ -376,8 +443,8 @@ drift.
|
|
|
376
443
|
## Use it with AI agents
|
|
377
444
|
|
|
378
445
|
Your agent carries one short SEO skill, and the CLI and MCP server do the
|
|
379
|
-
heavy lifting. The skill teaches an agent how to discover the
|
|
380
|
-
|
|
446
|
+
heavy lifting. The skill teaches an agent how to discover the full audit and
|
|
447
|
+
research catalog at runtime, and the agent asks the CLI for the detail on each
|
|
381
448
|
tool only when it is about to run it. You get the whole toolkit without fifty
|
|
382
449
|
skill files sitting in the context window on every session.
|
|
383
450
|
|
|
@@ -535,8 +602,10 @@ local technical crawl with no Google connection at all.
|
|
|
535
602
|
### What does it cost?
|
|
536
603
|
|
|
537
604
|
The `seo` package is free and open source under Apache-2.0. It calls Google APIs
|
|
538
|
-
you already have access to, so
|
|
539
|
-
|
|
605
|
+
you already have access to, so the core crawl and Google workflows need no
|
|
606
|
+
separate subscription. Optional research providers can charge for API
|
|
607
|
+
requests. Their estimated and actual costs, local spend limits, cache state,
|
|
608
|
+
and request bounds stay visible in each supported report.
|
|
540
609
|
|
|
541
610
|
### How is this different from a paid SEO tool?
|
|
542
611
|
|
|
@@ -556,6 +625,7 @@ vulnerabilities privately through the process in [SECURITY.md](SECURITY.md).
|
|
|
556
625
|
- [CLI commands](https://seoskill.dev/docs/cli)
|
|
557
626
|
- [Crawler](https://seoskill.dev/docs/crawler)
|
|
558
627
|
- [Reports and data](https://seoskill.dev/docs/reports)
|
|
628
|
+
- [Keyword and competitor research](https://seoskill.dev/docs/research-providers)
|
|
559
629
|
- [MCP and agents](https://seoskill.dev/docs/agents)
|
|
560
630
|
- [AI-search evidence](https://seoskill.dev/docs/ai-search)
|
|
561
631
|
- [Privacy policy](https://seoskill.dev/privacy)
|