Live dashboard
Aggregated data from the tracker at track.jsseo.dev. Rebuilt at landing build time (daily). Individual hit details and IPs are not exposed — this is rollup only. See /data for raw data and citation.
Snapshot
Tracker data generated at 2026-08-07T10:29:01.979Z.
Build fetched it at 2026-08-07T10:29:02.222Z.
- 21562 hits total
- 159 in last 24h
- 902 in last 7 days
- 30 distinct bot classes
- 56 distinct cells
By JS content pattern (v0.4 primary axis)
One row per js_content_pattern. Pattern definitions in the
methodology.
| pattern | hits | last 24h | bot classes | page types | ✓ verified bots |
|---|---|---|---|---|---|
(legacy/non-cell) |
11682 | 88 | 29 | 1 | 780 |
clean |
3227 | 4 | 25 | 5 | 623 |
click-reveal |
1195 | 14 | 18 | 5 | 218 |
js-images |
1191 | 24 | 18 | 5 | 205 |
js-links |
1057 | 17 | 17 | 5 | 122 |
js-fetched |
921 | 3 | 16 | 5 | 110 |
mixed |
858 | 6 | 20 | 5 | 156 |
late-loaded |
798 | 0 | 15 | 5 | 113 |
hash-routing |
633 | 3 | 15 | 5 | 99 |
Pattern × ua_class survival matrix
Each row: (pattern, bot class) pair. hits = request observations (Layer 1+2).
js_exec = how many times the bot's renderer actually ran JavaScript on the cell (Layer 3 beacon firing). % = js_exec / hits — the survival signal. Batch crawlers without a JS renderer (GPTBot, ClaudeBot) should stay near 0%; Googlebot WRS and JS-executing on-demand fetchers approach 100% on clean cells. The (pattern × bot) delta at js_exec_pct is the signal for H3–H6.
| pattern | ua_class | hits | js_exec | % | 24h | ✓ | ✗ |
|---|---|---|---|---|---|---|---|
clean |
human |
1614 | 54 | 3.3% | 4 | 0 | 0 |
clean |
cf-internal |
284 | 0 | 0% | 0 | 0 | 0 |
clean |
bingbot |
261 | 8 | 3.1% | 0 | 256 | 5 |
clean |
seo-tools |
231 | 0 | 0% | 0 | 0 | 0 |
clean |
gptbot |
217 | 0 | 0% | 0 | 213 | 4 |
clean |
other-bot |
164 | 15 | 9.1% | 0 | 0 | 0 |
clean |
claudebot |
105 | 0 | 0% | 0 | 0 | 0 |
clean |
amazonbot |
80 | 0 | 0% | 0 | 0 | 0 |
clean |
meta-external |
42 | 0 | 0% | 0 | 0 | 0 |
clean |
google-readaloud |
42 | 3 | 7.1% | 0 | 42 | 0 |
clean |
applebot |
37 | 15 | 40.5% | 0 | 35 | 2 |
clean |
google-inspection |
31 | 13 | 41.9% | 0 | 27 | 4 |
clean |
googlebot |
25 | 2 | 8% | 0 | 24 | 1 |
clean |
google-other |
22 | 0 | 0% | 0 | 20 | 2 |
clean |
programmatic |
13 | 0 | 0% | 0 | 0 | 0 |
clean |
facebook-preview |
12 | 0 | 0% | 0 | 0 | 0 |
clean |
headless-chrome |
9 | 10 | 111.1% | 0 | 0 | 0 |
clean |
google-notebooklm |
8 | 1 | 12.5% | 0 | 0 | 0 |
clean |
truncated-ua |
7 | 0 | 0% | 0 | 0 | 0 |
clean |
chatgpt-user |
6 | 0 | 0% | 0 | 2 | 4 |
clean |
ccbot |
5 | 0 | 0% | 0 | 0 | 0 |
clean |
perplexity-user |
4 | 0 | 0% | 0 | 4 | 0 |
clean |
claude-user |
4 | 0 | 0% | 0 | 0 | 0 |
clean |
perplexitybot |
2 | 0 | 0% | 0 | 0 | 2 |
clean |
claude-code |
2 | 0 | 0% | 0 | 0 | 0 |
click-reveal |
human |
578 | 15 | 2.6% | 0 | 0 | 0 |
click-reveal |
bingbot |
133 | 0 | 0% | 0 | 133 | 0 |
click-reveal |
cf-internal |
109 | 0 | 0% | 4 | 0 | 0 |
click-reveal |
seo-tools |
96 | 0 | 0% | 0 | 0 | 0 |
click-reveal |
other-bot |
63 | 7 | 11.1% | 2 | 0 | 0 |
click-reveal |
gptbot |
49 | 0 | 0% | 0 | 49 | 0 |
click-reveal |
amazonbot |
46 | 0 | 0% | 0 | 0 | 0 |
click-reveal |
claudebot |
45 | 0 | 0% | 0 | 0 | 0 |
click-reveal |
google-other |
20 | 0 | 0% | 0 | 14 | 6 |
click-reveal |
meta-external |
14 | 0 | 0% | 0 | 0 | 0 |
click-reveal |
googlebot |
12 | 3 | 25% | 0 | 12 | 0 |
click-reveal |
applebot |
12 | 5 | 41.7% | 8 | 10 | 2 |
click-reveal |
perplexitybot |
4 | 0 | 0% | 0 | 0 | 4 |
click-reveal |
headless-chrome |
4 | 4 | 100% | 0 | 0 | 0 |
click-reveal |
chatgpt-user |
4 | 0 | 0% | 0 | 0 | 4 |
click-reveal |
ccbot |
3 | 0 | 0% | 0 | 0 | 0 |
click-reveal |
programmatic |
2 | 0 | 0% | 0 | 0 | 0 |
click-reveal |
truncated-ua |
1 | 0 | 0% | 0 | 0 | 0 |
hash-routing |
human |
326 | 8 | 2.5% | 0 | 0 | 0 |
hash-routing |
seo-tools |
69 | 0 | 0% | 0 | 0 | 0 |
hash-routing |
bingbot |
48 | 0 | 0% | 0 | 48 | 0 |
hash-routing |
cf-internal |
47 | 0 | 0% | 1 | 0 | 0 |
hash-routing |
claudebot |
28 | 0 | 0% | 0 | 0 | 0 |
hash-routing |
other-bot |
27 | 0 | 0% | 0 | 0 | 0 |
hash-routing |
gptbot |
25 | 0 | 0% | 0 | 25 | 0 |
hash-routing |
amazonbot |
18 | 0 | 0% | 0 | 0 | 0 |
hash-routing |
meta-external |
16 | 0 | 0% | 0 | 0 | 0 |
hash-routing |
google-readaloud |
11 | 0 | 0% | 0 | 11 | 0 |
hash-routing |
google-other |
9 | 0 | 0% | 0 | 9 | 0 |
hash-routing |
google-inspection |
4 | 0 | 0% | 0 | 4 | 0 |
hash-routing |
programmatic |
2 | 0 | 0% | 0 | 0 | 0 |
hash-routing |
applebot |
2 | 1 | 50% | 2 | 2 | 0 |
hash-routing |
truncated-ua |
1 | 0 | 0% | 0 | 0 | 0 |
js-fetched |
human |
514 | 17 | 3.3% | 0 | 0 | 0 |
js-fetched |
seo-tools |
93 | 0 | 0% | 0 | 0 | 0 |
js-fetched |
other-bot |
63 | 4 | 6.3% | 0 | 0 | 0 |
js-fetched |
gptbot |
52 | 0 | 0% | 0 | 50 | 2 |
js-fetched |
cf-internal |
43 | 0 | 0% | 1 | 0 | 0 |
js-fetched |
claudebot |
38 | 0 | 0% | 0 | 0 | 0 |
js-fetched |
google-readaloud |
34 | 2 | 5.9% | 0 | 34 | 0 |
js-fetched |
amazonbot |
32 | 0 | 0% | 0 | 0 | 0 |
js-fetched |
meta-external |
18 | 0 | 0% | 0 | 0 | 0 |
js-fetched |
bingbot |
14 | 0 | 0% | 0 | 12 | 2 |
js-fetched |
applebot |
8 | 4 | 50% | 2 | 8 | 0 |
js-fetched |
headless-chrome |
4 | 4 | 100% | 0 | 0 | 0 |
js-fetched |
google-inspection |
4 | 0 | 0% | 0 | 4 | 0 |
js-fetched |
google-other |
2 | 0 | 0% | 0 | 2 | 0 |
js-fetched |
truncated-ua |
1 | 0 | 0% | 0 | 0 | 0 |
js-fetched |
oai-searchbot |
1 | 0 | 0% | 0 | 0 | 1 |
js-images |
human |
627 | 20 | 3.2% | 10 | 0 | 0 |
js-images |
bingbot |
110 | 0 | 0% | 0 | 107 | 3 |
js-images |
seo-tools |
93 | 0 | 0% | 0 | 0 | 0 |
js-images |
cf-internal |
85 | 0 | 0% | 4 | 0 | 0 |
js-images |
other-bot |
61 | 2 | 3.3% | 2 | 0 | 0 |
js-images |
gptbot |
52 | 0 | 0% | 0 | 52 | 0 |
js-images |
claudebot |
42 | 0 | 0% | 0 | 0 | 0 |
js-images |
amazonbot |
40 | 0 | 0% | 0 | 0 | 0 |
js-images |
google-readaloud |
24 | 2 | 8.3% | 0 | 24 | 0 |
js-images |
applebot |
16 | 4 | 25% | 8 | 10 | 6 |
js-images |
meta-external |
14 | 0 | 0% | 0 | 0 | 0 |
js-images |
google-other |
12 | 2 | 16.7% | 0 | 12 | 0 |
js-images |
perplexitybot |
4 | 0 | 0% | 0 | 0 | 4 |
js-images |
oai-searchbot |
4 | 0 | 0% | 0 | 0 | 4 |
js-images |
programmatic |
2 | 0 | 0% | 0 | 0 | 0 |
js-images |
chatgpt-user |
2 | 0 | 0% | 0 | 0 | 2 |
js-images |
ccbot |
2 | 0 | 0% | 0 | 0 | 0 |
js-images |
truncated-ua |
1 | 0 | 0% | 0 | 0 | 0 |
js-links |
human |
595 | 5 | 0.8% | 8 | 0 | 0 |
js-links |
seo-tools |
90 | 0 | 0% | 0 | 0 | 0 |
js-links |
cf-internal |
71 | 0 | 0% | 3 | 0 | 0 |
js-links |
other-bot |
65 | 1 | 1.5% | 0 | 0 | 0 |
js-links |
gptbot |
52 | 3 | 5.8% | 0 | 52 | 0 |
js-links |
bingbot |
52 | 0 | 0% | 0 | 50 | 2 |
js-links |
claudebot |
41 | 0 | 0% | 0 | 0 | 0 |
js-links |
amazonbot |
31 | 0 | 0% | 0 | 0 | 0 |
js-links |
meta-external |
14 | 0 | 0% | 0 | 0 | 0 |
js-links |
applebot |
11 | 5 | 45.5% | 6 | 9 | 2 |
js-links |
programmatic |
10 | 0 | 0% | 0 | 0 | 0 |
js-links |
oai-searchbot |
8 | 0 | 0% | 0 | 0 | 8 |
js-links |
google-other |
6 | 0 | 0% | 0 | 6 | 0 |
js-links |
google-readaloud |
5 | 1 | 20% | 0 | 5 | 0 |
js-links |
perplexitybot |
3 | 0 | 0% | 0 | 0 | 3 |
js-links |
googlebot |
2 | 0 | 0% | 0 | 0 | 2 |
js-links |
truncated-ua |
1 | 0 | 0% | 0 | 0 | 0 |
late-loaded |
human |
439 | 11 | 2.5% | 0 | 0 | 0 |
late-loaded |
seo-tools |
78 | 0 | 0% | 0 | 0 | 0 |
late-loaded |
cf-internal |
61 | 0 | 0% | 0 | 0 | 0 |
late-loaded |
other-bot |
44 | 0 | 0% | 0 | 0 | 0 |
late-loaded |
gptbot |
42 | 0 | 0% | 0 | 41 | 1 |
late-loaded |
bingbot |
39 | 0 | 0% | 0 | 39 | 0 |
late-loaded |
claudebot |
30 | 0 | 0% | 0 | 0 | 0 |
late-loaded |
amazonbot |
20 | 0 | 0% | 0 | 0 | 0 |
late-loaded |
applebot |
11 | 6 | 54.5% | 0 | 11 | 0 |
late-loaded |
meta-external |
10 | 0 | 0% | 0 | 0 | 0 |
late-loaded |
google-readaloud |
10 | 0 | 0% | 0 | 10 | 0 |
late-loaded |
googlebot |
6 | 0 | 0% | 0 | 6 | 0 |
late-loaded |
google-other |
6 | 0 | 0% | 0 | 6 | 0 |
late-loaded |
truncated-ua |
1 | 0 | 0% | 0 | 0 | 0 |
late-loaded |
programmatic |
1 | 0 | 0% | 0 | 0 | 0 |
mixed |
human |
372 | 22 | 5.9% | 0 | 0 | 0 |
mixed |
seo-tools |
100 | 0 | 0% | 0 | 0 | 0 |
mixed |
cf-internal |
60 | 0 | 0% | 2 | 0 | 0 |
mixed |
gptbot |
50 | 0 | 0% | 0 | 50 | 0 |
mixed |
other-bot |
49 | 8 | 16.3% | 0 | 0 | 0 |
mixed |
bingbot |
44 | 1 | 2.3% | 0 | 44 | 0 |
mixed |
claudebot |
42 | 0 | 0% | 0 | 0 | 0 |
mixed |
google-readaloud |
28 | 4 | 14.3% | 0 | 28 | 0 |
mixed |
amazonbot |
28 | 0 | 0% | 0 | 0 | 0 |
mixed |
meta-external |
22 | 0 | 0% | 0 | 0 | 0 |
mixed |
googlebot |
14 | 2 | 14.3% | 0 | 14 | 0 |
mixed |
applebot |
12 | 6 | 50% | 4 | 12 | 0 |
mixed |
programmatic |
10 | 0 | 0% | 0 | 0 | 0 |
mixed |
google-other |
8 | 0 | 0% | 0 | 8 | 0 |
mixed |
google-notebooklm |
8 | 0 | 0% | 0 | 0 | 0 |
mixed |
headless-chrome |
4 | 4 | 100% | 0 | 0 | 0 |
mixed |
truncated-ua |
2 | 0 | 0% | 0 | 0 | 0 |
mixed |
chatgpt-user |
2 | 0 | 0% | 0 | 0 | 2 |
mixed |
ccbot |
2 | 0 | 0% | 0 | 0 | 0 |
mixed |
oai-searchbot |
1 | 0 | 0% | 0 | 0 | 1 |
By verification method
How each hit's bot-class claim was confirmed. rdns = Google/Bing/Apple.
ip-range = OpenAI/Perplexity/Anthropic. none = explicit
auto-unverified (anthropic-legacy). (none/pending) = no verification
path or queue still pending.
| method | hits | ✓ | ✗ | ? | last 24h |
|---|---|---|---|---|---|
(none/pending) |
18521 | 0 | 0 | 18521 | 107 |
rdns |
2092 | 1578 | 514 | 0 | 50 |
ip-range |
949 | 848 | 101 | 0 | 2 |
By pathway
Batch crawlers (indexing) vs on-demand fetchers (LLM responding to user prompt) vs AI search infrastructure (search) vs ads-related crawlers (ads). Transitional taxonomy until end-of-Phase-1 refactor.
| pathway | hits | last 24h |
|---|---|---|
n/a |
11934 | 57 |
batch |
5386 | 72 |
unknown |
3822 | 30 |
on-demand |
414 | 0 |
deprecated |
6 | 0 |