Angular2 как сделать server side rendering?
https://github.com/angular/universal-starter
В файле src/server.ts все ответы. Суть такая: 
 1) создаём express-приложениеlet app = express();
 2) настраиваем обработку .html-файлов на ангуляровский рендерер из universeapp.engine('.html', expressEngine);
app.set('views', __dirname);
app.set('view engine', 'html');
 3) Создаём функцию-обработчик, которая будет рендерить ангуляр-приложение на сервере, если пользователь зайдёт по определённым ссылкамfunction ngApp(req, res) {
  let baseUrl = '/';
  let url = req.originalUrl || '/';
  res.render('index', {
    directives: [ Html ],
    ...
  }
}
4) В этой функции каким-то образом надо подключить корневой компонент App. В приведённой ссылке это делается так: создаётся компонент Html (src/server-only-app/html.component.ts), который содержит полностью весь код index.html (кроме тегов html). Можно было просто в функцию ngApp указать в поле directives корневой компонент.
5) Запускаем приложухуapp.use(express.static(root, {index: false}));

// Routes with html5pushstate
app.use('/', ngApp);
app.use('/about', ngApp);
app.use('/home', ngApp);

// Server
app.listen(3000, () => {
  console.log('Listen on http://localhost:3000');
});
https://vinaygopinath.me/blog/tech/seo-in-angular2...
Попробуйте эту