We have put a lot of work into our website, to try and make it as SEO-friendly as possible, while also providing a great UX.
If you visit with JavaScript enabled, you get a slick AngularJS SPA, which provides a great UX.
If you visit without JS enabled, you get a fallback, entirely server generated version of the website. The content is identical (it's all fed from a RESTful API), the appearance is identical and the URL structure is identical. The JS-free version is just not as nice to use, and is missing a lot of features present in the Angular version (progressive enhancement etc).
One of the things I do on the JS-free version is have a link to an alphabetized index of all of the content on the website. I don't do this in the Angular app, because we have search functionality instead. This link gets overwritten when the JavaScript kicks in (the div content gets replaced by the JavaScript).
My worry is that Googlebot/Bingbot will hit my website, helpfully execute JavaScript, the link to the index disappears and then basically nothing gets crawled.
One option is to not deliver the JavaScript script tags to anything identifying as a bot, based on the user agent, but I worry about being ranked worse as a result.
And yes, I know about Sitemaps, but I like the idea of the entire website being crawlable from the homepage. Screaming Frog finds every single link perfectly, and then when I navigate to any one URL the Angular app kicks in and we get a great UX.
So will Google/Bing browse my website with and without JS, or do they always execute JS now? Also, any other advice generally?
I worry that we may be actually penalized by Google for going out of our way to be SEO friendly!
I can link to the website if you ask, but trying to keep this as general as possible.