@rivi-software/agentic-seo-check 0.4.0 → 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/README.md +49 -7
- package/dist/cli.js +28 -0
- package/dist/cli.js.map +1 -1
- package/dist/core/aeo/audit.d.ts +8 -0
- package/dist/core/aeo/audit.js +101 -17
- package/dist/core/aeo/audit.js.map +1 -1
- package/dist/core/aeo/bots.d.ts +48 -0
- package/dist/core/aeo/bots.js +151 -5
- package/dist/core/aeo/bots.js.map +1 -1
- package/dist/core/aeo/fixes.d.ts +38 -0
- package/dist/core/aeo/fixes.js +111 -0
- package/dist/core/aeo/fixes.js.map +1 -0
- package/dist/core/aeo/site-rules.d.ts +5 -0
- package/dist/core/aeo/site-rules.js +293 -10
- package/dist/core/aeo/site-rules.js.map +1 -1
- package/dist/core/audit.d.ts +8 -0
- package/dist/core/audit.js +144 -25
- package/dist/core/audit.js.map +1 -1
- package/dist/core/crawl.js +43 -4
- package/dist/core/crawl.js.map +1 -1
- package/dist/core/html/answer.d.ts +5 -2
- package/dist/core/html/answer.js +25 -7
- package/dist/core/html/answer.js.map +1 -1
- package/dist/core/html/dom.d.ts +13 -1
- package/dist/core/html/dom.js +30 -2
- package/dist/core/html/dom.js.map +1 -1
- package/dist/core/html/extract.js +122 -30
- package/dist/core/html/extract.js.map +1 -1
- package/dist/core/html/head.js +114 -19
- package/dist/core/html/head.js.map +1 -1
- package/dist/core/html/resources.js +15 -7
- package/dist/core/html/resources.js.map +1 -1
- package/dist/core/html/structured-data.js +21 -5
- package/dist/core/html/structured-data.js.map +1 -1
- package/dist/core/lighthouse.d.ts +5 -6
- package/dist/core/lighthouse.js +297 -7
- package/dist/core/lighthouse.js.map +1 -1
- package/dist/core/performance-fixes.d.ts +25 -0
- package/dist/core/performance-fixes.js +446 -0
- package/dist/core/performance-fixes.js.map +1 -0
- package/dist/core/performance-rules.js +56 -8
- package/dist/core/performance-rules.js.map +1 -1
- package/dist/core/recheck.d.ts +68 -0
- package/dist/core/recheck.js +247 -0
- package/dist/core/recheck.js.map +1 -0
- package/dist/core/render-fixes.d.ts +27 -0
- package/dist/core/render-fixes.js +164 -0
- package/dist/core/render-fixes.js.map +1 -0
- package/dist/core/render-rules.js +60 -21
- package/dist/core/render-rules.js.map +1 -1
- package/dist/core/render.d.ts +9 -1
- package/dist/core/render.js +36 -2
- package/dist/core/render.js.map +1 -1
- package/dist/core/report/markdown.js +68 -1
- package/dist/core/report/markdown.js.map +1 -1
- package/dist/core/robots.d.ts +5 -0
- package/dist/core/robots.js +8 -0
- package/dist/core/robots.js.map +1 -1
- package/dist/core/rules/aeo.js +339 -25
- package/dist/core/rules/aeo.js.map +1 -1
- package/dist/core/rules/canonical.js +107 -11
- package/dist/core/rules/canonical.js.map +1 -1
- package/dist/core/rules/content.js +65 -7
- package/dist/core/rules/content.js.map +1 -1
- package/dist/core/rules/document.js +73 -8
- package/dist/core/rules/document.js.map +1 -1
- package/dist/core/rules/fix.d.ts +55 -0
- package/dist/core/rules/fix.js +159 -0
- package/dist/core/rules/fix.js.map +1 -0
- package/dist/core/rules/head.js +81 -4
- package/dist/core/rules/head.js.map +1 -1
- package/dist/core/rules/headings.js +92 -9
- package/dist/core/rules/headings.js.map +1 -1
- package/dist/core/rules/hreflang.js +79 -9
- package/dist/core/rules/hreflang.js.map +1 -1
- package/dist/core/rules/images.js +49 -0
- package/dist/core/rules/images.js.map +1 -1
- package/dist/core/rules/index.d.ts +11 -0
- package/dist/core/rules/index.js +21 -1
- package/dist/core/rules/index.js.map +1 -1
- package/dist/core/rules/indexing.js +108 -1
- package/dist/core/rules/indexing.js.map +1 -1
- package/dist/core/rules/keyword.js +91 -1
- package/dist/core/rules/keyword.js.map +1 -1
- package/dist/core/rules/links.js +42 -0
- package/dist/core/rules/links.js.map +1 -1
- package/dist/core/rules/loading.js +54 -1
- package/dist/core/rules/loading.js.map +1 -1
- package/dist/core/rules/meta.js +36 -5
- package/dist/core/rules/meta.js.map +1 -1
- package/dist/core/rules/page-fixes.d.ts +39 -0
- package/dist/core/rules/page-fixes.js +107 -0
- package/dist/core/rules/page-fixes.js.map +1 -0
- package/dist/core/rules/quoted-tags.d.ts +23 -0
- package/dist/core/rules/quoted-tags.js +79 -0
- package/dist/core/rules/quoted-tags.js.map +1 -0
- package/dist/core/rules/response.js +71 -7
- package/dist/core/rules/response.js.map +1 -1
- package/dist/core/rules/rule.d.ts +17 -4
- package/dist/core/rules/rule.js +11 -2
- package/dist/core/rules/rule.js.map +1 -1
- package/dist/core/rules/social.js +101 -10
- package/dist/core/rules/social.js.map +1 -1
- package/dist/core/rules/structured-data-fixes.d.ts +33 -0
- package/dist/core/rules/structured-data-fixes.js +469 -0
- package/dist/core/rules/structured-data-fixes.js.map +1 -0
- package/dist/core/rules/structured-data-values.js +242 -31
- package/dist/core/rules/structured-data-values.js.map +1 -1
- package/dist/core/rules/structured-data.js +171 -4
- package/dist/core/rules/structured-data.js.map +1 -1
- package/dist/core/rules/title.js +39 -5
- package/dist/core/rules/title.js.map +1 -1
- package/dist/core/rules/urls.js +166 -0
- package/dist/core/rules/urls.js.map +1 -1
- package/dist/core/site-fixes.d.ts +111 -0
- package/dist/core/site-fixes.js +650 -0
- package/dist/core/site-fixes.js.map +1 -0
- package/dist/core/site-rules.js +474 -53
- package/dist/core/site-rules.js.map +1 -1
- package/dist/core/sitemap.d.ts +16 -0
- package/dist/core/sitemap.js +34 -0
- package/dist/core/sitemap.js.map +1 -1
- package/dist/core/types.d.ts +223 -3
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +16 -2
- package/dist/mcp.js.map +1 -1
- package/package.json +5 -7
- package/skills/seo-audit/SKILL.md +23 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aeo.js","sourceRoot":"","sources":["../../../src/core/rules/aeo.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aeo.js","sourceRoot":"","sources":["../../../src/core/rules/aeo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { quote } from "../html/dom.js";
|
|
1
2
|
import { hostOf, normalizeUrl, resolveUrl, samePath } from "../url.js";
|
|
3
|
+
import { addHtml, escapeAttribute, removeEdit, replaceEdit, setAttributeEdit, } from "./fix.js";
|
|
4
|
+
import { liveUrl, ORIGIN_WRITE } from "./quoted-tags.js";
|
|
2
5
|
import { cap, defineRule, GOOGLE_DOCS } from "./rule.js";
|
|
3
6
|
const SELECTOR = 'head > link[rel="canonical"]';
|
|
4
7
|
const LOCAL_HOSTS = new Set([
|
|
@@ -47,6 +50,52 @@ export const headerCanonicals = (response, base) => {
|
|
|
47
50
|
return out;
|
|
48
51
|
};
|
|
49
52
|
const stripTrailingSlash = (url) => url.endsWith("/") && new URL(url).pathname !== "/" ? url.slice(0, -1) : url;
|
|
53
|
+
/** `url` for an href on the live site, and what the agent writes when its origin is a slot. */
|
|
54
|
+
const hrefFor = (page, url) => {
|
|
55
|
+
const local = isLocalHost(page.url) || page.url.startsWith("file:");
|
|
56
|
+
return local
|
|
57
|
+
? { href: liveUrl(url, true), write: ORIGIN_WRITE }
|
|
58
|
+
: { href: escapeAttribute(url) };
|
|
59
|
+
};
|
|
60
|
+
/** This page's own URL, for a self-referencing canonical: no fragment, no tracking parameters. */
|
|
61
|
+
const selfUrl = (page) => normalizeUrl(page.url) ?? page.url;
|
|
62
|
+
/** The edit that points the canonical <link> the page reads at `url`. */
|
|
63
|
+
const pointCanonical = (page, url, write) => {
|
|
64
|
+
const { href, write: originWrite } = hrefFor(page, url);
|
|
65
|
+
const tag = page.markup.canonicals[0] ?? null;
|
|
66
|
+
const text = [originWrite, write].filter(Boolean).join(" ") || undefined;
|
|
67
|
+
return tag === null
|
|
68
|
+
? addHtml("head", `<link rel="canonical" href="${href}">`, text)
|
|
69
|
+
: setAttributeEdit(tag, SELECTOR, "href", href, text);
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* The edit of the Link header that leaves only the canonical entries `keep` keeps, and every entry
|
|
73
|
+
* that is not a canonical (preload, preconnect) as it was.
|
|
74
|
+
*/
|
|
75
|
+
const linkHeaderEdit = (header, base, keep, write) => {
|
|
76
|
+
const kept = [];
|
|
77
|
+
for (const match of header.slice(0, 16_384).matchAll(LINK_ENTRY)) {
|
|
78
|
+
const entry = match[0].trim().replace(/,$/u, "").trim();
|
|
79
|
+
const [canonical] = headerCanonicals({
|
|
80
|
+
status: null,
|
|
81
|
+
finalUrl: base,
|
|
82
|
+
redirectChain: [],
|
|
83
|
+
timeMs: null,
|
|
84
|
+
contentType: null,
|
|
85
|
+
headers: { link: entry },
|
|
86
|
+
}, base);
|
|
87
|
+
if (canonical === undefined || keep(canonical)) {
|
|
88
|
+
kept.push(entry);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const current = quote(`Link: ${header}`);
|
|
92
|
+
return kept.length === 0
|
|
93
|
+
? removeEdit("http", current, { at: "Link", write })
|
|
94
|
+
: replaceEdit("http", current, `Link: ${kept.join(", ")}`, {
|
|
95
|
+
at: "Link",
|
|
96
|
+
write,
|
|
97
|
+
});
|
|
98
|
+
};
|
|
50
99
|
export const canonicalRules = [
|
|
51
100
|
defineRule({
|
|
52
101
|
id: "canonical.missing",
|
|
@@ -57,7 +106,12 @@ export const canonicalRules = [
|
|
|
57
106
|
docs: GOOGLE_DOCS.canonical,
|
|
58
107
|
}, ({ page, response }, make) => page.canonicals.length === 0 &&
|
|
59
108
|
headerCanonicals(response, page.url).length === 0
|
|
60
|
-
? make("Page has no canonical link.", {
|
|
109
|
+
? make("Page has no canonical link.", {
|
|
110
|
+
fix: [
|
|
111
|
+
pointCanonical(page, selfUrl(page), "If this page is a copy of another one, name that page's URL instead."),
|
|
112
|
+
],
|
|
113
|
+
selector: SELECTOR,
|
|
114
|
+
})
|
|
61
115
|
: null),
|
|
62
116
|
defineRule({
|
|
63
117
|
id: "canonical.header-conflict",
|
|
@@ -71,16 +125,30 @@ export const canonicalRules = [
|
|
|
71
125
|
const targets = new Set(
|
|
72
126
|
// Google treats /page and /page/ as two URLs, so a trailing slash is a real difference.
|
|
73
127
|
[...header, ...(page.canonical ? [page.canonical] : [])].map((url) => normalizeUrl(url) ?? url));
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
128
|
+
if (header.length === 0 || targets.size <= 1) {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
// Keep the <link> in <head> the page's author wrote; with none, keep the header's first URL.
|
|
132
|
+
const keepUrl = normalizeUrl(page.canonical ?? header[0] ?? "");
|
|
133
|
+
let firstKept = false;
|
|
134
|
+
const edit = linkHeaderEdit(response?.headers["link"] ?? "", page.url, (target) => {
|
|
135
|
+
if (page.canonical || firstKept) {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
firstKept = (normalizeUrl(target) ?? target) === keepUrl;
|
|
139
|
+
return firstKept;
|
|
140
|
+
}, page.canonical
|
|
141
|
+
? `Name the canonical once, in the <link> in <head>. If the header's URL is the right one, point the <link> at it and remove the header entry all the same. A CDN, plugin or platform rule often adds the header.`
|
|
142
|
+
: "Keep one canonical URL in the header: the URL this page should rank under.");
|
|
143
|
+
return make(page.canonical
|
|
144
|
+
? `The Link header names ${header.join(" and ")} as canonical, but <link rel="canonical"> names ${page.canonical}.`
|
|
145
|
+
: `The Link header names ${header.length} different canonical URLs.`, {
|
|
146
|
+
fix: [edit],
|
|
147
|
+
evidence: {
|
|
148
|
+
linkHeader: cap(header),
|
|
149
|
+
htmlCanonical: page.canonical,
|
|
150
|
+
},
|
|
151
|
+
});
|
|
84
152
|
}),
|
|
85
153
|
defineRule({
|
|
86
154
|
id: "canonical.multiple",
|
|
@@ -94,7 +162,25 @@ export const canonicalRules = [
|
|
|
94
162
|
return null;
|
|
95
163
|
}
|
|
96
164
|
const distinct = new Set(page.canonicals.map((c) => c.trim()));
|
|
165
|
+
// Keep the canonical that names this page, if one does, else the first; remove the others.
|
|
166
|
+
const self = normalizeUrl(page.url);
|
|
167
|
+
const selfIndex = page.canonicals.findIndex((c) => {
|
|
168
|
+
const url = resolveUrl(c, page.url);
|
|
169
|
+
return url !== null && normalizeUrl(url) === self;
|
|
170
|
+
});
|
|
171
|
+
const keep = Math.max(selfIndex, 0);
|
|
172
|
+
const removals = page.markup.canonicals.flatMap((tag, i) => i === keep
|
|
173
|
+
? []
|
|
174
|
+
: [
|
|
175
|
+
removeEdit("html", tag, {
|
|
176
|
+
at: SELECTOR,
|
|
177
|
+
write: distinct.size > 1 && selfIndex === -1
|
|
178
|
+
? `This keeps the first canonical, ${page.canonicals[keep] ?? ""}. If another one names the URL this page should rank under, keep that one instead.`
|
|
179
|
+
: undefined,
|
|
180
|
+
}),
|
|
181
|
+
]);
|
|
97
182
|
return make(`Page has ${page.canonicals.length} canonical links${distinct.size > 1 ? " with different targets" : " (identical)"}.`, {
|
|
183
|
+
fix: removals,
|
|
98
184
|
selector: SELECTOR,
|
|
99
185
|
severity: distinct.size > 1 ? "error" : "warning",
|
|
100
186
|
evidence: { canonicals: cap(page.canonicals) },
|
|
@@ -115,6 +201,9 @@ export const canonicalRules = [
|
|
|
115
201
|
return page.canonical
|
|
116
202
|
? null
|
|
117
203
|
: make(`Canonical href "${first}" is not a valid URL.`, {
|
|
204
|
+
fix: [
|
|
205
|
+
pointCanonical(page, selfUrl(page), "This points the canonical at this page; if it was meant for another page, write that page's absolute URL."),
|
|
206
|
+
],
|
|
118
207
|
selector: SELECTOR,
|
|
119
208
|
evidence: { href: first },
|
|
120
209
|
});
|
|
@@ -134,6 +223,7 @@ export const canonicalRules = [
|
|
|
134
223
|
return /^https?:\/\//iu.test(first)
|
|
135
224
|
? null
|
|
136
225
|
: make(`Canonical href "${first}" is relative.`, {
|
|
226
|
+
fix: [pointCanonical(page, page.canonical)],
|
|
137
227
|
selector: SELECTOR,
|
|
138
228
|
evidence: { href: first, resolved: page.canonical },
|
|
139
229
|
});
|
|
@@ -152,6 +242,9 @@ export const canonicalRules = [
|
|
|
152
242
|
return page.url.startsWith("https://") &&
|
|
153
243
|
page.canonical.startsWith("http://")
|
|
154
244
|
? make("Canonical uses http:// while the page is served over https://.", {
|
|
245
|
+
fix: [
|
|
246
|
+
pointCanonical(page, page.canonical.replace(/^http:/iu, "https:")),
|
|
247
|
+
],
|
|
155
248
|
selector: SELECTOR,
|
|
156
249
|
evidence: { canonical: page.canonical, page: page.url },
|
|
157
250
|
})
|
|
@@ -181,6 +274,9 @@ export const canonicalRules = [
|
|
|
181
274
|
return same
|
|
182
275
|
? null
|
|
183
276
|
: make(`Canonical points to ${page.canonical}, not to this page.`, {
|
|
277
|
+
fix: [
|
|
278
|
+
pointCanonical(page, selfUrl(page), `Only if this page should rank on its own. If it is a copy of ${page.canonical} on purpose (a print view, a filtered list, a tracking URL), keep the canonical as it is.`),
|
|
279
|
+
],
|
|
184
280
|
selector: SELECTOR,
|
|
185
281
|
evidence: {
|
|
186
282
|
canonical: page.canonical,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../../src/core/rules/canonical.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../../src/core/rules/canonical.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,50 @@
|
|
|
1
1
|
import { fleschReadingEase, hasPlaceholderText } from "../html/text.js";
|
|
2
|
+
import { addHtml, replaceHtml, slot } from "./fix.js";
|
|
3
|
+
import { bestBlock, rewriteBlock, sentences } from "./page-fixes.js";
|
|
2
4
|
import { defineRule, GOOGLE_DOCS } from "./rule.js";
|
|
5
|
+
/** Where new body copy goes: the page's main content, or the body when it marks none. */
|
|
6
|
+
const CONTENT_AT = "main, article, body";
|
|
7
|
+
/** Words in a sentence, for picking the hardest one to read. */
|
|
8
|
+
const wordsIn = (sentence) => sentence.split(/\s+/u).filter(Boolean).length;
|
|
9
|
+
/** Words in the longest sentence of a block; 0 for one with no full sentence, such as a menu item. */
|
|
10
|
+
const longestIn = (text) => {
|
|
11
|
+
// A loop, not Math.max(...): a long block can hold more sentences than a call takes arguments.
|
|
12
|
+
let most = 0;
|
|
13
|
+
for (const sentence of sentences(text)) {
|
|
14
|
+
most = Math.max(most, wordsIn(sentence));
|
|
15
|
+
}
|
|
16
|
+
return most;
|
|
17
|
+
};
|
|
18
|
+
const PLACEHOLDER_WRITE = "The text this part of the page was designed for (remove the element if it has none yet). Search the templates for other placeholder passages too.";
|
|
19
|
+
const READABILITY_WRITE = "This paragraph, which holds the page's longest sentence, rewritten in sentences of about 15-20 words with common words. Rewrite the page's other long sentences the same way, aiming for a Flesch score of 50-70.";
|
|
20
|
+
/** "Lorem ipsum" as the page writes it, with its capitals. */
|
|
21
|
+
const placeholderQuote = (text) => /lorem\s+ipsum/iu.exec(text)?.[0] ?? "Lorem ipsum";
|
|
22
|
+
/**
|
|
23
|
+
* Each block that holds placeholder text, rewritten whole; when none does (the text sits straight
|
|
24
|
+
* in a <div>), the words "Lorem ipsum" themselves.
|
|
25
|
+
*/
|
|
26
|
+
const placeholderFix = (blocks, text) => {
|
|
27
|
+
const found = blocks.filter((b) => hasPlaceholderText(b.text));
|
|
28
|
+
return found.length
|
|
29
|
+
? found.map((b) => rewriteBlock(b, "real copy", PLACEHOLDER_WRITE))
|
|
30
|
+
: [
|
|
31
|
+
replaceHtml(placeholderQuote(text), slot("real copy"), {
|
|
32
|
+
at: "body",
|
|
33
|
+
write: PLACEHOLDER_WRITE,
|
|
34
|
+
}),
|
|
35
|
+
];
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* The paragraph with the page's longest sentence, rewritten whole. A page whose blocks hold no full
|
|
39
|
+
* sentence (its text is menus and labels) gets new copy instead: words cut from the joined page
|
|
40
|
+
* text would not be in the source as written.
|
|
41
|
+
*/
|
|
42
|
+
const readabilityFix = (page) => {
|
|
43
|
+
const block = bestBlock(page.markup.blocks, (b) => longestIn(b.text));
|
|
44
|
+
return block
|
|
45
|
+
? rewriteBlock(block, "the same text in shorter sentences", READABILITY_WRITE)
|
|
46
|
+
: addHtml(CONTENT_AT, slot("shorter sentences"), "Rewrite the copy in shorter sentences with common words, aiming for a Flesch score of 50-70.");
|
|
47
|
+
};
|
|
3
48
|
export const contentRules = [
|
|
4
49
|
defineRule({
|
|
5
50
|
id: "content.empty",
|
|
@@ -9,7 +54,11 @@ export const contentRules = [
|
|
|
9
54
|
recommendation: "If the page is rendered client-side, use server-side rendering or static generation so the HTML carries the content. Re-run with render enabled to compare the rendered DOM.",
|
|
10
55
|
docs: GOOGLE_DOCS.javascript,
|
|
11
56
|
}, ({ page }, make) => page.wordCount === 0
|
|
12
|
-
? make("Page body has no visible text in the HTML response."
|
|
57
|
+
? make("Page body has no visible text in the HTML response.", {
|
|
58
|
+
fix: [
|
|
59
|
+
addHtml("body", `<main>\n <h1>${slot("page heading")}</h1>\n <p>${slot("page content")}</p>\n</main>`, "The page's heading and content, rendered on the server: with server-side rendering or static generation (or prerendering this route) the HTML response carries the text the JavaScript now builds in the browser."),
|
|
60
|
+
],
|
|
61
|
+
})
|
|
13
62
|
: null),
|
|
14
63
|
defineRule({
|
|
15
64
|
id: "content.thin",
|
|
@@ -19,6 +68,11 @@ export const contentRules = [
|
|
|
19
68
|
recommendation: "Add substantive, useful content, or set noindex if the page is a utility page (login, cart, thank-you). Thin pages rarely rank and can drag down site quality signals.",
|
|
20
69
|
}, ({ page, thresholds }, make) => page.wordCount > 0 && page.wordCount < thresholds.thinContentWords
|
|
21
70
|
? make(`Page has only ${page.wordCount} words of visible text (threshold ${thresholds.thinContentWords}).`, {
|
|
71
|
+
// Adding useful text cannot hurt; noindex would drop the page from search, so it is
|
|
72
|
+
// left to the author for utility pages.
|
|
73
|
+
fix: [
|
|
74
|
+
addHtml(CONTENT_AT, `<p>${slot("more content")}</p>`, `About ${thresholds.thinContentWords - page.wordCount} more words that answer what a visitor comes to this page for: details, examples, answers to common questions. If this is a utility page (login, cart, thank-you), add <meta name="robots" content="noindex"> instead.`),
|
|
75
|
+
],
|
|
22
76
|
evidence: {
|
|
23
77
|
wordCount: page.wordCount,
|
|
24
78
|
threshold: thresholds.thinContentWords,
|
|
@@ -32,7 +86,9 @@ export const contentRules = [
|
|
|
32
86
|
description: 'Placeholder text ("lorem ipsum") is present in the page.',
|
|
33
87
|
recommendation: "Replace the placeholder copy with real content before publishing.",
|
|
34
88
|
}, ({ page }, make) => hasPlaceholderText(page.text)
|
|
35
|
-
? make('Page contains "lorem ipsum" placeholder text.'
|
|
89
|
+
? make('Page contains "lorem ipsum" placeholder text.', {
|
|
90
|
+
fix: placeholderFix(page.markup.blocks, page.text),
|
|
91
|
+
})
|
|
36
92
|
: null),
|
|
37
93
|
defineRule({
|
|
38
94
|
id: "content.readability-low",
|
|
@@ -45,11 +101,13 @@ export const contentRules = [
|
|
|
45
101
|
return null;
|
|
46
102
|
}
|
|
47
103
|
const score = fleschReadingEase(page.text);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
:
|
|
104
|
+
if (score === null || score >= 30) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
return make(`Flesch Reading Ease is ${score} (very difficult).`, {
|
|
108
|
+
fix: [readabilityFix(page)],
|
|
109
|
+
evidence: { fleschReadingEase: score, wordCount: page.wordCount },
|
|
110
|
+
});
|
|
53
111
|
}),
|
|
54
112
|
];
|
|
55
113
|
//# sourceMappingURL=content.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/core/rules/content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/core/rules/content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEpD,yFAAyF;AACzF,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAEzC,gEAAgE;AAChE,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAU,EAAE,CAC3C,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAEhD,sGAAsG;AACtG,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE;IACzC,+FAA+F;IAC/F,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,iBAAiB,GACrB,mJAAmJ,CAAC;AAEtJ,MAAM,iBAAiB,GACrB,mNAAmN,CAAC;AAEtN,8DAA8D;AAC9D,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAU,EAAE,CAChD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC;AAErD;;;GAGG;AACH,MAAM,cAAc,GAAG,CAAC,MAAmB,EAAE,IAAY,EAAE,EAAE;IAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/D,OAAO,KAAK,CAAC,MAAM;QACjB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;QACnE,CAAC,CAAC;YACE,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;gBACrD,EAAE,EAAE,MAAM;gBACV,KAAK,EAAE,iBAAiB;aACzB,CAAC;SACH,CAAC;AACR,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,cAAc,GAAG,CAAC,IAAmB,EAAW,EAAE;IACtD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtE,OAAO,KAAK;QACV,CAAC,CAAC,YAAY,CACV,KAAK,EACL,oCAAoC,EACpC,iBAAiB,CAClB;QACH,CAAC,CAAC,OAAO,CACL,UAAU,EACV,IAAI,CAAC,mBAAmB,CAAC,EACzB,8FAA8F,CAC/F,CAAC;AACR,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,UAAU,CACR;QACE,EAAE,EAAE,eAAe;QACnB,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,oCAAoC;QACjD,cAAc,EACZ,8KAA8K;QAChL,IAAI,EAAE,WAAW,CAAC,UAAU;KAC7B,EACD,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CACjB,IAAI,CAAC,SAAS,KAAK,CAAC;QAClB,CAAC,CAAC,IAAI,CAAC,qDAAqD,EAAE;YAC1D,GAAG,EAAE;gBACH,OAAO,CACL,MAAM,EACN,iBAAiB,IAAI,CAAC,cAAc,CAAC,eAAe,IAAI,CAAC,cAAc,CAAC,eAAe,EACvF,mNAAmN,CACpN;aACF;SACF,CAAC;QACJ,CAAC,CAAC,IAAI,CACX;IACD,UAAU,CACR;QACE,EAAE,EAAE,cAAc;QAClB,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,SAAS;QACnB,WAAW,EACT,gEAAgE;QAClE,cAAc,EACZ,wKAAwK;KAC3K,EACD,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,CAC7B,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,gBAAgB;QAChE,CAAC,CAAC,IAAI,CACF,iBAAiB,IAAI,CAAC,SAAS,qCAAqC,UAAU,CAAC,gBAAgB,IAAI,EACnG;YACE,oFAAoF;YACpF,wCAAwC;YACxC,GAAG,EAAE;gBACH,OAAO,CACL,UAAU,EACV,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAChC,SAAS,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,wNAAwN,CAC9Q;aACF;YACD,QAAQ,EAAE;gBACR,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,UAAU,CAAC,gBAAgB;aACvC;SACF,CACF;QACH,CAAC,CAAC,IAAI,CACX;IACD,UAAU,CACR;QACE,EAAE,EAAE,0BAA0B;QAC9B,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,0DAA0D;QACvE,cAAc,EACZ,mEAAmE;KACtE,EACD,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CACjB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3B,CAAC,CAAC,IAAI,CAAC,+CAA+C,EAAE;YACpD,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;SACnD,CAAC;QACJ,CAAC,CAAC,IAAI,CACX;IACD,UAAU,CACR;QACE,EAAE,EAAE,yBAAyB;QAC7B,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,MAAM;QAChB,WAAW,EACT,gHAAgH;QAClH,cAAc,EACZ,mGAAmG;KACtG,EACD,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE;QACjB,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,0BAA0B,KAAK,oBAAoB,EAAE;YAC/D,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC3B,QAAQ,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;SAClE,CAAC,CAAC;IACL,CAAC,CACF;CACF,CAAC"}
|
|
@@ -1,5 +1,31 @@
|
|
|
1
|
+
import { addHtml, escapeAttribute, setAttributeEdit, slot } from "./fix.js";
|
|
1
2
|
import { defineRule, GOOGLE_DOCS } from "./rule.js";
|
|
2
3
|
const BCP47 = /^[a-zA-Z]{2,3}(?:-[a-zA-Z0-9]{2,8})*$/u;
|
|
4
|
+
const VIEWPORT = 'head > meta[name="viewport"]';
|
|
5
|
+
const VIEWPORT_CODE = '<meta name="viewport" content="width=device-width, initial-scale=1">';
|
|
6
|
+
/** What the page itself says about its language, for the agent to confirm. */
|
|
7
|
+
const languageHint = (page) => {
|
|
8
|
+
const { locale } = page.og;
|
|
9
|
+
return locale ? ` The page's og:locale is "${locale.slice(0, 20)}".` : "";
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* The viewport content without what blocks zooming (user-scalable=no or 0, maximum-scale=1), or
|
|
13
|
+
* the standard viewport when nothing else is left.
|
|
14
|
+
*/
|
|
15
|
+
const zoomableViewport = (content) => {
|
|
16
|
+
const kept = content
|
|
17
|
+
.split(/[,;]/u)
|
|
18
|
+
.map((part) => part.trim())
|
|
19
|
+
.filter((part) => {
|
|
20
|
+
const v = part.toLowerCase().replaceAll(/\s/gu, "");
|
|
21
|
+
return (part !== "" &&
|
|
22
|
+
!/^user-scalable=(?:no|0)$/u.test(v) &&
|
|
23
|
+
!/^maximum-scale=1(?:\.0*)?$/u.test(v));
|
|
24
|
+
});
|
|
25
|
+
return kept.length > 0
|
|
26
|
+
? kept.join(", ")
|
|
27
|
+
: "width=device-width, initial-scale=1";
|
|
28
|
+
};
|
|
3
29
|
export const documentRules = [
|
|
4
30
|
defineRule({
|
|
5
31
|
id: "html.lang-missing",
|
|
@@ -9,19 +35,35 @@ export const documentRules = [
|
|
|
9
35
|
recommendation: 'Set <html lang="xx"> (for example "en", "nl", "en-GB") so search engines and screen readers know the content language.',
|
|
10
36
|
}, ({ page }, make) => page.lang
|
|
11
37
|
? null
|
|
12
|
-
: make("<html> has no lang attribute.", {
|
|
38
|
+
: make("<html> has no lang attribute.", {
|
|
39
|
+
fix: [
|
|
40
|
+
setAttributeEdit(page.markup.html, "html", "lang", slot("language code"), `The language the page is written in, as a BCP 47 tag: en, nl, en-GB.${languageHint(page)}`),
|
|
41
|
+
],
|
|
42
|
+
selector: "html",
|
|
43
|
+
})),
|
|
13
44
|
defineRule({
|
|
14
45
|
id: "html.lang-invalid",
|
|
15
46
|
category: "document",
|
|
16
47
|
severity: "warning",
|
|
17
48
|
description: "The <html lang> value is not a valid BCP 47 language tag.",
|
|
18
49
|
recommendation: 'Use a BCP 47 tag such as "en", "en-US" or "pt-BR".',
|
|
19
|
-
}, ({ page }, make) =>
|
|
20
|
-
|
|
50
|
+
}, ({ page }, make) => {
|
|
51
|
+
if (!page.lang || BCP47.test(page.lang)) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
// "en_US" is a locale written with an underscore; the tag is the same with a hyphen.
|
|
55
|
+
const hyphenated = page.lang.replaceAll("_", "-");
|
|
56
|
+
const exact = BCP47.test(hyphenated);
|
|
57
|
+
return make(`<html lang="${page.lang}"> is not a valid language tag.`, {
|
|
58
|
+
fix: [
|
|
59
|
+
setAttributeEdit(page.markup.html, "html", "lang", exact ? escapeAttribute(hyphenated) : slot("language code"), exact
|
|
60
|
+
? undefined
|
|
61
|
+
: `The language the page is written in, as a BCP 47 tag such as en, en-US or pt-BR, instead of "${page.lang.slice(0, 40)}".${languageHint(page)}`),
|
|
62
|
+
],
|
|
21
63
|
selector: "html",
|
|
22
64
|
evidence: { lang: page.lang },
|
|
23
|
-
})
|
|
24
|
-
|
|
65
|
+
});
|
|
66
|
+
}),
|
|
25
67
|
defineRule({
|
|
26
68
|
id: "viewport.missing",
|
|
27
69
|
category: "document",
|
|
@@ -32,7 +74,13 @@ export const documentRules = [
|
|
|
32
74
|
}, ({ page }, make) => page.viewport
|
|
33
75
|
? null
|
|
34
76
|
: make("Page has no viewport meta tag.", {
|
|
35
|
-
|
|
77
|
+
// An empty viewport tag gets its content; with none, the tag goes into <head>.
|
|
78
|
+
fix: [
|
|
79
|
+
page.markup.viewport
|
|
80
|
+
? setAttributeEdit(page.markup.viewport, VIEWPORT, "content", "width=device-width, initial-scale=1")
|
|
81
|
+
: addHtml("head", VIEWPORT_CODE),
|
|
82
|
+
],
|
|
83
|
+
selector: VIEWPORT,
|
|
36
84
|
})),
|
|
37
85
|
defineRule({
|
|
38
86
|
id: "viewport.not-scalable",
|
|
@@ -45,7 +93,12 @@ export const documentRules = [
|
|
|
45
93
|
return /user-scalable=(?:no|0)/u.test(v) ||
|
|
46
94
|
/maximum-scale=1(?:\.0*)?(?:,|$)/u.test(v)
|
|
47
95
|
? make("Viewport prevents users from zooming.", {
|
|
48
|
-
|
|
96
|
+
fix: [
|
|
97
|
+
page.markup.viewport
|
|
98
|
+
? setAttributeEdit(page.markup.viewport, VIEWPORT, "content", escapeAttribute(zoomableViewport(page.viewport ?? "")))
|
|
99
|
+
: addHtml("head", VIEWPORT_CODE),
|
|
100
|
+
],
|
|
101
|
+
selector: VIEWPORT,
|
|
49
102
|
evidence: { viewport: page.viewport },
|
|
50
103
|
})
|
|
51
104
|
: null;
|
|
@@ -61,6 +114,9 @@ export const documentRules = [
|
|
|
61
114
|
({ page, response }, make) => page.charset || /charset=/iu.test(response?.contentType ?? "")
|
|
62
115
|
? null
|
|
63
116
|
: make("No <meta charset> declaration found.", {
|
|
117
|
+
fix: [
|
|
118
|
+
addHtml("head", '<meta charset="utf-8">', "First in <head>, before any script, style or comment. If the file is saved in another encoding, save it as UTF-8 (or name that encoding)."),
|
|
119
|
+
],
|
|
64
120
|
selector: "head > meta[charset]",
|
|
65
121
|
})),
|
|
66
122
|
defineRule({
|
|
@@ -69,7 +125,13 @@ export const documentRules = [
|
|
|
69
125
|
severity: "info",
|
|
70
126
|
description: "The document does not start with <!DOCTYPE html>.",
|
|
71
127
|
recommendation: "Start the document with <!DOCTYPE html> to avoid quirks-mode rendering.",
|
|
72
|
-
}, ({ page }, make) => page.hasDoctype
|
|
128
|
+
}, ({ page }, make) => page.hasDoctype
|
|
129
|
+
? null
|
|
130
|
+
: make("Document has no HTML5 doctype.", {
|
|
131
|
+
fix: [
|
|
132
|
+
addHtml("document start", "<!doctype html>", "As the very first line of the document, before <html>."),
|
|
133
|
+
],
|
|
134
|
+
})),
|
|
73
135
|
defineRule({
|
|
74
136
|
id: "document.html-too-large",
|
|
75
137
|
category: "document",
|
|
@@ -78,6 +140,9 @@ export const documentRules = [
|
|
|
78
140
|
recommendation: "Reduce inline scripts/styles/data (large JSON state, inline SVG sprites). Very large documents slow parsing and may be truncated by crawlers.",
|
|
79
141
|
}, ({ page }, make) => page.htmlBytes > 1_500_000
|
|
80
142
|
? make(`HTML is ${(page.htmlBytes / 1_000_000).toFixed(1)} MB.`, {
|
|
143
|
+
fix: [
|
|
144
|
+
addHtml("body", `<script src="${slot("/assets/moved-inline-script.js")}" defer></script>`, "Move the largest inline block out of the HTML into a file the page loads: inline JavaScript or JSON state into a script file (or fetch the data), an inline SVG sprite into an .svg file used with <use href>, inline CSS into a stylesheet. Write that file's path in the slot, and remove the inline block."),
|
|
145
|
+
],
|
|
81
146
|
evidence: { bytes: page.htmlBytes },
|
|
82
147
|
})
|
|
83
148
|
: null),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/core/rules/document.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/core/rules/document.ts"],"names":[],"mappings":"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"}
|