72

我使用 Github 来存储我的一个网站的文本,但问题是 Google 也在 Github 中索引文本。因此,相同的文本将同时出现在我的网站和 Github 上。例如这个搜索最热门的是我的网站。第二个命中是 Github 存储库。

我不介意人们是否看到来源,但我不希望 Google 将其编入索引(并且可能会因重复内容而受到惩罚。)除了将存储库设为私有之外,还有什么方法可以告诉 Google 停止对其进行索引?

在Github Pages的情况下会发生什么?这些是源位于 Github 存储库中的站点。他们有同样的重复问题吗?

这个搜索最热门的线索进入Marpa 网站,但我没有看到搜索结果中列出的来源。如何?

4

5 回答 5

91

GitHub的https://github.com/robots.txt文件允许索引 'master' 分支中的 blob,但限制所有其他分支。因此,如果您没有“主”分支,Google 不应该为您的页面编制索引。

如何删除“主”分支:

在您的克隆中创建一个新分支 - 我们称其为“主”并将其推送到 GitHub

git checkout -b main
git push -u origin main

在 GitHub 上更改默认分支(请参阅存储库的设置部分)或此处https://github.com/blog/421-pick-your-default-branch

然后从您的克隆和 GitHub 中删除主分支:

git branch -d master
git push origin :master

让其他可能已经分叉您的存储库的人也这样做。

或者,如果您想在经济上支持 GitHub,您可以私有化https://help.github.com/articles/making-a-public-repository-private

于 2013-04-13T11:50:39.390 回答
1

简单的答案:将您的仓库设为私有。

https://help.github.com/articles/making-a-public-repository-private

于 2013-04-09T14:57:35.350 回答
1

我可以想到目前有效的两种解决方案:

  1. 重命名您的存储库以开始tags 因此,例如,代替my-repo,将其重命名为tags-my-repo。或者:
  2. 创建一个新分支,但不要将其设为默认值。然后,在默认分支上,删除所有文件。这样做的副作用是 a) 使默认分支在保持公共状态的同时对爬虫隐藏之外毫无用处,以及 b) 迫使您将新分支用作主分支。您仍然可以根据需要重命名现在无用的默认分支和事实上的新分支。

为什么我认为该线程中的旧解决方案不再起作用: https ://github.com/robots.txt从那时起发生了变化。在 2013 年提出原始问题时,robots.txt 看起来像这样

User-agent: Googlebot
Allow: /*/*/tree/master
Allow: /*/*/blob/master
Disallow: /ekansa/Open-Context-Data
Disallow: /ekansa/opencontext-*
Disallow: /*/*/pulse
Disallow: /*/*/tree/*
...

而现在没有Allows 而只​​有Disallows:

User-agent: *

Disallow: /*/pulse
Disallow: /*/tree/
Disallow: /gist/
Disallow: /*/forks
...
Disallow: /*/branches
Disallow: /*/tags
...

如果您只是创建一个新分支,将其设为默认分支,然后删除旧分支,则 URLhttps://github.com/user-name/repo-name将仅显示您的新默认分支并在当前robots.txt.

我上面的解决方案是如何工作的:( 它们基于谷歌目前对 robots.txt的解释)

解决方案 1将使您的 repo 的 URL 匹配Disallow: /*/tags,从而将其排除在爬网之外。因此,事实上,您可以使用disallow表单路径中的任何单个单词为您的 repo 名称添加前缀,/*/word而无需以斜杠结尾(因此tree,由于以斜杠结尾,因此不起作用Disallow: /*/tree/)。

解决方案 2只是确保默认分支(即唯一已爬网的分支)不包含您不想爬网的内容。换句话说,它将所有相关的东西“移动”到一个分支,所以它们在 中https://github.com/user-name/repo-name/tree/branch-name,由于Disallow: /*/tree/.

免责声明

  • 显然,我的解决方案在很大程度上取决于robots.txt任何给定时间点的情况。
  • 这并不能保证它不会出现在搜索结果中。
  • 这应该很明显:由于您的存储库是公开的,因此已经知道您的用户名的人总是可以导航到您的内容。这个事实与手头的问题无关,但我认为我应该把它放在那里。
于 2022-01-06T02:46:25.850 回答
0

如果想坚持使用 master 分支,似乎没有办法使用私人回购(并向上销售你的 GitHub 帐户)或使用其他免费提供私人回购的服务,如Bitbucket

于 2013-04-06T08:29:25.290 回答
-6

短遮阳篷。是的,您可以使用 robots.txt。

如果您想阻止 Googlebot 抓取您网站上的内容,您有多种选择,包括使用 robots.txt 阻止访问您服务器上的文件和目录。

只有当您的网站包含您不希望搜索引擎索引的内容时,您才需要 robots.txt 文件。如果您希望搜索引擎为您网站中的所有内容编制索引,则不需要 robots.txt 文件(甚至不需要一个空文件)。

虽然 Google 不会抓取 robots.txt 阻止的网页内容或将其编入索引,但如果我们在网络上的其他网页上找到这些网址,我们仍可能会将其编入索引。因此,页面的 URL 以及其他公开可用的信息(例如指向该站点的链接中的锚文本或来自 Open Directory Project (www.dmoz.org) 的标题)可能会出现在 Google 搜索结果中。

资料来源:

http://support.google.com/webmasters/bin/answer.py?hl=en&answer=93708 http://support.google.com/webmasters/bin/answer.py?hl=en&answer=156449

于 2013-04-06T05:43:13.533 回答