aeoptimize 0.5.2 → 0.6.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/.claude-plugin/marketplace.json +5 -5
- package/.claude-plugin/plugin.json +4 -4
- package/CHANGELOG.md +27 -0
- package/CONTRIBUTING.md +37 -0
- package/README.md +88 -119
- package/ROADMAP.md +31 -0
- package/SECURITY.md +15 -0
- package/agents/aeo-ai-scorer.md +10 -39
- package/agents/aeo-analyzer.md +9 -55
- package/dist/cli/index.js +19 -19
- package/dist/cli/index.js.map +1 -1
- package/dist/core/ai-prompt.js +8 -6
- package/dist/core/ai-prompt.js.map +1 -1
- package/dist/core/generator.js +17 -47
- package/dist/core/generator.js.map +1 -1
- package/dist/core/merger.js +2 -2
- package/dist/core/merger.js.map +1 -1
- package/dist/core/rules.js +92 -154
- package/dist/core/rules.js.map +1 -1
- package/dist/core/scanner.js +2 -20
- package/dist/core/scanner.js.map +1 -1
- package/dist/plugins/next.js +2 -2
- package/dist/plugins/next.js.map +1 -1
- package/dist/plugins/vite.js +2 -2
- package/dist/plugins/vite.js.map +1 -1
- package/docs/methodology.md +78 -0
- package/docs/release-v0.6.md +72 -0
- package/examples/github-action-sample/.github/workflows/aeoptimize.yml +18 -0
- package/examples/github-action-sample/README.md +9 -0
- package/examples/github-action-sample/site/index.html +38 -0
- package/fixtures/v0.6/rule-corpus.ts +314 -0
- package/package.json +26 -12
- package/scripts/verify-release-v0.6.sh +172 -0
- package/skills/aeo-generate/SKILL.md +21 -39
- package/skills/aeo-scan/SKILL.md +17 -64
- package/skills/aeo-transform/SKILL.md +20 -72
package/dist/core/rules.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
const headingHierarchy = {
|
|
3
3
|
id: 'heading-hierarchy',
|
|
4
4
|
dimension: 'structure',
|
|
5
|
-
weight:
|
|
5
|
+
weight: 10,
|
|
6
6
|
evaluate(doc) {
|
|
7
7
|
const issues = [];
|
|
8
8
|
const suggestions = [];
|
|
@@ -11,27 +11,19 @@ const headingHierarchy = {
|
|
|
11
11
|
issues.push({
|
|
12
12
|
dimension: 'structure',
|
|
13
13
|
severity: 'critical',
|
|
14
|
-
message: 'No headings found.
|
|
14
|
+
message: 'No headings found. Descriptive headings help readers and parsers understand the page structure.',
|
|
15
15
|
});
|
|
16
|
-
return { score: 0, maxScore:
|
|
16
|
+
return { score: 0, maxScore: 10, issues, suggestions };
|
|
17
17
|
}
|
|
18
|
-
let score =
|
|
19
|
-
//
|
|
18
|
+
let score = 10;
|
|
19
|
+
// A clear main heading is useful, but multiple H1 elements are not an automatic SEO error.
|
|
20
20
|
const h1s = headings.filter((h) => h.level === 1);
|
|
21
21
|
if (h1s.length === 0) {
|
|
22
|
-
score -= 3;
|
|
23
|
-
issues.push({
|
|
24
|
-
dimension: 'structure',
|
|
25
|
-
severity: 'warning',
|
|
26
|
-
message: 'No H1 heading found. Every page should have exactly one H1.',
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
else if (h1s.length > 1) {
|
|
30
22
|
score -= 2;
|
|
31
23
|
issues.push({
|
|
32
24
|
dimension: 'structure',
|
|
33
25
|
severity: 'warning',
|
|
34
|
-
message:
|
|
26
|
+
message: 'No H1 heading found. Add a descriptive main heading when the page does not expose an equivalent primary title.',
|
|
35
27
|
});
|
|
36
28
|
}
|
|
37
29
|
// Check for skipped levels (e.g., H1 -> H3)
|
|
@@ -45,7 +37,7 @@ const headingHierarchy = {
|
|
|
45
37
|
issues.push({
|
|
46
38
|
dimension: 'structure',
|
|
47
39
|
severity: 'warning',
|
|
48
|
-
message: `Heading level skipped: H${prev} → H${curr}.
|
|
40
|
+
message: `Heading level skipped: H${prev} → H${curr}. Review whether the document outline still communicates the intended hierarchy.`,
|
|
49
41
|
});
|
|
50
42
|
}
|
|
51
43
|
}
|
|
@@ -60,32 +52,32 @@ const headingHierarchy = {
|
|
|
60
52
|
dimension: 'structure',
|
|
61
53
|
action: 'Add more headings to break up long content',
|
|
62
54
|
impact: 'medium',
|
|
63
|
-
detail: `${wordCount} words with only ${headings.length} headings.
|
|
55
|
+
detail: `${wordCount} words with only ${headings.length} headings. Add sections where they improve navigation; no fixed heading-to-word ratio is required.`,
|
|
64
56
|
});
|
|
65
57
|
}
|
|
66
|
-
return { score: Math.max(0, score), maxScore:
|
|
58
|
+
return { score: Math.max(0, score), maxScore: 10, issues, suggestions };
|
|
67
59
|
},
|
|
68
60
|
};
|
|
69
61
|
const paragraphLength = {
|
|
70
62
|
id: 'paragraph-length',
|
|
71
63
|
dimension: 'structure',
|
|
72
|
-
weight:
|
|
64
|
+
weight: 8,
|
|
73
65
|
evaluate(doc) {
|
|
74
66
|
const issues = [];
|
|
75
67
|
const suggestions = [];
|
|
76
68
|
const { paragraphs } = doc;
|
|
77
69
|
if (paragraphs.length === 0) {
|
|
78
|
-
return { score: 0, maxScore:
|
|
70
|
+
return { score: 0, maxScore: 8, issues: [{ dimension: 'structure', severity: 'warning', message: 'No paragraphs detected.' }], suggestions };
|
|
79
71
|
}
|
|
80
72
|
const longParagraphs = paragraphs.filter((p) => p.split(/\s+/).length > 150);
|
|
81
73
|
const ratio = longParagraphs.length / paragraphs.length;
|
|
82
|
-
let score =
|
|
74
|
+
let score = 8;
|
|
83
75
|
if (ratio > 0.5) {
|
|
84
76
|
score -= 5;
|
|
85
77
|
issues.push({
|
|
86
78
|
dimension: 'structure',
|
|
87
79
|
severity: 'critical',
|
|
88
|
-
message: `${longParagraphs.length}/${paragraphs.length} paragraphs exceed
|
|
80
|
+
message: `${longParagraphs.length}/${paragraphs.length} paragraphs exceed the configured 150-word readability heuristic.`,
|
|
89
81
|
});
|
|
90
82
|
}
|
|
91
83
|
else if (ratio > 0.2) {
|
|
@@ -93,74 +85,48 @@ const paragraphLength = {
|
|
|
93
85
|
issues.push({
|
|
94
86
|
dimension: 'structure',
|
|
95
87
|
severity: 'warning',
|
|
96
|
-
message: `${longParagraphs.length} paragraphs exceed
|
|
88
|
+
message: `${longParagraphs.length} paragraphs exceed the configured 150-word readability heuristic.`,
|
|
97
89
|
});
|
|
98
90
|
}
|
|
99
91
|
if (longParagraphs.length > 0) {
|
|
100
92
|
suggestions.push({
|
|
101
93
|
dimension: 'structure',
|
|
102
|
-
action: '
|
|
94
|
+
action: 'Review long paragraphs for readability',
|
|
103
95
|
impact: 'high',
|
|
104
|
-
detail: '
|
|
96
|
+
detail: 'Split only where it improves comprehension. Paragraph length is a configurable heuristic, not a ranking or citation factor.',
|
|
105
97
|
});
|
|
106
98
|
}
|
|
107
|
-
return { score: Math.max(0, score), maxScore:
|
|
99
|
+
return { score: Math.max(0, score), maxScore: 8, issues, suggestions };
|
|
108
100
|
},
|
|
109
101
|
};
|
|
110
102
|
const faqPresence = {
|
|
111
103
|
id: 'faq-presence',
|
|
112
104
|
dimension: 'structure',
|
|
113
|
-
weight:
|
|
114
|
-
evaluate(
|
|
115
|
-
|
|
116
|
-
const suggestions = [];
|
|
117
|
-
const hasFaqHeading = doc.headings.some((h) => /faq|frequently asked|common questions/i.test(h.text));
|
|
118
|
-
const hasFaqSchema = doc.jsonLd.some((ld) => ld['@type'] === 'FAQPage');
|
|
119
|
-
const hasQuestionHeadings = doc.headings.filter((h) => h.text.endsWith('?')).length >= 2;
|
|
120
|
-
let score = 0;
|
|
121
|
-
if (hasFaqSchema)
|
|
122
|
-
score += 3;
|
|
123
|
-
if (hasFaqHeading || hasQuestionHeadings)
|
|
124
|
-
score += 2;
|
|
125
|
-
if (score === 0) {
|
|
126
|
-
suggestions.push({
|
|
127
|
-
dimension: 'structure',
|
|
128
|
-
action: 'Add FAQ section with question-format headings',
|
|
129
|
-
impact: 'high',
|
|
130
|
-
detail: 'FAQ sections are highly cited by AI search engines. Structure as H2/H3 questions with concise answers.',
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
else if (!hasFaqSchema && (hasFaqHeading || hasQuestionHeadings)) {
|
|
134
|
-
suggestions.push({
|
|
135
|
-
dimension: 'structure',
|
|
136
|
-
action: 'Add FAQPage JSON-LD schema for existing FAQ content',
|
|
137
|
-
impact: 'medium',
|
|
138
|
-
detail: 'You have FAQ-like content but no FAQPage schema markup.',
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
return { score: Math.min(5, score), maxScore: 5, issues, suggestions };
|
|
105
|
+
weight: 0,
|
|
106
|
+
evaluate(_doc) {
|
|
107
|
+
return { score: 0, maxScore: 0, issues: [], suggestions: [] };
|
|
142
108
|
},
|
|
143
109
|
};
|
|
144
110
|
const listUsage = {
|
|
145
111
|
id: 'list-usage',
|
|
146
112
|
dimension: 'structure',
|
|
147
|
-
weight:
|
|
113
|
+
weight: 7,
|
|
148
114
|
evaluate(doc) {
|
|
149
115
|
const suggestions = [];
|
|
150
116
|
// Check for list-like patterns in raw text
|
|
151
117
|
const hasLists = /(?:<[ou]l>|^[-*]\s|^\d+\.\s)/m.test(doc.html || doc.markdown || '');
|
|
152
118
|
const wordCount = doc.rawText.split(/\s+/).length;
|
|
153
|
-
let score =
|
|
119
|
+
let score = 7;
|
|
154
120
|
if (!hasLists && wordCount > 300) {
|
|
155
|
-
score =
|
|
121
|
+
score = 4;
|
|
156
122
|
suggestions.push({
|
|
157
123
|
dimension: 'structure',
|
|
158
124
|
action: 'Add bullet or numbered lists for scannable content',
|
|
159
125
|
impact: 'low',
|
|
160
|
-
detail: '
|
|
126
|
+
detail: 'Use a list when the content is genuinely a sequence or set; do not convert prose only to satisfy the score.',
|
|
161
127
|
});
|
|
162
128
|
}
|
|
163
|
-
return { score, maxScore:
|
|
129
|
+
return { score, maxScore: 7, issues: [], suggestions };
|
|
164
130
|
},
|
|
165
131
|
};
|
|
166
132
|
// ── Citability Rules (25 pts) ──────────────────────────────────────
|
|
@@ -207,32 +173,31 @@ const dataStatsPresence = {
|
|
|
207
173
|
dimension: 'citability',
|
|
208
174
|
weight: 7,
|
|
209
175
|
evaluate(doc) {
|
|
176
|
+
const issues = [];
|
|
210
177
|
const suggestions = [];
|
|
211
178
|
// Look for numbers, percentages, dates, monetary values
|
|
212
179
|
const dataPatterns = /(\d+%|\$[\d,.]+|€[\d,.]+|\d{4}[-/]\d{2}[-/]\d{2}|\d+\s*(users|customers|companies|countries|years|months|hours|minutes|seconds|ms|GB|MB|TB|requests|transactions))/gi;
|
|
213
180
|
const matches = doc.rawText.match(dataPatterns) || [];
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
let score;
|
|
217
|
-
if (dataPerKWords >= 3) {
|
|
218
|
-
score = 7;
|
|
219
|
-
}
|
|
220
|
-
else if (dataPerKWords >= 1) {
|
|
221
|
-
score = 5;
|
|
222
|
-
}
|
|
223
|
-
else if (matches.length > 0) {
|
|
224
|
-
score = 3;
|
|
181
|
+
if (matches.length === 0) {
|
|
182
|
+
return { score: 7, maxScore: 7, issues, suggestions };
|
|
225
183
|
}
|
|
226
|
-
|
|
227
|
-
|
|
184
|
+
const hasSourceLanguage = /(?:according to|source:|reference:|cited from|data from)/i.test(doc.rawText);
|
|
185
|
+
const hasExternalLink = doc.links.some((link) => /^https?:\/\//i.test(link.href));
|
|
186
|
+
if (!hasSourceLanguage && !hasExternalLink) {
|
|
187
|
+
issues.push({
|
|
188
|
+
dimension: 'citability',
|
|
189
|
+
severity: 'warning',
|
|
190
|
+
message: `Found ${matches.length} quantitative claim${matches.length === 1 ? '' : 's'} without a detectable source reference.`,
|
|
191
|
+
});
|
|
228
192
|
suggestions.push({
|
|
229
193
|
dimension: 'citability',
|
|
230
|
-
action: '
|
|
194
|
+
action: 'Cite the source for quantitative claims',
|
|
231
195
|
impact: 'high',
|
|
232
|
-
detail: '
|
|
196
|
+
detail: 'Do not add statistics merely to improve a score. Link each material number to a reliable source or explain the measurement method.',
|
|
233
197
|
});
|
|
198
|
+
return { score: 3, maxScore: 7, issues, suggestions };
|
|
234
199
|
}
|
|
235
|
-
return { score, maxScore: 7, issues
|
|
200
|
+
return { score: 7, maxScore: 7, issues, suggestions };
|
|
236
201
|
},
|
|
237
202
|
};
|
|
238
203
|
const clearDefinitions = {
|
|
@@ -256,7 +221,7 @@ const clearDefinitions = {
|
|
|
256
221
|
dimension: 'citability',
|
|
257
222
|
action: 'Add clear definitions for key terms',
|
|
258
223
|
impact: 'medium',
|
|
259
|
-
detail: '
|
|
224
|
+
detail: 'Define unfamiliar terms where readers need them. This is a clarity heuristic, not a featured-snippet guarantee.',
|
|
260
225
|
});
|
|
261
226
|
}
|
|
262
227
|
return { score, maxScore: 5, issues: [], suggestions };
|
|
@@ -287,7 +252,7 @@ const attribution = {
|
|
|
287
252
|
dimension: 'citability',
|
|
288
253
|
action: 'Add author and publication date metadata',
|
|
289
254
|
impact: 'medium',
|
|
290
|
-
detail: '
|
|
255
|
+
detail: 'For authored or time-sensitive content, add accurate author, publication date, and source references. Omit fields that do not apply.',
|
|
291
256
|
});
|
|
292
257
|
}
|
|
293
258
|
return { score: Math.min(5, score), maxScore: 5, issues, suggestions };
|
|
@@ -297,41 +262,41 @@ const attribution = {
|
|
|
297
262
|
const jsonLdPresence = {
|
|
298
263
|
id: 'json-ld-presence',
|
|
299
264
|
dimension: 'schema',
|
|
300
|
-
weight:
|
|
265
|
+
weight: 8,
|
|
301
266
|
evaluate(doc) {
|
|
302
267
|
const issues = [];
|
|
303
268
|
if (doc.jsonLd.length === 0) {
|
|
304
269
|
issues.push({
|
|
305
270
|
dimension: 'schema',
|
|
306
|
-
severity: '
|
|
307
|
-
message: 'No JSON-LD structured data found.
|
|
271
|
+
severity: 'info',
|
|
272
|
+
message: 'No JSON-LD structured data found. Add a supported type only when it matches visible content and serves a defined search feature.',
|
|
308
273
|
});
|
|
309
|
-
return { score:
|
|
274
|
+
return { score: 8, maxScore: 8, issues, suggestions: [] };
|
|
310
275
|
}
|
|
311
|
-
return { score:
|
|
276
|
+
return { score: 8, maxScore: 8, issues, suggestions: [] };
|
|
312
277
|
},
|
|
313
278
|
};
|
|
314
279
|
const jsonLdCompleteness = {
|
|
315
280
|
id: 'json-ld-completeness',
|
|
316
281
|
dimension: 'schema',
|
|
317
|
-
weight:
|
|
282
|
+
weight: 12,
|
|
318
283
|
evaluate(doc) {
|
|
319
284
|
const issues = [];
|
|
320
285
|
const suggestions = [];
|
|
321
286
|
if (doc.jsonLd.length === 0) {
|
|
322
|
-
return { score:
|
|
287
|
+
return { score: 12, maxScore: 12, issues, suggestions };
|
|
323
288
|
}
|
|
324
|
-
const requiredFields = ['@
|
|
289
|
+
const requiredFields = ['@context', '@type'];
|
|
325
290
|
let totalScore = 0;
|
|
326
291
|
let checked = 0;
|
|
327
292
|
for (const ld of doc.jsonLd) {
|
|
328
293
|
checked++;
|
|
329
294
|
const missing = requiredFields.filter((f) => !ld[f]);
|
|
330
295
|
if (missing.length === 0) {
|
|
331
|
-
totalScore +=
|
|
296
|
+
totalScore += 12;
|
|
332
297
|
}
|
|
333
298
|
else {
|
|
334
|
-
totalScore += Math.max(0,
|
|
299
|
+
totalScore += Math.max(0, 12 - missing.length * 6);
|
|
335
300
|
issues.push({
|
|
336
301
|
dimension: 'schema',
|
|
337
302
|
severity: 'warning',
|
|
@@ -348,7 +313,7 @@ const jsonLdCompleteness = {
|
|
|
348
313
|
dimension: 'schema',
|
|
349
314
|
action: 'Add author field to Article schema',
|
|
350
315
|
impact: 'medium',
|
|
351
|
-
detail: '
|
|
316
|
+
detail: 'Add an accurate author only when the visible article identifies that author.',
|
|
352
317
|
});
|
|
353
318
|
}
|
|
354
319
|
if (!article.datePublished) {
|
|
@@ -356,69 +321,43 @@ const jsonLdCompleteness = {
|
|
|
356
321
|
dimension: 'schema',
|
|
357
322
|
action: 'Add datePublished to Article schema',
|
|
358
323
|
impact: 'medium',
|
|
359
|
-
detail: '
|
|
324
|
+
detail: 'Add the actual publication date only when it is visible or otherwise verifiable.',
|
|
360
325
|
});
|
|
361
326
|
}
|
|
362
327
|
}
|
|
363
|
-
return { score: Math.min(
|
|
328
|
+
return { score: Math.min(12, score), maxScore: 12, issues, suggestions };
|
|
364
329
|
},
|
|
365
330
|
};
|
|
366
331
|
const aiRelevantSchemaTypes = {
|
|
367
332
|
id: 'ai-relevant-schema-types',
|
|
368
333
|
dimension: 'schema',
|
|
369
|
-
weight:
|
|
334
|
+
weight: 0,
|
|
370
335
|
evaluate(doc) {
|
|
371
336
|
const suggestions = [];
|
|
372
|
-
|
|
373
|
-
const foundTypes = new Set(doc.jsonLd.map((ld) => ld['@type']).filter(Boolean));
|
|
374
|
-
const relevantFound = aiRelevantTypes.filter((t) => foundTypes.has(t));
|
|
375
|
-
let score;
|
|
376
|
-
if (relevantFound.length >= 3) {
|
|
377
|
-
score = 7;
|
|
378
|
-
}
|
|
379
|
-
else if (relevantFound.length >= 2) {
|
|
380
|
-
score = 5;
|
|
381
|
-
}
|
|
382
|
-
else if (relevantFound.length === 1) {
|
|
383
|
-
score = 3;
|
|
384
|
-
}
|
|
385
|
-
else {
|
|
386
|
-
score = 0;
|
|
337
|
+
if (doc.jsonLd.length > 0) {
|
|
387
338
|
suggestions.push({
|
|
388
339
|
dimension: 'schema',
|
|
389
|
-
action: '
|
|
390
|
-
impact: '
|
|
391
|
-
detail:
|
|
340
|
+
action: 'Validate structured data against the applicable feature documentation',
|
|
341
|
+
impact: 'low',
|
|
342
|
+
detail: 'Schema type count has no score impact. Validate required properties and ensure every value matches visible page content.',
|
|
392
343
|
});
|
|
393
344
|
}
|
|
394
|
-
return { score, maxScore:
|
|
345
|
+
return { score: 0, maxScore: 0, issues: [], suggestions };
|
|
395
346
|
},
|
|
396
347
|
};
|
|
397
348
|
// ── AI Metadata Rules (15 pts) ─────────────────────────────────────
|
|
398
349
|
const llmsTxtPresence = {
|
|
399
350
|
id: 'llms-txt-presence',
|
|
400
351
|
dimension: 'aiMetadata',
|
|
401
|
-
weight:
|
|
402
|
-
evaluate(
|
|
403
|
-
|
|
404
|
-
// For now, check meta tags for llms.txt reference or if the doc itself is llms.txt
|
|
405
|
-
const hasLlmsTxtMeta = !!doc.metaTags['llms-txt'] || doc.links.some((l) => /llms\.txt/i.test(l.href));
|
|
406
|
-
if (!hasLlmsTxtMeta) {
|
|
407
|
-
suggestions.push({
|
|
408
|
-
dimension: 'aiMetadata',
|
|
409
|
-
action: 'Create and link an llms.txt file',
|
|
410
|
-
impact: 'high',
|
|
411
|
-
detail: 'llms.txt is the emerging standard for making your site AI-readable. Use `aeo generate` to create one.',
|
|
412
|
-
});
|
|
413
|
-
return { score: 0, maxScore: 5, issues: [], suggestions };
|
|
414
|
-
}
|
|
415
|
-
return { score: 5, maxScore: 5, issues: [], suggestions };
|
|
352
|
+
weight: 0,
|
|
353
|
+
evaluate(_doc) {
|
|
354
|
+
return { score: 0, maxScore: 0, issues: [], suggestions: [] };
|
|
416
355
|
},
|
|
417
356
|
};
|
|
418
357
|
const robotsTxtAiConfig = {
|
|
419
358
|
id: 'robots-txt-ai-config',
|
|
420
359
|
dimension: 'aiMetadata',
|
|
421
|
-
weight:
|
|
360
|
+
weight: 8,
|
|
422
361
|
evaluate(doc) {
|
|
423
362
|
const suggestions = [];
|
|
424
363
|
// This rule checks meta robots and hints; actual robots.txt checking is done at directory/URL level
|
|
@@ -427,29 +366,29 @@ const robotsTxtAiConfig = {
|
|
|
427
366
|
if (hasNoindex) {
|
|
428
367
|
return {
|
|
429
368
|
score: 0,
|
|
430
|
-
maxScore:
|
|
369
|
+
maxScore: 8,
|
|
431
370
|
issues: [{
|
|
432
371
|
dimension: 'aiMetadata',
|
|
433
372
|
severity: 'critical',
|
|
434
|
-
message: 'Page has noindex meta tag.
|
|
373
|
+
message: 'Page has a noindex meta tag. Search engines may exclude it from results; review whether that is intentional.',
|
|
435
374
|
}],
|
|
436
375
|
suggestions,
|
|
437
376
|
};
|
|
438
377
|
}
|
|
439
|
-
//
|
|
378
|
+
// Page-level noindex is deterministic. Site-level crawler access must be verified separately.
|
|
440
379
|
suggestions.push({
|
|
441
380
|
dimension: 'aiMetadata',
|
|
442
|
-
action: '
|
|
443
|
-
impact: '
|
|
444
|
-
detail: '
|
|
381
|
+
action: 'Verify crawler access separately from the page score',
|
|
382
|
+
impact: 'low',
|
|
383
|
+
detail: 'robots.txt, CDN bot controls, and each service crawler have different effects. A permissive rule does not guarantee indexing or citation.',
|
|
445
384
|
});
|
|
446
|
-
return { score:
|
|
385
|
+
return { score: 8, maxScore: 8, issues: [], suggestions };
|
|
447
386
|
},
|
|
448
387
|
};
|
|
449
388
|
const metaDescriptionQuality = {
|
|
450
389
|
id: 'meta-description-quality',
|
|
451
390
|
dimension: 'aiMetadata',
|
|
452
|
-
weight:
|
|
391
|
+
weight: 7,
|
|
453
392
|
evaluate(doc) {
|
|
454
393
|
const issues = [];
|
|
455
394
|
const suggestions = [];
|
|
@@ -458,34 +397,33 @@ const metaDescriptionQuality = {
|
|
|
458
397
|
issues.push({
|
|
459
398
|
dimension: 'aiMetadata',
|
|
460
399
|
severity: 'warning',
|
|
461
|
-
message: 'No meta description found.
|
|
400
|
+
message: 'No meta description found. Search engines may generate a snippet from page content instead.',
|
|
462
401
|
});
|
|
463
|
-
return { score: 0, maxScore:
|
|
464
|
-
}
|
|
465
|
-
let score = 3;
|
|
466
|
-
// Check length
|
|
467
|
-
if (desc.length >= 50 && desc.length <= 160) {
|
|
468
|
-
score += 2;
|
|
402
|
+
return { score: 0, maxScore: 7, issues, suggestions };
|
|
469
403
|
}
|
|
470
|
-
|
|
471
|
-
|
|
404
|
+
const words = desc.trim().split(/\s+/).filter(Boolean);
|
|
405
|
+
const looksGeneric = words.length < 3 || /^(home|welcome|official site|website)$/i.test(desc.trim());
|
|
406
|
+
const commaCount = (desc.match(/,/g) || []).length;
|
|
407
|
+
const looksLikeKeywordList = commaCount >= 4 && !/[.!?]/.test(desc);
|
|
408
|
+
if (looksGeneric) {
|
|
472
409
|
suggestions.push({
|
|
473
410
|
dimension: 'aiMetadata',
|
|
474
|
-
action: '
|
|
475
|
-
impact: '
|
|
476
|
-
detail:
|
|
411
|
+
action: 'Write a page-specific meta description',
|
|
412
|
+
impact: 'medium',
|
|
413
|
+
detail: 'Describe the page accurately. Google does not impose a fixed meta-description length limit.',
|
|
477
414
|
});
|
|
415
|
+
return { score: 3, maxScore: 7, issues, suggestions };
|
|
478
416
|
}
|
|
479
|
-
|
|
480
|
-
score += 1;
|
|
417
|
+
if (looksLikeKeywordList) {
|
|
481
418
|
suggestions.push({
|
|
482
419
|
dimension: 'aiMetadata',
|
|
483
|
-
action: '
|
|
484
|
-
impact: '
|
|
485
|
-
detail:
|
|
420
|
+
action: 'Replace the keyword list with a readable page summary',
|
|
421
|
+
impact: 'medium',
|
|
422
|
+
detail: 'A descriptive sentence is more useful than comma-separated terms. Length alone does not determine quality.',
|
|
486
423
|
});
|
|
424
|
+
return { score: 3, maxScore: 7, issues, suggestions };
|
|
487
425
|
}
|
|
488
|
-
return { score, maxScore:
|
|
426
|
+
return { score: 7, maxScore: 7, issues, suggestions };
|
|
489
427
|
},
|
|
490
428
|
};
|
|
491
429
|
// ── Content Density Rules (15 pts) ─────────────────────────────────
|
|
@@ -567,7 +505,7 @@ const keywordStuffingDetection = {
|
|
|
567
505
|
// Low diversity + high consecutive repetition = stuffing
|
|
568
506
|
if (diversity < 0.25 && consecutiveHits >= 2) {
|
|
569
507
|
score = 0;
|
|
570
|
-
issues.push({ dimension: 'contentDensity', severity: 'warning', message: `Low vocabulary diversity (${(diversity * 100).toFixed(0)}%) with repetitive phrasing.
|
|
508
|
+
issues.push({ dimension: 'contentDensity', severity: 'warning', message: `Low vocabulary diversity (${(diversity * 100).toFixed(0)}%) with repetitive phrasing. Review this as a possible keyword-stuffing pattern.` });
|
|
571
509
|
suggestions.push({ dimension: 'contentDensity', action: 'Diversify vocabulary and vary sentence structure', impact: 'high', detail: 'Use synonyms, rephrase repeated concepts, and ensure each sentence adds unique value.' });
|
|
572
510
|
}
|
|
573
511
|
else if (diversity < 0.3 || consecutiveHits >= 2) {
|
|
@@ -598,7 +536,7 @@ const contentUniquenessSignals = {
|
|
|
598
536
|
dimension: 'contentDensity',
|
|
599
537
|
action: 'Add original data, examples, or unique insights',
|
|
600
538
|
impact: 'medium',
|
|
601
|
-
detail: '
|
|
539
|
+
detail: 'Add verifiable original research, practical examples, or implementation details when they help the reader. Do not invent data to satisfy this heuristic.',
|
|
602
540
|
});
|
|
603
541
|
}
|
|
604
542
|
return { score: Math.min(5, score), maxScore: 5, issues: [], suggestions };
|
package/dist/core/rules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/core/rules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/core/rules.ts"],"names":[],"mappings":"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"}
|
package/dist/core/scanner.js
CHANGED
|
@@ -253,17 +253,6 @@ async function fetchWithSafeRedirects(input, init, maxRedirects = 10) {
|
|
|
253
253
|
}
|
|
254
254
|
throw new Error(`Too many redirects while fetching ${currentUrl.toString()}`);
|
|
255
255
|
}
|
|
256
|
-
async function checkLlmsTxt(url) {
|
|
257
|
-
try {
|
|
258
|
-
const u = new URL(url);
|
|
259
|
-
const llmsUrl = `${u.protocol}//${u.host}/llms.txt`;
|
|
260
|
-
const res = await fetchWithSafeRedirects(llmsUrl, { method: 'HEAD' });
|
|
261
|
-
return res.ok;
|
|
262
|
-
}
|
|
263
|
-
catch {
|
|
264
|
-
return false;
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
256
|
function findChromePath() {
|
|
268
257
|
const candidates = process.platform === 'darwin'
|
|
269
258
|
? ['/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', '/Applications/Chromium.app/Contents/MacOS/Chromium']
|
|
@@ -318,10 +307,7 @@ function isSpaLikely(html) {
|
|
|
318
307
|
}
|
|
319
308
|
export async function scanUrl(url) {
|
|
320
309
|
validateUrl(url);
|
|
321
|
-
const
|
|
322
|
-
fetchWithSafeRedirects(url),
|
|
323
|
-
checkLlmsTxt(url),
|
|
324
|
-
]);
|
|
310
|
+
const response = await fetchWithSafeRedirects(url);
|
|
325
311
|
if (!response.ok) {
|
|
326
312
|
throw new Error(`Failed to fetch ${url}: ${response.status} ${response.statusText}`);
|
|
327
313
|
}
|
|
@@ -341,10 +327,6 @@ export async function scanUrl(url) {
|
|
|
341
327
|
}
|
|
342
328
|
}
|
|
343
329
|
const doc = parseHtml(html, url);
|
|
344
|
-
// Inject llms.txt discovery into metaTags so rules can pick it up
|
|
345
|
-
if (hasLlmsTxt && !doc.metaTags['llms-txt']) {
|
|
346
|
-
doc.metaTags['llms-txt'] = '/llms.txt';
|
|
347
|
-
}
|
|
348
330
|
const analysis = scanDocument(doc);
|
|
349
331
|
return {
|
|
350
332
|
pages: [analysis],
|
|
@@ -406,6 +388,6 @@ function averageScores(scores) {
|
|
|
406
388
|
}
|
|
407
389
|
function generateSummary(scores, pageCount) {
|
|
408
390
|
const grade = scores.total >= 80 ? 'Excellent' : scores.total >= 60 ? 'Good' : scores.total >= 40 ? 'Needs Work' : 'Poor';
|
|
409
|
-
return `
|
|
391
|
+
return `Content readiness: ${grade} (${scores.total}/100) across ${pageCount} page${pageCount > 1 ? 's' : ''}`;
|
|
410
392
|
}
|
|
411
393
|
//# sourceMappingURL=scanner.js.map
|