Pinterest rich pin 不工作&验证器失败?

Pinterest rich pin not working & validator fails?

几个月来我们一直在努力解决这个问题,但无济于事。 Pinterest 上的富图钉曾经为我们的网站工作,但突然停止工作,所有富图钉(可点击的标题和价格)都在我们网站的图钉上消失了。

例如,对于这个product,我们清楚地在HTML代码的头部部分前面有开放图信息:

<meta property="og:type" content="product" />
<meta property="og:title" content="Backless Gray Lace Tulle Flower Girl Dress with Big Bow" />
<meta property="og:description" content="This dress is made of high quality lace and tulle fabric; Unique Cross back with straight neckline in the front; Big ... Shop now use NYC2018 for 9% off TODAY!" />
<meta property="og:url" content="http://www.princessly.com/backless-gray-lace-tulle-flower-girl-dress-with-big-bow.html" />
<meta property="og:site_name" content="Princessly.com" />
<meta property="og:price:amount" content="49.62" />
<meta property="og:price:currency" content="USD" />
<meta property="og:availability" content="instock" />

根据他们丰富的 pin 要求 here. It's all working good when we first implemented it on our site around half a year ago. Unfortunately for some reason it stopped working 1 month ago. See the pin page。它不再显示 none 这些丰富的 pin 信息。

当我们尝试使用 rich pin 验证器 的产品页面时(https://developers.pinterest.com/tools/url-debugger/), it's still NOT working 并在我们测试的每个 URL 中不断给出此错误:

We were unable to retrieve any data from your URL.

像这样:http://www.princessly.com/pinterest_error.png

这不是一个非常有用的错误消息。我们不确定他们是否无法访问该页面(http 代码?空白页面或其他什么?)或者只是在那里找不到任何打开的图表信息。

我们尝试了所有询问网站管理员论坛和寻求 Pinterest 官方支持的方法,除了给我们我们已经知道的文档并指责我们的服务器阻止访问他们的机器人之外基本上没有帮助,但在与我们的托管团队确认几次之后, Pinterest.com 访问我们的网站完全没有错误:

54.85.173.173 - - [11/Oct/2016:21:22:00 -0500] "GET /u-back-ivory-cotton-ruffle-neckline-flower-girl-dress.html HTTP/1.1" 200 22477 "-" "Pinterest/0.2 (+http://www.pinterest.com/)"
54.227.228.14 - - [11/Oct/2016:21:27:20 -0500] "GET /u-back-ivory-cotton-ruffle-neckline-flower-girl-dress.html HTTP/1.1" 200 22477 "-" "Pinterest/0.2 (+http://www.pinterest.com/)"
52.87.185.68 - - [11/Oct/2016:21:28:06 -0500] "GET /u-back-ivory-cotton-ruffle-neckline-flower-girl-dress.html HTTP/1.1" 200 22477 "-" "Pinterest/0.2 (+http://www.pinterest.com/)" 

由于我们是女性产品商家,Pinterest 意味着相当大的销售额。自 rich pin 消失以来,我们已经看到收入大幅下降。我们相信这个问题正在花费真金白银。

我们很绝望,认为我们应该在这里碰碰运气。不确定这是否适合编程问题,但它确实涉及 HTML 和 Open Graph 的代码以及为开发人员提供 API.

的主要社交网络之一

由于我们无法了解 Pinterest 机器人及其如何查看我们的页面,因此我们调试它的方法似乎非常有限。

知道这是怎么发生的以及如何调试和修复它吗?这里的任何 Pinterest 开发人员都可以提供一些见解吗?谢谢!

更新 1

这是我在过去 24 小时内通过 Princessly.com 的 index.php 记录的 HTTP 用户代理,其中包含 'Pinterest':http://www.princessly.com/Pinterest.txt

我的房东 WiredTree 非常友好地为我再次检查了这一切。看来 Pinterest 机器人确实能够毫无问题地访问我的网站。


在检查站点 "princessly.com" 的访问日志时,我可以看到从 "Pinterest" 到站点 "Princessly.com" 的成功访问。请查看日志中的片段。

======

194.103.189.40 - - [15/Nov/2016:03:32:31 -0600] "GET /skin/frontend/default/forest_fashion/images/bkg_btn_sprite.png HTTP/1.1" 200 2503 "http://www.princessly.com/skin/frontend/default/forest_fashion/css/styles.css" "Pinterest/0.2 +http://pinterest.com/" 194.103.189.40 - - [15/Nov/2016:03:32:31 -0600] "GET /skin/frontend/default/forest_fashion/images/tabs_border.gif HTTP/1.1" 200 43 “http://www.princessly.com/skin/frontend/default/forest_fashion/css/styles.css" "Pinterest/0.2 +http://pinterest.com/” 194.103.189.40 - - [15/Nov/2016:03:32:31 -0600] "GET /skin/frontend/default/forest_fashion/images/pager_bg.gif HTTP/1.1" 200 102“http://www.princessly.com/skin/frontend/default/forest_fashion/css/styles.css" "Pinterest/0.2 +http://pinterest.com/

======

Is there any way I can find the name of the Pinterest bot That I can detect as HTTP USER AGENT?

从日志中我可以看到 Pinterest 机器人标签是 "Pinterest/0.2 +http://pinterest.com"。

  1. Can we know if the requests made by Pinterest bot timed out?

我已经检查了 Apache 日志中记录了 Pinterest 访问的 IP 地址,但我找不到任何超时错误。

  1. How do we know if we block AWS requests?

在检查时我看不到站点 "Princessly.com" 的任何阻止规则设置。我已经检查了站点的 .htaccess 文件和 robots.txt 文件。我现在已根据您提供的 link 将 AWS IP 地址范围列入白名单。

请您现在查看详细信息,如果有任何 Pinterest 用户面板或其他详细信息,请告诉我,以便我们深入挖掘。


更新 2

根据@Mackan 的建议,我创建了几个完全相同且具有正确开放图信息的最小裸页面,并将它们上传到几个不同的站点。我正在记录访问页面的所有 PHP 用户代理:

  1. 站点与 Princessly.com
  2. 在同一台服务器上

Site IP: 173.199.151.128

http://www.princessly.com/ivory-lace-tulle-wedding-flower-girl-dress-with-sheer-neck-TEST123.php

http://www.princessly.com/Pinterest_agents.txt

-- 失败

Site IP: 173.199.151.128

http://www.usabledatabases.com/ivory-lace-tulle-wedding-flower-girl-dress-with-sheer-neck-TEST123.php

http://www.usabledatabases.com/Pinterest_agents.txt

-- 失败

Site IP: 173.199.151.130

http://www.bintley.com/ivory-lace-tulle-wedding-flower-girl-dress-with-sheer-neck-TEST123.php

http://www.bintley.com/Pinterest_agents.txt

-- 失败

  1. 与 Princessly.com
  2. 不同的服务器

https://www.thedataplanet.com/ivory-lace-tulle-wedding-flower-girl-dress-with-sheer-neck-TEST123.php

https://www.thedataplanet.com/Pinterest_agents.txt

-- 成功

  1. 另一个不同于Princessly.com
  2. 的服务器

http://www.formkid.com/ivory-lace-tulle-wedding-flower-girl-dress-with-sheer-neck-TEST123.php

http://www.formkid.com/Pinterest_agents.txt

-- 成功

经过 rich pin validator 测试后,似乎是 server 问题。请求永远不会到达 Princessly.com 服务器上所有站点的 PHP 文件。

WiredTree 的支持非常友善,可以帮助我找到罪魁祸首,但是在更换了超过 5 名支持人员之后,到目前为止没有任何希望。我们已经通过 .htaccess、Apache conf、modSecurity、防火墙、白名单 Pinterest IP、AWS IP 等。没有任何效果。

这真的很奇怪。

更新 3

更奇怪的是,如果你看 http://www.princessly.com/Pinterest_agents.txt you can see there are INDEED entries of "Pinterest/0.2 (+http://www.pinterest.com/)" 那里。

但是,如果您给它 manual test,它会失败并且根本不会记录访问。

好像断断续续的,可能吧

这几乎是量子物理领域的事,我不知道现在该做什么,除了订购和提供新服务器并迁移的最后手段 Princessly.com 看看进展如何.

你的想法?

调试问题后,使用https://developers.pinterest.com/tools/url-debugger/,问题似乎源于服务器端。

If you're seeing We weren't able to retrieve any data from your URL, then Pinterest may be timing out before we can create a Pin on your site. Unfortunately, this isn't something we can fix on our end, and usually happens when a site is slow. This error also appears if your site blocks Amazon Web Services (AWS) requests. You'll have to remove this block before applying for Rich Pins.

创建一些 "minimal but working" 页面并通过验证器 运行 它们使问题更清楚,但不幸的是没有解决它。这要么是本地服务器 (Apache) 的问题,要么可能是 pinterest 机器人的问题。

Pinterest 机器人似乎成功命中服务器,但验证器无法解析或到达端点。由于最小示例 returns 不到一秒,并且包含满足 Pinterest 要求的最低限度,很明显问题不在您的代码中。

将解决方案迁移到另一台主机似乎已解决问题。

编辑

新主机似乎运行得更好(使用最小示例之一):

我们有同样的问题。在我们的例子中,这是因为服务器有多个 SSL 证书并使用 SNI,因此客户端可以获得证书。然而,Pinterest 在后端使用 curl,这不是 SNI 感知的。我们已经用 Pinterest

记录了这个

对我来说,问题是缺少中间 SSL 证书。通过重新安装我的 SSL 证书,这次包括中间 SSL 证书,我能够成功地使用 Pinterest Rich Pins Validator 进行验证。

对我来说,问题是我使用的是“http://example.com". The validator wouldn't recognize my site. Not AT ALL. Not even the site name or the favicon. Then I switched to "http://www.example.com”,而且效果很好。