Use the URL Inspection tool in Google Search Console and view the rendered screenshot to see what Googlebot sees after JavaScript execution; compare to the raw HTML source
Audit critical metadata (title, meta description, canonical, hreflang, structured data) to confirm they are present in the initial HTML or rendered within the first wave of JavaScript execution, not delayed by late async calls
Implement server-side rendering (SSR) or static site generation (SSG) for content and metadata that must be indexed, pushing rendering work to the server so the crawler receives complete HTML
If full SSR is not feasible, use dynamic rendering as an interim solution: serve pre-rendered HTML to identified crawlers while serving the full SPA to users
Check that internal links use standard href anchor tags rather than JavaScript event handlers or router.push calls alone; crawlers follow href attributes, not JavaScript click handlers
Known gotchas
Googlebot processes JavaScript but with a crawl budget cost and potential delay of days to weeks; content visible only after JavaScript execution may be indexed later than server-rendered content, causing temporary ranking gaps
Client-side redirects (using JavaScript or history.pushState) are not treated equivalently to HTTP 301 redirects; link equity consolidation and crawl efficiency are reduced compared to server-side redirects
Lazy-loaded content that is only triggered by user scroll events will likely not be rendered by Googlebot, since the crawler does not simulate scroll interactions by default
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp