# Googlebot抓取Discourse时看到的内容

**URL:** <https://meta.discourse.org/t/what-googlebot-sees-when-crawling-discourse/212726>\
**Category:** Development\
**Created:** [2021年十二月20日 20:05 UTC](https://meta.discourse.org/t/what-googlebot-sees-when-crawling-discourse/212726 "2021-12-20T20:05:48Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![networkaaron](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/networkaaron/32/163683_2.png) [@networkaaron](https://meta.discourse.org/u/networkaaron)\
**Post date:** [2021年十二月20日 20:05 UTC](https://meta.discourse.org/t/what-googlebot-sees-when-crawling-discourse/212726/1 "2021-12-20T20:05:48Z")

</div>

TL:DR，半人力即可复制 Googlebot 抓取 Discourse。以下是入门方法……

与 Googlebot 合二为一

1. 打开一个隐身窗口（始终从头开始）
2. 打开开发者工具
3. 打开开发者工具中的网络条件
4. 取消勾选“使用浏览器默认设置”
5. 在选择菜单中选择 Googlebot Smartphone
6. 然后访问 [https://meta.discourse.org](https://meta.discourse.org)（看起来大不相同；没关系，因为你的 Googlebot 和机器人不在乎）
7. 转到视图 \> 开发者 \> 查看源代码
8. 复制并粘贴到某个 .html 文件中

干得好！您已创建了供人类参考的文件，以查看 Googlebot **抓取** 和 **缓存** 的内容。

Googlebot 的工作完成了。现在是时候在浏览器中渲染缓存的文件了。

与 Chrome 合二为一

1. 打开终端并运行 `npx http-server`
2. 导航到文件
3. 打开 Chrome 开发者工具
4. 在“元素”面板中，右键单击 `<html>...` 并选择“复制 outerHTML”。
5. 这就是将被索引的内容，而不是缓存，是索引

总之，Googlebot 检索 HTML，Chrome 渲染它。渲染后的 HTML 是黄金。确保您的宝贵内容和链接出现在那里。

---

<div class="post-metadata">

**Author:** ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)\
**Post date:** [2021年十二月20日 20:35 UTC](https://meta.discourse.org/t/what-googlebot-sees-when-crawling-discourse/212726/2 "2021-12-20T20:35:50Z")

</div>

“成为 Chrome 的一部分”下的步骤的目的是什么？

您不能在第一个列表的第 7 步中替换“复制 outerHTML”步骤吗？

---

<div class="post-metadata">

**Author:** ![j127](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j127/32/79093_2.png) [@j127](https://meta.discourse.org/u/j127)\
**Post date:** [2021年十二月22日 01:50 UTC](https://meta.discourse.org/t/what-googlebot-sees-when-crawling-discourse/212726/3 "2021-12-22T01:50:41Z")

</div>

我认为您也可以使用 `curl` 来获取它：

```plaintext
curl -s https://meta.discourse.org/ > page.html

```

（它将包含 `\"crawler\"` 类。）

然后用浏览器打开 `page.html` 文件。

或者在编辑器中检查代码：

```plaintext
curl -s https://meta.discourse.org/ | vim -

```

---

<div class="post-metadata">

**Author:** ![networkaaron](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/networkaaron/32/163683_2.png) [@networkaaron](https://meta.discourse.org/u/networkaaron)\
**Post date:** [2022年一月13日 14:22 UTC](https://meta.discourse.org/t/what-googlebot-sees-when-crawling-discourse/212726/4 "2022-01-13T14:22:55Z")

</div>

缓存的 HTML 在 Chrome（无头模式）中进行渲染。渲染时，可能会通过 JavaScript 在 DOM 中引入补充性文案和链接。Google 会将渲染后的信息纳入索引考量。

这就是 Googlebot 从富含 JavaScript 的应用程序中获取内容的方式。在 Google 中搜索您知道仅通过 JavaScript 渲染内容的内容 \> 点击三个点图标 \> 点击“缓存”按钮 \> 点击“查看源代码” \> 复制并将其在 Chrome 中渲染，即可看到出现在 DOM 中的内容。

注意：在 Chrome 中渲染之前，请将任何相对路径（CSS 和 JS 资源）更新为绝对路径。

---

<div class="post-metadata">

**Author:** ![networkaaron](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/networkaaron/32/163683_2.png) [@networkaaron](https://meta.discourse.org/u/networkaaron)\
**Post date:** [2022年一月13日 14:39 UTC](https://meta.discourse.org/t/what-googlebot-sees-when-crawling-discourse/212726/5 "2022-01-13T14:39:46Z")

</div>

使用 curl 会更方便，太棒了！

请确保包含 Googlebot 用户代理字符串，例如：`Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)`。服务器可能会向 Googlebot 发送不同的 HTML。

---

<div class="post-metadata">

**Author:** ![j127](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j127/32/79093_2.png) [@j127](https://meta.discourse.org/u/j127)\
**Post date:** [2022年一月13日 21:13 UTC](https://meta.discourse.org/t/what-googlebot-sees-when-crawling-discourse/212726/6 "2022-01-13T21:13:08Z")

</div>

我认为输出是相同的，但添加用户代理并没有坏处。我不确定 Chrome，但在 Firefox 中，你可以在网络选项卡中右键单击请求并选择“复制为 curl”，以获取一组完整的标头，这些标头将模仿浏览器请求。
