vercel-seo-audit 0.3.0 → 0.5.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/README.md CHANGED
@@ -27,14 +27,14 @@ For a deeper dive into why Next.js sites often struggle with indexing, see:
27
27
  ## Quick start
28
28
 
29
29
  ```bash
30
- npx vercel-seo-audit https://yoursite.com
30
+ npx vercel-seo-audit https://yusufhan.dev
31
31
  ```
32
32
 
33
33
  Install globally (optional):
34
34
 
35
35
  ```bash
36
36
  npm i -g vercel-seo-audit
37
- vercel-seo-audit https://yoursite.com
37
+ vercel-seo-audit https://yusufhan.dev
38
38
  ```
39
39
 
40
40
  ---
@@ -67,28 +67,32 @@ SEO Audit Report for https://yusufhan.dev/
67
67
 
68
68
  ```bash
69
69
  # Basic audit
70
- vercel-seo-audit https://yoursite.com
70
+ vercel-seo-audit https://yusufhan.dev
71
71
 
72
72
  # JSON output (pipe to jq, save to file, feed to CI)
73
- vercel-seo-audit https://yoursite.com --json
73
+ vercel-seo-audit https://yusufhan.dev --json
74
74
 
75
75
  # Verbose mode — raw HTTP details for each finding
76
- vercel-seo-audit https://yoursite.com --verbose
76
+ vercel-seo-audit https://yusufhan.dev --verbose
77
77
 
78
78
  # Custom timeout (default: 10s)
79
- vercel-seo-audit https://yoursite.com --timeout 15000
79
+ vercel-seo-audit https://yusufhan.dev --timeout 15000
80
80
 
81
81
  # Check specific pages for redirect issues
82
- vercel-seo-audit https://yoursite.com --pages /docs,/team,/careers
82
+ vercel-seo-audit https://yusufhan.dev --pages /docs,/team,/careers
83
83
 
84
84
  # Audit as Googlebot
85
- vercel-seo-audit https://yoursite.com --user-agent googlebot
85
+ vercel-seo-audit https://yusufhan.dev --user-agent googlebot
86
86
 
87
87
  # Audit as Bingbot
88
- vercel-seo-audit https://yoursite.com --user-agent bingbot
88
+ vercel-seo-audit https://yusufhan.dev --user-agent bingbot
89
89
 
90
90
  # Custom crawler user-agent
91
- vercel-seo-audit https://yoursite.com --user-agent "Googlebot-Image/1.0"
91
+ vercel-seo-audit https://yusufhan.dev --user-agent "Googlebot-Image/1.0"
92
+
93
+ # Write report to file (json or md)
94
+ vercel-seo-audit https://yusufhan.dev --report json
95
+ vercel-seo-audit https://yusufhan.dev --report md
92
96
  ```
93
97
 
94
98
  ---
@@ -162,12 +166,44 @@ Exit codes:
162
166
 
163
167
  ## CI / GitHub Actions
164
168
 
165
- Fail the build only when **errors** exist:
169
+ ### Using the GitHub Action
170
+
171
+ ```yaml
172
+ name: SEO Audit
173
+ on:
174
+ push:
175
+ branches: [main]
176
+
177
+ jobs:
178
+ audit:
179
+ runs-on: ubuntu-latest
180
+ steps:
181
+ - uses: JosephDoUrden/vercel-seo-audit@v1
182
+ with:
183
+ url: https://yusufhan.dev
184
+ strict: true
185
+ report: json
186
+ ```
187
+
188
+ All inputs:
189
+
190
+ | Input | Required | Default | Description |
191
+ |-------|----------|---------|-------------|
192
+ | `url` | yes | — | URL to audit |
193
+ | `strict` | no | `false` | Fail on warnings too |
194
+ | `user-agent` | no | — | `googlebot`, `bingbot`, or custom string |
195
+ | `pages` | no | — | Comma-separated page paths |
196
+ | `report` | no | — | Write report file: `json` or `md` |
197
+ | `timeout` | no | `10000` | Request timeout in ms |
198
+ | `verbose` | no | `false` | Show detailed output |
199
+
200
+ Outputs: `exit-code`, `report-path`
201
+
202
+ ### Using npx directly
166
203
 
167
204
  ```yaml
168
205
  name: SEO Audit
169
206
  on:
170
- workflow_dispatch:
171
207
  push:
172
208
  branches: [main]
173
209
 
@@ -179,8 +215,9 @@ jobs:
179
215
  - uses: actions/setup-node@v4
180
216
  with:
181
217
  node-version: 20
182
- - run: npx vercel-seo-audit https://yoursite.com --json
218
+ - run: npx vercel-seo-audit https://yusufhan.dev --json
183
219
  ```
220
+
184
221
  >[!TIP]
185
222
  >If you want warnings to fail CI too, add a `--strict` or `-S` flag.
186
223
 
@@ -191,8 +228,8 @@ jobs:
191
228
  * [x] ~~`--strict` (warnings fail with exit code 1)~~
192
229
  * [x] ~~`--pages` to customize sampled paths (`/about,/pricing`)~~
193
230
  * [x] ~~`--user-agent` presets (`googlebot`, `bingbot`)~~
194
- * [ ] `--report` to write `report.json` / `report.md`
195
- * [ ] GitHub Action marketplace wrapper
231
+ * [x] ~~`--report` to write `report.json` / `report.md`~~
232
+ * [x] ~~GitHub Action marketplace wrapper~~
196
233
 
197
234
  ---
198
235
 
package/dist/cli.js CHANGED
@@ -1,6 +1,8 @@
1
+ import { writeFileSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
1
3
  import { Command } from 'commander';
2
4
  import { runAudit } from './runner.js';
3
- import { formatReport, formatJson } from './utils/output.js';
5
+ import { formatReport, formatJson, formatMarkdown } from './utils/output.js';
4
6
  import { getExitCode } from './exitCode.js';
5
7
  import { parsePagesFlag } from './utils/parsePagesFlag.js';
6
8
  import { USER_AGENT_PRESETS } from './constants.js';
@@ -8,14 +10,15 @@ const program = new Command();
8
10
  program
9
11
  .name('vercel-seo-audit')
10
12
  .description('Diagnose SEO and indexing issues for Next.js/Vercel websites')
11
- .version('0.3.0')
12
- .argument('<url>', 'URL to audit (e.g. https://example.com)')
13
+ .version('0.5.0')
14
+ .argument('<url>', 'URL to audit (e.g. https://yusufhan.dev)')
13
15
  .option('--json', 'Output results as JSON')
14
16
  .option('--verbose', 'Show detailed information for each finding')
15
17
  .option('-S, --strict', 'Fail on any SEO issues found, including warnings')
16
18
  .option('--timeout <ms>', 'Request timeout in milliseconds', '10000')
17
19
  .option('--pages <paths>', 'Comma-separated page paths to check for redirects (e.g. /about,/pricing)')
18
20
  .option('--user-agent <preset|string>', 'User-Agent for requests: googlebot, bingbot, or a custom string')
21
+ .option('--report <format>', 'Write report to file: json or md')
19
22
  .action(async (url, options) => {
20
23
  const timeout = parseInt(options.timeout, 10);
21
24
  if (isNaN(timeout) || timeout <= 0) {
@@ -41,6 +44,11 @@ program
41
44
  process.exit(2);
42
45
  }
43
46
  }
47
+ // Validate --report format
48
+ if (options.report && options.report !== 'json' && options.report !== 'md') {
49
+ console.error('Error: --report must be "json" or "md"');
50
+ process.exit(2);
51
+ }
44
52
  // Resolve user-agent preset or custom string
45
53
  let userAgent;
46
54
  if (options.userAgent) {
@@ -60,6 +68,14 @@ program
60
68
  else {
61
69
  console.log(formatReport(report, options.verbose ?? false));
62
70
  }
71
+ // Write report file if requested
72
+ if (options.report) {
73
+ const fileName = options.report === 'json' ? 'report.json' : 'report.md';
74
+ const content = options.report === 'json' ? formatJson(report) : formatMarkdown(report);
75
+ const filePath = resolve(process.cwd(), fileName);
76
+ writeFileSync(filePath, content, 'utf-8');
77
+ console.log(`\nReport written to ${fileName}`);
78
+ }
63
79
  // Exit code based on findings
64
80
  const code = getExitCode(report.summary, options.strict ?? false);
65
81
  if (code !== 0 && options.strict && report.summary.warnings > 0) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,kBAAkB,CAAC;KACxB,WAAW,CAAC,8DAA8D,CAAC;KAC3E,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,OAAO,EAAE,0CAA0C,CAAC;KAC7D,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KAC1C,MAAM,CAAC,WAAW,EAAE,4CAA4C,CAAC;KACjE,MAAM,CAAC,cAAc,EAAE,kDAAkD,CAAC;KAC1E,MAAM,CAAC,gBAAgB,EAAE,iCAAiC,EAAE,OAAO,CAAC;KACpE,MAAM,CAAC,iBAAiB,EAAE,0EAA0E,CAAC;KACrG,MAAM,CAAC,8BAA8B,EAAE,iEAAiE,CAAC;KACzG,MAAM,CAAC,mBAAmB,EAAE,kCAAkC,CAAC;KAC/D,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,OAAsI,EAAE,EAAE;IACpK,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,eAAe;IACf,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,EAAE,CAAC;QACnE,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,GAAG,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAA2B,CAAC;IAChC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3E,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,6CAA6C;IAC7C,IAAI,SAA6B,CAAC;IAClC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC9C,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE;YACjC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO;YACP,KAAK;YACL,SAAS;SACV,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,iCAAiC;QACjC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;YACzE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACxF,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;YAClD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,8BAA8B;QAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;QAClE,IAAI,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YAChE,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  export declare const DEFAULT_TIMEOUT = 10000;
2
2
  export declare const MAX_REDIRECTS = 20;
3
- export declare const USER_AGENT = "vercel-seo-audit/0.3.0";
3
+ export declare const USER_AGENT = "vercel-seo-audit/0.5.0";
4
4
  export declare const SITEMAP_SAMPLE_SIZE = 10;
5
5
  export declare const COMMON_PAGES: string[];
6
6
  export declare const USER_AGENT_PRESETS: Record<string, string>;
package/dist/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export const DEFAULT_TIMEOUT = 10_000;
2
2
  export const MAX_REDIRECTS = 20;
3
- export const USER_AGENT = 'vercel-seo-audit/0.3.0';
3
+ export const USER_AGENT = 'vercel-seo-audit/0.5.0';
4
4
  export const SITEMAP_SAMPLE_SIZE = 10;
5
5
  export const COMMON_PAGES = ['/about', '/contact', '/blog', '/pricing'];
6
6
  export const USER_AGENT_PRESETS = {
@@ -1,4 +1,5 @@
1
1
  import type { AuditReport } from '../types.js';
2
2
  export declare function formatReport(report: AuditReport, verbose: boolean): string;
3
3
  export declare function formatJson(report: AuditReport): string;
4
+ export declare function formatMarkdown(report: AuditReport): string;
4
5
  //# sourceMappingURL=output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,WAAW,EAAiB,MAAM,aAAa,CAAC;AAoC5E,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CA0C1E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEtD"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,WAAW,EAAiB,MAAM,aAAa,CAAC;AAoC5E,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CA0C1E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEtD;AAwBD,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CA6C1D"}
@@ -69,4 +69,65 @@ export function formatReport(report, verbose) {
69
69
  export function formatJson(report) {
70
70
  return JSON.stringify(report, null, 2);
71
71
  }
72
+ const severityMdIcons = {
73
+ error: '❌',
74
+ warning: '⚠️',
75
+ info: 'ℹ️',
76
+ pass: '✅',
77
+ };
78
+ function formatFindingMd(finding) {
79
+ const icon = severityMdIcons[finding.severity];
80
+ const lines = [];
81
+ lines.push(`- ${icon} **[${finding.severity.toUpperCase()}]** ${finding.message}`);
82
+ lines.push(` - ${finding.explanation}`);
83
+ lines.push(` - **Fix:** ${finding.suggestion}`);
84
+ if (finding.url) {
85
+ lines.push(` - URL: \`${finding.url}\``);
86
+ }
87
+ return lines.join('\n');
88
+ }
89
+ export function formatMarkdown(report) {
90
+ const lines = [];
91
+ lines.push(`# SEO Audit Report for ${report.url}`);
92
+ lines.push('');
93
+ lines.push(`> Completed in ${report.duration}ms at ${report.timestamp}`);
94
+ lines.push('');
95
+ // Summary
96
+ const { errors, warnings, info, passed } = report.summary;
97
+ lines.push('## Summary');
98
+ lines.push('');
99
+ lines.push('| Severity | Count |');
100
+ lines.push('|----------|-------|');
101
+ if (errors > 0)
102
+ lines.push(`| ❌ Errors | ${errors} |`);
103
+ if (warnings > 0)
104
+ lines.push(`| ⚠️ Warnings | ${warnings} |`);
105
+ if (info > 0)
106
+ lines.push(`| ℹ️ Info | ${info} |`);
107
+ if (passed > 0)
108
+ lines.push(`| ✅ Passed | ${passed} |`);
109
+ lines.push('');
110
+ // Group findings by category
111
+ const allFindings = report.modules.flatMap((m) => m.findings);
112
+ const categories = new Map();
113
+ for (const finding of allFindings) {
114
+ const cat = finding.category;
115
+ if (!categories.has(cat))
116
+ categories.set(cat, []);
117
+ categories.get(cat).push(finding);
118
+ }
119
+ for (const [category, findings] of categories) {
120
+ lines.push(`## ${category.charAt(0).toUpperCase() + category.slice(1)}`);
121
+ lines.push('');
122
+ for (const finding of findings) {
123
+ lines.push(formatFindingMd(finding));
124
+ }
125
+ lines.push('');
126
+ }
127
+ if (allFindings.length === 0) {
128
+ lines.push('**No issues found!**');
129
+ lines.push('');
130
+ }
131
+ return lines.join('\n');
132
+ }
72
133
  //# sourceMappingURL=output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel-seo-audit",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "CLI tool that diagnoses SEO and indexing issues for Next.js/Vercel websites",
5
5
  "type": "module",
6
6
  "bin": {