Google describes Search as crawling, indexing and serving, with a rendering phase for JavaScript between crawling and indexing. 1 shows the pipeline and where pages drop out.

Discovery and crawling. Crawlers find URLs in links on known pages, in sitemaps (Sitemaps and robots.txt) and in their crawl history. Google only discovers links written as <a href>; a <span onclick> that sets location is invisible to it. Bing 31 , Yandex 393 , Naver 354 , Seznam.cz 706 and Yep also accept IndexNow pings, which share a changed URL with every participating engine; Google is not listed as a participant. The crawler reads robots.txt first. Most Google fetches come from Googlebot Smartphone, because Google indexes the mobile version of a site; Googlebot reads only the first 2 MB of an HTML, CSS or JavaScript file (64 MB for PDFs).
Rendering. Google renders with an evergreen (regularly updated) Chromium 4,389 , and Bingbot has rendered with Microsoft Edge 6 's engine since Bing's 2019 announcement. A fetched page waits in a render queue "for a few seconds, but it can take longer than that". If the initial HTML contains noindex or the status is not 200, Google may skip rendering altogether, so a script that later removes noindex never runs. How Googlebot Renders covers JavaScript rendering in depth.
Indexing. The indexer extracts text, links and structured data, groups near-duplicates into a cluster and picks one canonical URL for it (Canonical URLs). Google doesn't guarantee that any page will be crawled, indexed or served.
Use Search Console 1 's URL Inspection tool (Analytics and Search Console) to see the HTML Google rendered, keep essential content and links in server-rendered HTML where you can, and never block the CSS and JavaScript a page needs to render.