aiseo-audit 1.3.0 → 1.4.1

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 CHANGED
@@ -5,7 +5,7 @@
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-7EB6D7.svg)](https://opensource.org/licenses/MIT)
6
6
  [![Node.js](https://img.shields.io/badge/node-%3E%3D20-7EB6D7.svg)](https://nodejs.org)
7
7
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-7EB6D7?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
8
- [![Tests](https://img.shields.io/badge/tests-238%20passed-8FBC8F)](https://github.com/agencyenterprise/aiseo-audit)
8
+ [![Tests](https://img.shields.io/badge/tests-259%20passed-8FBC8F)](https://github.com/agencyenterprise/aiseo-audit)
9
9
  [![Coverage](https://img.shields.io/codecov/c/github/agencyenterprise/aiseo-audit?color=8FBC8F&label=coverage)](https://codecov.io/gh/agencyenterprise/aiseo-audit)
10
10
 
11
11
  <div align="center">
@@ -22,6 +22,7 @@ Deterministic CLI that audits web pages for **AI search readiness**. Think Light
22
22
 
23
23
  - [Quick Start](#quick-start)
24
24
  - [CLI Options](#cli-options)
25
+ - [Site-Wide Auditing](#site-wide-auditing)
25
26
  - [Local Development](#local-development)
26
27
  - [Audit Categories](#audit-categories)
27
28
  - [Programmatic API](#programmatic-api)
@@ -96,19 +97,63 @@ aiseo-audit https://example.com --config aiseo.config.json
96
97
 
97
98
  ## CLI Options
98
99
 
99
- | Option | Description | Default |
100
- | ------------------- | ------------------------------------- | ---------------------- |
101
- | `<url>` | URL to audit (required) | - |
102
- | `--json` | Output as JSON | - |
103
- | `--md` | Output as Markdown | - |
104
- | `--html` | Output as HTML | - |
105
- | `--out <path>` | Write rendered output to a file | - |
106
- | `--fail-under <n>` | Exit with code 1 if score < threshold | - |
107
- | `--timeout <ms>` | Request timeout in ms | `45000` |
108
- | `--user-agent <ua>` | Custom User-Agent string | `AISEOAudit/<version>` |
109
- | `--config <path>` | Path to config file | - |
110
-
111
- If no output flag is given, the default is `pretty` (color-coded terminal output). The default format can also be set in the config file.
100
+ | Option | Description | Default |
101
+ | ---------------------- | --------------------------------------------------------------------------- | --------------------------------------------- |
102
+ | `[url]` | URL to audit | - |
103
+ | `--sitemap <url>` | Audit all URLs in a sitemap.xml | - |
104
+ | `--signals-base <url>` | Base URL to fetch domain signals from (robots.txt, llms.txt, llms-full.txt) | Directory of the URL or sitemap being audited |
105
+ | `--json` | Output as JSON | - |
106
+ | `--md` | Output as Markdown | - |
107
+ | `--html` | Output as HTML | - |
108
+ | `--out <path>` | Write rendered output to a file | - |
109
+ | `--fail-under <n>` | Exit with code 1 if score < threshold | - |
110
+ | `--timeout <ms>` | Request timeout in ms | `45000` |
111
+ | `--user-agent <ua>` | Custom User-Agent string | `AISEOAudit/<version>` |
112
+ | `--config <path>` | Path to config file | - |
113
+
114
+ Either `[url]` or `--sitemap` must be provided, but not both. If no output flag is given, the default is `pretty` (color-coded terminal output). The default format can also be set in the config file.
115
+
116
+ ## Site-Wide Auditing
117
+
118
+ Use `--sitemap` to audit every URL in a `sitemap.xml`. Domain signals (`robots.txt`, `llms.txt`, `llms-full.txt`) are fetched once and shared across all URL audits — not re-fetched per page.
119
+
120
+ By default, domain signals are fetched from the directory that contains the sitemap file. For example, if your sitemap is at `https://example.com/projects/sitemap.xml`, signals are fetched from `https://example.com/projects/` — so the tool checks `https://example.com/projects/robots.txt`, `https://example.com/projects/llms.txt`, and `https://example.com/projects/llms-full.txt`. If your signals live at the domain root instead, use `--signals-base` to specify the correct location explicitly.
121
+
122
+ ```bash
123
+ # Audit all URLs in a sitemap
124
+ aiseo-audit --sitemap https://example.com/sitemap.xml
125
+
126
+ # With HTML output
127
+ aiseo-audit --sitemap https://example.com/sitemap.xml --html --out report.html
128
+
129
+ # Override where domain signals are fetched from
130
+ aiseo-audit --sitemap https://example.com/projects/sitemap.xml --signals-base https://example.com
131
+
132
+ # Fail if average score across all URLs is below threshold
133
+ aiseo-audit --sitemap https://example.com/sitemap.xml --fail-under 70
134
+ ```
135
+
136
+ The sitemap report includes:
137
+
138
+ - **Summary**: average score, grade, total/succeeded/failed URL counts
139
+ - **Site-wide category averages**: identify which audit categories are weakest across your whole site
140
+ - **Per-URL results**: individual score, grade, and top recommendation for each URL
141
+
142
+ Sitemap index files (sitemaps that reference other sitemaps) are supported — all child sitemaps are fetched and flattened automatically.
143
+
144
+ ### `--signals-base`
145
+
146
+ By default, domain signals are fetched from the directory containing the page or sitemap being audited — not necessarily the domain root. Use `--signals-base` to explicitly set where `robots.txt`, `llms.txt`, and `llms-full.txt` are fetched from:
147
+
148
+ ```bash
149
+ # Single URL: fetch signals from a specific base
150
+ aiseo-audit https://example.com/projects/page --signals-base https://example.com
151
+
152
+ # Sitemap: same override applies to all URLs in the sitemap
153
+ aiseo-audit --sitemap https://example.com/projects/sitemap.xml --signals-base https://example.com
154
+ ```
155
+
156
+ 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.
112
157
 
113
158
  ## CI/CD
114
159