Javascript Angularjs网站未在谷歌上建立索引

Javascript Angularjs网站未在谷歌上建立索引,javascript,angularjs,html,seo,search-engine,Javascript,Angularjs,Html,Seo,Search Engine,我开发了一个包含20多页的大型angularjs应用程序,并添加了一些SEO标签。但它的运作并不顺利。页面的大部分内容也使用javascript填充。 这就是我为每个页面实现SEO标签的方式 app.js (function() { var app = angular.module('myApp', ['ngRoute', 'ngSanitize', 'angular-flexslider']); // config route app.config(['$routeProvider', '

我开发了一个包含20多页的大型angularjs应用程序,并添加了一些SEO标签。但它的运作并不顺利。页面的大部分内容也使用javascript填充。 这就是我为每个页面实现SEO标签的方式

app.js

(function() {

var app = angular.module('myApp', ['ngRoute', 'ngSanitize', 'angular-flexslider']);

// config route
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
    var baseUrl = "partials/";

    $routeProvider.when('/', {
        title: 'Title 1',
        metadescription: "Description 1",
        metakeywords: "Keyword 1",
        templateUrl: baseUrl + 'home.html',
        controller: 'homeCtrl'
    })
    .when('/page1', {
        title: 'Title 2',
        metadescription: "Description 2",
        metakeywords: "Keyword 2",
        templateUrl: baseUrl + 'page1.html',
        controller: 'page1Ctrl',
    })

    .otherwise({
        redirectTo: '/'
    });

    $locationProvider.html5Mode(true);
    $locationProvider.hashPrefix('!');
}
]);

app.run(['$location', '$rootScope', function ($location, $rootScope) {
    $rootScope.$on('$routeChangeSuccess', function (event, current, previous) {
        $rootScope.title = current.$$route.title;
        $rootScope.metadescription = current.$$route.metadescription;
        $rootScope.metakeywords = current.$$route.metakeywords;

    });
}]);

}());
html的元标记实现如下

<!DOCTYPE html>
<html lang="en" ng-app="lennonsApp">
<head>
<base href="/">
<meta charset="utf-8">
<title ng-bind="title"></title>
<meta name="description" content="{{metadescription}}">
<meta name="keywords" content="{{metakeywords}}">
<meta name="fragment" content="!">
</head>

<body>
   Content goes here.....
</body>
</html>

内容在这里。。。。。
当页面加载时,所有的元数据标签数据绑定都正常工作。但即使一个月后,我的网站也无法在搜索引擎中搜索。 此网站位于IIS服务器上。 我的问题是: 1) .这种方法对搜索引擎有效吗? 2) .我是否需要为angularjs应用程序的IIS服务器执行任何其他特定配置? 3) .有人能推荐其他支持SEO的方法吗

提前谢谢

编辑 我试过google.com网站:[域名],上面实现的搜索引擎优化标签没有一个不起作用

编辑
IIS服务器有什么关系吗?

搜索引擎往往不执行JavaScript

您需要在服务器端生成“真实”页面,以利于搜索引擎和JS因任何原因失败的用户。然后使用
pushState
(Angular可以通过其路由执行此操作)将Angular页面映射到服务器生成的页面上

您可以采取一种解决问题的方法,编写JS,使其能够运行服务器端或客户端(这可能涉及运行Node.JS而不是IIS或使用IIS作为代理)


即便如此,为了分析实际内容,元关键词几乎总是被忽略,元描述通常被忽略。

SPAs上的SEO实现并不简单,目前并非所有搜索引擎都支持它。我认为谷歌,或许必应能够抓取SPA,但需要为此做一些工作。 有几种方法可以做到这一点:

1 use !# for your angular routes instead of  just #
2 use html5 routes instead of # routes
3 detect crawlers on your server and serve the metadata
4 create snapshots of your site and serve them 
基本上,这些是你的大部分选择 您可以在这些文章中找到更多详细信息


输入google.com网站:[你的域名]它会告诉你google在你的网站上索引了多少页面。您是否仅对页面使用关键字?尝试使用类似sitegrader的工具,向您提供seo影响的详细信息。开始时:@atmd我检查了我的站点。app.js设置的任何元标记都不会显示在结果上。Seams我的实现不支持SEO。是的,我在上面的代码中只使用关键字和标题。@JanithWidarshana我面临同样的问题,你得到解决方案了吗?@ShibinRagh我使用prerender.io来解决这个问题。如果您使用的是IIS服务器,它也会对您有所帮助$locationProvider.hashPrefix(“!”);它们是排他性的,如果你使用html5路由器,你不需要使用#路由。据我所知,在我的代码中,pushstate的实现还可以。你能告诉我哪里出了问题吗?我有点困惑。