Official statement
Other statements from this video 36 ▾
- 1:02 Should you overlook the Lighthouse score to optimize your SEO?
- 1:02 Is page speed really a Google ranking factor?
- 1:42 Do Lighthouse and PageSpeed Insights really have no impact on rankings?
- 2:38 Do Google's Web Vitals really model user experience?
- 3:40 Is it true that page speed is as crucial a ranking factor as claimed?
- 7:07 Is it really a good idea to inject the canonical tag through JavaScript?
- 7:27 Can you really inject the canonical tag via JavaScript without risking your SEO?
- 8:28 Does Google Tag Manager really slow down your site, and should you abandon it?
- 8:31 Is GTM really sabotaging your loading time?
- 9:35 Is serving a 404 to Googlebot while showing a 200 to visitors really cloaking?
- 10:06 Is it really cloaking when Googlebot sees a 404 while users see a 200?
- 16:16 Are 301, 302, and JavaScript redirects really equivalent for SEO?
- 16:58 Are JavaScript redirects truly equivalent to 301 redirects for Google?
- 17:18 Is server-side rendering truly essential for Google SEO?
- 17:58 Should you really invest in server-side rendering for SEO?
- 19:22 Does serialized JSON in your JavaScript apps count as duplicate content?
- 20:02 Does the JSON application state in the DOM create duplicate content?
- 20:24 Is Cloudflare Rocket Loader passing Googlebot's SEO test?
- 20:44 Should you test Cloudflare Rocket Loader and third-party tools before activating them for SEO?
- 21:58 Should you worry about 'Other Error' messages in Search Console and Mobile Friendly Test?
- 23:18 Should you really be concerned about the 'Other Error' status in Google's testing tools?
- 27:58 Should you choose one JavaScript framework over another for your SEO?
- 31:27 Does JavaScript really consume crawl budget?
- 31:32 Does JavaScript rendering really consume crawl budget?
- 33:07 Should you ditch dynamic rendering for better SEO results?
- 33:17 Is it really time to move on from dynamic rendering for SEO?
- 34:01 Should you really abandon client-side JavaScript for indexing product links?
- 34:21 Does asynchronous JavaScript post-load really hinder Google indexing?
- 36:05 Is it really necessary to switch to a dedicated server to improve your SEO?
- 36:25 Shared or Dedicated Server: Does Google really make a difference?
- 40:06 Is SSR + client hydration really safe for Google SEO?
- 42:12 Should you stop monitoring the overall Lighthouse score to focus on the Core Web Vitals metrics that matter for your site?
- 42:47 Is striving for 100 on Lighthouse really worth your time?
- 45:24 Is it true that 5G will accelerate your site, or is it just a mirage?
- 49:09 Does Googlebot really ignore your WebP images served through Service Workers?
- 49:09 Is it true that Googlebot overlooks your WebP images served by Service Worker?
Google claims that client-side hydration is not a barrier to SEO as long as the content displays correctly during crawling. Testing tools (Search Console, Lighthouse) can verify that Googlebot sees the expected rendering. Some components can remain exclusively client-side without SEO penalties, provided the user experience remains smooth and critical content is accessible.
What you need to understand
What is hydration and why is there a debate around it?
Hydration refers to the process where a JavaScript framework transforms pre-rendered static HTML (generated server-side) into an interactive client-side application. The HTML arrives already structured, and then the JS "connects" to add interactivity.
This topic has been divisive for years. Some practitioners believe that any client-side JS slows down crawling and harms SEO. Others have observed that Google handles modern JavaScript rendering very well, assuming the infrastructure is correct. Splitt's statement clarifies: hydration is not an intrinsic problem.
What does "if the rendering is correct" mean?
This is the central point. Google does not say that all JS is perfect by default. It indicates that if your testing tools show Googlebot sees the expected content, then hydration is not the issue.
In practice: if URL inspection in Search Console displays your complete content, and if Lighthouse detects your meta tags and main sections, then your architecture works. "Correct rendering" means that the final HTML visible to Google matches what you want to index.
Can we really leave some components as client-only?
Yes, according to Splitt. Not all your components need to be rendered server-side. A testimonials carousel, a secondary dropdown menu, a "scroll to top" button—these elements can be entirely client-side without SEO impact.
The nuance: these components must not contain strategic content for SEO. If your main text, H1-H2 headings, critical internal links, or structured data depend on a client-only component, you take a risk. Lighthouse will detect layout shifts and UX issues, but not necessarily gaps in indexable content.
- SSR + client-side hydration is validated by Google if the final rendering is complete.
- Testing tools (Search Console, Lighthouse, Mobile-Friendly Test) are your referees: if Google sees the content, it's good.
- Some components can be client-only without penalties, provided they do not carry critical content.
- Lighthouse detects UX issues (CLS, LCP), not indexing gaps—cross-testing is necessary.
- No intrinsic SEO problem arises from hydration itself, only from its failed implementation.
SEO Expert opinion
Does this statement align with real-world observations?
Overall yes, but with caveats. For several years, we've seen that Google correctly indexes well-configured React, Vue, or Next.js sites. Modern frameworks with SSR or SSG (static site generation) produce pre-rendered HTML that behaves like classic HTML for Googlebot.
The problem arises when the dev team relies entirely on pure client-side rendering (CSR), without SSR or pre-rendering. In such cases, Googlebot has to execute the JS, wait for the data fetch, and then render the DOM—which can delay indexing or create timeouts. [To be verified]: Google never specifies how long it waits before giving up on a complex JS rendering.
What nuances should be added to this claim?
Splitt states "no intrinsic SEO problem if the content displays." However, "if" is a huge conditional. In practice, many sites fail this test without realizing it. URL inspection may show partial rendering, with missing sections or non-crawlable internal links.
Another point: Lighthouse detects layout shifts but does not necessarily signal when an entire block of text is missing from the initial rendering. A site may have a good Lighthouse score yet lose indexable content if hydration is delayed or fails. Cross-referencing Search Console + Lighthouse + manual testing with JS disabled is needed for a comprehensive view.
In what situations does this rule not apply?
This statement assumes a modern and well-configured infrastructure. If your site uses pure CSR (e.g., a React SPA without Next.js or Gatsby), your data comes from slow third-party APIs, or your critical components rely on heavy JS libraries, Googlebot may miss part of the content.
Moreover, some CMS or builders impose a hybrid architecture that's difficult to diagnose. A WordPress plugin that injects content via AJAX after the initial load may escape Google rendering. In such cases, "the rendering is correct" becomes a hypothesis that must be constantly verified, not a certainty.
Practical impact and recommendations
What should you do to secure hydration in practice?
The first step: ensure your main content (headings, paragraphs, internal links) is present in the raw HTML before any JavaScript execution. View your page's source code (Ctrl+U) and check for your H1 tags, key paragraphs, and internal links. If they're absent from the initial HTML, it's a red flag.
Next, use the URL inspection tool in Search Console to compare raw HTML and final rendering. If the rendering adds entire sections missing from the raw HTML, you're relying on JS—which works, but slows down indexing and increases the risk of failure. Prefer SSR or static generation for critical content.
How can you check if Googlebot sees all the content?
Install the Web Developer Toolbar extension or use DevTools to disable JavaScript, then reload the page. What remains visible is what Googlebot sees without effort. If your main sections disappear, you have an architecture problem.
Simultaneously, run Lighthouse in navigation mode (not just snapshot) and check the rendering metrics: LCP, CLS, FCP. An LCP over 2.5 seconds or a CLS above 0.1 indicates that hydration disrupts user experience, which can indirectly affect SEO through Core Web Vitals.
What mistakes should you avoid with client-side hydration?
Never let your critical meta tags (title, description, canonicals, hreflang) be generated only client-side. These tags must appear in the initial HTML, or Google will index with default or empty meta. The same issue applies for JSON-LD structured data: inject them server-side, not via a client-side script.
Avoid also relying on JavaScript events (onClick without href) for your internal links. Google follows <a href> tags in the HTML, not JavaScript listeners. If your navigation links are divs with handlers, Googlebot won't crawl them.
- Check the raw HTML (Ctrl+U): main content must be present before JS
- Use the URL inspection tool in Search Console to compare raw HTML and final rendering
- Test the site with JavaScript disabled to see what Googlebot sees without effort
- Inject critical meta tags and structured data server-side, never client-side
- Prefer
<a href>tags for internal links, not divs with onClick - Monitor Core Web Vitals (LCP, CLS) in Lighthouse and PageSpeed Insights
❓ Frequently Asked Questions
Faut-il absolument utiliser le SSR pour un bon référencement ?
Lighthouse suffit-il pour diagnostiquer les problèmes d'hydration ?
Les composants client-only nuisent-ils au SEO ?
Comment savoir si Google voit bien tout mon contenu ?
Les balises meta peuvent-elles être générées côté client ?
🎥 From the same video 36
Other SEO insights extracted from this same Google Search Central video · duration 51 min · published on 12/05/2020
🎥 Watch the full video on YouTube →
💬 Comments (0)
Be the first to comment.