HTML5和Javascript / jQuery中的动态META标记

时间:2015-03-18 16:47:21

标签: javascript jquery html facebook seo

我们正在开发一个公司网站,其中所有导航都使用哈希(http://xxx/#/content/xpto)完成,内容使用AJAX动态加载。角色的工作已经很好了,我们从中获得了很好的结果。我的问题(或问题)就是这个,因为导航是使用散列完全完成的,并且实际上没有页面加载(URI更改),我们正在更改“META”标记(*使用$('meta[property="title"]').attr('content', metainfo.title);之类的东西)在代码中。 Google的SEO引擎或Facebook的页面运行时,是否可以理解代码所做的元更改,即http://myurl.com/#/load/products,或者通过处理来自服务器的HTML内容来分析内容( HTML内容 <html><head>blah blah blah</head></html>)?

先谢谢你们。

3 个答案:

答案 0 :(得分:1)

似乎您可以使用JS来动态更改meta标签,如本文中所述: https://developers.google.com/search/docs/guides/javascript-seo-basics#titles-and-snippets

答案 1 :(得分:0)

你不能做动态元标记(或者你可以,但谷歌和Facebook不会运行你的JavaScript,所以他们不会对你有任何好处),但是你可以关注{ {3}}。我不知道Facebook是否有类似的指南。

答案 2 :(得分:0)

如果有人在解决我遇到的同样问题,答案就不那么简单了。不幸的是,对于使用复杂的JS流程创建页面的情况,市场上最常见的“无头”浏览器(包括Google推荐的浏览器 - HtmlUnit,watiji或Crawjax )不要做这个伎俩。

我找到的解决方案不是很优雅,但它确实有效。我使用http://www.awesomium.com/实现了C ++索引服务。他们有一个非常直接的解决方案,基于谷歌的铬API。当然,必须删除一些“ JS ”动画,但无论如何,HTML快照都按预期生成。

  

解决方案流程:

     
      
  1. 创建站点地图;
  2.   
  3. 使索引服务(使用Awesomium )读取并为站点地图文件中定义的每个页面生成HTML快照;
  4.   
  5. 文件( HTML快照)保存在服务器的安全位置,其中定义了相同的目录结构和文件名   浏览器网址;
  6.   
  7. 创建了一个Servlet(我们正在使用Java EE)来阅读Google索引无人机所请求的 HTML快照   “?_ escaped_fragment _ = ”querystring参数
  8.   

有关如何为Google构建完整爬虫无人机的详细信息,请点击此处(如OX所述 - thx):https://developers.google.com/webmasters/ajax-crawling/docs/getting-started