Does component streaming and suspense hurt SEO? #50829
-
This page uses new App router with dynamic rendering. The children is a server component which requires 1 second to render. If we disable javascript in the browser and refresh the page, we can see the actual pre-rendered HTML -- Yes, it shows a loading state indefinitely. I understand this is what component streaming mechanism offers us, but if a crawler tries to get this page, does next.js give it the loading state as well? Doesn't this behavior hurt SEO? In my opinion, the best behavior is like It would be great if someone can help clarify this or describe it in the documentation. |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 1 reply
-
Did you test it yourself? https://pagespeed.web.dev/analysis/https-app-dir-vercel-app-loading-books/ndeij4yca3 And what google has in the cache? |
Beta Was this translation helpful? Give feedback.
-
Great question, I was wondering the same. FWIW lighthouse gives your example page a 100 for SEO, but I don't know if it's properly assessing your question. I'm also seeing the loaded content in the Google cache...but the question still remains. |
Beta Was this translation helpful? Give feedback.
-
Great question |
Beta Was this translation helpful? Give feedback.
-
Streaming can hurt SEO but it depends on your use case, at least, it's how I read: https://webmasters.stackexchange.com/questions/140250/do-search-engines-perform-js-rendering-while-crawling. Google also explains in https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics how its indexing engine works.
So the claim in https://nextjs.org/docs/app/building-your-application/routing/loading-ui-and-streaming#seo looks false:
streaming has an impact on SEO, but it largely depends on your use cases. I did a quick fix along the way #61647. |
Beta Was this translation helpful? Give feedback.
-
If you disable javascript in the browser, tha data is not loaded(streamed) so I guess it hurts SEO but I might be wrong. |
Beta Was this translation helpful? Give feedback.
Streaming can hurt SEO but it depends on your use case, at least, it's how I read: https://webmasters.stackexchange.com/questions/140250/do-search-engines-perform-js-rendering-while-crawling. Google also explains in https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics how its indexing engine works.
Crawlers without JavaScript support. Google can index pages with component streaming but Yandex and Baidu are not indexing client-side rendered pages. Google has a 90%+ share of the search market and supports client-side rendered pages so it's probably OK in most use cases.
The render queue. Googlebot has separate queues for regular crawling and rende…