@rivi-software/agentic-seo-check 0.4.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 +29 -5
- package/dist/cli.js +20 -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 +2 -5
- package/dist/core/lighthouse.js +290 -5
- 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/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 +1 -1
- package/skills/seo-audit/SKILL.md +22 -5
package/dist/core/rules/urls.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { hostOf, resolveUrl } from "../url.js";
|
|
2
2
|
import { isLocalHost } from "./canonical.js";
|
|
3
|
+
import { addEdit, addHtml, escapeAttribute, replaceHtml, setAttributeEdit, slot, } from "./fix.js";
|
|
4
|
+
import { ORIGIN_SLOT_WRITE, permanentRedirect, withoutParameters, } from "./page-fixes.js";
|
|
3
5
|
import { cap, defineRule, GOOGLE_DOCS } from "./rule.js";
|
|
6
|
+
/** A CSS attribute value in double quotes. */
|
|
7
|
+
const cssString = (value) => `"${value.replaceAll("\\", "\\\\").replaceAll('"', String.raw `\"`)}"`;
|
|
4
8
|
/** Query parameters that only tell analytics where a click came from. */
|
|
5
9
|
const TRACKING_PARAMETERS = new Set([
|
|
6
10
|
"gclid",
|
|
@@ -85,6 +89,48 @@ const pathWithoutLocales = (path) => path
|
|
|
85
89
|
.split("/")
|
|
86
90
|
.filter((segment) => !LOCALE_SEGMENT.test(segment))
|
|
87
91
|
.join("/");
|
|
92
|
+
/**
|
|
93
|
+
* The page's URL with each path segment respelled (locale segments as they are), as the page names
|
|
94
|
+
* itself: absolute on a live site, a path for files and dev servers.
|
|
95
|
+
*/
|
|
96
|
+
const respelled = (page, source, respell) => {
|
|
97
|
+
let url;
|
|
98
|
+
try {
|
|
99
|
+
url = new URL(page.url);
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
const path = url.pathname
|
|
105
|
+
.split("/")
|
|
106
|
+
.map((segment) => LOCALE_SEGMENT.test(segment) ? segment : respell(segment))
|
|
107
|
+
.join("/");
|
|
108
|
+
const absolute = source === "url" && !isLocalHost(page.url);
|
|
109
|
+
const variant = `${absolute ? url.origin : ""}${path}${url.search}`;
|
|
110
|
+
const target = `${absolute ? url.origin : ""}${url.pathname}${url.search}`;
|
|
111
|
+
return { variant, target };
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* The redirect that sends another spelling of the page's path to the page. The page keeps its URL:
|
|
115
|
+
* renaming an indexed URL costs more than the spelling.
|
|
116
|
+
*/
|
|
117
|
+
const spellingRedirect = (page, source, respell, write) => {
|
|
118
|
+
const spelling = respelled(page, source, respell);
|
|
119
|
+
return spelling
|
|
120
|
+
? [
|
|
121
|
+
addEdit("http", "status line", permanentRedirect(spelling.target), {
|
|
122
|
+
url: spelling.variant,
|
|
123
|
+
write,
|
|
124
|
+
}),
|
|
125
|
+
]
|
|
126
|
+
: [];
|
|
127
|
+
};
|
|
128
|
+
/** A path segment in lowercase, its percent-escapes kept uppercase as they are written. */
|
|
129
|
+
const lowercaseSegment = (segment) => segment.toLowerCase().replaceAll(/%[\da-f]{2}/gu, (m) => m.toUpperCase());
|
|
130
|
+
/** A path segment with hyphens where underscores join words. */
|
|
131
|
+
const hyphenatedSegment = (segment) => segment.replaceAll(/(?<=[\p{L}\p{N}])_(?=[\p{L}\p{N}])/gu, "-");
|
|
132
|
+
/** The edit that rewrites a link's href without the parameters `drop` selects. */
|
|
133
|
+
const cleanLinkEdit = (page, link, drop, write) => setAttributeEdit(link.tag, `a[href=${cssString(link.href)}]`, "href", escapeAttribute(withoutParameters(link.href, page.url, drop)), write);
|
|
88
134
|
const KEEP_EXISTING_URLS = "Do not rename URLs that are already indexed or linked to only for this: a rename needs a 301 redirect from every old URL and resets what search engines know about the page. Apply it to new URLs.";
|
|
89
135
|
/** Private networks: an address there resolves only inside one office or one machine. */
|
|
90
136
|
const isPrivateAddress = (host) => /^(?:10|127)\.\d{1,3}\.\d{1,3}\.\d{1,3}$/u.test(host) ||
|
|
@@ -120,6 +166,96 @@ const urlsOnPage = (page) => {
|
|
|
120
166
|
}
|
|
121
167
|
return [...out].map(([url, where]) => ({ url, where }));
|
|
122
168
|
};
|
|
169
|
+
/** The origin of a development-host URL, to swap for the production one. */
|
|
170
|
+
const devOrigin = (raw) => {
|
|
171
|
+
const match = /^(?:https?:)?\/\/[^/?#]+/iu.exec(raw.trim());
|
|
172
|
+
return match ? match[0] : null;
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* Edits that move every URL on a development host to the production origin: the canonical, the
|
|
176
|
+
* hreflang links, og:url and og:image, links, images and resources, each in the tag that has it.
|
|
177
|
+
*/
|
|
178
|
+
const localHostEdits = (page) => {
|
|
179
|
+
const origin = slot("https://www.example.com");
|
|
180
|
+
const edits = [];
|
|
181
|
+
const seen = new Set();
|
|
182
|
+
const add = (raw, tag, at, attribute) => {
|
|
183
|
+
const from = raw ? devOrigin(raw) : null;
|
|
184
|
+
const absolute = raw ? resolveUrl(raw, page.url) : null;
|
|
185
|
+
if (!raw || !from || !absolute || !isDevHost(absolute)) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
// A URL quoted on its own stops before any "&", which the source may write as "&".
|
|
189
|
+
const quoted = tag ? raw : (raw.split("&")[0] ?? raw);
|
|
190
|
+
const moved = `${origin}${quoted.trim().slice(from.length)}`;
|
|
191
|
+
const key = `${at}|${raw}`;
|
|
192
|
+
if (seen.has(key)) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
seen.add(key);
|
|
196
|
+
if (tag === undefined) {
|
|
197
|
+
edits.push(replaceHtml(quoted, moved, { at, write: ORIGIN_SLOT_WRITE }));
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
edits.push(tag.includes(raw)
|
|
201
|
+
? replaceHtml(tag, tag.replace(raw, () => moved), {
|
|
202
|
+
at,
|
|
203
|
+
write: ORIGIN_SLOT_WRITE,
|
|
204
|
+
})
|
|
205
|
+
: setAttributeEdit(tag, at, attribute, moved, ORIGIN_SLOT_WRITE));
|
|
206
|
+
};
|
|
207
|
+
for (const [i, raw] of page.canonicals.entries()) {
|
|
208
|
+
add(raw, page.markup.canonicals[i], 'head > link[rel="canonical"]', "href");
|
|
209
|
+
}
|
|
210
|
+
for (const h of page.hreflang) {
|
|
211
|
+
add(h.href, h.tag, `link[hreflang=${cssString(h.lang)}]`, "href");
|
|
212
|
+
}
|
|
213
|
+
for (const property of ["url", "image"]) {
|
|
214
|
+
add(page.og[property], page.markup.social[`og:${property}`], `head > meta[property="og:${property}"]`, "content");
|
|
215
|
+
}
|
|
216
|
+
for (const resource of page.resources) {
|
|
217
|
+
add(resource.raw, undefined, `${resource.element}[${resource.attribute}*=${cssString(resource.raw)}]`, resource.attribute);
|
|
218
|
+
}
|
|
219
|
+
for (const link of page.links) {
|
|
220
|
+
add(link.href, link.tag, `a[href=${cssString(link.href)}]`, "href");
|
|
221
|
+
}
|
|
222
|
+
return edits;
|
|
223
|
+
};
|
|
224
|
+
/**
|
|
225
|
+
* `url`, which `raw` resolves to, cut where `raw` is cut at its first "&": the query after it is
|
|
226
|
+
* the same in both, while a <base href> before it may hold an "&" of its own.
|
|
227
|
+
*/
|
|
228
|
+
const cutLikeRaw = (url, raw) => {
|
|
229
|
+
let cut = url.length;
|
|
230
|
+
for (let n = raw.split("&").length - 1; n > 0 && cut > 0; n -= 1) {
|
|
231
|
+
cut = url.lastIndexOf("&", cut - 1);
|
|
232
|
+
}
|
|
233
|
+
return cut > 0 ? url.slice(0, cut) : url;
|
|
234
|
+
};
|
|
235
|
+
/**
|
|
236
|
+
* Edits that load each insecure resource over https, once per URL as the page writes it. Only the
|
|
237
|
+
* scheme changes, so the quote stops before any "&", which the source may write as "&".
|
|
238
|
+
*/
|
|
239
|
+
const httpsEdits = (resources) => {
|
|
240
|
+
const seen = new Set();
|
|
241
|
+
const edits = [];
|
|
242
|
+
for (const r of resources) {
|
|
243
|
+
const quoted = r.raw.split("&")[0] ?? r.raw;
|
|
244
|
+
if (seen.has(quoted)) {
|
|
245
|
+
continue;
|
|
246
|
+
}
|
|
247
|
+
seen.add(quoted);
|
|
248
|
+
const at = `${r.element}[${r.attribute}*=${cssString(quoted)}]`;
|
|
249
|
+
// A relative URL is http:// only through an http <base href>: it is written out in full.
|
|
250
|
+
edits.push(/^http:/iu.test(quoted)
|
|
251
|
+
? replaceHtml(quoted, quoted.replace(/^http:/iu, "https:"), { at })
|
|
252
|
+
: replaceHtml(quoted, cutLikeRaw(r.url, r.raw).replace(/^http:/iu, "https:"), {
|
|
253
|
+
at,
|
|
254
|
+
write: "The page's <base href> is on http://; make it https:// too, and check that the https URL exists.",
|
|
255
|
+
}));
|
|
256
|
+
}
|
|
257
|
+
return edits;
|
|
258
|
+
};
|
|
123
259
|
export const urlRules = [
|
|
124
260
|
defineRule({
|
|
125
261
|
id: "url.uppercase",
|
|
@@ -134,6 +270,7 @@ export const urlRules = [
|
|
|
134
270
|
return path &&
|
|
135
271
|
/[A-Z]/u.test(pathWithoutLocales(path).replaceAll(/%[\dA-F]{2}/giu, ""))
|
|
136
272
|
? make(`The URL path ${path} has uppercase letters.`, {
|
|
273
|
+
fix: spellingRedirect(page, source, lowercaseSegment, "Have the lowercase spelling of the path redirect to this page, so links that differ in case reach it; whatever it answers now (404 or a copy of the page). For new pages, use lowercase paths from the start."),
|
|
137
274
|
evidence: { path },
|
|
138
275
|
})
|
|
139
276
|
: null;
|
|
@@ -150,6 +287,7 @@ export const urlRules = [
|
|
|
150
287
|
// Underscores in a word (/blue_widgets), not as a leading marker (/_next/, /_assets/).
|
|
151
288
|
return path && /[\p{L}\p{N}]_[\p{L}\p{N}]/u.test(pathWithoutLocales(path))
|
|
152
289
|
? make(`The URL path ${path} uses underscores between words.`, {
|
|
290
|
+
fix: spellingRedirect(page, source, hyphenatedSegment, "Have the hyphenated spelling of the path redirect to this page, in case links use it. For new pages, separate words with hyphens from the start; keep this indexed URL as it is."),
|
|
153
291
|
evidence: { path },
|
|
154
292
|
})
|
|
155
293
|
: null;
|
|
@@ -168,9 +306,28 @@ export const urlRules = [
|
|
|
168
306
|
return null;
|
|
169
307
|
}
|
|
170
308
|
const parameter = own ?? (links[0]?.url ? sessionParameter(links[0].url) : null);
|
|
309
|
+
const isSession = (name) => name.toLowerCase() === parameter?.toLowerCase() ||
|
|
310
|
+
name.toLowerCase() === "jsessionid";
|
|
311
|
+
const serverSetting = "Then keep the session in a cookie: in a Java servlet container, <tracking-mode>COOKIE</tracking-mode> in web.xml's <session-config>; in PHP, session.use_trans_sid=0 and session.use_only_cookies=1.";
|
|
312
|
+
// The page names its clean URL as canonical, so the session spelling folds into it.
|
|
313
|
+
const [canonicalTag] = page.markup.canonicals;
|
|
314
|
+
const clean = own
|
|
315
|
+
? withoutParameters(page.url, page.url, isSession)
|
|
316
|
+
: null;
|
|
317
|
+
const ownEdit = clean
|
|
318
|
+
? [
|
|
319
|
+
canonicalTag
|
|
320
|
+
? setAttributeEdit(canonicalTag, 'head > link[rel="canonical"]', "href", escapeAttribute(clean), serverSetting)
|
|
321
|
+
: addHtml("head", `<link rel="canonical" href="${escapeAttribute(clean)}">`, serverSetting),
|
|
322
|
+
]
|
|
323
|
+
: [];
|
|
171
324
|
return make(own
|
|
172
325
|
? `The page URL carries a session id (${own}).`
|
|
173
326
|
: `${links.length} internal link(s) carry a session id (${parameter}).`, {
|
|
327
|
+
fix: [
|
|
328
|
+
...ownEdit,
|
|
329
|
+
...links.map((link, i) => cleanLinkEdit(page, link, isSession, i === 0 && ownEdit.length === 0 ? serverSetting : undefined)),
|
|
330
|
+
],
|
|
174
331
|
evidence: {
|
|
175
332
|
parameter,
|
|
176
333
|
pageUrl: own ? page.url : null,
|
|
@@ -200,6 +357,7 @@ export const urlRules = [
|
|
|
200
357
|
});
|
|
201
358
|
return tagged.length > 0
|
|
202
359
|
? make(`${tagged.length} internal link(s) carry tracking parameters.`, {
|
|
360
|
+
fix: tagged.map((link) => cleanLinkEdit(page, link, isTrackingParameter)),
|
|
203
361
|
evidence: {
|
|
204
362
|
count: tagged.length,
|
|
205
363
|
examples: cap(tagged.map((l) => l.url)),
|
|
@@ -222,6 +380,7 @@ export const urlRules = [
|
|
|
222
380
|
return null;
|
|
223
381
|
}
|
|
224
382
|
const places = [...new Set(local.map((u) => u.where))];
|
|
383
|
+
const fix = localHostEdits(page);
|
|
225
384
|
// A tutorial may link to http://localhost:3000 on purpose, for the reader's own machine.
|
|
226
385
|
const onlyAnchors = places.every((w) => w === "<a href>");
|
|
227
386
|
return make(`${local.length} URL(s) on the page point to a development host (${cap(places, 4).join(", ")}).`, {
|
|
@@ -229,6 +388,7 @@ export const urlRules = [
|
|
|
229
388
|
recommendation: onlyAnchors
|
|
230
389
|
? "If these links are meant for the reader's own machine (a setup guide), leave them. Otherwise build them from the production site URL or make them relative."
|
|
231
390
|
: undefined,
|
|
391
|
+
fix,
|
|
232
392
|
evidence: {
|
|
233
393
|
count: local.length,
|
|
234
394
|
examples: cap(local.map((u) => `${u.where}: ${u.url}`)),
|
|
@@ -243,6 +403,7 @@ export const urlRules = [
|
|
|
243
403
|
recommendation: 'Give the target element the id the link names, or fix the link. If JavaScript handles the click (a menu or modal toggle), use a <button> instead of <a href="#...">.',
|
|
244
404
|
}, ({ page }, make) => page.missingFragments.length > 0
|
|
245
405
|
? make(`${page.missingFragments.length} same-page link(s) point to ids that are not on the page: ${cap(page.missingFragments, 5).join(", ")}.`, {
|
|
406
|
+
fix: page.missingFragments.map((href) => addHtml(`the element ${href} should scroll to`, `id="${escapeAttribute(href.slice(1))}"`, `Put this id on the section or heading the link ${href} means. If a script handles the click instead (a menu or modal toggle), make the link a <button type="button">.`)),
|
|
246
407
|
selector: cap(page.missingFragments, 5)
|
|
247
408
|
.map((href) => `a[href="${href.replaceAll('"', '\\"')}"]`)
|
|
248
409
|
.join(", "),
|
|
@@ -269,9 +430,12 @@ export const urlRules = [
|
|
|
269
430
|
const blocked = insecure.filter((r) => !isUpgraded(r));
|
|
270
431
|
const upgraded = insecure.filter(isUpgraded);
|
|
271
432
|
const examples = (list) => cap(list.map((r) => `${r.kind}: ${r.url}`));
|
|
433
|
+
const fixOf = (list) => httpsEdits(list);
|
|
272
434
|
return [
|
|
273
435
|
blocked.length > 0
|
|
274
436
|
? make(`Browsers block ${blocked.length} resource(s) the page loads over http (${[...new Set(blocked.map((r) => r.kind))].join(", ")}).`, {
|
|
437
|
+
fix: fixOf(blocked),
|
|
438
|
+
key: "blocked",
|
|
275
439
|
evidence: {
|
|
276
440
|
count: blocked.length,
|
|
277
441
|
examples: examples(blocked),
|
|
@@ -281,6 +445,8 @@ export const urlRules = [
|
|
|
281
445
|
upgraded.length > 0
|
|
282
446
|
? make(`${upgraded.length} resource URL(s) use http; browsers upgrade them to https, which fails where the https URL does not exist.`, {
|
|
283
447
|
severity: "info",
|
|
448
|
+
fix: fixOf(upgraded),
|
|
449
|
+
key: "upgraded",
|
|
284
450
|
evidence: {
|
|
285
451
|
count: upgraded.length,
|
|
286
452
|
examples: examples(upgraded),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urls.js","sourceRoot":"","sources":["../../../src/core/rules/urls.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"urls.js","sourceRoot":"","sources":["../../../src/core/rules/urls.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import type { PageRecord } from "./site-rules.js";
|
|
2
|
+
import type { SitemapLayout } from "./sitemap.js";
|
|
3
|
+
import type { FixEdit, ImageInfo, LinkInfo } from "./types.js";
|
|
4
|
+
/**
|
|
5
|
+
* The most edits a site fix builds. `finding()` keeps the first 10 of any longer list, but a fix
|
|
6
|
+
* that reads a site's robots.txt or every crawled page could build thousands first.
|
|
7
|
+
*/
|
|
8
|
+
export declare const MAX_EDITS = 10;
|
|
9
|
+
/** `e` with `url` set, in the key order an edit reads in. */
|
|
10
|
+
export declare const onUrl: (e: FixEdit, url: string) => FixEdit;
|
|
11
|
+
/** An HTTP status line, or what happened when there was no response. */
|
|
12
|
+
export declare const statusLine: (status: number | null, error?: string) => string;
|
|
13
|
+
/** A permanent redirect to `location`; 308 keeps the method, for a redirect that was 307 or 308. */
|
|
14
|
+
export declare const redirectTo: (location: string, keepMethod?: boolean) => string;
|
|
15
|
+
/** Text for an XML element, such as a sitemap <loc>. */
|
|
16
|
+
export declare const xmlText: (value: string) => string;
|
|
17
|
+
/** A sitemap <loc> element, as a generator writes it. */
|
|
18
|
+
export declare const locOf: (url: string) => string;
|
|
19
|
+
/** The path, query and fragment of `url`: how a page links to its own site. */
|
|
20
|
+
export declare const pathOf: (url: string) => string;
|
|
21
|
+
/**
|
|
22
|
+
* `target` written the way `original` was: absolute when the page wrote an absolute URL, else from
|
|
23
|
+
* the root. A fragment the page wrote is kept.
|
|
24
|
+
*/
|
|
25
|
+
export declare const hrefLike: (original: string, target: string, pageUrl: string) => string;
|
|
26
|
+
/** A CSS selector for a link, by the href the page wrote. */
|
|
27
|
+
export declare const linkSelector: (link: LinkInfo) => string;
|
|
28
|
+
/** The edit that points the link `link` on page `pageUrl` at `href` (exact, or a `{{…}}` slot). */
|
|
29
|
+
export declare const relinkEdit: (pageUrl: string, link: LinkInfo, href: string, write?: string) => FixEdit;
|
|
30
|
+
/** The edit that adds a link to `target` on page `from`, in its navigation or footer. */
|
|
31
|
+
export declare const addLinkEdit: (from: string, target: string, write: string) => FixEdit;
|
|
32
|
+
/**
|
|
33
|
+
* robots.txt split into lines, each without its line ending. A lone CR ends a line too, as in
|
|
34
|
+
* robots-parser, so line numbers match the ones it reports.
|
|
35
|
+
*/
|
|
36
|
+
export declare const linesOf: (text: string) => string[];
|
|
37
|
+
/**
|
|
38
|
+
* The first `User-agent:` line of the group that holds line `index` (0-based): the line an agent
|
|
39
|
+
* finds the group by.
|
|
40
|
+
*/
|
|
41
|
+
export declare const groupHeader: (lines: string[], index: number) => string | null;
|
|
42
|
+
export declare const robotsMissingFix: (robotsUrl: string, sitemapUrl: string) => FixEdit[];
|
|
43
|
+
export declare const robotsErrorFix: (robotsUrl: string, status: number | null, error?: string) => FixEdit[];
|
|
44
|
+
/** Replaces the rule that blocks the start URL with an empty Disallow, which allows everything. */
|
|
45
|
+
export declare const robotsBlocksAllFix: (robotsUrl: string, text: string, startUrl: string) => FixEdit[];
|
|
46
|
+
/** The Disallow line that blocks `target` for this crawler, quoted for a `write`. */
|
|
47
|
+
export declare const blockingRule: (robotsUrl: string, text: string, target: string) => string | null;
|
|
48
|
+
/**
|
|
49
|
+
* Cuts robots.txt at the last line Google reads: the rules after it are ignored, so the file should
|
|
50
|
+
* end there once the ones that matter are folded in above.
|
|
51
|
+
*/
|
|
52
|
+
export declare const robotsTooLargeFix: (robotsUrl: string, text: string, bytes: number) => FixEdit[];
|
|
53
|
+
/** Removes noindex:, nofollow: and crawl-delay: lines; a noindex path gets an X-Robots-Tag header instead. */
|
|
54
|
+
export declare const robotsUnsupportedFix: (robotsUrl: string, text: string) => FixEdit[];
|
|
55
|
+
/**
|
|
56
|
+
* Allow lines for the scripts and stylesheets robots.txt keeps from Googlebot, added to the group
|
|
57
|
+
* that blocks them: a longer Allow pattern wins over the Disallow that matched.
|
|
58
|
+
*/
|
|
59
|
+
export declare const blockedResourcesFix: (robotsUrl: string, text: string, resources: string[]) => FixEdit[];
|
|
60
|
+
/** The sitemap file that lists `loc`, or the only one there is. */
|
|
61
|
+
export declare const sitemapFileOf: (layout: SitemapLayout, loc: string) => string | undefined;
|
|
62
|
+
/** Removes the sitemap entry of `loc`. */
|
|
63
|
+
export declare const removeFromSitemap: (layout: SitemapLayout, loc: string, why: string) => FixEdit;
|
|
64
|
+
/** Points the sitemap entry of `loc` at `to`. */
|
|
65
|
+
export declare const replaceInSitemap: (layout: SitemapLayout, loc: string, to: string) => FixEdit;
|
|
66
|
+
/** A sitemap of the indexable pages, and the robots.txt line that names it. */
|
|
67
|
+
export declare const sitemapMissingFix: (sitemapUrl: string, pages: string[], robotsUrl: string | null) => FixEdit[];
|
|
68
|
+
/** Adds the pages a sitemap misses to the sitemap that lists the site's pages. */
|
|
69
|
+
export declare const addToSitemapFix: (layout: SitemapLayout, urls: string[]) => FixEdit[];
|
|
70
|
+
/** What serves a sitemap that answers with an error, HTML or something that is not XML. */
|
|
71
|
+
export declare const sitemapErrorFix: (errors: string[], origin: string) => FixEdit[];
|
|
72
|
+
/**
|
|
73
|
+
* A sitemap index of `parts` files, served where the one large sitemap was. `parts` can come from
|
|
74
|
+
* the Content-Length the site declares, so only the first ones are written out.
|
|
75
|
+
*/
|
|
76
|
+
export declare const splitSitemapFix: (sitemap: string, parts: number, write: string) => FixEdit;
|
|
77
|
+
/** Lists a nested index's sitemaps in the index above it, in place of the nested index. */
|
|
78
|
+
export declare const nestedIndexFix: (layout: SitemapLayout, nested: string) => FixEdit;
|
|
79
|
+
/**
|
|
80
|
+
* A lastmod value in W3C Datetime, when it says unambiguously which moment it means: a date and
|
|
81
|
+
* time with a space instead of the T, a zone without its colon, a date written another way
|
|
82
|
+
* (14 March 2026, 14/03/2026), or a date and time with a month name and a zone. Null for the rest:
|
|
83
|
+
* 03/04/2026 could be March or April, and a time without a zone is a moment in the site's time
|
|
84
|
+
* zone, which the audit does not know.
|
|
85
|
+
*/
|
|
86
|
+
export declare const toW3cDatetime: (value: string) => string | null;
|
|
87
|
+
/** Rewrites <lastmod> values that are not W3C Datetime, or lie in the future. */
|
|
88
|
+
export declare const lastmodFix: (layout: SitemapLayout, examples: string[], kind: "invalid" | "future", today: string) => FixEdit[];
|
|
89
|
+
/**
|
|
90
|
+
* URLs on another host: the www or bare-domain spelling of the site's own host is a slip, written
|
|
91
|
+
* as the site's host; another host may list them when its own robots.txt names the sitemap.
|
|
92
|
+
*/
|
|
93
|
+
export declare const otherHostFix: (layout: SitemapLayout, examples: string[], siteOrigin: string) => FixEdit[];
|
|
94
|
+
/** Where a page lives for an agent: its file in a directory audit, else its URL. */
|
|
95
|
+
export declare const locationOf: (record: PageRecord) => string;
|
|
96
|
+
/** The links on `record` whose target has the key `targetKey`. */
|
|
97
|
+
export declare const linksTo: (record: PageRecord, targetKey: string, key: (url: string) => string) => LinkInfo[];
|
|
98
|
+
/** Gives a page that shares its title with others a title of its own. */
|
|
99
|
+
export declare const retitleEdit: (record: PageRecord) => FixEdit | null;
|
|
100
|
+
/** Gives a page that shares its meta description with others one of its own. */
|
|
101
|
+
export declare const redescribeEdit: (record: PageRecord) => FixEdit | null;
|
|
102
|
+
/** Gives a page that shares its <h1> with others one of its own. */
|
|
103
|
+
export declare const reheadEdit: (record: PageRecord) => FixEdit | null;
|
|
104
|
+
/** Sets the canonical of `record` to `href`: rewrites its canonical link, or adds one. */
|
|
105
|
+
export declare const canonicalEdit: (record: PageRecord, href: string, write?: string) => FixEdit;
|
|
106
|
+
/** The hreflang link that lists `alternate` on `record`, on the page that does not link back. */
|
|
107
|
+
export declare const returnLinkEdit: (target: PageRecord, page: PageRecord, key: (url: string) => string) => FixEdit;
|
|
108
|
+
/** The edits that take noindex off a page: its robots meta tags, or its X-Robots-Tag header. */
|
|
109
|
+
export declare const removeNoindexEdits: (record: PageRecord, write: string) => FixEdit[];
|
|
110
|
+
/** The `<img>` tags on `record` that show the image at `url`. */
|
|
111
|
+
export declare const imagesOf: (record: PageRecord, url: string) => ImageInfo[];
|