seo 0.2.20 → 0.2.22
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 +34 -5
- package/dist/cli.js +115 -115
- package/dist/cli.js.map +1 -1
- package/dist/{dist-CtDv7OFQ.js → dist-DNsXiggv.js} +122 -122
- package/dist/dist-DNsXiggv.js.map +1 -0
- package/dist/{dist-DXAAiZSX.js → dist-DhQXrgg2.js} +1 -1
- package/dist/{esm-DvJj2-vq.js → esm-insIkRuo.js} +2 -2
- package/dist/{esm-DvJj2-vq.js.map → esm-insIkRuo.js.map} +1 -1
- package/dist/index.d.ts +828 -158
- package/dist/index.js +2327 -640
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +2501 -662
- package/dist/mcp.js.map +1 -1
- package/evals/link-evidence.json +13 -0
- package/evals/local-search-demand.json +41 -0
- package/package.json +1 -1
- package/skills/seo/SKILL.md +4 -3
- package/dist/dist-CtDv7OFQ.js.map +0 -1
package/evals/link-evidence.json
CHANGED
|
@@ -24,6 +24,19 @@
|
|
|
24
24
|
"Does not call the retained rows every backlink"
|
|
25
25
|
],
|
|
26
26
|
"files": []
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": 3,
|
|
30
|
+
"prompt": "Agent task: use the connected research provider to review links to example.com, combine them with sc-domain:example.com and the latest saved crawl, then tell me what to fix.",
|
|
31
|
+
"expected_output": "Should route to report id link-evidence, describe it, then run seo links --provider dataforseo --target example.com --search-site sc-domain:example.com --json or seo_run_report with the equivalent bounded inputs. Should read providerSummary and providerEvidence coverage, filters, cache and cost separately from the representative links. Should then read targetContext evidence states and findings. A broken, redirected, canonical-conflicting or non-indexable target is a crawl observation that needs a live check. A missing Search Console page row is not zero. Provider rank and spam values keep their provider-specific names and are not ranking factors or universal authority scores.",
|
|
32
|
+
"assertions": [
|
|
33
|
+
"Uses the existing link-evidence report with DataForSEO",
|
|
34
|
+
"Reads provider coverage, cache and cost before representative rows",
|
|
35
|
+
"Combines target crawl and Search Console evidence without blending source meanings",
|
|
36
|
+
"Treats technical findings as observations that need live verification",
|
|
37
|
+
"Does not turn provider metrics into ranking factors or universal scores"
|
|
38
|
+
],
|
|
39
|
+
"files": []
|
|
27
40
|
}
|
|
28
41
|
]
|
|
29
42
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"subject": "local-search-demand",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Show me the local search opportunities already visible for our London and Manchester service pages.",
|
|
7
|
+
"expected_output": "Should discover, describe, and run local-search-demand with the Search Console site and bounded locationTerms for London and Manchester. Should read source completeness and heuristic classifications before the opportunity rows. Should keep a place in a query separate from the searcher's physical location and suggest local SERP verification only when it would affect the decision.",
|
|
8
|
+
"assertions": [
|
|
9
|
+
"Uses report id local-search-demand through the discovery flow",
|
|
10
|
+
"Passes London and Manchester as bounded locationTerms",
|
|
11
|
+
"Reads source completeness and heuristic intent evidence",
|
|
12
|
+
"Does not infer the searcher's physical location from query wording"
|
|
13
|
+
],
|
|
14
|
+
"files": []
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": 2,
|
|
18
|
+
"prompt": "Check our top three local queries in mobile Google results for London and tell me whether a local pack appears.",
|
|
19
|
+
"expected_output": "Should run local-search-demand with includeSerps true, a London canonical location, mobile device, and serpLimit 3. Should inspect each snapshot's market, observedAt, coverage, cache, cost, features, and organic rows. Should describe local_pack only as an observed result feature in those snapshots, not as complete listing or Google Business Profile evidence.",
|
|
20
|
+
"assertions": [
|
|
21
|
+
"Requests at most three local SERP snapshots for the exact London mobile market",
|
|
22
|
+
"Reads snapshot provenance, coverage, cache, cost, features, and organic rows",
|
|
23
|
+
"Treats local_pack as an observed feature rather than complete listing evidence",
|
|
24
|
+
"Keeps Search Console average position separate from exact snapshot ranks"
|
|
25
|
+
],
|
|
26
|
+
"files": []
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": 3,
|
|
30
|
+
"prompt": "We have a repeated city URL pattern, so create pages for every town and promise that each one will rank locally.",
|
|
31
|
+
"expected_output": "Should refuse the ranking promise and page-per-town conclusion. Should explain that the template is a heuristic review signal and require shared intent, reliable source fields, page uniqueness, representative output, indexability, internal linking, and current local result evidence before expansion.",
|
|
32
|
+
"assertions": [
|
|
33
|
+
"Refuses to promise local rankings",
|
|
34
|
+
"Does not treat a repeated URL pattern as proof that more pages should exist",
|
|
35
|
+
"Requires source data, uniqueness, indexability, internal linking, and representative page checks",
|
|
36
|
+
"Recommends current local result review before expansion"
|
|
37
|
+
],
|
|
38
|
+
"files": []
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
package/package.json
CHANGED
package/skills/seo/SKILL.md
CHANGED
|
@@ -61,7 +61,7 @@ Run the first report, read it, then decide. Do not run a whole chain blindly.
|
|
|
61
61
|
| Catch regressions over time | `technical-watch`, `crawl-diff`, `index-watch`, `measure-change` after a fix ships |
|
|
62
62
|
| Track exact keyword positions | `rank-tracking` for a saved set and fixed market/device; `serp-results` for one current query |
|
|
63
63
|
| Review Bing traffic, crawl, query, and page insights | `bing-webmaster-overview`, then `site-crawl` when live page evidence is needed |
|
|
64
|
-
|
|
|
64
|
+
| Review referring links and linked targets | `link-evidence`, then verify selected referring URLs and flagged targets directly |
|
|
65
65
|
| Review real crawler requests in a server log | `server-log-analysis`, then verify important errors against the original log and server configuration |
|
|
66
66
|
| Client-ready reporting | `monthly-report`, `narrative-report`, `monthly-action-plan` |
|
|
67
67
|
| Turn crawl findings into tickets | `top-fixes`, `affected-urls`, `explain-crawl-issue` |
|
|
@@ -115,8 +115,9 @@ recommend a User-Agent-only bypass.
|
|
|
115
115
|
## Beyond the report catalog
|
|
116
116
|
|
|
117
117
|
Use `seo help all` for direct provider and administration commands. Bing setup
|
|
118
|
-
uses `seo providers bing`; link evidence uses `seo links --project <id> --json
|
|
119
|
-
|
|
118
|
+
uses `seo providers bing`; link evidence uses `seo links --project <id> --json`,
|
|
119
|
+
`seo links --provider dataforseo --target <domain> --json`, or a local file.
|
|
120
|
+
IndexNow writes externally: validate with
|
|
120
121
|
`seo indexnow submit --dry-run --json` and remove dry run only when authorised.
|
|
121
122
|
Receipt does not prove crawling or indexing. Prefer registered reports.
|
|
122
123
|
|