导读:本期聚焦于小伙伴创作的《网站页面内容禁止被抓取的多种方法详解:从robots.txt到访问权限控制》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《网站页面内容禁止被抓取的多种方法详解:从robots.txt到访问权限控制》有用,将其分享出去将是对创作者最好的鼓励。

如何让网站页面内容不被抓取?不让网站页面内容不被抓取的技巧

在网站运营过程中,有时候我们需要限制部分页面被搜索引擎、爬虫程序抓取,比如后台管理页面、内部测试页面、包含敏感信息的专属页面等。本文将介绍多种实现页面不被抓取的方法,涵盖不同场景下的使用技巧。

一、使用robots.txt文件限制抓取

robots.txt是网站根目录下的一个纯文本文件,用于告诉搜索引擎爬虫哪些页面可以抓取,哪些不可以抓取,是最基础也最常用的抓取限制方式。

robots.txt的规则说明:

  • User-agent:指定生效的爬虫类型,*表示所有爬虫

  • Disallow:指定禁止抓取的路径,/表示禁止抓取全站,/admin/表示禁止抓取admin目录下的所有内容

  • Allow:指定允许抓取的路径,优先级高于Disallow

以下是禁止所有爬虫抓取/admin/目录和/private.html页面的robots.txt示例:

User-agent: *
Disallow: /admin/
Disallow: /private.html

需要注意的是,robots.txt是“君子协议”,遵守规则的搜索引擎会按照要求执行,但恶意爬虫可能不会遵守该规则,因此该方法仅能限制合规爬虫的抓取。

二、添加meta标签禁止索引和跟踪

除了robots.txt,我们还可以在页面的头部添加<meta>标签,直接告诉搜索引擎不要索引当前页面,也不要跟踪页面内的链接。

常用的meta标签属性说明:

  • name="robots":指定生效的爬虫类型,content中的noindex表示不索引页面,nofollow表示不跟踪页面内的链接

  • name="googlebot":专门针对Google爬虫的规则,优先级高于通用的robots规则

以下是禁止所有搜索引擎索引当前页面且不跟踪页面内链接的meta标签示例:

<head>
  <meta name="robots" content="noindex, nofollow">
</head>

如果只需要禁止索引但允许跟踪链接,可以将content改为"noindex, follow";如果只需要禁止跟踪链接但允许索引,可以改为"index, nofollow"。

三、通过HTTP响应头X-Robots-Tag控制抓取

如果页面是动态生成的,或者你无法直接修改页面的HTML内容,可以通过服务器配置添加X-Robots-Tag响应头,实现和meta标签相同的效果,该方式的优先级高于meta标签。

以Nginx服务器为例,禁止所有爬虫索引/private/目录下的页面的配置如下:

location /private/ {
  add_header X-Robots-Tag "noindex, nofollow";
}

以Apache服务器为例,在.htaccess文件中添加如下配置:

<FilesMatch "\.(html|php)$">
  Header set X-Robots-Tag "noindex, nofollow"
</FilesMatch>

该方法同样可以被合规爬虫识别,但是恶意爬虫可能忽略该响应头。

四、设置访问权限限制非授权抓取

对于包含敏感信息、仅对特定用户开放的页面,最可靠的方式是设置访问权限,只有验证通过的用户才能访问内容,即使爬虫访问也会返回401、403等状态码,无法获取页面内容。

常见的权限控制方式包括:

  • HTTP基础认证:通过服务器配置要求输入用户名和密码才能访问页面

  • Session/Cookie验证:用户登录后服务器下发凭证,后续请求携带凭证才能访问

  • Token验证:接口类页面要求请求携带合法的Token才能返回内容

以下是PHP实现简单的Session验证,禁止未登录用户访问页面的示例:

<?php
session_start();
// 未登录则跳转到登录页,返回403状态码
if (!isset($_SESSION['user_id'])) {
  http_response_code(403);
  header('Location: https://www.ipipp.com/login.php');
  exit;
}
?>
<!DOCTYPE html>
<html>
<head>
  <title>内部专属页面</title>
</head>
<body>
  <p>这是仅登录用户可见的内容</p>
</body>
</html>

五、不同方法的适用场景对比

我们可以根据页面的实际需求选择合适的方法,以下是各方法的对比:

方法适用场景优点缺点
robots.txt批量禁止抓取公开目录/页面,对合规爬虫生效配置简单,无需修改页面代码恶意爬虫不遵守,无法保护敏感内容
meta标签单个页面禁止抓取,无需服务器配置灵活控制单个页面规则,优先级高于robots.txt需要修改每个页面的HTML,恶意爬虫可能忽略
X-Robots-Tag响应头动态页面、无法修改HTML的场景无需修改页面代码,服务器统一配置需要服务器配置权限,恶意爬虫可能忽略
访问权限控制敏感页面、内部专属页面可靠性高,任何未授权请求都无法获取内容配置相对复杂,需要开发权限验证逻辑

六、注意事项

1. 如果页面已经被搜索引擎收录,添加禁止抓取规则后,还需要通过搜索引擎的站长平台提交删除收录请求,才能彻底从搜索结果中移除。

2. 不要对网站首页、核心内容页误加禁止抓取规则,否则会导致网站在搜索引擎中无法被正常展示,影响流量。

3. 对于包含用户隐私、内部数据的页面,建议优先使用访问权限控制,结合robots.txt、meta标签等方式做多层防护,避免内容泄露。

网站抓取限制 禁止搜索引擎抓取 robots.txt meta标签 访问权限控制

免责声明:已尽一切努力确保本网站所含信息的准确性。网站部分内容来源于网络或由用户自行发表,内容观点不代表本站立场。本站是个人网站免费分享,内容仅供个人学习、研究或参考使用,如内容中引用了第三方作品,其版权归原作者所有。若内容触犯了您的权益,请联系我们进行处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。前端、网络、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握网站开发与运维所需的核心技术栈。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端逻辑,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。