Spider SEO Auditor
Technical SEO

JavaScript SEO: can Google see content rendered by JavaScript?

JavaScript SEO: can Google see content rendered by JavaScript?

Yes, Google can see most content rendered by JavaScript, but not always straight away and not always completely. Googlebot runs a recent version of Chrome to render pages, but rendering happens after crawling, and anything that fails, times out or needs a click may be missed. Content and links in the initial HTML are the safest way to make sure Google and other crawlers see them.

How does Google process JavaScript pages?

Google handles JavaScript pages in three phases: crawling, rendering and indexing. First Googlebot fetches the HTML. The page then waits in a rendering queue until Google's renderer runs the JavaScript and builds the final page. Google indexes what the rendered page contains and finds new links in it.

Google says most pages are rendered quickly, but the queue means content that exists only after JavaScript runs can take longer to be picked up. Google's own overview is Understand the JavaScript SEO basics.

Google only follows links that are <a> elements with an href attribute containing a real URL. Links built another way may never be crawled, so the pages behind them can go undiscovered.

<!-- Google can follow these -->
<a href="/courses/data-science">Data Science</a>
<a href="https://www.example.com/fees">Fees</a>

<!-- Google cannot reliably follow these -->
<span onclick="goTo('/courses/data-science')">Data Science</span>
<a href="javascript:goTo('fees')">Fees</a>
<a onclick="openPage()">Fees</a>

Single-page apps should also use normal URL paths through the History API, such as /courses/data-science, not fragments like /#/courses/data-science. Google generally ignores everything after #. Good linking also matters for internal linking as a whole.

Should you use client-side or server-side rendering?

Server-side rendering or static generation is the safest choice for pages you want found in search. The server sends complete HTML, so crawlers see the content even without running JavaScript.

ApproachWhat the crawler receivesSEO risk
Client-side renderingAn almost empty HTML shellHigher: depends on rendering
Server-side rendering (SSR)Full HTML for each requestLow
Static site generation (SSG)Prebuilt full HTMLLow
SSR or SSG with hydrationFull HTML, then interactiveLow

Frameworks such as Next.js, Nuxt, SvelteKit and Astro support SSR and SSG. Google describes dynamic rendering, serving a separate version to bots, as a workaround rather than a long-term solution.

Google is not the only crawler that matters. Many other crawlers, including some used by AI assistants, do not run JavaScript, so server-rendered HTML also helps you appear in AI search.

How do you test what Google sees?

Use the URL Inspection tool in Google Search Console. Inspect the URL, run a live test, and open "View tested page" to see the rendered HTML, a screenshot and any JavaScript console messages.

  1. Inspect an important page, such as a course page.
  2. Run the live test.
  3. Search the rendered HTML for your main heading, price and key text.
  4. Check the screenshot shows the full page, not a loader.
  5. Look at "More info" for blocked resources and JavaScript errors.

For a quick check without Search Console, open the page with JavaScript turned off in your browser. Whatever disappears depends on rendering.

What are the most common JavaScript SEO mistakes?

Most JavaScript SEO problems come from content or signals that only exist after the page's scripts run.

Watch for these:

  • Titles, meta descriptions or canonical tags set only by JavaScript, and different from the ones in the original HTML.
  • A noindex tag in the original HTML that JavaScript later removes. Google may skip rendering a noindexed page, so the removal never happens.
  • Blocking JavaScript or CSS files in robots.txt, so Google cannot render the page.
  • Content that loads only on scroll or click, such as course details behind a "Read more" button that fetches text from an API.
  • Error pages in single-page apps that return status 200. Google may report these as soft 404 errors.
  • Lazy-loaded images without a real src in the HTML or a proper loading method.

JavaScript SEO checklist

  1. Serve main content, headings and links in the initial HTML where you can.
  2. Use <a href> with real URLs for every navigation link.
  3. Use path URLs, not # fragments, for separate pages.
  4. Put titles, canonicals and robots tags in the server HTML.
  5. Keep JavaScript and CSS crawlable.
  6. Test key templates with the URL Inspection live test after each release.

Spider's page audit compares the raw HTML with the rendered page and flags content and links that depend on JavaScript, so you can see which pages rely on rendering before Google does.

Check this on your own site

Spider's free check tests this and about 100 other things on any page, and links each problem to a guide like this one.