使用多个repos为github页面编写robots.txt的最佳方法是什么?

时间:2016-12-08 07:01:48

标签: jekyll sitemap github-pages robots.txt

我正在使用Github页面与Jekyll建立我的个人网站。我在username.github.io repo中有一个主站点,项目projectA repo中的一个站点,projectB repo中的项目B等等。我在CNAME repo下放了一个username.github.io文件,以便我的所有网站都在自定义域名(www.mydomain.com)下。我注意到,robots.txt文件指向每个仓库下的sitemap.txt文件,sitemap.txt只能包含每个单独仓库中页面的页面链接。所以,我有几个问题:

  1. 由于我的网站的结构为www.mydomain.comwww.mydomain.com/projectAwww.mydomain.com/projectB等与单个回购中的网页相对应,搜索引擎会识别我的所有网站页面即使sitemap.txt头部回购下的username.github.io只有单个回购中生成的页面链接?

  2. 在我的情况下编写robots.txt文件的最佳方法是什么?

  3. 谢谢! 齐

2 个答案:

答案 0 :(得分:2)

标准和免责声明

robots.txt中的

Sitemap:是非标准扩展according to Wikipedia。请记住:

  

Using the Sitemap protocol does not guarantee that web pages are included in search engines, but provides hints for web crawlers to do a better job of crawling your site.

维基百科还将allow:列为非标准扩展名。

robots.txt中的多个站点地图

You can specify more than one Sitemap file per robots.txt file.在robots.txt中指定多个站点地图时,格式如下:

Sitemap: http://www.example.com/sitemap-host1.xml

Sitemap: http://www.example.com/sitemap-host2.xml

站点地图的索引

还有一种类型的站点地图文件index of sitemap files

  

如果您有Sitemap索引文件,则可以包含该文件的位置。您无需列出索引文件中列出的每个站点地图。

<?xml version="1.0" encoding="UTF-8"?>

<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

   <sitemap>

      <loc>http://www.example.com/sitemap1.xml.gz</loc>

      <lastmod>2004-10-01T18:23:17+00:00</lastmod>

   </sitemap>

   <sitemap>

      <loc>http://www.example.com/sitemap2.xml.gz</loc>

      <lastmod>2005-01-01</lastmod>

   </sitemap>

</sitemapindex>

<lastmod>是可选的。

关于排除内容

  

使用Sitemaps协议,您可以让搜索引擎了解您要编入索引的内容。要告诉搜索引擎您不想编入索引的内容,请使用robots.txt文件或漫游器元标记。有关如何从搜索引擎中排除内容的详细信息,请参阅robotstxt.org。

如果您希望搜索引擎不对其进行索引,那么它应该位于robots.txt文件中(在用户页面存储库中):

User-agent: *
Disallow: /project_to_disallow/
Disallow: /projectname/page_to_disallow.html

或者,您可以使用robots tag

建议

User-agent: *
Disallow: /project_to_disallow/
Disallow: /projectname/page_to_disallow.html

Sitemap: http://www.example.com/sitemap.xml

Sitemap: http://www.example.com/projectA/sitemap.xml

Sitemap: http://www.example.com/projectB/sitemap.xml

或者,如果您使用的是站点地图索引文件

User-agent: *
Disallow: /project_to_disallow/
Disallow: /projectname/page_to_disallow.html

Sitemap: http://www.example.com/siteindex.xml

http://www.example.com/siteindex.xml看起来像

<?xml version="1.0" encoding="UTF-8"?>

<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

   <sitemap>

      <loc>http://www.example.com/sitemap.xml</loc>

   </sitemap>

   <sitemap>

      <loc>http://www.example.com/projectA/sitemap.xml</loc>

   </sitemap>

   <sitemap>

      <loc>http://www.example.com/projectB/sitemap.xml</loc>

   </sitemap>

</sitemapindex>

有关如何使用GitHub页面设置robots.txt的信息,请参阅我的回答here

答案 1 :(得分:1)

  

放在哪里简答:在你的顶级目录中   网络服务器。   来源:http://www.robotstxt.org/robotstxt.html

您还可以在google documentation中读取不会抓取www.mydomain.com/folder/robots.txt网址。

基本的www.mydomain.com/robots.txt可以是:

User-agent: *

这将通过以下链接指示抓取工具通过所有www.mydomain.com文件层次结构。

如果没有www.mydomain.com的页面引用您的项目页面,您可以添加:

User-agent: *
allow: /ProjectA
allow: /projectB