seostudio 0.0.0-stage → 0.1.0
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/LICENSE +21 -0
- package/README.md +171 -2
- package/dist/amp-validator.generated-K62PY2JS.js +2 -0
- package/dist/chunk-MIDGTXWN.js +2 -0
- package/dist/chunk-ZSGPE42X.js +302 -0
- package/dist/cli.js +96 -0
- package/dist/en-gb.generated-4SHKALDV.js +2 -0
- package/dist/en-us.generated-EECGN55L.js +2 -0
- package/dist/es.generated-YFXS6GTI.js +2 -0
- package/dist/fr.generated-X6TX6OOV.js +2 -0
- package/dist/nl.generated-SIU4DSCB.js +2 -0
- package/dist/reader-OCU6BXTX.js +2 -0
- package/package.json +33 -5
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Digital Front LLP
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,172 @@
|
|
|
1
|
-
#
|
|
1
|
+
# seostudio
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A free SEO site audit from your terminal, from [SEOStudio](https://seostudio.com). No account needed.
|
|
4
|
+
|
|
5
|
+
It crawls your site from your computer and checks it: broken links and redirects, titles and
|
|
6
|
+
descriptions, headings, thin pages, indexability, canonical tags, structured data, images, speed
|
|
7
|
+
signals and more. You get a short summary in the terminal and a full report as HTML, JSON or CSV.
|
|
8
|
+
|
|
9
|
+
With an SEOStudio account it can also send its crawls to your project, give your AI agent one MCP
|
|
10
|
+
server for the audit and your SEOStudio tools, and run your scheduled crawls on your own server.
|
|
11
|
+
|
|
12
|
+
**Privacy:** the audit runs on your computer. It sends nothing anywhere except the requests to the
|
|
13
|
+
site it crawls. The CLI collects no usage data.
|
|
14
|
+
|
|
15
|
+
## Install
|
|
16
|
+
|
|
17
|
+
You need Node.js 22.19 or later.
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx seostudio audit example.com
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Or install it once:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install --global seostudio
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 1. `seostudio audit`: audit a site
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
seostudio audit example.com
|
|
33
|
+
seostudio audit https://example.com/blog/ --max-pages 200 --format csv --out blog.csv
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
| Option | What it does |
|
|
37
|
+
| --- | --- |
|
|
38
|
+
| `--max-pages N` | The most pages to read (default 500, up to 10,000). |
|
|
39
|
+
| `--format html\|json\|csv` | The report format (default `html`). JSON follows a versioned schema (`schemaVersion: 1`). |
|
|
40
|
+
| `--out file` | Where to write the report (default `seostudio-audit-<site>.<format>`). |
|
|
41
|
+
| `--allow-private` | Let the crawl read the site you named on a private or local address, such as a staging site on your own network. Every other host stays refused. Off by default. |
|
|
42
|
+
|
|
43
|
+
The summary lists the issues by severity, the issues that touch the most pages, and **thin page
|
|
44
|
+
candidates**: pages with little text. The crawl alone cannot tell whether a thin page gets search
|
|
45
|
+
traffic, so check Search Console before you merge or remove one. (SEOStudio does this check for you
|
|
46
|
+
with your Search Console data.)
|
|
47
|
+
|
|
48
|
+
The terminal audit skips the TLS certificate check (SEOStudio's servers run it), so its health score
|
|
49
|
+
can differ by about a point from the one in your dashboard.
|
|
50
|
+
|
|
51
|
+
The crawler is polite: it obeys robots.txt, waits between requests, and never reads private,
|
|
52
|
+
loopback or cloud metadata addresses, and checks every redirect again (unless you pass
|
|
53
|
+
`--allow-private` for your own staging site).
|
|
54
|
+
|
|
55
|
+
### Save a crawl to your project
|
|
56
|
+
|
|
57
|
+
With an SEOStudio API key, `--save` crawls from your computer and stores the result in your
|
|
58
|
+
project, exactly like a crawl from the SEOStudio desktop app. The project's site audit, history and
|
|
59
|
+
recommendations update as after any other crawl.
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
seostudio login
|
|
63
|
+
seostudio audit example.com --save
|
|
64
|
+
seostudio audit example.com --save --project <project id>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
`--project` is needed only when more than one of your projects is the same site. A site behind a
|
|
68
|
+
login (saved sign-in headers or basic auth) is crawled by SEOStudio's servers or the desktop app,
|
|
69
|
+
not by the CLI.
|
|
70
|
+
|
|
71
|
+
## 2. `seostudio login`: save your API key
|
|
72
|
+
|
|
73
|
+
Create an API key with **Allow MCP access** at
|
|
74
|
+
[seostudio.com/settings/developers](https://seostudio.com/settings/developers), then:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
seostudio login
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The key is read from a hidden prompt (or from stdin), checked with SEOStudio, and saved in your
|
|
81
|
+
user's config folder, readable by you only. `seostudio logout` removes it. You can also set the
|
|
82
|
+
`SEOSTUDIO_API_KEY` environment variable instead; it is used before the saved key. The CLI never
|
|
83
|
+
prints or logs the key.
|
|
84
|
+
|
|
85
|
+
## 3. `seostudio mcp`: one MCP server for your AI agent
|
|
86
|
+
|
|
87
|
+
`seostudio mcp` runs a local MCP server over stdio. It always has the audit tools, free and with no
|
|
88
|
+
account:
|
|
89
|
+
|
|
90
|
+
| Tool | What it does |
|
|
91
|
+
| --- | --- |
|
|
92
|
+
| `local_audit_run` | Crawl a site from your computer and audit it. |
|
|
93
|
+
| `local_audit_get` | Read a report: the summary, or the whole report as JSON, CSV or HTML (or write it to a file). |
|
|
94
|
+
| `local_audit_issues_list` | List a report's issues by severity, check or page. |
|
|
95
|
+
|
|
96
|
+
With an API key (saved with `seostudio login` or in `SEOSTUDIO_API_KEY`), it also serves every
|
|
97
|
+
SEOStudio tool of your account, so one connector covers both.
|
|
98
|
+
|
|
99
|
+
**Claude Code:**
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
claude mcp add --scope user seostudio -- npx -y seostudio mcp
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Claude Desktop** (`claude_desktop_config.json`):
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"mcpServers": {
|
|
110
|
+
"seostudio": { "command": "npx", "args": ["-y", "seostudio", "mcp"] }
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Codex:**
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
codex mcp add seostudio -- npx -y seostudio mcp
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Cursor** (`~/.cursor/mcp.json`):
|
|
122
|
+
|
|
123
|
+
```json
|
|
124
|
+
{
|
|
125
|
+
"mcpServers": {
|
|
126
|
+
"seostudio": { "command": "npx", "args": ["-y", "seostudio", "mcp"] }
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
To pass the key through the app instead of `seostudio login`, add
|
|
132
|
+
`"env": { "SEOSTUDIO_API_KEY": "<your key>" }` next to `"args"`. Keep the key in your app's own
|
|
133
|
+
config, never in a repository.
|
|
134
|
+
|
|
135
|
+
## 4. `seostudio agent`: crawl from your own server
|
|
136
|
+
|
|
137
|
+
SEOStudio crawls your sites from its own servers every day. You can run those scheduled crawls on
|
|
138
|
+
your own server instead, for example when your site only lets your own IP addresses in:
|
|
139
|
+
|
|
140
|
+
1. In SEOStudio, open the site audit's settings and switch on **Run on your own server** (under
|
|
141
|
+
Scheduled crawls). Your agent can do it too: `seo_site_audit_update` with
|
|
142
|
+
`settings.runner: "own_server"`.
|
|
143
|
+
2. Run the agent on your server with an API key and the projects it crawls:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
SEOSTUDIO_API_KEY=<your key> npx seostudio agent --project <project id>
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Every 15 minutes (`--interval` to change it) the agent asks SEOStudio which of the named projects
|
|
150
|
+
are due and crawls them from your server. `--once` runs one pass and stops, for a cron job. The
|
|
151
|
+
agent crawls only the projects you name with `--project` (repeat it) or `SEOSTUDIO_PROJECTS`
|
|
152
|
+
(comma separated).
|
|
153
|
+
|
|
154
|
+
### Docker
|
|
155
|
+
|
|
156
|
+
The `Dockerfile` and `compose.example.yaml` in this folder run the agent in a small container as a
|
|
157
|
+
non-root user. Put the key and the projects in a `.env` file next to the compose file:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
SEOSTUDIO_API_KEY=<your key>
|
|
161
|
+
SEOSTUDIO_PROJECTS=<project id>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Then:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
docker compose -f compose.example.yaml up -d --build
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## License
|
|
171
|
+
|
|
172
|
+
MIT
|