search-auditor 0.2.0 → 0.2.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/CHANGELOG.md +7 -0
- package/README.md +56 -8
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.2.1](https://github.com/a-bibikov/search-auditor/compare/v0.2.0...v0.2.1) (2026-11-09)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Documentation
|
|
7
|
+
|
|
8
|
+
* report screenshot, examples and the current roadmap ([70435c1](https://github.com/a-bibikov/search-auditor/commit/70435c155a16f8be5e6f744b871bfbc576414426))
|
|
9
|
+
|
|
3
10
|
## [0.2.0](https://github.com/a-bibikov/search-auditor/compare/v0.1.1...v0.2.0) (2026-11-09)
|
|
4
11
|
|
|
5
12
|
|
package/README.md
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# search-auditor
|
|
2
2
|
|
|
3
|
-
**Can Google, Bing and Yandex reach, index and show your site?** A technical SEO audit in one command: status codes, robots.txt, redirects, canonical, sitemap, titles and descriptions, headings, broken links, images, structured data, hreflang, HTTPS.
|
|
3
|
+
**Can Google, Bing and Yandex reach, index and show your site?** A technical SEO audit in one command: status codes, robots.txt, redirects, canonical, sitemap, titles and descriptions, headings, broken links, images, structured data, hreflang, HTTPS. 80 checks, each with what it costs and how to fix it.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
npx search-auditor https://example.com
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
+

|
|
10
|
+
|
|
9
11
|
No sign-up, no API keys. Node.js 22.18+.
|
|
10
12
|
|
|
11
13
|
## AI search
|
|
@@ -120,6 +122,38 @@ Levels: `error` — search engines cannot index the page or index the wrong one;
|
|
|
120
122
|
|
|
121
123
|
The report opens with the score and the number of errors, warnings and notes. Then what to do first: the three changes worth the most, each with what to do, on which pages it was found and why it matters. Then a table per group: every check with ✓ OK, ✖ error, ⚠ warning, ℹ note or – not checked, and what was found. It ends with one table of recommendations in checklist order, group by group: the check, its severity, what to do, and a comment on what was found where. A check that cannot run on a site — hreflang on a site in one language, HTTPS on a local build — is marked «not checked» with the reason, never as passed.
|
|
122
124
|
|
|
125
|
+
```
|
|
126
|
+
### META. Meta tags: how a page looks in search results
|
|
127
|
+
|
|
128
|
+
7 of 9 OK
|
|
129
|
+
|
|
130
|
+
| | Check | Result |
|
|
131
|
+
|-----|--------------------------------------------------------------|----------------------------|
|
|
132
|
+
| ✓ | META-1 Every page has a title of the right length | OK |
|
|
133
|
+
| ℹ | META-2 Every page has a description of the right length | 1 note · 1 of 20 pages |
|
|
134
|
+
| ⚠ | META-3 Titles and descriptions are not repeated across pages | 4 warnings · 4 of 20 pages |
|
|
135
|
+
| ✓ | META-4 One title and one description per page | OK |
|
|
136
|
+
| ✓ | META-5 The title names the page, not a template | OK |
|
|
137
|
+
| ✓ | META-6 The description adds to the title | OK |
|
|
138
|
+
| ✓ | META-7 The page declares its encoding | OK |
|
|
139
|
+
| ✓ | META-8 The snippet is not forbidden | OK |
|
|
140
|
+
| ✓ | META-9 The site has a favicon | OK |
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
With `--json`, every finding reads on its own: what the check is, what was found against which norm, why it is a problem and how to fix it.
|
|
144
|
+
|
|
145
|
+
```json
|
|
146
|
+
{
|
|
147
|
+
"rule": "META-2",
|
|
148
|
+
"level": "info",
|
|
149
|
+
"title": "Every page has a description of the right length",
|
|
150
|
+
"where": "https://albibikov.com/ru/privacy",
|
|
151
|
+
"message": "description of 165 characters, should be 50–160",
|
|
152
|
+
"why": "Without a description search engines pick a random snippet, a long one is cut off mid-sentence, and fewer people click.",
|
|
153
|
+
"fix": "Add `<meta name=\"description\">` of about 50–160 characters: what the page offers and why to open it."
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
123
157
|
**Score:** 100 minus 15 for each check with an error and 5 for each check with a warning; a warning that covers at least half of the audited pages costs 10. A ≥ 90, B ≥ 80, C ≥ 70, D ≥ 60, F below; if fewer than two thirds of the checks could run, the grade is capped at B.
|
|
124
158
|
|
|
125
159
|
## Usage
|
|
@@ -181,15 +215,29 @@ console.log(toMarkdown(report));
|
|
|
181
215
|
|
|
182
216
|
The crawl, the scoring and the report come from [auditor-engine](https://github.com/a-bibikov/auditor-engine). The checks are exported as `seoRules`, with `collect` for the extra requests they need, for your own runner.
|
|
183
217
|
|
|
218
|
+
## Example
|
|
219
|
+
|
|
220
|
+
[albibikov.com](https://albibikov.com), a Next.js site in English and Russian (20 pages, local production build): **95/100 (A)**, 70 of 80 checks run. The connection checks — HTTPS, the certificate, HSTS, the server speed — need the live site and are marked «not checked» on a local build; so are external links when the audit has no internet access.
|
|
221
|
+
|
|
222
|
+
| | Found |
|
|
223
|
+
|---|---|
|
|
224
|
+
| META-3 ⚠ | The same title on `/` and `/cv`, and on `/ru` and `/ru/cv` |
|
|
225
|
+
| META-2 ℹ | A description of 165 characters on `/ru/privacy`, should be 50–160 |
|
|
226
|
+
| DATA-6 ℹ | No WebSite with the site name on the home page |
|
|
227
|
+
|
|
184
228
|
## Roadmap
|
|
185
229
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
- **
|
|
191
|
-
- **
|
|
230
|
+
**PERF. Speed** — page weight, render-blocking scripts and styles, Core Web Vitals from the Chrome UX Report
|
|
231
|
+
|
|
232
|
+
**SOC. Link cards** — Open Graph and Twitter / X cards for every page
|
|
233
|
+
|
|
234
|
+
- **GitHub Action**, like the one of [ai-search-auditor](https://github.com/a-bibikov/ai-search-audit#github-action), with the report in the job summary
|
|
235
|
+
- **CI that reports only new problems,** with a file of accepted exceptions
|
|
236
|
+
- **SARIF output,** so findings show up in GitHub code scanning
|
|
237
|
+
- **HTML report** to share with people who do not read Markdown
|
|
238
|
+
|
|
239
|
+
Ideas are welcome in [issues](https://github.com/a-bibikov/search-auditor/issues); for pull requests see [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
192
240
|
|
|
193
241
|
## License
|
|
194
242
|
|
|
195
|
-
MIT
|
|
243
|
+
MIT © [Aleksandr Bibikov](https://albibikov.com)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "search-auditor",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Technical SEO audit from the command line: indexing, robots.txt, redirects, canonical, sitemap, meta tags, headings, links, images, structured data, hreflang, HTTPS. One score, CI-ready.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"seo audit",
|