aiseo-audit 1.4.2 → 1.4.3
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 +25 -17
- package/dist/cli.js +4 -3
- package/dist/cli.mjs +4 -3
- package/dist/index.js +4 -3
- package/dist/index.mjs +4 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,6 +21,7 @@ Deterministic CLI that audits web pages for **AI search readiness**. Think Light
|
|
|
21
21
|
**AI SEO measures how reusable your content is for generative engines, not traditional search rankings.**
|
|
22
22
|
|
|
23
23
|
- [Quick Start](#quick-start)
|
|
24
|
+
- [CI/CD](#cicd)
|
|
24
25
|
- [CLI Options](#cli-options)
|
|
25
26
|
- [Site-Wide Auditing](#site-wide-auditing)
|
|
26
27
|
- [Local Development](#local-development)
|
|
@@ -51,6 +52,11 @@ aiseo-audit goes deeper:
|
|
|
51
52
|
|
|
52
53
|
## Quick Start
|
|
53
54
|
|
|
55
|
+
```bash
|
|
56
|
+
# Try it instantly — no install required
|
|
57
|
+
npx aiseo-audit https://yoursite.com
|
|
58
|
+
```
|
|
59
|
+
|
|
54
60
|
```bash
|
|
55
61
|
# As a project dependency
|
|
56
62
|
npm install aiseo-audit
|
|
@@ -95,6 +101,25 @@ aiseo-audit https://example.com --user-agent "MyBot/1.0"
|
|
|
95
101
|
aiseo-audit https://example.com --config aiseo.config.json
|
|
96
102
|
```
|
|
97
103
|
|
|
104
|
+
## CI/CD
|
|
105
|
+
|
|
106
|
+
Drop this into any GitHub Actions workflow to gate PRs on AI search readiness:
|
|
107
|
+
|
|
108
|
+
```yaml
|
|
109
|
+
# .github/workflows/aiseo-audit.yml
|
|
110
|
+
name: AI SEO Audit
|
|
111
|
+
on:
|
|
112
|
+
pull_request:
|
|
113
|
+
push:
|
|
114
|
+
branches: [main]
|
|
115
|
+
|
|
116
|
+
jobs:
|
|
117
|
+
audit:
|
|
118
|
+
runs-on: ubuntu-latest
|
|
119
|
+
steps:
|
|
120
|
+
- run: npx aiseo-audit https://yoursite.com --fail-under 70
|
|
121
|
+
```
|
|
122
|
+
|
|
98
123
|
## CLI Options
|
|
99
124
|
|
|
100
125
|
| Option | Description | Default |
|
|
@@ -155,23 +180,6 @@ aiseo-audit --sitemap https://example.com/projects/sitemap.xml --signals-base ht
|
|
|
155
180
|
|
|
156
181
|
Every report format explicitly shows which URL domain signals were fetched from, so there is no guesswork about where `robots.txt`, `llms.txt`, and `llms-full.txt` were checked.
|
|
157
182
|
|
|
158
|
-
## CI/CD
|
|
159
|
-
|
|
160
|
-
```yaml
|
|
161
|
-
# .github/workflows/aiseo-audit.yml
|
|
162
|
-
name: AI SEO Audit
|
|
163
|
-
on:
|
|
164
|
-
pull_request:
|
|
165
|
-
push:
|
|
166
|
-
branches: [main]
|
|
167
|
-
|
|
168
|
-
jobs:
|
|
169
|
-
audit:
|
|
170
|
-
runs-on: ubuntu-latest
|
|
171
|
-
steps:
|
|
172
|
-
- run: npx aiseo-audit https://yoursite.com --fail-under 70
|
|
173
|
-
```
|
|
174
|
-
|
|
175
183
|
## User Agent
|
|
176
184
|
|
|
177
185
|
By default, all HTTP requests (page fetch, `robots.txt`, `llms.txt`) are sent with the header `User-Agent: AISEOAudit/<version>`. This is intentional. If a site blocks unknown bots, that is a meaningful negative signal for AI search readiness, and the audit should surface it as a failing "Fetch Success" score.
|
package/dist/cli.js
CHANGED
|
@@ -28,7 +28,7 @@ var import_zod3 = require("zod");
|
|
|
28
28
|
|
|
29
29
|
// src/modules/analyzer/constants.ts
|
|
30
30
|
var DOMAIN_SIGNAL_TIMEOUT_CAP = 5e3;
|
|
31
|
-
var VERSION = true ? "1.4.
|
|
31
|
+
var VERSION = true ? "1.4.3" : "0.0.0";
|
|
32
32
|
|
|
33
33
|
// src/modules/fetcher/constants.ts
|
|
34
34
|
var MAX_RESPONSE_SIZE = 10 * 1024 * 1024;
|
|
@@ -1136,13 +1136,14 @@ function auditEntityClarity(page) {
|
|
|
1136
1136
|
}
|
|
1137
1137
|
}
|
|
1138
1138
|
const consistencyRatio = keyWords.length > 0 ? topicOverlap / keyWords.length : 0;
|
|
1139
|
-
const consistencyScore = consistencyRatio >= 0.5 ? 25 : consistencyRatio > 0 ? 15 :
|
|
1139
|
+
const consistencyScore = keyWords.length === 0 ? 0 : consistencyRatio >= 0.5 ? 25 : consistencyRatio > 0 ? 15 : 0;
|
|
1140
1140
|
factors.push(
|
|
1141
1141
|
makeFactor(
|
|
1142
1142
|
"Topic Consistency",
|
|
1143
1143
|
consistencyScore,
|
|
1144
1144
|
25,
|
|
1145
|
-
`${topicOverlap}/${keyWords.length} title keywords align with content topics
|
|
1145
|
+
`${topicOverlap}/${keyWords.length} title keywords align with content topics`,
|
|
1146
|
+
keyWords.length === 0 ? "neutral" : void 0
|
|
1146
1147
|
)
|
|
1147
1148
|
);
|
|
1148
1149
|
const wordCount = countWords(text);
|
package/dist/cli.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import { z as z3 } from "zod";
|
|
|
4
4
|
|
|
5
5
|
// src/modules/analyzer/constants.ts
|
|
6
6
|
var DOMAIN_SIGNAL_TIMEOUT_CAP = 5e3;
|
|
7
|
-
var VERSION = true ? "1.4.
|
|
7
|
+
var VERSION = true ? "1.4.3" : "0.0.0";
|
|
8
8
|
|
|
9
9
|
// src/modules/fetcher/constants.ts
|
|
10
10
|
var MAX_RESPONSE_SIZE = 10 * 1024 * 1024;
|
|
@@ -1112,13 +1112,14 @@ function auditEntityClarity(page) {
|
|
|
1112
1112
|
}
|
|
1113
1113
|
}
|
|
1114
1114
|
const consistencyRatio = keyWords.length > 0 ? topicOverlap / keyWords.length : 0;
|
|
1115
|
-
const consistencyScore = consistencyRatio >= 0.5 ? 25 : consistencyRatio > 0 ? 15 :
|
|
1115
|
+
const consistencyScore = keyWords.length === 0 ? 0 : consistencyRatio >= 0.5 ? 25 : consistencyRatio > 0 ? 15 : 0;
|
|
1116
1116
|
factors.push(
|
|
1117
1117
|
makeFactor(
|
|
1118
1118
|
"Topic Consistency",
|
|
1119
1119
|
consistencyScore,
|
|
1120
1120
|
25,
|
|
1121
|
-
`${topicOverlap}/${keyWords.length} title keywords align with content topics
|
|
1121
|
+
`${topicOverlap}/${keyWords.length} title keywords align with content topics`,
|
|
1122
|
+
keyWords.length === 0 ? "neutral" : void 0
|
|
1122
1123
|
)
|
|
1123
1124
|
);
|
|
1124
1125
|
const wordCount = countWords(text);
|
package/dist/index.js
CHANGED
|
@@ -1135,13 +1135,14 @@ function auditEntityClarity(page) {
|
|
|
1135
1135
|
}
|
|
1136
1136
|
}
|
|
1137
1137
|
const consistencyRatio = keyWords.length > 0 ? topicOverlap / keyWords.length : 0;
|
|
1138
|
-
const consistencyScore = consistencyRatio >= 0.5 ? 25 : consistencyRatio > 0 ? 15 :
|
|
1138
|
+
const consistencyScore = keyWords.length === 0 ? 0 : consistencyRatio >= 0.5 ? 25 : consistencyRatio > 0 ? 15 : 0;
|
|
1139
1139
|
factors.push(
|
|
1140
1140
|
makeFactor(
|
|
1141
1141
|
"Topic Consistency",
|
|
1142
1142
|
consistencyScore,
|
|
1143
1143
|
25,
|
|
1144
|
-
`${topicOverlap}/${keyWords.length} title keywords align with content topics
|
|
1144
|
+
`${topicOverlap}/${keyWords.length} title keywords align with content topics`,
|
|
1145
|
+
keyWords.length === 0 ? "neutral" : void 0
|
|
1145
1146
|
)
|
|
1146
1147
|
);
|
|
1147
1148
|
const wordCount = countWords(text);
|
|
@@ -1527,7 +1528,7 @@ var import_zod = require("zod");
|
|
|
1527
1528
|
|
|
1528
1529
|
// src/modules/analyzer/constants.ts
|
|
1529
1530
|
var DOMAIN_SIGNAL_TIMEOUT_CAP = 5e3;
|
|
1530
|
-
var VERSION = true ? "1.4.
|
|
1531
|
+
var VERSION = true ? "1.4.3" : "0.0.0";
|
|
1531
1532
|
|
|
1532
1533
|
// src/modules/fetcher/schema.ts
|
|
1533
1534
|
var FetchOptionsSchema = import_zod.z.object({
|
package/dist/index.mjs
CHANGED
|
@@ -1095,13 +1095,14 @@ function auditEntityClarity(page) {
|
|
|
1095
1095
|
}
|
|
1096
1096
|
}
|
|
1097
1097
|
const consistencyRatio = keyWords.length > 0 ? topicOverlap / keyWords.length : 0;
|
|
1098
|
-
const consistencyScore = consistencyRatio >= 0.5 ? 25 : consistencyRatio > 0 ? 15 :
|
|
1098
|
+
const consistencyScore = keyWords.length === 0 ? 0 : consistencyRatio >= 0.5 ? 25 : consistencyRatio > 0 ? 15 : 0;
|
|
1099
1099
|
factors.push(
|
|
1100
1100
|
makeFactor(
|
|
1101
1101
|
"Topic Consistency",
|
|
1102
1102
|
consistencyScore,
|
|
1103
1103
|
25,
|
|
1104
|
-
`${topicOverlap}/${keyWords.length} title keywords align with content topics
|
|
1104
|
+
`${topicOverlap}/${keyWords.length} title keywords align with content topics`,
|
|
1105
|
+
keyWords.length === 0 ? "neutral" : void 0
|
|
1105
1106
|
)
|
|
1106
1107
|
);
|
|
1107
1108
|
const wordCount = countWords(text);
|
|
@@ -1487,7 +1488,7 @@ import { z } from "zod";
|
|
|
1487
1488
|
|
|
1488
1489
|
// src/modules/analyzer/constants.ts
|
|
1489
1490
|
var DOMAIN_SIGNAL_TIMEOUT_CAP = 5e3;
|
|
1490
|
-
var VERSION = true ? "1.4.
|
|
1491
|
+
var VERSION = true ? "1.4.3" : "0.0.0";
|
|
1491
1492
|
|
|
1492
1493
|
// src/modules/fetcher/schema.ts
|
|
1493
1494
|
var FetchOptionsSchema = z.object({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aiseo-audit",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.3",
|
|
4
4
|
"description": "Lighthouse for AI SEO. Audit any webpage for AI search readiness. 7 categories, 30+ factors, research-backed scoring. Deterministic, engine-agnostic, zero API keys.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|