我无法理解关于搜索引擎和Facebook如何处理它们的规范网址。
我的Google地图供电网站允许访问者使用社交媒体在其所在国家/地区申请演出。其中一个页面可以在http://izzy.nogig.in/
找到当用户点击他们的国家/地区标记时,它会为他们提供共享选项(twitter / facebook / etc),共享时会分享特定于该国家/地区的网址,例如:izzy.nogig.in/usa?还是izzy.nogig.in/spain?等
网址中的所有这些国家/地区都包含大量重复内容,因此我使用以下内容将搜索引擎指向我想要排名的页面: -
<link rel="canonical" href="http://izzy.nogig.in/_?"/>
对于Facebook喜欢计入每个国家/地区,我将Open Graph“og:url”设置如下,例如:
<meta property="og:url" content="http://izzy.nogig.in/australia?" />
现在,当我通过Facebook对象调试器(例如http://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fizzy.nogig.in%2Faustralia%3F)运行特定于国家/地区的URL时,它显示以下内容: -
Response Code: 206
Fetched URL: http://izzy.nogig.in/australia
Canonical URL: http://izzy.nogig.in/australia
Mismatch og:url and canonical url:
og:url tag in the header is not the same URL as rel='canonical' link in the html.
以上错误令我感到困惑。我知道它们不匹配,但我认为这是正确的做法。
调试器中的所有内容对我来说都很好(每个国家/地区的链接,描述,图像等都正确),我无法更改rel =“canonical”值以匹配我的og:url,因为我需要它指向一个搜索引擎的单页(无国家/地区)。
我相信一切正常。我应该忽略调试器中的错误,还是我错误地设置了它?我不希望每个国家的“喜欢”全部消失,并计入rel =“规范”网址。
非常感谢 - Will
答案 0 :(得分:16)
链接rel="canonical"
将由搜索引擎使用,其中og:url
将由Facebook使用
og:url
基本上告诉FB刮刀“ignore anything on this page, and scrape this url instead
”
有关Canonical链接元素的更多内容:http://en.wikipedia.org/wiki/Canonical_link_element
答案 1 :(得分:3)
在我开发的其中一个网站上,我使用多种语言提供网页,并提供允许用户在一种语言和另一种语言之间切换的链接。因此,我的rel="canonical"
将包含网址http://www.example.com/
,而在代码中我更新了og:url
,因此它是http://en.example.com/
或http://fr.example.com/
。这样,当用户在Facebook上共享页面时,一切都将以他们正在查看页面的语言显示在Facebook上,这是有道理的,因为大多数访问者的朋友可能会说同一种语言。
问候。
答案 2 :(得分:3)
规范网址指的是网页内容。
目标(规范)IRI必须识别内容 上下文中内容的重复或超集(引用) IRI。 rfc6596#3
Opengraph url引用&#34; object&#34; 。
您的对象的规范网址,将用作图表中的永久ID,例如&#34; http://www.imdb.com/title/tt0117500/&#34;。 ogp.me
所以他们可能会有所不同。例如,对于多语言网站,每种语言的页面应该具有不同的规范URL,因为内容不同,但对于所有语言通常都是相同的{{1}},因为它们引用了多种语言描述的相同对象。 / p>
答案 3 :(得分:0)
我认为没有理由为什么og:url和canonical应该是不同的。在这两种情况下,您都要向搜索引擎或Facebook说明要索引或显示的页面。