Javascript 是否有可能用客户端单页应用程序实现SEO?

Javascript 是否有可能用客户端单页应用程序实现SEO?,javascript,html,rest,seo,client-side,Javascript,Html,Rest,Seo,Client Side,问题:是否可以使用仅客户端的单页应用程序实现SEO 主题: 我正在实现一个不基于特定服务器体系结构的REST应用程序。因此,我必须在不使用“服务器端静态呈现/快照”技术的情况下实现SEO……有没有办法只使用javascript+html5来实现 总结:javascript和html5-没有服务器端=SEO是可能的吗 这是“此应用程序的概念代码” var page=myApp.getPage();//从url片段获取当前页面名称 $(“#head”).load(“pages/”+page+“-h

问题:是否可以使用仅客户端的单页应用程序实现SEO

主题: 我正在实现一个不基于特定服务器体系结构的REST应用程序。因此,我必须在不使用“服务器端静态呈现/快照”技术的情况下实现SEO……有没有办法只使用javascript+html5来实现

总结:javascript和html5-没有服务器端=SEO是可能的吗

这是“此应用程序的概念代码”


var page=myApp.getPage();//从url片段获取当前页面名称
$(“#head”).load(“pages/”+page+“-head.html”);//加载headdiv的html
$(“#content”).load(“pages/”+page+“-content.html”);//加载内容div的html
$(“#footer”).load(“pages/”+page+“-footer.html”);//加载页脚div的html
myApp.loadContent();//从RESTAPI获取内容并加载到html中

编辑:我不是问谷歌爬虫是否可以呈现js代码,而是问:在我的上下文中,是否有一种方法可以为大多数搜索引擎实现SEO然而,经过一些研究之后,答案是实际上没有技术可以做到这一点(除了一些为您创建html快照的预呈现企业服务)。看来,ATM唯一的解决方案就是等待未来对搜索引擎爬虫提供更好的js支持。

事实上,没有特定的服务器脚本并不重要。搜索引擎爬虫是一个客户端,重要的是它获取的内容,而不管该内容是静态生成的还是动态生成的

也就是说,如果您的页面完全是用JavaScript构建的,那么这当然很重要。如果一个大页面通过JavaScript显示为不同的页面,搜索引擎可能仍然会将其作为单个页面进行索引,或者根本不会

谷歌现在支持JavaScript,但它仍然是实验性的,大多数其他爬虫程序仍然不支持它。通常,在浏览器中禁用JavaScript并加载页面是一个好主意,然后您将看到爬虫看到了什么

当然,这是可能的

谷歌搜索引擎优化机器人(googlebot)可以运行你的JS并在现代浏览器上“查看”页面,这样他们就可以扫描你页面的DOM,不管它是如何创建的(服务器端还是客户端)。如果你的JS是标准的,搜索引擎将能够以用户的身份阅读你的页面

因此,您可以使用所有SEO知识,通过jquery.load()方法构建它


来源:

这是一个极大的过度简化。正如您所看到的,我正在开发一个通过javascript动态加载其“子页面”的应用程序。因此,禁用javascript您将看不到任何内容。只是一个空模板我知道单页的意思,谢谢。一个单页应用程序也可以有静态内容,甚至可以预先加载所有内容(在您提供的维基百科链接中也提到了这一点)。无论如何,我已经在答案中描述了在这种情况下会发生什么,但要特别清楚:您完全动态加载的空页面(没有JavaScript)可能会被Google索引,而不会被其他主要搜索引擎索引。你能做的唯一一件事就是确保页面在非JavaScript的情况下也有适当的内容。谢谢你的“额外的清晰化”,不过我正在尝试谷歌站长工具来检查谷歌索引,谷歌似乎无法呈现我的动态内容。也许我得做些额外的工作
<head>
    <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
    <script src="myApp.js"></script>
</head>
<body>
    <div id='head'></div>
    <!-- extra html code here -->
    <div id='content'></div>
    <!-- extra html code here -->
    <div id='footer'></div>
    <script type="text/javascript">
        var page=myApp.getPage(); // get current page name from url fragment
        $("#head").load("pages/"+page+"-head.html"); // load html for head div
        $("#content").load("pages/"+page+"-content.html"); // load html for content div
        $("#footer").load("pages/"+page+"-footer.html"); // load html for footer div
        myApp.loadContent(); // get contents from REST APIs and load inside html
    </script>
</body>