There was a blog post from google that they are indexing javascript applications. However, my AngularJS Application www.fore-cite.com seems not to be indexed at all. Is there anything special that I have to do in order to enable indexing and make the content searchable?
问题:
回答1:
The Google crawler does execute javascript on the pages that it crawls. With AngularJS, there are a few steps you have to take to make sure that your application is getting crawled and indexed properly.
HTML5 Mode
You must use html5 mode.
Webserver Setup
For the html5 mode to work properly, you must configure your webserver so that requests to directories that don't exist get rewritten to index.html.
Sitemap
Google does not properly follow links in angularjs apps yet, therefore you must create a sitemap for all of your routes. This sounds like a pain to do, however, with proper build processes this can be a very automated process. (gulp, grunt, etc.)
Cons
This of course only applies to the google crawler. Other search crawlers such as Bing may not support javascript applications yet, though I wouldn't be surprised if this changes over the next year or two (if it hasn't already.)
Other considerations
One commonly missed problem with indexing angular apps is things like pagination and content that shows up after clicking a button. If these actions do not change the url, google will not crawl it. For example, say you have a page with a table using pagination and it has 3 pages. Google will only crawl the first page unless each page has a different url route such as /table/page/1
/table/page/2
/table/page/3
回答2:
Nowadays you wont get good SEO with AngularJS.
First thing is to get your pages crawled. See this simple JS indexing experiment.
To diagnose your site you can use Chrome 41 used by Googlebot to index JS pages. See this.
回答3:
You might want to use Angular Universal. It looses the benefit of rendering the angular application on the client however it will allow proper search engine indexing (not only google).
you will have to decide if the trade off is worth it for your requirement
Angular Universal Official Website