You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|[rendering-strategy](https://agentdocsspec.com/spec/#rendering-strategy)| Critical (10) | Whether pages use server-side rendering. Client-side (SPA) pages deliver empty shells to agents.|
62
+
|[rendering-strategy](https://agentdocsspec.com/spec/#rendering-strategy)| Critical (10) | Whether pages are fully server-rendered, server-rendered but sparse, or empty SPA shells. |
63
63
|[page-size-markdown](https://agentdocsspec.com/spec/#page-size-markdown)| High (7) | Whether markdown pages fit within agent processing limits (~100K characters). |
64
64
|[page-size-html](https://agentdocsspec.com/spec/#page-size-html)| High (7) | Whether HTML pages, once converted to text, fit within agent processing limits. |
65
65
|[content-start-position](https://agentdocsspec.com/spec/#content-start-position)| Medium (4) | Whether documentation content starts near the top of the page, or is buried under boilerplate CSS/JS. |
@@ -160,17 +160,19 @@ Some problems are severe enough that no amount of other good behavior should com
|`llms-txt-exists` fails | 59 (D) | Agents lose primary navigation but may still use HTML/markdown paths directly. |
166
+
|`rendering-strategy`: proportion ≤ 0.25 | 39 (F) | Most content is invisible to agents. |
167
+
|`rendering-strategy`: proportion ≤ 0.50 | 59 (D) | Significant content is invisible to agents. |
168
+
|`auth-gate-detection`: 75%+ of pages require auth | 39 (F) | Most documentation is inaccessible. |
169
+
|`auth-gate-detection`: 50%+ of pages require auth | 59 (D) | Significant documentation is inaccessible. |
170
+
|`no-viable-path` diagnostic fires (see below) | 39 (F) | Agents have no effective way to access content at all. |
171
171
172
172
When multiple caps apply, the lowest one wins.
173
173
174
+
The `rendering-strategy` proportion is `(serverRendered + sparseContent × 0.5) / total`: empty SPA shells count fully against the proportion, while server-rendered-but-sparse pages count at half weight.
175
+
174
176
The `rendering-strategy` and `auth-gate-detection` caps do not apply when the check has `scoreDisplayMode: "notApplicable"` (insufficient data). If we don't trust the data enough to include it in the score, we don't trust it enough to cap the score either.
175
177
176
178
## Interaction diagnostics
@@ -292,7 +294,7 @@ If multiple conditions are met, the highest coefficient applies.
If pages are SPA shells, measuring HTML quality is meaningless. This coefficient equals the `rendering-strategy` check's proportion: if 90% of pages render correctly, these checks count for 90% of their weight.
297
+
If pages are SPA shells, measuring HTML quality is meaningless; if pages are sparse, HTML quality counts for less because agents have less content to work with. This coefficient equals the same weighted proportion that drives the score caps above: `(serverRendered + sparseContent × 0.5) / total`. Fully server-rendered pages count for full weight, sparse pages count for half, and SPA shells count for nothing.
|[No viable path](/interaction-diagnostics#no-viable-path-to-content) diagnostic fires | 39 (F) | Agents have no effective way to access content at all. |
158
158
159
159
When multiple caps apply, the lowest one wins.
160
160
161
+
The `rendering-strategy` proportion is `(serverRendered + sparseContent × 0.5) / total`: empty SPA shells count fully against the proportion, while server-rendered-but-sparse pages count at half weight. A site that's entirely SPA shells has proportion 0 (caps at F). A site that's half shells and half full content has proportion 0.5 (caps at D). A site that's entirely sparse-but-rendered has proportion 0.5 (also caps at D, on the assumption that sparse pages are half-broken on average); after the heuristic fix, legitimately short pages no longer count as sparse, so this scenario is much rarer.
162
+
161
163
The `rendering-strategy` and `auth-gate-detection` caps do not apply when the check is marked as not applicable due to [insufficient data](#insufficient-data). If there isn't enough data to include the check in the score, there isn't enough data to cap the score based on it either.
162
164
163
165
## Insufficient data
@@ -197,7 +199,7 @@ Note that `markdown-url-support` is intentionally excluded from this coefficient
If pages are SPA shells, measuring HTML quality is meaningless. This coefficient equals the `rendering-strategy` check's pass proportion: if 90% of pages render correctly, these checks count for 90% of their weight.
202
+
If pages are SPA shells, measuring HTML quality is meaningless; if pages are sparse, HTML quality counts for less because agents have less content to work with. This coefficient equals the same proportion that drives the score caps above: `(serverRendered + sparseContent × 0.5) / total`. Fully server-rendered pages count for full weight, sparse pages count for half, and SPA shells count for nothing.
| Warn | Pages render server-side but have unusually short body content (legitimately short pages, or partial hydration / lazy loading) |
28
+
| Fail | SPA shell detected (framework markers like `id="__next"`, minimal visible text, no page-specific content) |
29
+
30
+
When the check warns, the [`sparse-content-html` diagnostic](/interaction-diagnostics#sparse-content-on-the-html-path) fires if more than 25% of sampled pages are sparse. When the check fails, the [`spa-shell-html-invalid` diagnostic](/interaction-diagnostics#spa-shells-invalidate-html-path) fires if more than 25% of sampled pages are actual shells.
29
31
30
32
### How to fix
31
33
32
-
**If this check warns**, verify that key contentis present in the server-rendered HTML response. Some pages may use component-level client rendering or lazy loading for specific sections.
34
+
**If this check warns**, spot-check the affected pages by fetching them with `curl` or another HTTP client that doesn't run JavaScript. If the pages contain their full intended content, no action is needed; some pages are legitimately brief. If content is missing from the serverresponse, the page may use component-level client rendering or lazy loading for specific sections.
33
35
34
36
**If this check fails**, enable server-side rendering or static site generation in your docs platform. This is typically a configuration change, not a code rewrite.
35
37
36
38
### Score impact
37
39
38
-
This is a Critical check with two score caps:
40
+
This is a Critical check with two score caps based on a weighted proportion: `(serverRendered + sparseContent × 0.5) / total`. Empty SPA shells count fully against the proportion; sparse pages count at half weight.
39
41
40
-
-At 50%+ SPA shells, the score is [capped at D (59)](/agent-score-calculation#score-caps).
41
-
-At 75%+ SPA shells, the score is [capped at F (39)](/agent-score-calculation#score-caps).
42
+
-When the proportion is at most 0.50, the score is [capped at D (59)](/agent-score-calculation#score-caps).
43
+
-When the proportion is at most 0.25, the score is [capped at F (39)](/agent-score-calculation#score-caps).
42
44
43
-
The `rendering-strategy` pass rate also drives the [HTML path coefficient](/agent-score-calculation#html-path-coefficient). If 90% of pages render correctly, HTML quality checks (`page-size-html`, `content-start-position`, `tabbed-content-serialization`, `section-header-quality`) count for 90% of their weight.
45
+
The same proportion drives the [HTML path coefficient](/agent-score-calculation#html-path-coefficient). If 90% of pages render correctly with no sparse pages, HTML quality checks (`page-size-html`, `content-start-position`, `tabbed-content-serialization`, `section-header-quality`) count for 90% of their weight.
Copy file name to clipboardExpand all lines: docs/improve-your-score.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -72,9 +72,11 @@ This also unblocks five dependent checks (`llms-txt-valid`, `llms-txt-size`, `ll
72
72
73
73
**Enable server-side rendering**
74
74
75
-
If `rendering-strategy` warns or fails, your site is delivering empty JavaScript shells to agents. Enable SSR or static site generation in your docs platform. This is typically a configuration flag, not a code change.
75
+
If `rendering-strategy` fails, your site is delivering empty JavaScript shells to agents. Enable SSR or static site generation in your docs platform. This is typically a configuration flag, not a code change.
76
76
77
-
At 50%+ SPA shells, the score is [capped at D](/agent-score-calculation#score-caps) regardless of everything else.
77
+
If `rendering-strategy` warns, your pages render server-side but have unusually short body content. Spot-check a few of them with `curl` to confirm the full content is in the HTML response. If the pages are legitimately short, no action is needed. If content is missing, your renderer may be hydrating sections client-side; emitting them server-side will fix it.
78
+
79
+
When SPA shells (and sparse pages, weighted at half) exceed half the sampled pages, the score is [capped at D](/agent-score-calculation#score-caps) regardless of everything else; when they exceed three quarters, it's capped at F.
0 commit comments