rrit
(Ayke)
1
sitemap 插件在默认站点地图中不包含任何 ?page=… URL,例如 https://meta.discourse.org/sitemap_4.xml
<url>
<loc>
https://meta.discourse.org/t/importing-migrating-from-phpbb3/30810
</loc>
<lastmod>2022-02-25T21:55:40Z</lastmod>
</url>
在最近的站点地图中,分页 URL 被包含在内 - 例如 https://meta.discourse.org/sitemap_recent.xml
<url>
<loc>
https://meta.discourse.org/t/importing-migrating-from-phpbb3/30810?page=18
</loc>
<lastmod>2022-03-07T12:03:50Z</lastmod>
</url>
默认站点地图中没有 ?page=… URL 是出于设计考虑吗?
所有这些 ?page=… URL 都是规范 URL,因此应该添加到默认站点地图中 - 例如
<url>
<loc>
https://meta.discourse.org/t/importing-migrating-from-phpbb3/30810
</loc>
<lastmod>2022-02-25T21:55:40Z</lastmod>
</url>
<url>
<loc>
https://meta.discourse.org/t/importing-migrating-from-phpbb3/30810?page=2
</loc>
<lastmod>2022-03-02T19:08:07Z</lastmod>
</url>
[...]
<url>
<loc>
https://meta.discourse.org/t/importing-migrating-from-phpbb3/30810?page=18
</loc>
<lastmod>2022-03-07T12:03:50Z</lastmod>
</url>
来源
2 个赞
mstm
(mstm)
3
谢谢 @rrit,几个月前我也注意到了,但我一直以为这是正常的 
rrit
(Ayke)
4
我可以实现一个简单的修复方法,该方法对最后编辑日期不太具体:例如,一个主题的所有页面将使用最后编辑帖子的相同日期。
这样,在一个主题(包含许多帖子和许多页面)的新帖子中,所有页面都将获得一个新的最后更改日期——即使只有最后一页需要新日期。
这是一个可行的解决方案吗?
否则,我们需要将一个主题的所有帖子打包成20个帖子(每页)的包。然后为每个包本身计算最后更改日期。
sam
(Sam Saffron)
5
老实说,我看了一下,我对这里的任何更改都持保留意见,问题不在于谷歌在发现 Discourse 论坛上的内容方面遇到困难。
问题在于它发现了、抓取了,然后由于“任意的决策”,决定该内容不应被索引。
1 个赞
rrit
(Ayke)
6
“任意决策”是否意味着以下几点之一:
(请参阅 Page indexing report - Search Console Help
将所有这些 ?page=… 规范网址添加到站点地图的好处是:
它为 Google 提供了 \u003clastmod\u003e 的有力提示。这样,Google 就没有理由重新抓取未更改的 ?page=… 网址,并可能将其宝贵的抓取预算用于更重要的网址。
如果站点地图中缺少 ?page=… 网址,Google 仍然会找到它们并进行一些“任意”重新抓取 - 即使这是完全不必要的,因为内容没有任何新更改。
请参阅 Build and Submit a Sitemap | Google Search Central | Documentation | Google for Developers
Google 确实会跟踪并区分它了解网址的来源:
“所有提交的页面”(站点地图)或“所有已知的页面”(链接等)
请参阅 Google Search Console –\u003e 索引 –\u003e 覆盖率报告
- “站点地图是 Google 发现您网站上网址的重要途径。” 参见
- “Google 会根据多个因素(或信号)来选择规范网址,例如[… ]、站点地图中网址的存在情况[… ]。” 参见
- “使用站点地图并不能保证您站点地图中的所有项目都会被抓取和编入索引,因为 Google 的处理依赖于复杂的算法来安排抓取。” 参见
1 个赞
sam
(Sam Saffron)
8
这肯定是罗曼(Roman)在将其集成到核心时需要牢记的事情。
我更倾向于在添加更多更改之前先合并站点地图,但一旦完成……也许我们可以从 _recent 上的基于规范页面的 URL 开始。我们现在有规范 URL,可以在 posts.rss 中使用,通过充分的缓存,它也可以用于站点地图。
3 个赞
我无法让 Google Search Console 索引 https://example.com/t/title-slug/1234?page=3 这样的网址,因为 Discourse 会返回 404。移除 ?page=x 参数后网址才有效。
我猜这是 Discourse 为爬虫提供的网站版本添加分页功能的一种副作用:
sam
(Sam Saffron)
11
页面网址运行正常,您只需要发布超过 N 篇帖子即可。
您是否恰好在该主题下发布了大量已删除的帖子?
Sam,谢谢你的回复。发布此消息后,我在以下链接中找到了你的解释:
但在我的案例中,没有,我查看过的有此问题的帖子并未显示对原始主题的修改。唯一的问题是它们是从 Drupal 导入的。但我需要深入研究其他示例,看看是否有最初在 Discourse 中创建的主题也受到影响,因为不幸的是,有_大量_这样的帖子,可能数以千计。
1 个赞
sam
(Sam Saffron)
13
哎呀,是从 Drupal 导入了大量内容吗?这是这里的共同点吗?
是的,接近 10 万个主题和约 200 万个帖子。我不确定这个问题是否只出现在导入的主题中,如果我发现任何异常,我会尽快在此处回复。
1 个赞