当前位置: WordPress教程 > seo > 阅读正文

修改wordpress的robots.txt

2021.4.8.   952 次   1294字

robots.txt是什么?

robots.txt是搜索引擎的脚本蜘蛛进站第一个获取的信息

robots也叫爬虫协议, 这是一种国际上约定俗成的协议, 用它来限制爬取信息, 也能用它来协助爬取, 但这并不是强制规定, 也就是说并非所有的搜索蜘蛛都遵守, 不过大部分都遵守.

如何修改robots.txt?

首先, 在wordpress中, 这个文件是动态生成的, 你无法在ftp主机中找到它, 但它确实存在

它的位置在 xxxx.com/robots.txt , 它仅存在于顶级域名中, 如果是wordpress多站点, 子目录站点并不会单独存在一份robots.txt

为什么要修改robots?

wordpress默认的robots.txt的内容如下

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

Allow: /wp-admin/admin-ajax.php

Sitemap: https://www.52dixiaowo.com/wp-sitemap.xml

它原有的内容, 表示不允许wp-admin, 不过还是太少了, 我们可以自定义增加一些不允许爬取的目录

如何修改robots?

在早期版本, 可以通过直接上传一个robots.txt以覆盖自带的robots.txt, 但从wordpress5.7版本开始, 就不可以了

它是由一个函数生成, 且它不允许被自定义文件覆盖

这个函数是在 “根目录/wp-include/functions.php”文件中, 它的名称叫 do_robots(), 我们修改此函数就可以了

 function do_robots() {
	header( 'Content-Type: text/plain; charset=utf-8' );

	/**
	 * Fires when displaying the robots.txt file.
	 *
	 * @since 2.1.0
	 */
	do_action( 'do_robotstxt' );

	$output = "User-agent: *\n";
	$public = get_option( 'blog_public' );

	$site_url = parse_url( site_url() );
	$path     = ( ! empty( $site_url['path'] ) ) ? $site_url['path'] : '';
	$output  .= "Disallow: $path/wp-admin/\n";
	$output  .= "Disallow: $path/wp-includes/\n";
	$output  .= "Allow: $path/wp-admin/admin-ajax.php\n";

	/**
	 * Filters the robots.txt output.
	 *
	 * @since 3.0.0
	 *
	 * @param string $output The robots.txt output.
	 * @param bool   $public Whether the site is considered "public".
	 */
	echo apply_filters( 'robots_txt', $output, $public );
}

注意不要覆盖wp-content, 否则无法抓取图片, 而wp-includes则一般没有任何静态资源

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群