问题描述

什么是 robots.txt 的”best” 设置?我正在使用以下永久链接结构/%category%/%postname%/

我的 robots.txt 目前看起来像这样 (从很久以前的某个地方复制):

User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /trackback
Disallow: /comments
Disallow: /category/*/*
Disallow: */trackback
Disallow: */comments
  1. 我希望我的意见被索引。所以我可以删除这个

  2. 由于我的永久链接结构,我是否想禁止索引类别?

  3. 文章可以包含多个标签,并且有多个类别。这可能会导致像 Google 这样的搜索提供商重复。我应该如何解决这个问题?

你会改变别的吗

最佳解决办法

FWIW,回溯 URL 问题重定向并且没有内容,所以他们不会被索引。

并且有没有回答这个问题的风险,RE 你的观点 2 和 3:

http://googlewebmastercentral.blogspot.com/2008/09/demystifying-duplicate-content-penalty.html

否则,我认为你正在浪费你的时间担心 dup 内容,而您的 robots.txt 应该限于:

User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-content/cache

次佳解决办法

自从这个问题以来,很多时间都被发布。此后事情发生了很大变化。关于禁止抓取程序访问 wp-content/themeswp-content/pluginswp-content/cachewp-includes 以及包含站点所需的 CSS 或 js 文件的任何其他目录的典型建议不再有效。

例如,让我们来谈谈 Google 。 Googlebot 正在呈现没有 CSS 而没有 js 的网站,但实际上并没有。实际上,Googlebot 会提供完整的文档,并检查脚本的响应性,数量,位置和大小等等。所以 Google 不喜欢,如果您不允许 Googlebot 访问 CSS 和 js 文件。这意味着您不应该禁止 wp-content/themeswp-content/pluginswp-content/cachewp-includes,因为所有这些文件夹都可以提供 CSS 和 js 文件。

从我的角度来看,实际上最好的 robots.txt 文件是由 WordPress 默认创建的文件 (the bellow robots.txt is the default since WP 4.0):

User-agent: *
Disallow: /wp-admin/

如果您有一个 cgi-bin 文件夹,最好不要使用 cgi-bin 文件夹:

User-agent: *
Disallow: /wp-admin/
Disallow: /cgi-bin/

如果您使用站点 Map,最好在 robots.txt 中添加一个站点 Map 引用 (您仍然需要手动将站点 Map 提交给 Google 和 Bing 网站管理员工具,但该参考对其他抓取工具来说可能会有用):

User-agent: *
Disallow: /wp-admin/
Disallow: /cgi-bin/

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

一般来说具体的网站可能不允许在每个具体情况下应该研究的其他文件夹和文件。对于例外,您可能需要,或者您可能不想使用特定的插件文件夹:

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-content/plugins/plugin-folder/

要修改 robots.txt,请使用 robots_txt 过滤器 (使用真实的 robots.txt 文件将使 WordPress 不再能够处理 robots.txt) 。例如:

add_filter( 'robots_txt', function( $output ) {

    $output .= "Disallow: /cgi-bin/n";
    $output .= "Disallow: /wp-content/plugins/plugin-folder-i-want-to-block/n";
    $output .= "nSitemap: " . site_url( 'sitemap.xml' ) . "n";

    return $output;

});

第三种解决办法

你看过 Yoast 的 WordPress SEO plugin 吗?它肯定处理 robots.txt 问题。

第四种办法

有一点帮助,这是现在的矿山 (没有太多的不同,每个人,显然)

User-agent: *
    Allow: /

Disallow: /wp-content/
    Disallow: /wp-admin/
    Disallow: /cat/
    Disallow: /key/
    Disallow: /*?
    Disallow: /*.js$
    Disallow: /*.inc$
    Disallow: /*.css$
    Disallow: /cgi-bin
    Disallow: /wp-admin
    Disallow: /wp-includes
    Disallow: /wp-content/plugins
    Disallow: /wp-content/cache
    Disallow: /wp-content/themes

User-agent: Mediapartners-Google
    Allow: /

User-agent: Adsbot-Google
    Allow: /

User-agent: Googlebot-Image
    Allow: /

User-agent: Googlebot-Mobile
    Allow: /

#User-agent: ia_archiver-web.archive.org
    #Disallow: /

Sitemap: YOURSITENAME.HERE

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。