How search engines and AI tools find, read and choose Grayscale pages. Each theme gives the findings and then the exact change for the developer.
Host names are short: www (www.grayscale.com), etfs (etfs.grayscale.com), research (research.grayscale.com), Institute (institute.grayscale.com), ZCSH site (www.thezcashetf.com). "Indexable page" means status 200, no redirect, no noindex and no query string. "Server HTML" means the HTML the server sends before JavaScript runs. "CONFIRMED" means the claim reproduced in a new test (see Part B).
Older articles sit behind buttons
Critical1
Who acts Engineering.
Hub pagination has no links, so search engines and AI tools see only the first page of each list.
A-2Criticalwwwresearch
Hub pagination uses buttons with no links, so most Stack articles have no crawlable hub link
CONFIRMED, www and research. The Stack, research reports, market commentary and blog hubs show page numbers as <button> elements. Clicking them changes the list but not the URL.
Evidence /the-stack has buttons 1 to 27 and lists 108 articles; 17 are on page 1 and 91 only on pages 2 to 27. None of the 91 www URLs is in the www sitemap. 46 appear only in the Institute Stack sitemap, whose URLs redirect to www (8 of them from a different Institute slug). 25 of the 91 have no link from any crawled page, in the server HTML or the rendered page, and are in no sitemap of any kind. 8 more are linked only from Institute archive pages, through URLs that redirect to them. Research /reports (41 of 59 items only on pages 2 to 4), /market-commentary (58 of 76 only on pages 2 to 5) and the blog hub (17 of 26) use the same buttons. Their page 2 and later items are in a sitemap, so search engines can still find them, but those hubs lose internal links.
Impact Search crawlers generally do not click buttons. Older articles lose their hub links. 25 of them have no link from any crawled page. Google's documentation says "Generally, Google can only crawl your link if it's an <a> HTML element" "with an href attribute."
Fix Give each page of the list its own URL (for example /the-stack?page=2) and link page numbers with <a href>.
// The exact change
H.2 Crawlable pagination (A-2)
Each list page needs its own URL and real links (links in the HTML that search engines follow). Example markup for The Stack hub:
The server renders the matching list for ?page=N, so the server HTML of page N holds the article links for page N.
Each page N gets a self-referencing canonical, which names the preferred URL of that page (/the-stack?page=2 points to itself, not to page 1).
Keep the button behavior for users if needed, but update the URL with each click.
Apply the same change to research /reports and /market-commentary and to the blog hub.
Dead URLs and redirects
High1Medium1
Who acts Engineering, with the content owner for redirect targets.
975 old URLs end in a 404, and live redirects take extra hops.
A-4Highwww
975 old URLs end in a 404, and the redirect map lists 41 of them
CONFIRMED, www. Of 635 historic page paths from the Internet Archive (2023 to 2025), 258 return 404 and 12 redirect to a 404. Of 738 historic PDF URLs, 705 are dead (704 return 404 and 1 PDF redirects to a 404). The dead PDFs all sit under /globalassets/.
Evidence All 60 rows of the redirect map still return 404, including its top row, /blog/general-updates/assets-under-consideration-current-products. Most old apex URLs (the bare grayscale.com domain) with a trailing slash (the / at the end; 27 of 29 tested) take 2 hops (redirect steps, 308 and 308) before the final page.
Impact Links from other sites to these URLs may pass no link value (the ranking benefit of a link), and the deck reports that AI answers cite dead PDF links. This report did not re-measure those citations. The backlink data shows 368 broken pages and 2,693 broken backlinks for the domain.
The redirect map is not ready to ship as is: 11 of its 60 rows have no target yet (9 marked TBD (to be decided), 2 described in words), and 4 targets are placeholders that return 404. 45 rows are usable now. 41 of the map's 60 URLs also appear in the Internet Archive list.
Fix Add 301 redirects for the 45 usable map rows first, set targets for the other 15, then redirect the 270 dead page paths and the /globalassets/ PDFs to their current documents. The full list is the file dead-urls-to-redirect.csv (Part G.3).
A-17MediumwwwInstitute
Redirects use extra hops and temporary codes
CONFIRMED. 27 of 29 old apex URLs with a trailing slash take 2 hops. grayscale.com/products/grayscale-bitcoin-trust/ takes 3 hops (308, 308, 308) to etfs.grayscale.com/gbtc. Institute /category/primers/ answers 302 (temporary redirect) to /primers, then 301 to /primers/; 11 Institute redirects use 302.
Fix Send each old URL to its final URL in one 301 or 308.
// The exact change
H.4 Redirects (A-4, A-17)
Add the 45 usable rows of the redirect map as single-hop 301s (permanent redirects). Of the other 15, 9 are marked TBD, 2 describe the target in words, and 4 point at placeholder URLs that return 404 (page not found).
Map the 270 dead historic page paths (old addresses from the Internet Archive; dead-urls-to-redirect.csv) to the closest live page, or to the section hub.
Map /globalassets/ PDF paths to the current document URL for the same fund and document type.
Send apex and trailing-slash variants straight to the final URL, in one hop.
Change the 11 Institute 302 redirects (temporary) to 301 (permanent).
Canonical tags, sitemaps and status codes do not tell search engines which address is the real one.
A-6Highwwwetfs
Most www and etfs pages have no canonical tag, and 236 parameter URLs can be indexed
CONFIRMED. 166 of 223 indexable www pages and 37 of 37 etfs pages have no canonical. All 236 parameter URLs in the deck list still answer 200 with no noindex and no canonical. Most carry utm_ tags (campaign tracking codes; 200 URLs), action= or partnerref= (68 each). A URL can carry more than one, so the counts overlap. Also seen: ?private (21), ?public (13), gclid (1) and other tracking tags (2).
Evidence Www.grayscale.com/funds/grayscale-bittensor-trust?public ranks in Google for "gtao stock" (third-party ranking data, US).
Impact Search engines can index the same page at several URLs and split its signals; one parameter URL already ranks (above). The blog article and research report templates already print canonicals. The www gaps are mostly Stack pages (109: the hub and 108 articles) and fund pages and the funds list (22), plus 35 other www pages; on etfs every page lacks one.
Fix Print a self-referencing canonical on every page, built from the clean address without query strings. Paginated hub pages point to their own page URL (H.2).
A-8HighwwwetfsresearchInstituteZCSH
The sitemaps leave out live pages and list dead ones, so search engines may miss some pages
CONFIRMED.
www: 105 rows (104 URLs). None of the 108 Stack articles is listed. 13 other live www pages are also missing. /education is listed and returns 404, and /company redirects. The glossary is listed twice. 22 URLs share one lastmod (last-modified) timestamp about 10 minutes before the sitemap file was saved, which suggests the sitemap build time, not a content date.
Institute: 64 of the 65 rows in the Stack article sitemap redirect (301) to www, and 2 of those end at a 404. All 12 rows of the tag sitemap return 404, including the 2 test tags (A-3). In the category sitemap, all 3 rows redirect, and /category/locked/ ends at a 404. 7 live Institute pages are in no sitemap.
etfs: 19 URLs. GDLC, ETCO, BPI and BTCC pages are live but not listed. In total, 21 live etfs pages are missing, 17 of them /documents/ pages. 3 listed rows redirect: /zcsh (to www.thezcashetf.com), /mnrs and /gsol-prospectus.
ZCSH site: its robots.txt points to the etfs sitemap, and its own sitemap lists the 19 etfs URLs. None of its 3 live pages is in any sitemap.
research: 182 URLs, all answer 200; 5 live research pages are missing.
In the deck's list, 79 of 80 non-indexable sitemap URLs still redirect or fail.
Fix Build each sitemap from the published page list. List only final 200 URLs, with real update dates.
A-7Mediumresearch
Research returns 200 for any made-up report or commentary URL
CONFIRMED, research. /reports/zz-23652, /reports/ftn1 and /market-commentary/not-a-real-page all return 200. The page shows "Page not found" and carries noindex twice. www, etfs, Institute and the ZCSH site return a real 404.
Impact Noindex keeps these pages out of Google, but crawlers still fetch them as live pages and old links to removed research look healthy in link tools.
Fix Return status 404 when the slug (the last part of the address) does not match a published entry, and print one robots tag.
A-18LowInstitute
Institute date archives are noindex, use post titles as H1s, and have no canonical
CONFIRMED; low weight, because the archives are noindex. /2026/04/ to /2026/11/ (7 archives; there is none for August) send noindex, follow, show 1 or 2 post titles as H1s, and have no canonical.
Fix Give archives their own H1 and canonical, or link to category pages instead.
// The exact change
H.3 Canonical tags (A-6)
Print <link rel="canonical" href="https://<host><path>"> on every page, built from the path without the query string, except the paginated hub pages (H.2).
On fund pages, the ?private and ?public views point to the clean fund URL.
Write canonical paths without a trailing slash on www, to match its 308 redirects.
H.5 Sitemaps (A-8)
Generate each sitemap from the published page list at build time.
Include only URLs that answer 200 with no redirect and no noindex.
Add all Stack articles to the www sitemap. Remove the 64 Institute Stack URLs that redirect to www (2 of them end at a 404).
Add GDLC, ETCO, BPI and BTCC to the etfs sitemap. Remove /zcsh, because it redirects off the domain. Replace /mnrs and /gsol-prospectus with their final URLs.
Give the ZCSH site its own sitemap with its own URLs.
Set lastmod (the sitemap's last-change date) from the content's last edit date, not the build time.
Remove /education and the duplicate glossary row from the www sitemap.
H.6 Soft 404s (pages that say not found but return 200) on research (A-7)
In the research routes for /reports/[slug] and /market-commentary/[slug], return the framework's not-found response (status 404) when no published entry matches the slug (the last part of the address).
What AI tools and crawlers can read
High2Medium1
Who acts Engineering, with the firewall owner.
Bot challenges block plain HTTP clients, invisible characters fill the page text, and most hosts carry no structured data.
A-5HighwwwetfsresearchInstituteZCSH
Plain HTTP clients get no content from five hosts
CONFIRMED for HTTP clients; LIKELY for AI crawlers. www, etfs, research and the ZCSH site return 429 (too many requests) with a "Vercel Security Checkpoint" page (about 40,700 bytes) to curl (a command-line tool) that identifies as Chrome. Institute returns a 307 (temporary redirect) script challenge from Sucuri to plain HTTP clients. A real browser gets past both.
Evidence Curl from a desktop connection (not a cloud server) got 429 on all four Vercel hosts, for pages and also for /robots.txt (the crawl rules file) and /sitemap.xml. The GEO citability scorer failed on etfs with "HTTP 429" and on Institute with "Redirect without Location header". A standard HTTP crawler got the Sucuri challenge on 102 of 150 Institute requests and 429 on its first etfs request. After about 3,077 browser requests (the 1,125-URL crawl plus 1,952 redirect checks), www also returned 403 (access denied) to the test browser for about 10 minutes.
Impact Some AI search and answer tools may fetch pages with plain HTTP clients, not a full browser. If their requests meet the same challenge, they read no content. Tests that identify as bots were not run, so the effect on each named AI crawler is not proven.
Fix Allow verified AI and search crawlers in the firewall, then confirm with 30 days of firewall logs.
A-10Highwwwetfsresearch
Every indexable www and research page carries thousands of invisible characters
CONFIRMED; cause LIKELY. All 223 indexable www pages and all 187 research pages contain runs of zero-width characters (U+200B, U+200C, U+200D, U+FEFF) after text strings in the server HTML: about 1.40 million on www and 1.25 million on research. After rendering, 12 etfs pages carry them too. Four research meta descriptions also contain them.
Evidence In the server HTML of /the-stack, 6 of the 10 occurrences of "Subscribe to The Stack" are followed by a run of 1,648 hidden characters.
Impact The characters can break copy and paste, text matching and AI extraction of quotes.
Likely cause: the characters match content source encoding ("stega") from the CMS (content management system) visual editing mode. The pages load assets from cdn.sanity.io and allow framing by studio.grayscale.com. Fix: turn off that encoding for production builds.
A-14MediumwwwetfsresearchZCSH
www, etfs, research and the ZCSH site carry no structured data
CONFIRMED. 0 of 450 indexable pages on those hosts have JSON-LD (a structured data format). Institute pages carry markup from the Yoast WordPress SEO plugin (Organization, WebSite and BreadcrumbList on 49 of 49 indexable pages).
Fix Add Organization and WebSite markup sitewide, Article with author and dates on articles and research, and BreadcrumbList.
// The exact change
H.7 Invisible zero-width characters (A-10)
Turn off content source map encoding in production builds of the content management system (CMS) client (the visual-editing "stega" option, if offered), or strip U+200B, U+200C, U+200D and U+FEFF from rendered text. Test: count those characters in the server HTML of /the-stack. Expected result: 0.
Titles, headings and descriptions
Medium3
Who acts Engineering for templates; compliance for fund pages.
Titles, H1s and descriptions repeat across hundreds of pages, so results look alike in search.
A-12MediumwwwetfsresearchInstitute
Titles and H1s (main page headings) do not describe the pages
CONFIRMED. 106 pages use the title "The Stack | Grayscale". All 108 Stack articles have 2 H1s. No H1 on 112 of 223 www pages, 20 of 37 etfs pages, 187 of 187 research pages and 3 of 49 Institute pages.
Fix One H1 per page with the page's topic, and a title that names the article.
A-13MediumwwwetfsresearchZCSH
One generic meta description (the summary shown under a search result) covers 263 pages, and 125 www pages have none
CONFIRMED. "A Leading Crypto Asset Manager" is the description on 263 indexable pages: research 182, www 63, etfs 17, ZCSH site 1. 105 of 108 Stack articles have no description.
Impact Google says "Identical or similar descriptions on every page of a site aren't helpful when individual pages appear in search results."
Fix Write one description per page from its summary.
A-19Mediumwwwetfs
The home page and fund pages lead with the wrong heading
CONFIRMED. The www home page H1 is "Digital Asset Investing Fundamentals Course" and the page has no canonical. etfs /gbtc and /btc use the bare tickers "GBTC" and "BTC" as H1. The /gbtc description is "Bitcoin investing begins here" (29 characters, with no fund details), and /btc uses the same words with a period.
Fix Home H1 that states what Grayscale offers; fund H1 with the fund name and ticker.
Link hygiene
Medium2Low1
Who acts Engineering and the content owner.
Internal links carry campaign tags, a footer link is broken on 139 pages, and some outbound links are dead.
A-15MediumwwwresearchInstitute
Internal links carry campaign tags
CONFIRMED. Institute links to www 2,815 times with utm_source=riachannel, and to research 375 times. www links to itself 203 times with tags, including utm_source=google&utm_medium=cpc&utm_campaign=Search_Brand on links to /crypto-sectors.
Impact Visits get credited to the wrong source, and tagged URLs become duplicates.
Fix Remove UTM tags from internal links.
A-16MediumwwwInstitute
A footer link on 139 pages has a broken https prefix
CONFIRMED. The ETHE link in the footer disclaimer reads hthttps://etfs.grayscale.com/documents/ethe.
Fix Correct the link in the footer component.
A-24LowwwwetfsresearchInstitute
Some outbound links are dead
CONFIRMED. Of 3,013 unique outbound URLs (links to other sites) (X and Facebook share buttons left out), 62 are dead: 55 return 404 or 410 (page removed) and 7 have no DNS record (no domain name entry). They sit on at least 46 pages (53 page addresses, counting query-string copies), mostly research reports and commentary that cite third-party articles. Another 848 block the test script (797 with 403 or 429, 50 with 401, 1 with 999); that is bot protection, not proof of a dead page. Separately, the cookie banner's domain list shows links to 2 staging hosts (grayscale-etf-site.vercel.app and grayscale.verndale-local.com) on all 450 indexable pages of the Vercel hosts.
Fix Replace or remove the 62 dead links (Part G.5), and remove the staging domains from the cookie banner's domain list.
// The exact change
H.8 Other template fixes
Footer: fix hthttps://etfs.grayscale.com/documents/ethe (A-16). The typo is hthttps, which should read https.
Internal links: remove campaign tags (utm_*) and partnerref parameters from links between Grayscale hosts (A-15).
Stack article template: one H1 (the main page heading), a title from the article headline, and a description from the summary (A-12, A-13).
Research template: an H1 with the report title (A-12).
Structured data: Organization and WebSite on every host (on Institute, correct the Organization data, A-26); Article with author, datePublished and dateModified on articles and research; BreadcrumbList (A-14).
HTTP headers (settings the server sends with each page) on www, etfs, research and the ZCSH site: add X-Content-Type-Options: nosniff, Referrer-Policy: strict-origin-when-cross-origin and a Permissions-Policy (A-23).
Institute robots.txt (the crawl rules file): publish a clean file without draft notes (A-22).
Speed and accessibility
High1Medium1Low1
Who acts Engineering.
Mobile pages load slowly on every template measured, and common accessibility errors appear on most templates.
A-9HighwwwetfsresearchZCSH
Mobile pages load slowly on every template measured
CONFIRMED, lab data: a controlled test, not real visitors. On mobile, median Lighthouse performance scores range from 26 (etfs /gbtc) to 54 (a research report), and median Largest Contentful Paint (LCP, time to show the largest item) from 5.1 s to 24.6 s, over 3 runs per template. The etfs and ZCSH pages keep the browser busy longest: median Total Blocking Time (time a page cannot respond) 4.9 s on etfs /gbtc, 4.2 s on the ZCSH home, 3.7 s on /btc and 3.1 s on the etfs home. The www home page scores 45 in all 3 runs, with a median LCP of 19.8 s. Desktop medians are higher, 55 to 100.
Evidence 90 Lighthouse runs; per-template medians and ranges are in Part D.5.
Impact Slow pages frustrate phone visitors. Google says good Core Web Vitals (page speed and stability measures), "along with other page experience aspects, aligns with what our core ranking systems seek to reward" (G-20).
Fix Defer chart scripts and third-party tags until after the first paint, and size the largest image for phones.
A-20MediumwwwetfsresearchInstituteZCSH
Common accessibility errors appear on most templates
CONFIRMED, axe-core, 15 templates at 390 px and 1440 px. Buttons with no accessible name (the label a screen reader reads) on 12 of 15 templates (67 on a fund page, 65 on /btc). Images with no alt text (the description read by screen readers) on 7 templates. Links with no name on 15 templates, partly inside the cookie banner. Low color contrast on 4 templates.
Fix Add labels to icon buttons, alt text to content images, and names to links.
A-21Lowresearch
Most research images have no alt attribute
CONFIRMED. 990 of 1,322 images on the 187 indexable research pages and 145 of 569 on the 223 indexable www pages have no alt attribute in the server HTML.
Fix Add alt text to charts and figures, and alt="" to decoration.