@gscdump/sdk 0.37.0 → 0.37.1

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.
Files changed (2) hide show
  1. package/dist/index.mjs +67 -5
  2. package/package.json +5 -5
package/dist/index.mjs CHANGED
@@ -1076,6 +1076,34 @@ const issueDetails = {
1076
1076
  description: "Google encountered 5xx server errors when trying to crawl these URLs. The pages were unreachable at crawl time.",
1077
1077
  fix: "Check your server logs for errors. Ensure your hosting can handle Googlebot traffic. Fix any backend issues causing 500/502/503 errors."
1078
1078
  },
1079
+ access_forbidden: {
1080
+ description: "Your server returned 403 Forbidden to Googlebot. Usually a WAF, bot-protection rule, or firewall treating the crawler as an attacker — a human visitor may see the page fine.",
1081
+ fix: "Allowlist Googlebot in your WAF / bot-protection rules and verify by IP, not user agent. Check Cloudflare bot-fight mode, rate limits, and any geo or ASN blocking. Re-test with the URL Inspection tool's \"Test live URL\"."
1082
+ },
1083
+ access_denied: {
1084
+ description: "Your server returned 401 Unauthorized to Googlebot. The URL sits behind an authentication wall.",
1085
+ fix: "If the page should rank, remove the auth requirement for crawlers or move the content to a public URL. If it is genuinely private, block it in robots.txt or noindex it so it stops being reported as an indexing failure."
1086
+ },
1087
+ blocked_4xx: {
1088
+ description: "Google got a 4xx response other than 401, 403, or 404 — commonly 410 Gone, 429 Too Many Requests, or 451.",
1089
+ fix: "Check which status the URL actually returns. A 429 means Googlebot is being rate-limited: raise or exempt the crawler limit. A 410 is intentional deletion and will clear on its own."
1090
+ },
1091
+ redirect_error: {
1092
+ description: "Google could not follow the redirect — a redirect chain that is too long, a loop, an empty Location header, or a URL that exceeds the maximum length.",
1093
+ fix: "Collapse redirect chains to a single hop. Look for loops (A→B→A) and self-redirects. Point internal links and sitemap entries at the final destination URL."
1094
+ },
1095
+ crawl_error: {
1096
+ description: "Google hit an internal crawl error or considered the URL malformed. Often transient on Google's side, but a persistent count means the URL itself is invalid.",
1097
+ fix: "Verify the URL parses and resolves. Remove malformed URLs from your sitemap and internal links. If the URLs are valid, re-inspect in a few days — transient crawl errors clear themselves."
1098
+ },
1099
+ sitemap_redirect: {
1100
+ description: "These URLs are submitted in your sitemap but redirect elsewhere. A sitemap should only list final, canonical, 200-status URLs — a redirecting entry wastes crawl budget and tells Google your sitemap is stale.",
1101
+ fix: "Replace each redirecting entry with its destination URL, or drop it from the sitemap entirely. Then resubmit the sitemap."
1102
+ },
1103
+ alternate_canonical: {
1104
+ description: "These pages declare a canonical pointing at another page, and Google honoured it. The canonical target is what gets indexed. Usually intentional.",
1105
+ fix: "Nothing to fix if the canonical is deliberate. If these pages should rank on their own, make each one self-canonical and give it genuinely distinct content."
1106
+ },
1079
1107
  unknown_to_google: {
1080
1108
  description: "These URLs exist on your site but Google hasn't discovered them yet. They may be orphaned pages or missing from your sitemap.",
1081
1109
  fix: "Add these URLs to your sitemap. Create internal links to them from well-indexed pages. Submit the sitemap in Google Search Console."
@@ -1203,6 +1231,30 @@ const coverageLabels = {
1203
1231
  "Blocked by robots.txt": {
1204
1232
  short: "Robots blocked",
1205
1233
  color: "text-warning"
1234
+ },
1235
+ "Blocked due to access forbidden (403)": {
1236
+ short: "Forbidden (403)",
1237
+ color: "text-error"
1238
+ },
1239
+ "Blocked due to unauthorized request (401)": {
1240
+ short: "Unauthorized (401)",
1241
+ color: "text-error"
1242
+ },
1243
+ "Blocked due to other 4xx issue": {
1244
+ short: "Blocked (4xx)",
1245
+ color: "text-error"
1246
+ },
1247
+ "Redirect error": {
1248
+ short: "Redirect error",
1249
+ color: "text-error"
1250
+ },
1251
+ "Page with redirect": {
1252
+ short: "Redirect",
1253
+ color: "text-muted"
1254
+ },
1255
+ "Alternate page with proper canonical tag": {
1256
+ short: "Alternate canonical",
1257
+ color: "text-muted"
1206
1258
  }
1207
1259
  };
1208
1260
  function coverageLabel(state) {
@@ -1219,8 +1271,12 @@ const issueGroups = [
1219
1271
  description: "Configuration changes you can make right now",
1220
1272
  effort: "quick",
1221
1273
  controlLevel: "full",
1222
- education: "These issues are caused by your site's configuration preventing Google from indexing certain pages. If these pages should be indexed, the fix is usually a one-line config change — remove a robots.txt rule or fix a canonical URL. Highest-ROI fixes, zero content work.",
1223
- issueTypes: ["blocked_robots", "canonical_mismatch"]
1274
+ education: "These issues are caused by your site's configuration preventing Google from indexing certain pages. If these pages should be indexed, the fix is usually a one-line config change — remove a robots.txt rule, fix a canonical URL, or drop a redirecting entry from your sitemap. Highest-ROI fixes, zero content work.",
1275
+ issueTypes: [
1276
+ "blocked_robots",
1277
+ "canonical_mismatch",
1278
+ "sitemap_redirect"
1279
+ ]
1224
1280
  },
1225
1281
  {
1226
1282
  id: "technical",
@@ -1229,11 +1285,16 @@ const issueGroups = [
1229
1285
  description: "Server and URL issues to resolve",
1230
1286
  effort: "moderate",
1231
1287
  controlLevel: "full",
1232
- education: "These are infrastructure problems — your server is returning errors, pages have been deleted without redirects, or pages appear empty to Google. Fix server errors first (they affect crawl budget), then handle 404s with redirects, and ensure pages with real content return proper status codes.",
1288
+ education: "These are infrastructure problems — your server is returning errors, blocking Googlebot at the edge, failing to follow redirects, or serving pages that look empty. Fix crawl blocks and server errors first (they cost crawl budget and can drop indexed pages), then handle 404s with redirects.",
1233
1289
  issueTypes: [
1234
1290
  "server_error",
1235
1291
  "not_found",
1236
- "soft_404"
1292
+ "soft_404",
1293
+ "access_forbidden",
1294
+ "access_denied",
1295
+ "blocked_4xx",
1296
+ "redirect_error",
1297
+ "crawl_error"
1237
1298
  ]
1238
1299
  },
1239
1300
  {
@@ -1259,10 +1320,11 @@ const issueGroups = [
1259
1320
  description: "Usually intentional — review but likely fine",
1260
1321
  effort: "quick",
1261
1322
  controlLevel: "none",
1262
- education: "These aren't really \"issues\" — they're usually intentional. Noindex tags are set deliberately to keep pages out of search. Redirects are normal when you move pages. Fragment URLs are stripped by Google by design. Review to make sure nothing unexpected is here.",
1323
+ education: "These aren't really \"issues\" — they're usually intentional. Noindex tags are set deliberately to keep pages out of search. Redirects are normal when you move pages. An alternate page with a proper canonical is consolidation working as designed. Fragment URLs are stripped by Google. Review to make sure nothing unexpected is here.",
1263
1324
  issueTypes: [
1264
1325
  "noindex",
1265
1326
  "redirect",
1327
+ "alternate_canonical",
1266
1328
  "fragment_url"
1267
1329
  ]
1268
1330
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gscdump/sdk",
3
3
  "type": "module",
4
- "version": "0.37.0",
4
+ "version": "0.37.1",
5
5
  "description": "Consumer SDK for hosted gscdump.com integrations.",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",
@@ -44,10 +44,10 @@
44
44
  "date-fns": "^4.4.0",
45
45
  "ofetch": "^1.5.1",
46
46
  "zod": "^4.4.3",
47
- "@gscdump/contracts": "0.37.0",
48
- "@gscdump/engine": "0.37.0",
49
- "gscdump": "0.37.0",
50
- "@gscdump/analysis": "0.37.0"
47
+ "@gscdump/analysis": "0.37.1",
48
+ "@gscdump/contracts": "0.37.1",
49
+ "@gscdump/engine": "0.37.1",
50
+ "gscdump": "0.37.1"
51
51
  },
52
52
  "devDependencies": {
53
53
  "typescript": "^6.0.3",