Code前端首页关于Code前端联系我们

WordPress SEO:如何以标准方式编写Robots.txt?

terry 2年前 (2023-09-26) 阅读数 87 #网站优化

wordpress SEO:Robots.txt要如何规范地编写?

至于Robots.txt文件,我相信大多数WordPress站长都不认识里面的陌生。标准化的Robots.txt对于WordPress网站的SEO优化至关重要。该文件主要用于告诉搜索引擎抓取工具可以抓取网站上的哪些页面,哪些页面不可以抓取。

我们在如何为 WordPress 网站编写和优化 Robots.txt 中详细介绍了 Robots.txt。不过,今天的文章更详细,更容易让站长解读和更好地利用Robots。 txt 文件。

Robots.txt 是网站上最简单的文件,但也是最容易出错的。只要一个字符错误就会影响您的 SEO 性能并阻止搜索引擎索引您网站的有效内容。

Robots.txt 配置错误时常发生,即使对于经验丰富的 SEO 人员也是如此。

Robots.txt 文件是什么?

Robots.txt 文件用于告诉搜索引擎网站上的哪些页面可以被抓取,哪些页面不能被抓取。

首先,它列出了您想要从 Google 等搜索引擎中排除的所有内容。您还可以告诉某些搜索引擎(不是 Google)如何抓取您网站的内容。

重要提示

大多数搜索引擎都遵循规则,他们不会违反规则。换句话说,少数搜索引擎会忽略这些规则。

Google 不是那些猖獗的搜索引擎之一。它们遵守 robots.txt 文件中的声明。

我们只知道有些搜索引擎完全忽略它。

Robots.txt 文件是什么样的?

以下是Robots.txt文件的基本格式: 站点地图:[站点地图URL位置]用户代理:[rot标识符][指令1][指令2][指令...]用户代理:[其他机器人标识符] [指令 1 ][指令 2][指令 …]站点地图:[站点地图 URL 的位置]用户代理:[老鼠标识符]
[指令 1]
[指令 2]❀ …]用户代理:[另一个机器人标识符]
[指令 1]
[指令 2]
[指令 …]

  1. [指令 …]
    1. Sitema:p]❙
    2. 用户代理:[BOT-标识符]
    3. [指令 1]
    4. [指令 2]
    5. [指令 ...]
    6. Ukar 代理:[另一个机器人标识符]
    7. [指令 1]
    8. [指令2]
    9. [指令...]

    如果你以前从未见过这个,你可能会遇到困难。但实际上它的语法非常简单。简而言之,您可以通过在文件中指定用户代理和指令来设置搜索引擎蜘蛛的爬行规则。

    让我们详细讨论这两个组件。

    用户代理

    每个搜索引擎都有一个特定的用户代理。在 robots.txt 文件中,您可以为不同的用户代理定义抓取规则。总共有大约数百个用户代理(实际上,您只需要安装Spider Analyzer插件即可轻松找出哪些蜘蛛正在访问并爬行您的网站。),这里有一些对 SEO 有用的用户代理:

    • Google:GooglebotGoogle 图片: Googlebot-ImageBot Yahoo: 咕噜咕噜百度: Baispider
    • DuckDuckGo:DuckDuckBot

    。 robots.txt 中的所有用户代理均区分大小写。

    您还可以使用通配符 (*) 一次性为所有用户代理创建规则。

    例如,假设您想阻止 Google 以外的搜索引擎蜘蛛。可以按如下方式完成: 用户代理:*禁止:/用户代理:Googlebot允许:/用户代理:*
    禁止:/用户代理:Googlebot
    允许:/

    1. : *
    2. 禁用:/
    3. 用户代理:Googlebot
    4. 启用:/

    您需要是的,在机器人上,您可以在.tx文件中设置无限制。话虽如此,每次定义新的用户代理时,它都是独立的。换句话说,如果您按顺序为另一个用户代理创建规则,则第一个用户代理的规则将不会应用于第二个或第三个用户代理。

    例外的是,如果您为同一个用户代理创建多个规则,这些规则将一起执行。

    重要提示

    蜘蛛仅遵循显示确切详细的用户代理的说明。所以上面的robots.txt文件只排除了Google蜘蛛(以及其他类型的Google蜘蛛)以外的搜索引擎爬虫。 Google 蜘蛛会忽略一些不太具体的用户代理声明。

    指令

    指令是您希望用户代理遵循的规则。

    当前支持的指令

    以下是 Google 目前支持的指令及其用法。

    拒绝命令

    使用此命令可以指定搜索引擎不应访问具有特定路径的文件和页面。例如,如果您想阻止所有搜索引擎访问您的博客及其帖子,您的 robots.txt 文件将如下所示: User-agent: *Disallow: /blogUser-agent: *
    Disallow: / blog

    1. 用户代理:*
    2. 禁用:/blog

    提示。 如果您在disallow命令后没有提供详细路径,搜索引擎将忽略它。

    Allow 指令

    使用此命令指定搜索引擎必须访问特定路径上的文件和页面 - 即使是被拒绝指令阻止的路径。如果您阻止除特定帖子之外的所有帖子页面,则 robots.txt 应如下所示: User-agent: *Disallow: /blogAllow: /blog/allowed-postUser-agent: *
    Disallow: /blog
    允许:/ blog/allowed-post

    1. 用户代理:*
    2. 不允许:/blog
    3. 允许:/blog/allowed-post

    在此示例中,搜索引擎访问:‽ blog/allowed -post。但它无法访问:

    /blog/another-post/blog/yet-another-post/blog/download-me.pdf

    Google 和 Bing 支持此命令。

    提示。 与deny指令相同,如果allow后不声明路径,搜索引擎将忽略它。

    关于规则冲突的说明

    如果你不是很小心,disallow命令有时会与allow命令发生冲突。在下面的示例中,我们阻止了对此页面的访问 /blog/ /blog.User-agent: /U/blogser-: /blogser-: /blogser-: : *
    禁用:/blog/
    允许:/blogi

    1. 用户代理:*
    2. 禁用:/blog/♓示例:/blogi /blog/post-title/似乎同时被阻止和允许。那么是哪一个呢?

      对于 Google 和 Bing,它们遵循带有较长命令字符的命令,在本例中为禁止命令。 † 如果 dis 启用指令与启用指令长度相同,因此范围受到限制。较小的指令获胜,在本例中为启用指令。

      提示。 在这里您可以抓取/blog(不带斜杠作为后缀)。

      严格来说,它仅适用于Google和Bing搜索引擎。其他搜索引擎遵循第一个指令,在本例中为拒绝指令。

      站点地图命令

      使用此命令可以标记站点地图的位置。如果您不熟悉站点地图,它通常包含指向搜索引擎需要抓取和索引的所有页面的链接。

      以下是使用 sitemap 指令的 robots.txt 文件: Sitemap: https://www.domain.com/sitemap.xmlUser-agent: *Disallow: /blog/Allow: /blog/post-title/Sitemap :https://www.domain.com/sitemap.xml 用户代理:*
      禁用:/blog/
      允许:/blog/post-title/

      1. 站点地图:https://www.domain 。 com/sitemap.xml
      2. 用户代理:*
      3. 禁用:/blog/
      4. 允许:/blog/post-title/

      什么是重要的?如果您已将站点地图提交给 Google,则此步骤是可选的。然而,使用Bing等其他搜索引擎,你可以清楚地告诉他们你的站点地图在哪里,所以这一步仍然是必要的。

      请注意,无需为不同的代理重复站点地图指令。因此,最好的方法是在 robots.txt 文件的开头或结尾编写 sitemap 指令,例如如下所示: Sitemap: https://www.domain.com/sitemap.xml User-Agent: GooglebotDisallow: /blog /Allow : /blog /post-title/ 用户代理:BingbotDisallow: /services/Sitemap: https://www.domain.com/sitemap.xml
      用户代理:Googlebot
      禁止:/blog/ /blog/post-title/
      用户代理:Bingbot
      禁用:/services/

      1. 站点地图:https://www.domain.com/sitemap.xml❀U-❙bot 禁用:/blog/
      2. 启用:/blog /post-title/
      3. 用户代理:Bingbot
      4. 禁用:/services/指令和应用程序必须支持 A 和站点 Yahoo 搜索引擎支持它。

        提示。 您可以在 robots.txt 文件中使用多个站点地图指令。

        已弃用的命令

        以下是 Google 不再支持的一些命令 - 部分原因是由于技术原因从未支持它们。

        抓取延迟命令

        以前,您可以使用此命令以秒为单位设置抓取间隔。例如,如果您希望 Google Spider 每次抓取后等待 5 秒,则需要将 Crawl-delay 设置为 5: User-agent: GooglebotCrawl-delay: 5User-agent: Googlebot
        Crawl-delay: 5

        1. 用户代理:Googlebot
        2. 索引延迟:5

        Google 不再支持此命令,但 Bing 和 Yandex 仍然支持它。

        话虽如此,创建此指令时需要小心,特别是如果您有一个大型网站。如果将crawl-delay指令设置为5,则蜘蛛每天最多只能爬行17,280个URL。如果您有数百万个页面,则此抓取量非常小。另一方面,如果您有一个小型网站,它可以帮助您节省带宽。

        Noindex 指令

        Google 从未支持此指令。但直到最近,人们还认为谷歌拥有一些“处理不受支持和未发布的规则(例如 noindex)的代码”。因此,如果您想阻止 Google 为您博客的所有页面建立索引,可以使用以下命令: User-agent: Googlebot Noindex: /blog/User-agent: Googlebot
        Noindex: /blog/

        1. User -agent : Googlebot
        2. Noindex: /blog/

        但与此同时,2019年9月1日,Google明确表示不支持该命令。如果您想从搜索引擎中排除该页面,请使用 metarobots 标签或 x-robots HTTP 标头指令。

        Nofollow 命令

        Google 从未正式支持此命令。过去,它被用来阻止搜索引擎跟踪某个链接或特殊路径。例如,如果您想阻止 Google 跟踪所有博客链接,您可以指定命令如下: User-agent: GooglebotNofollow: /blog/User-agent: Googlebot
        Nofollow: /blog/

        1. User-代理:Googlebot
        2. Nofollow:/blog/

        Google 于 2019 年 9 月 1 日宣布不支持该指令。如果您想阻止搜索引擎跟踪页面上的所有链接,您应该使用meta-robots 标记或x-robots HTTP 标头指令。如果您想指定 Google 不应跟踪某个链接,您可以将参数 rel="nofollow" 添加到特定链接。

        您需要Robots.txt文件吗?

        有些网站并不关心是否有robots.txt文件,尤其是小网站。

        话虽如此,没有充分的理由不这样做。这可以让您对搜索引擎访问您网站的规则进行额外控制,并帮助您:

        • 避免双页抓取;
        • 在某个阶段保持网站的私密性(例如在构建网站时
        • 不为内部搜索页面建立索引;防止某些图像、视频和其他资源出现在 Google 结果中间。

        请注意,虽然 Google 通常不会索引 robots.txt 阻止的网站,但 并不保证使用 robots.txt 文件 100% 从搜索结果中排除

        Google 表示,如果内容是从其他网站链接的,则可能仍会出现在搜索结果中。

        如何查找您的 robots.txt 文件。如果您的网站已有 robots.txt 文件,您可以通过链接 domain.com/robots.txt 访问它如果您看到以下消息,则这是您的 robots.txt 文件:

        wordpress SEO:Robots.txt要如何规范地编写?

        wordpress SEO:Robots.txt要如何规范地编写?

        如何创建 robots.txt 文件?

        如果您没有 robots.txt 文件,创建一个非常简单。您只需要登录一个空白的.txt文件(笔记本文件),并根据需要填写说明即可。例如,如果您想避免被搜索引擎抓取您的目录/admin/,您可以这样设置: User-agent: *Disallow: /admin/User-agent: *: / admin/

        1. User-agent: *
        2. Disallow: /admin/

        您可以继续添加说明直到您满意为止,然后将文件另存为“robots.txt”。

        另外,你还可以使用robots.txt生成工具,比如Smart SEO Tool插件:

        wordpress SEO:Robots.txt要如何规范地编写?wordpress SEO:Robots.txt要如何规范地编写?

        使用此类工具的好处是更容易编辑和管理。当然,为了避免命令语法错误,建议使用搜索引擎站长工具(例如百度资源管理平台)检查任何工具生成的robots.txt。

        wordpress SEO:Robots.txt要如何规范地编写?

        这非常重要,因为一个小的语法错误可能会导致灾难性的后果。最好还是小心一点,不要犯大错误。

        robots.txt 文件放置在哪里?

        将robots.txt文件放置在对应域名/子域名的根目录下。例如,如果您的网站使用地址 domain.com,则可以通过 domain.com/robots.txt 访问 robots.txt 文件。

        如果要控制二级域名的访问限制,例如blog.domain.com,其robots.txt文件必须经过.com/blog域。 robots.txt

        只能访问。

        Robots最佳实践.txt

        为避免常见错误,请记住以下提示:

        每个新命令必须位于新行在每个新命令行。否则,搜索引擎会出错:

        错误示例:User-Agent: * Disallow: /directory/ Disallow: /other-directory/User-Agent: * Disallow: /directory/ Disallow: /other-目录

        1. 用户代理:* 禁止:/directory/ 禁止:/other 目录/

        标准示例:用户代理:*禁止:/directory/禁止:/other-directory *S 禁用:/Directory /
        禁用:/其他目录 /

        1. 用户代理:*
        2. 禁用:/目录 /D 目录 /disable

        通配符简化指令

        通配符 (*) 不仅可以用于将指令应用于所有用户代理,但您也可以在声明指令以匹配相同的 URL 时使用它们。例如,如果您想阻止搜索引擎访问您网站上的参数化产品类别 URL,您可以按如下方式列出它们: User-Agent: *Disable: /products/t-shirts?Disable: /products/hoodies?Disable: /产品/夹克?...用户代理:*
        不允许:/产品/T 恤?
        不允许:/产品/连帽衫?
        不允许:/产品/夹克... 用户代理:*

      5. 禁止:/products/T 恤衫? -代理:*
        禁止:/products/*?
        1. 用户代理:*D:/products /*?

        此示例阻止所有搜索引擎用户不会抓取 /product/ 目录中包含问号 (? ) 的所有链接。也就是说,所有带参数的产品链接都被屏蔽。

        使用美元符号 ($) 标记以特定字符结尾的 URL。

        在命令末尾添加“$”。例如,如果您阻止所有以 .pdf 结尾的链接,则可以将 robots.txt 设置为: User-agent: *Disallow: /*.pdf$User-agent: *
        Disallow: /* .pdf$

        1. User -agent: *
        2. Disallow: /*.pdf$

        在这个例子中,搜索引擎无法爬取任何以.pdf结尾的链接,也就是说搜索引擎无法爬取/文件中的.pdf,但搜索引擎可以抓取这个/file.pdf?id=68937586,因为它不以“.pdf”结尾。

        同一个用户代理只声明一次

        如果多次声明同一个用户代理,但Google不反对,仍然可以合并运行。例如,这个... 用户代理:GooglebotDisallow:/a/用户代理:GooglebotDisallow:/b/用户代理:Googlebot
        禁止:/a/用户代理:Googlebot
        禁止:/b /

        1. 用户代理:Googlebot
        2. 禁止:/a/
        3. 用户代理:Googlebot
        4. 禁止:/b❿i Google❿ 不捕获 拿走两个目录之一。

          话虽如此,最好只说一次,因为不会造成混乱。换句话说,通过保持简单明了,您将避免致命的错误。

          使用精确的指导方针以避免意外错误

          如果不使用精确的指导方针,很可能会导致SEO中的致命错误。假设您当前有一个在德语版本的 /de/ 子目录中运行的多语言网站。

          由于这还没有完成,您现在想要阻止搜索引擎抓取该目录的内容。

          下面的 robots.txt 文件可以阻止搜索引擎抓取该目录及其以下所有内容: User-agent: *Disallow: /deUser-agent: *
          Disallow: /de

          1. *
          2. Disallow : / de

          但它也阻止搜索引擎索引所有以/de开头的内容。

          例如:

          • /designer-dresses/
          • /shipping information.html
          • /depeche-mode/t-shirts/
          • /publicly-not-viewed。

          这种情况,解决办法也很简单,只需在末尾加一个斜杠即可:

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门