The Status of SEO with languages as Angular and React?

I’m thinking of using Angular or React for a new web project but the SEO are an important part. From what I have read there are ways to solve it but it always results in keeping two page version alive or using an external service that renders the pages.

This sounds like bad options to me?

I have also read some unclear info about that search engines now can read javascript webpages with for example angular or react?

Could someone clarify this for me? Will SEO be as good with Angular as if I was using, for example, ASP.NET MVC?

Can angular2 routes be indexed by Google bots unlike angular 1?

I’m curious can angular 2 spa be indexed?

Google in the past would only index the first page eg homepage

Does angular 2 solve this issue?

I here that Google have been indexing JavaScript and css files for a while now.

Do I need to do anything to my angular 2 app in order for all routes to be indexed in my app?

Thanks

Is there a correct way to allow Google to read Angular 2 content for SEO?

I have an Angular 2 application which is publicly visible. When I log in to Google Webmaster Tools and request to render the page, I can see that it is just seeing the loading indicator and none of the content. Is there a recommended approach for allowing the contents of the site to be indexed?

I am hosting on an Apache server.

Google cannot index angular2 application

angular2 version: 2.0.0-beta.14

Hello, we built a web application with almost solely depending on client side angular2, however, since the release day – 3 days ago – google robots cannot index the pages properly.

When you hit the start page of the application from the google’s webcache, it returns the following output:

Console errors

While these errors pop out, the network segment is works as expected. Also, the website can be normally reached without errors. If you need extra information, please just say.

Any help is appreciated, thanks for your time.

How implement SEO (Metatags) in Angular 2 (with Angular universal for rendering on server side)?

I’m searching a fully working example about SEO or Metatags with Angular 2 using Angular universal to render on server side (to be recognize by facebook, twiter, and other metatags) but I had not success..

I found multiple articles, but there are incomplete (no all source code is available) or oldest (not compile with the latest versions):

a) blog.devcross.net/2016/04/17/angular-2-universal-seo-friendly-website/
NOTE: Excelent post with source code, but It’s not working.

b) builtvisible.com/universal-angular-2-server-side-rendering-seo-crawl-friendliness/
NOTE: Very usefull but with no source complete source code..

c) https://gist.github.com/kaaboeld/851bc3190eec67f6723c6054751ee2dc

NOTE: Not fully working example. May be the best approach..

d) https://github.com/angular/universal/issues/454
NOTE: It’s a variant of c option, with some fixes…

Did you have any full working example??

Thanks in advance

SEO angular2 multiple routes to one component

I created an application with angular2. For internalization and SEO purpose the routes of my application should change. My question is how can I map multiple routes to one component for example the routes:

www.test.at/GERMANNAME/Vienna
www.test.at/ENGLISHNAME/Vienna

sould map to one component. How can I achieve this with the angular2 router? What I got so far is the following piece of code:

export const testRoutes: Routes = [
  {
    path: 'ENGLISHNAME', <-- How can i add the GERMANNAME route to this path without copy/pasting the whole path
    component: TestComponent,
    children: [
      {
        path: ':city',
        component: TestListComponent
      }
    ]
  }
];

Angular ngMeta – dynamic title and description is not getting resolved in prerendered pages(prerender.io)

I am using prerender.io for server side rendering for Angular Single Page Application.

  1. Added ngMeta dependency and added the title and description meta tags dynamically.
  2. Added sitemap.xml file with all the URLs
  3. Added the site as a property on Google Webmaster Console.
  4. Rendered the pages using prerender.io

The title and description tags are displayed in page view source as below:

<meta name="description"
    content="{{ngMeta.description}}">
<meta name="robots" content="noodp" />
<meta name="robots" content="noindex" />
<link rel="canonical" href="https://www.example.com/">

<meta property="og:locale" content="en_US">
<meta property="og:type" content="website">
<meta property="og:title" content="{{ngMeta.title}}" />
<meta property="og:description" content="{{ngMeta.description}}" />
<meta property="og:keywords" content="{{ngMeta.keywords}}" />
<meta property="og:url" content="https://www.example.com/"">
<meta property="og:site_name" content="xxx">

But, the rendered page shows the title and description as below:

<meta name="description" content="">
<meta name="robots" content="noodp">
<meta name="robots" content="noindex">
<link rel="canonical" href="https://www.example.com/">

<meta property="og:locale" content="en_US">
<meta property="og:type" content="website">
<meta property="og:title" content="">
<meta property="og:description" content="">
<meta property="og:keywords" content="">
<meta property="og:url" content="https://www.example.com/">
<meta property="og:site_name" content="xxx">

Also, the description is missing for the site on google search.

Can anyone help me to resolve this?

Angular 4 and SEO

I have a simple Angular 4 project served by Express. When I tried to fetch my site using Googlebot, it just showed a blank page (the innerHTML of AppRoot). I thought Google claimed its bots support Angular 4 / JS websites?

If this is still issue, is server side rendering using Angular Universal really the best solution? Like I have to set up another server that serves the server-side rendered app in addition to the main server that serves the normal client-side rendered app? And if it is, how do I tell googlebot to go to the port for the server-side rendered app and normal http traffic to go to the port for the client-side rendered app? Aren’t crawlers http traffic?