2

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.

  • have you set a meta tag to indicate escaped fragment for this, and how does a typical page display in 'fetch as google'? – Mousey Sep 29 '15 at 2:54
2

To answer your specific questions based on the information you have provided:

  1. Google's crawlers do read Javascript (and exceptionally well at that). Also, Google and Bing both support HTML5 pushState. If Screaming Frog is able to crawl your website perfectly and find the right links, chances are most search engines including Google will be able to crawl your site (Screaming Frog follows Google's AJAX Crawling Scheme).
  2. Be rest assured, you are not going out of your way to be SEO friendly and hence, you will NOT be penalized by Google. Infact, having a JS and non-JS version is user friendly and so there's nothing wrong with it.

You must read this post on search engines and AngularJS apps on StackOverflow as well the following articles on Google's and Bing's Webmaster Guidelines:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.