seo 0.2.8 → 0.2.10
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/PRIVACY.md +35 -11
- package/README.md +34 -4
- package/dist/cli.js +104 -93
- package/dist/cli.js.map +1 -1
- package/dist/{dist-DkWLBABR.js → dist-CBY8QOnv.js} +1 -1
- package/dist/dist-w2XtKwjW.js +651 -0
- package/dist/dist-w2XtKwjW.js.map +1 -0
- package/dist/index.d.ts +2746 -52
- package/dist/index.js +2571 -726
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +25 -4
- package/dist/mcp.js +2778 -742
- package/dist/mcp.js.map +1 -1
- package/dist/{package-BDez60C3.js → package-92W1Zc-o.js} +2 -2
- package/dist/{package-BDez60C3.js.map → package-92W1Zc-o.js.map} +1 -1
- package/package.json +3 -3
- package/skills/seo/SKILL.md +31 -5
- package/dist/dist-B8eKKp3B.js +0 -560
- package/dist/dist-B8eKKp3B.js.map +0 -1
package/PRIVACY.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Privacy policy
|
|
2
2
|
|
|
3
|
-
Last updated:
|
|
3
|
+
Last updated: 18 July 2026
|
|
4
4
|
|
|
5
5
|
This policy covers the official `seo` command-line tool, library, MCP server,
|
|
6
6
|
and the seoskill.dev website.
|
|
@@ -34,18 +34,46 @@ The use of information received from Google APIs follows the [Google API
|
|
|
34
34
|
Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy),
|
|
35
35
|
including its Limited Use requirements.
|
|
36
36
|
|
|
37
|
-
##
|
|
37
|
+
## How Google data is protected
|
|
38
38
|
|
|
39
|
-
The software stores project profiles, settings, OAuth tokens,
|
|
40
|
-
saved reports in local user directories.
|
|
41
|
-
|
|
39
|
+
The software stores project profiles, settings, OAuth tokens, cached API
|
|
40
|
+
responses, logs, and saved reports in local user directories. It does not send
|
|
41
|
+
Google user data to a hosted SEO account or database. Requests go directly from
|
|
42
|
+
your machine to Google APIs over HTTPS.
|
|
42
43
|
|
|
43
44
|
OAuth tokens use the operating system keychain when that option is enabled.
|
|
44
45
|
The fallback token file and any bring-your-own OAuth client file are written
|
|
45
|
-
with user-only file permissions.
|
|
46
|
+
with user-only file permissions. Config, cache, and log directories are also
|
|
47
|
+
created with user-only permissions on supported systems. `seo privacy` prints
|
|
48
|
+
the relevant local paths and file permissions so you can inspect them.
|
|
49
|
+
|
|
50
|
+
The local cache is not a substitute for device security or disk encryption. A
|
|
51
|
+
person or process with access to your operating system account may be able to
|
|
52
|
+
read local reports and caches. You are responsible for the security of your
|
|
46
53
|
device, backups, shell history, exported reports, and any environment variables
|
|
47
54
|
you create.
|
|
48
55
|
|
|
56
|
+
## How long Google data is kept
|
|
57
|
+
|
|
58
|
+
OAuth tokens remain on your machine until you run `seo auth logout` or
|
|
59
|
+
`seo reset --yes`. Revoking SEO Skill from your Google Account invalidates the
|
|
60
|
+
grant. You should still run `seo auth logout` if you also want to remove the
|
|
61
|
+
local token record.
|
|
62
|
+
|
|
63
|
+
Google Analytics and Search Console API responses are cached locally so repeat
|
|
64
|
+
commands do not make the same request unnecessarily. A cached response is
|
|
65
|
+
eligible for reuse for up to 24 hours. Expired cache rows are removed during
|
|
66
|
+
automatic cache maintenance, which also removes cache rows older than 30 days
|
|
67
|
+
and enforces local size limits. On a machine where the command is no longer
|
|
68
|
+
run, expired rows may remain in the local cache file until you delete them.
|
|
69
|
+
|
|
70
|
+
Run `seo cache clear --provider google-analytics` to remove cached Google
|
|
71
|
+
Analytics responses immediately. Run `seo cache clear --provider gsc` to do
|
|
72
|
+
the same for Search Console. Project profiles and reports that you deliberately
|
|
73
|
+
save remain until you delete them with the relevant command or run
|
|
74
|
+
`seo reset --yes`. The reset command removes all configuration, tokens, caches,
|
|
75
|
+
logs, and saved data managed by the software.
|
|
76
|
+
|
|
49
77
|
## Network requests
|
|
50
78
|
|
|
51
79
|
Commands connect directly from your machine to the services needed for the
|
|
@@ -114,11 +142,7 @@ ask it to inspect.
|
|
|
114
142
|
No local report is shared with another person or service unless you export,
|
|
115
143
|
copy, publish, or transmit it yourself.
|
|
116
144
|
|
|
117
|
-
## Removing
|
|
118
|
-
|
|
119
|
-
`seo auth logout` removes locally stored Google tokens. `seo reset --yes`
|
|
120
|
-
removes local SEO configuration, tokens, caches, logs, and saved data managed by
|
|
121
|
-
the tool.
|
|
145
|
+
## Removing Google access
|
|
122
146
|
|
|
123
147
|
You can also revoke the app from your [Google Account connections](https://myaccount.google.com/connections).
|
|
124
148
|
Deleting local files does not delete data held by Google, npm, GitHub, a site
|
package/README.md
CHANGED
|
@@ -77,7 +77,7 @@ technical report before connecting Google.
|
|
|
77
77
|
Running `seo help` shows the shape of the tool:
|
|
78
78
|
|
|
79
79
|
```txt
|
|
80
|
-
seo v0.2.
|
|
80
|
+
seo v0.2.10
|
|
81
81
|
|
|
82
82
|
Run SEO audits, find what needs fixing, and ship the changes with your agent.
|
|
83
83
|
|
|
@@ -183,7 +183,21 @@ seo analytics google report --property 123456789 --dimensions landingPage --metr
|
|
|
183
183
|
|
|
184
184
|
## Crawl a site
|
|
185
185
|
|
|
186
|
-
|
|
186
|
+
For a large or unfamiliar site, start with the sitemap health pass:
|
|
187
|
+
|
|
188
|
+
```sh
|
|
189
|
+
seo crawl --sitemap-url https://example.com/sitemap.xml --health --format pretty
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
This reads the sitemap, then checks each listed URL for status, redirects,
|
|
193
|
+
robots decisions, network failures, and access blocks. It does not parse or
|
|
194
|
+
render page bodies, join Google data, check external links, or write page and
|
|
195
|
+
robots responses to the local cache. Requests begin one at a time and increase
|
|
196
|
+
only after clean responses.
|
|
197
|
+
|
|
198
|
+
Run the full crawl second when the health evidence points to a problem, or when
|
|
199
|
+
you need metadata, canonicals, indexability, links, structured data, or page
|
|
200
|
+
content:
|
|
187
201
|
|
|
188
202
|
```sh
|
|
189
203
|
seo crawl https://example.com --format pretty
|
|
@@ -199,7 +213,15 @@ seo crawl-reports --compare latest --against previous
|
|
|
199
213
|
```
|
|
200
214
|
|
|
201
215
|
Useful crawl controls include `--max-pages`, `--max-depth`, `--include`,
|
|
202
|
-
`--exclude`, `--no-sitemap`, `--no-external`, and `--fail-on` for CI.
|
|
216
|
+
`--exclude`, `--no-sitemap`, `--no-external`, and `--fail-on` for CI. Every
|
|
217
|
+
request uses the stable versioned identity
|
|
218
|
+
`SEO-Skill/<version> (+https://seoskill.dev)`.
|
|
219
|
+
|
|
220
|
+
If a site denies or challenges that identity, the report keeps the HTTP status,
|
|
221
|
+
provider indicators, request ID when available, and practical access guidance.
|
|
222
|
+
Do not allow requests based on User-Agent alone because it can be spoofed.
|
|
223
|
+
Scope any temporary exception to the audit machine source IP, required host or
|
|
224
|
+
paths, and the exact blocking rule.
|
|
203
225
|
|
|
204
226
|
## Use it in CI and scripts
|
|
205
227
|
|
|
@@ -208,8 +230,8 @@ runs.
|
|
|
208
230
|
|
|
209
231
|
```sh
|
|
210
232
|
seo report --project example --json
|
|
233
|
+
seo crawl --sitemap-url https://example.com/sitemap.xml --health --format junit --output sitemap-health.xml --fail-on high
|
|
211
234
|
seo crawl https://example.com --json --output crawl.json
|
|
212
|
-
seo crawl https://example.com --fail-on high --json
|
|
213
235
|
```
|
|
214
236
|
|
|
215
237
|
Reports keep observed data, derived findings, skipped sections, limits, and
|
|
@@ -343,6 +365,13 @@ const page = await auditPage({
|
|
|
343
365
|
url: 'https://example.com/pricing',
|
|
344
366
|
})
|
|
345
367
|
|
|
368
|
+
const health = await crawlSite({
|
|
369
|
+
url: 'https://example.com',
|
|
370
|
+
mode: 'sitemap',
|
|
371
|
+
strategy: 'health',
|
|
372
|
+
sitemapUrl: 'https://example.com/sitemap.xml',
|
|
373
|
+
})
|
|
374
|
+
|
|
346
375
|
const crawl = await crawlSite({
|
|
347
376
|
url: 'https://example.com',
|
|
348
377
|
maxPages: 100,
|
|
@@ -350,6 +379,7 @@ const crawl = await crawlSite({
|
|
|
350
379
|
})
|
|
351
380
|
|
|
352
381
|
console.log(page.issues)
|
|
382
|
+
console.log(health.summary, health.access)
|
|
353
383
|
console.log(crawl.summary, crawl.issueGroups)
|
|
354
384
|
```
|
|
355
385
|
|