如何告诉 Jekyll 对搜索引擎隐藏一页?

How to tell Jekyll to hide one page from search engines?

我有一个网站,其中包含我的 public 个人资料,是用 Jekyll 制作的。

它还包含一页,比如 'details.html',其中包含更多关于我的个人信息。我只希望那些我给 link 的人看到这个页面。特别是,我想从搜索引擎中隐藏它。

我该如何最好地做到这一点?我听说我可以添加 robots.txt 文件或包含元标记 'nofollow' 或 'noindex'。

  1. 这里的常用解决方案是什么?
  2. 如果要走的路是添加元标记,如何在给定标准 Jekyll 设置的情况下仅将其添加到一个页面中?

robots.txt 是告诉搜索引擎索引什么和不索引什么的标准方式(不仅适用于 Jekyll,也适用于一般网站)。

只需在 Jekyll 站点的根目录中创建一个名为 robots.txt 的文件,其中的路径不应被索引。

例如

User-agent: *
Disallow: /2017/02/11/post-that-should-not-be-indexed/
Disallow: /page-that-should-not-be-indexed/
Allow: /

Jekyll 会自动robots.txt 复制到生成站点的文件夹中。


您还可以测试您的 robots.txt 以确保它按您预期的方式工作:https://support.google.com/webmasters/answer/6062598?hl=en


更新 2021-08-02 - Google具体设置:

您可以阻止页面出现在 Google 搜索中,方法是在页面的 HTML 代码中包含 noindex 元标记,或者 return 添加 [= HTTP 响应中的 18=] header

有两种实现方式 noindex:作为元标记和作为 HTTP 响应 header。它们具有相同的效果;选择对您的站点更方便的方法。

<meta> 标签

为防止大多数搜索引擎网络抓取工具将您网站上的网页编入索引,请将以下元标记放入网页的 <head> 部分:

<meta name="robots" content="noindex">

要仅阻止 Google 网络爬虫将页面编入索引:

<meta name="googlebot" content="noindex">

HTTP 响应 header

除了元标记,您还可以在响应中 return X-Robots-Tag header,其值为 noindexnone。下面是一个 HTTP 响应示例,其中 X-Robots-Tag 指示爬虫不要为页面编制索引:

HTTP/1.1 200 OK
(...)
X-Robots-Tag: noindex
(...)

更多详情:https://developers.google.com/search/docs/advanced/crawling/block-indexing

robots.txt 文件是一个很好的解决方案,但 .htaccess 可能更适合此目的。另外,请确保您有一个私有存储库!

请注意,在 CloudCannon(付费帐户)上托管您的代码可以让您在其界面中轻松设置所有这些内容。

尝试:

---
layout: 
sitemap: false
---

因此,只要您在首页中包含 sitemap: false 行,就可以从您的站点地图中排除该页面。


检查:

  • gem 'jekyll-sitemap' 添加到您网站的 Gemfile 和 运行 bundle
  • 将以下内容添加到您网站的 _config.yml:
plugins:
    - jekyll-sitemap