我正在撰写一个包含相当大的画廊的网站。在图库的第一页,用户将显示一堆缩略图,其网址为:website.com/gallery.php
当他们点击缩略图时,如果关闭了javaScript,它将跟随href中的url并转到名为gallery.php?img = 67的页面。如果打开javaScript,则不会执行href单击,而是执行ajax请求以显示较大的图像和一些关于它的文本。网址更改为gallery.php#!img = 67。后退按钮将带您返回缩略图,按f5将保持显示文本的大图像。如果有人用#复制地址!并将其发送给某人,他们将获得相同的图像显示(假设接收器已打开javaScript)。
我的问题是,我是否正确对Google进行了整理,以便为各个图库页面编制索引?将谷歌索引两次,一次使用?img = 67,一次使用#!如果是这样那么坏事呢?一旦加载缩略图页面以提高速度,我正在使用javaScript / Ajax预加载较大的图像。我最近看到很多反对使用hasbang ajaxy的东西,并想知道你是否认为可以在这里使用它?
答案 0 :(得分:4)
Google会关注您的链接并为?img=67
网页编制索引,并且不会将您的#!
网页编入索引,因为它无法看到这些链接。您可以通过执行以下操作告诉Google有关这些链接的信息:
<meta name="fragment" content="!">
添加到文档的<head>
,然后/?_escaped_fragment_=
标记中所有#!
个链接的网页的“HTML快照”来处理<A>
的请求。此外,要充分利用此功能,还应通过返回显示大图像的HTML快照页面来处理/?_escaped_fragment_=img=67
的请求。请记住,GoogleBot不会执行Javascript。使用#!
网址会让Google检索该页面的替代版本(#!
已被?_escaped_fragment_=
替换的版本)应该在没有Javascript的情况下呈现。
答案 1 :(得分:1)
最近在新闻中使用了网址中的#!
标记,并对知名博客进行了更新。
http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs很好地描述了它们最适合的用途 - 以及何时它们可能会很糟糕。我认为你在画廊中的使用是非常有效的。
简而言之,像http://lifehacker.com/#!5753509/hello-world ...这样的网址被Google和其他兼容的网络蜘蛛重写为http://lifehacker.com/?_escaped_fragment_=5753509/hello-world ......
Google可能会将它们编入索引两次,但您也可以使用canonical元标记来确保它知道“正式”副本是什么。
答案 2 :(得分:1)
可能的解决方案(如http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs中所述)是使用常规链接并将其转换为#!在OnClick()事件中。这可以确保网站显示常规链接而不是糟糕的#!
它确实意味着服务器的额外工作,因为服务器需要支持两个版本(Ajax版本和常规版本),但我认为值得。这些#!真是太丑了..