seo 0.15.2 → 0.16.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/dist/cli.js +83 -83
- package/dist/cli.js.map +1 -1
- package/dist/{dist-DOJoZZ9W.js → dist-Bv1JGvEz.js} +1 -1
- package/dist/{dist-Dpl5hSMM.js → dist-CHIJxr2Y.js} +140 -136
- package/dist/dist-CHIJxr2Y.js.map +1 -0
- package/dist/{esm-Dt4JJZ0P.js → esm-CV5s7esU.js} +2 -2
- package/dist/{esm-Dt4JJZ0P.js.map → esm-CV5s7esU.js.map} +1 -1
- package/dist/index.d.ts +55 -7
- package/dist/index.js +727 -147
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +728 -148
- package/dist/mcp.js.map +1 -1
- package/package.json +1 -1
- package/skills/seo/SKILL.md +10 -1
- package/dist/dist-Dpl5hSMM.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -198,7 +198,7 @@ export interface PageFetchDiagnostics {
|
|
|
198
198
|
};
|
|
199
199
|
documentDifference?: RenderingDocumentDifference;
|
|
200
200
|
browser?: {
|
|
201
|
-
source: 'environment' | 'playwright-cache' | 'system';
|
|
201
|
+
source: 'environment' | 'playwright-cache' | 'agent-browser-cache' | 'system';
|
|
202
202
|
product: string;
|
|
203
203
|
version?: string;
|
|
204
204
|
};
|
|
@@ -680,6 +680,19 @@ declare const RULE_DEFINITIONS: readonly [{
|
|
|
680
680
|
readonly evidenceFields: ["page.wordCount", "page.contentSample", "page.outgoingInternalCount", "page.fetchDiagnostics.rendering"];
|
|
681
681
|
readonly suggestedCommands: ["seo crawl <url> --max-pages 1 --json"];
|
|
682
682
|
};
|
|
683
|
+
}, {
|
|
684
|
+
readonly id: "crawl_single_page_reach";
|
|
685
|
+
readonly title: "Crawl could reach only the start page";
|
|
686
|
+
readonly category: "links";
|
|
687
|
+
readonly defaultSeverity: "high";
|
|
688
|
+
readonly whyItMatters: "The start page had no crawlable internal links and no sitemap returned URLs, so the crawl checked one page. Every other finding in this report covers that page only. The page probably builds its links with JavaScript.";
|
|
689
|
+
readonly howToFix: "Rerun with `--rendering on` so the crawler reads the links a browser sees, or pass the pages to check with `--mode list`. For crawlers that do not run JavaScript, put plain `<a href>` links in the initial HTML and publish a sitemap.";
|
|
690
|
+
readonly impactIfIgnored: "Crawlers and audits that do not run JavaScript can find only this page, so the rest of the site stays unchecked and harder to discover.";
|
|
691
|
+
readonly howToVerify: "Rerun the crawl and confirm it retains more than one page and the start page reports internal links.";
|
|
692
|
+
readonly agentHints: {
|
|
693
|
+
readonly evidenceFields: ["page.outgoingInternalCount", "report.sitemapDiscovery.urlsReturned", "page.fetchDiagnostics.rendering"];
|
|
694
|
+
readonly suggestedCommands: ["seo crawl <url> --rendering on --json", "seo crawl --mode list --urls <url>,<url> --json"];
|
|
695
|
+
};
|
|
683
696
|
}, {
|
|
684
697
|
readonly id: "soft_404";
|
|
685
698
|
readonly title: "Unknown URLs return a successful response";
|
|
@@ -688,7 +701,7 @@ declare const RULE_DEFINITIONS: readonly [{
|
|
|
688
701
|
readonly whyItMatters: "Known-nonexistent URLs returned a successful response or redirected to another successful page. Search engines and users cannot reliably distinguish missing content from a real page.";
|
|
689
702
|
readonly howToFix: "Return 404 or 410 for missing URLs. If a replacement exists, redirect only the specific retired URL to its closest relevant replacement rather than sending every unknown path to a generic page.";
|
|
690
703
|
readonly impactIfIgnored: "Missing URLs can remain in crawl queues, waste crawl attention, and create confusing search or monitoring evidence.";
|
|
691
|
-
readonly howToVerify: "Request several
|
|
704
|
+
readonly howToVerify: "Request several made-up paths, including one at the site root and one nested path, and confirm each returns 404 or 410 without redirecting to a generic successful page.";
|
|
692
705
|
readonly agentHints: {
|
|
693
706
|
readonly evidenceFields: ["report.siteChecks.soft404"];
|
|
694
707
|
readonly suggestedCommands: ["seo crawl <url> --json"];
|
|
@@ -2818,7 +2831,7 @@ export declare function fetchSitemapUrls(input: {
|
|
|
2818
2831
|
limit?: number;
|
|
2819
2832
|
maxNested?: number;
|
|
2820
2833
|
}): Promise<SitemapFetchResult>;
|
|
2821
|
-
export declare const CRAWL_SKIP_REASONS: readonly ["asset-url", "configured-exclusion", "duplicate-normalization", "invalid-url", "memory-pressure", "off-origin", "origin-backpressure", "queue-safety-limit", "robots-disallowed", "robots-uncertain", "legacy-unclassified"];
|
|
2834
|
+
export declare const CRAWL_SKIP_REASONS: readonly ["asset-url", "configured-exclusion", "duplicate-normalization", "invalid-url", "memory-pressure", "off-origin", "origin-backpressure", "queue-safety-limit", "query-variant-limit", "robots-disallowed", "robots-uncertain", "legacy-unclassified"];
|
|
2822
2835
|
export type CrawlSkipReason = (typeof CRAWL_SKIP_REASONS)[number];
|
|
2823
2836
|
export type CrawlSkipImpact = 'coverage-affecting' | 'non-impacting';
|
|
2824
2837
|
export type CrawlSkipReasonCount = {
|
|
@@ -3568,6 +3581,7 @@ export declare const crawlPageSnapshotSchema: z.ZodObject<{
|
|
|
3568
3581
|
source: z.ZodEnum<{
|
|
3569
3582
|
environment: "environment";
|
|
3570
3583
|
"playwright-cache": "playwright-cache";
|
|
3584
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
3571
3585
|
system: "system";
|
|
3572
3586
|
}>;
|
|
3573
3587
|
product: z.ZodString;
|
|
@@ -4314,6 +4328,7 @@ export declare const crawlReportSummarySchema: z.ZodObject<{
|
|
|
4314
4328
|
"memory-pressure": "memory-pressure";
|
|
4315
4329
|
"off-origin": "off-origin";
|
|
4316
4330
|
"queue-safety-limit": "queue-safety-limit";
|
|
4331
|
+
"query-variant-limit": "query-variant-limit";
|
|
4317
4332
|
"robots-uncertain": "robots-uncertain";
|
|
4318
4333
|
"legacy-unclassified": "legacy-unclassified";
|
|
4319
4334
|
}>;
|
|
@@ -4480,6 +4495,7 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
4480
4495
|
"memory-pressure": "memory-pressure";
|
|
4481
4496
|
"off-origin": "off-origin";
|
|
4482
4497
|
"queue-safety-limit": "queue-safety-limit";
|
|
4498
|
+
"query-variant-limit": "query-variant-limit";
|
|
4483
4499
|
"robots-uncertain": "robots-uncertain";
|
|
4484
4500
|
"legacy-unclassified": "legacy-unclassified";
|
|
4485
4501
|
}>;
|
|
@@ -4751,6 +4767,7 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
4751
4767
|
source: z.ZodEnum<{
|
|
4752
4768
|
environment: "environment";
|
|
4753
4769
|
"playwright-cache": "playwright-cache";
|
|
4770
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
4754
4771
|
system: "system";
|
|
4755
4772
|
}>;
|
|
4756
4773
|
product: z.ZodString;
|
|
@@ -5795,6 +5812,7 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
5795
5812
|
"memory-pressure": "memory-pressure";
|
|
5796
5813
|
"off-origin": "off-origin";
|
|
5797
5814
|
"queue-safety-limit": "queue-safety-limit";
|
|
5815
|
+
"query-variant-limit": "query-variant-limit";
|
|
5798
5816
|
"robots-uncertain": "robots-uncertain";
|
|
5799
5817
|
"legacy-unclassified": "legacy-unclassified";
|
|
5800
5818
|
}>;
|
|
@@ -6066,6 +6084,7 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
6066
6084
|
source: z.ZodEnum<{
|
|
6067
6085
|
environment: "environment";
|
|
6068
6086
|
"playwright-cache": "playwright-cache";
|
|
6087
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
6069
6088
|
system: "system";
|
|
6070
6089
|
}>;
|
|
6071
6090
|
product: z.ZodString;
|
|
@@ -7110,6 +7129,7 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
7110
7129
|
"memory-pressure": "memory-pressure";
|
|
7111
7130
|
"off-origin": "off-origin";
|
|
7112
7131
|
"queue-safety-limit": "queue-safety-limit";
|
|
7132
|
+
"query-variant-limit": "query-variant-limit";
|
|
7113
7133
|
"robots-uncertain": "robots-uncertain";
|
|
7114
7134
|
"legacy-unclassified": "legacy-unclassified";
|
|
7115
7135
|
}>;
|
|
@@ -7381,6 +7401,7 @@ export declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
7381
7401
|
source: z.ZodEnum<{
|
|
7382
7402
|
environment: "environment";
|
|
7383
7403
|
"playwright-cache": "playwright-cache";
|
|
7404
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
7384
7405
|
system: "system";
|
|
7385
7406
|
}>;
|
|
7386
7407
|
product: z.ZodString;
|
|
@@ -8427,6 +8448,7 @@ export declare const crawlerSchemas: {
|
|
|
8427
8448
|
"memory-pressure": "memory-pressure";
|
|
8428
8449
|
"off-origin": "off-origin";
|
|
8429
8450
|
"queue-safety-limit": "queue-safety-limit";
|
|
8451
|
+
"query-variant-limit": "query-variant-limit";
|
|
8430
8452
|
"robots-uncertain": "robots-uncertain";
|
|
8431
8453
|
"legacy-unclassified": "legacy-unclassified";
|
|
8432
8454
|
}>;
|
|
@@ -8698,6 +8720,7 @@ export declare const crawlerSchemas: {
|
|
|
8698
8720
|
source: z.ZodEnum<{
|
|
8699
8721
|
environment: "environment";
|
|
8700
8722
|
"playwright-cache": "playwright-cache";
|
|
8723
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
8701
8724
|
system: "system";
|
|
8702
8725
|
}>;
|
|
8703
8726
|
product: z.ZodString;
|
|
@@ -9742,6 +9765,7 @@ export declare const crawlerSchemas: {
|
|
|
9742
9765
|
"memory-pressure": "memory-pressure";
|
|
9743
9766
|
"off-origin": "off-origin";
|
|
9744
9767
|
"queue-safety-limit": "queue-safety-limit";
|
|
9768
|
+
"query-variant-limit": "query-variant-limit";
|
|
9745
9769
|
"robots-uncertain": "robots-uncertain";
|
|
9746
9770
|
"legacy-unclassified": "legacy-unclassified";
|
|
9747
9771
|
}>;
|
|
@@ -10013,6 +10037,7 @@ export declare const crawlerSchemas: {
|
|
|
10013
10037
|
source: z.ZodEnum<{
|
|
10014
10038
|
environment: "environment";
|
|
10015
10039
|
"playwright-cache": "playwright-cache";
|
|
10040
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
10016
10041
|
system: "system";
|
|
10017
10042
|
}>;
|
|
10018
10043
|
product: z.ZodString;
|
|
@@ -11057,6 +11082,7 @@ export declare const crawlerSchemas: {
|
|
|
11057
11082
|
"memory-pressure": "memory-pressure";
|
|
11058
11083
|
"off-origin": "off-origin";
|
|
11059
11084
|
"queue-safety-limit": "queue-safety-limit";
|
|
11085
|
+
"query-variant-limit": "query-variant-limit";
|
|
11060
11086
|
"robots-uncertain": "robots-uncertain";
|
|
11061
11087
|
"legacy-unclassified": "legacy-unclassified";
|
|
11062
11088
|
}>;
|
|
@@ -11328,6 +11354,7 @@ export declare const crawlerSchemas: {
|
|
|
11328
11354
|
source: z.ZodEnum<{
|
|
11329
11355
|
environment: "environment";
|
|
11330
11356
|
"playwright-cache": "playwright-cache";
|
|
11357
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
11331
11358
|
system: "system";
|
|
11332
11359
|
}>;
|
|
11333
11360
|
product: z.ZodString;
|
|
@@ -12767,6 +12794,7 @@ export declare const crawlerSchemas: {
|
|
|
12767
12794
|
source: z.ZodEnum<{
|
|
12768
12795
|
environment: "environment";
|
|
12769
12796
|
"playwright-cache": "playwright-cache";
|
|
12797
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
12770
12798
|
system: "system";
|
|
12771
12799
|
}>;
|
|
12772
12800
|
product: z.ZodString;
|
|
@@ -13300,6 +13328,7 @@ export declare const crawlerJsonSchemas: {
|
|
|
13300
13328
|
"memory-pressure": "memory-pressure";
|
|
13301
13329
|
"off-origin": "off-origin";
|
|
13302
13330
|
"queue-safety-limit": "queue-safety-limit";
|
|
13331
|
+
"query-variant-limit": "query-variant-limit";
|
|
13303
13332
|
"robots-uncertain": "robots-uncertain";
|
|
13304
13333
|
"legacy-unclassified": "legacy-unclassified";
|
|
13305
13334
|
}>;
|
|
@@ -13571,6 +13600,7 @@ export declare const crawlerJsonSchemas: {
|
|
|
13571
13600
|
source: z.ZodEnum<{
|
|
13572
13601
|
environment: "environment";
|
|
13573
13602
|
"playwright-cache": "playwright-cache";
|
|
13603
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
13574
13604
|
system: "system";
|
|
13575
13605
|
}>;
|
|
13576
13606
|
product: z.ZodString;
|
|
@@ -14615,6 +14645,7 @@ export declare const crawlerJsonSchemas: {
|
|
|
14615
14645
|
"memory-pressure": "memory-pressure";
|
|
14616
14646
|
"off-origin": "off-origin";
|
|
14617
14647
|
"queue-safety-limit": "queue-safety-limit";
|
|
14648
|
+
"query-variant-limit": "query-variant-limit";
|
|
14618
14649
|
"robots-uncertain": "robots-uncertain";
|
|
14619
14650
|
"legacy-unclassified": "legacy-unclassified";
|
|
14620
14651
|
}>;
|
|
@@ -14886,6 +14917,7 @@ export declare const crawlerJsonSchemas: {
|
|
|
14886
14917
|
source: z.ZodEnum<{
|
|
14887
14918
|
environment: "environment";
|
|
14888
14919
|
"playwright-cache": "playwright-cache";
|
|
14920
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
14889
14921
|
system: "system";
|
|
14890
14922
|
}>;
|
|
14891
14923
|
product: z.ZodString;
|
|
@@ -15930,6 +15962,7 @@ export declare const crawlerJsonSchemas: {
|
|
|
15930
15962
|
"memory-pressure": "memory-pressure";
|
|
15931
15963
|
"off-origin": "off-origin";
|
|
15932
15964
|
"queue-safety-limit": "queue-safety-limit";
|
|
15965
|
+
"query-variant-limit": "query-variant-limit";
|
|
15933
15966
|
"robots-uncertain": "robots-uncertain";
|
|
15934
15967
|
"legacy-unclassified": "legacy-unclassified";
|
|
15935
15968
|
}>;
|
|
@@ -16201,6 +16234,7 @@ export declare const crawlerJsonSchemas: {
|
|
|
16201
16234
|
source: z.ZodEnum<{
|
|
16202
16235
|
environment: "environment";
|
|
16203
16236
|
"playwright-cache": "playwright-cache";
|
|
16237
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
16204
16238
|
system: "system";
|
|
16205
16239
|
}>;
|
|
16206
16240
|
product: z.ZodString;
|
|
@@ -17640,6 +17674,7 @@ export declare const crawlerJsonSchemas: {
|
|
|
17640
17674
|
source: z.ZodEnum<{
|
|
17641
17675
|
environment: "environment";
|
|
17642
17676
|
"playwright-cache": "playwright-cache";
|
|
17677
|
+
"agent-browser-cache": "agent-browser-cache";
|
|
17643
17678
|
system: "system";
|
|
17644
17679
|
}>;
|
|
17645
17680
|
product: z.ZodString;
|
|
@@ -18056,12 +18091,12 @@ export declare const providerPackageNameSchema: z.ZodString;
|
|
|
18056
18091
|
export declare const providerExactVersionSchema: z.ZodString;
|
|
18057
18092
|
export declare const providerIntegritySchema: z.ZodString;
|
|
18058
18093
|
export declare const providerKindSchema: z.ZodEnum<{
|
|
18094
|
+
"local-search": "local-search";
|
|
18059
18095
|
"traffic-analytics": "traffic-analytics";
|
|
18060
18096
|
"search-results": "search-results";
|
|
18061
18097
|
"keyword-data": "keyword-data";
|
|
18062
18098
|
"domain-data": "domain-data";
|
|
18063
18099
|
"link-data": "link-data";
|
|
18064
|
-
"local-search": "local-search";
|
|
18065
18100
|
"ai-data": "ai-data";
|
|
18066
18101
|
other: "other";
|
|
18067
18102
|
}>;
|
|
@@ -18104,12 +18139,12 @@ export declare const providerRegistrationSchema: z.ZodObject<{
|
|
|
18104
18139
|
displayName: z.ZodString;
|
|
18105
18140
|
description: z.ZodString;
|
|
18106
18141
|
kinds: z.ZodArray<z.ZodEnum<{
|
|
18142
|
+
"local-search": "local-search";
|
|
18107
18143
|
"traffic-analytics": "traffic-analytics";
|
|
18108
18144
|
"search-results": "search-results";
|
|
18109
18145
|
"keyword-data": "keyword-data";
|
|
18110
18146
|
"domain-data": "domain-data";
|
|
18111
18147
|
"link-data": "link-data";
|
|
18112
|
-
"local-search": "local-search";
|
|
18113
18148
|
"ai-data": "ai-data";
|
|
18114
18149
|
other: "other";
|
|
18115
18150
|
}>>;
|
|
@@ -18174,10 +18209,9 @@ export declare const providerIdSchema: z.ZodString;
|
|
|
18174
18209
|
export type ProviderId = z.infer<typeof providerIdSchema>;
|
|
18175
18210
|
export type ExternalServiceId = string;
|
|
18176
18211
|
export declare const providerCapabilitySchema: z.ZodEnum<{
|
|
18177
|
-
"local-search": "local-search";
|
|
18178
|
-
"serp-snapshot": "serp-snapshot";
|
|
18179
18212
|
"keyword-metrics": "keyword-metrics";
|
|
18180
18213
|
"keyword-discovery": "keyword-discovery";
|
|
18214
|
+
"serp-snapshot": "serp-snapshot";
|
|
18181
18215
|
"domain-overview": "domain-overview";
|
|
18182
18216
|
"ranked-keywords": "ranked-keywords";
|
|
18183
18217
|
"relevant-pages": "relevant-pages";
|
|
@@ -18186,6 +18220,7 @@ export declare const providerCapabilitySchema: z.ZodEnum<{
|
|
|
18186
18220
|
"referring-domains": "referring-domains";
|
|
18187
18221
|
backlinks: "backlinks";
|
|
18188
18222
|
"domain-rating": "domain-rating";
|
|
18223
|
+
"local-search": "local-search";
|
|
18189
18224
|
"ai-mentions": "ai-mentions";
|
|
18190
18225
|
"ai-prompt-observation": "ai-prompt-observation";
|
|
18191
18226
|
}>;
|
|
@@ -21616,6 +21651,7 @@ type WeekSite = {
|
|
|
21616
21651
|
previous: number;
|
|
21617
21652
|
} | null;
|
|
21618
21653
|
opportunities?: WeekOpportunities | null;
|
|
21654
|
+
google_updates?: WeekGoogleUpdate[];
|
|
21619
21655
|
measured?: {
|
|
21620
21656
|
total: number;
|
|
21621
21657
|
items: (IssueMeasure & {
|
|
@@ -21653,6 +21689,18 @@ type WeekData = {
|
|
|
21653
21689
|
account: string;
|
|
21654
21690
|
sites: WeekSite[];
|
|
21655
21691
|
};
|
|
21692
|
+
type WeekGoogleUpdate = {
|
|
21693
|
+
name: string;
|
|
21694
|
+
start: string;
|
|
21695
|
+
end: string | null;
|
|
21696
|
+
ready: boolean;
|
|
21697
|
+
result: {
|
|
21698
|
+
verdict: 'within-normal' | 'outside-normal' | 'not-enough-data';
|
|
21699
|
+
clicks: number;
|
|
21700
|
+
previous: number;
|
|
21701
|
+
days: number;
|
|
21702
|
+
} | null;
|
|
21703
|
+
};
|
|
21656
21704
|
export declare const CLOUD_URL = "https://seoskill.dev";
|
|
21657
21705
|
type Pending = {
|
|
21658
21706
|
device: string;
|