This is something I've been struggling to wrap my head around for the past few days. Tried to keep the rambling to a minimum but concise questions are at the bottom.
As I understand it, utilizing JS to display content isn't great for web crawlers - the HTML isn't fully rendered on initialization, which causes problems for web crawlers. This problem is amplified when using frameworks like angular, as the entire application structure is dependent on JS logic triggered client side. I often see SSR used as a solution through tech like Prerender or Angular Universal.
Given the above, I'd expect similar issues on a website/app managing content in a headless CMS like Strapi, getting that content through an API call on the FE/client side of the application, and rendering that content in the view on completion of the call.
I expected this to be a common issue, but haven't found much when googling. All of the resources I've pulled up talk about how to manage metadata with the CMS, managing URL slugs, etc...
My Questions
1 - For a website with the following architecture Headless CMS <--API--> FE, rendering content dynamically (whatever content is returned from CMS), would there be issues with web crawlers finding the content?
2 - Assuming the above isn't an issue - do web crawlers wait on the site to initialize, API calls to resolve, content to render, etc?
3 - Again assuming the above is valid - why are JS frameworks like angular considered unfriendly for web crawlers.