一、为什么Halo需要配置ads.txt?
(强化搜索引擎可见性)
Google政策强制要求
自2017年起,AdSense要求所有广告发布商必须提供
ads.txt
,否则可能导致:
🔴 广告填充率下降50%+
🔴 虚假流量难以申诉
Halo的特殊性
纯静态部署的Halo博客需手动配置(区别于WordPress等自动生成插件)
需注意:
✅ 文件必须位于根目录(https://域名/ads.txt
)
❌ 不能有重定向(HTTP 301/302会导致验证失败)
二、Halo添加ads.txt的方法
(推荐):OpenResty/Nginx强制绑定路径
▎适用场景
使用宝塔面板/1Panel OpenResty的用户
需要解决CDN缓存导致的文件更新延迟问题
▎配置示例(带防御性规则)
server {
listen 443 ssl;
server_name yourdomain.com;
# 只需要添加一下代码即可,强制绑定ads.txt到物理路径( bypass Halo路由)
location = /ads.txt {
alias /www/sites/pcjsb.com/static/ads.txt; //文件夹路径,建议放在网站文件夹路径下
expires 1h; # 适当缓存但不可过长
add_header Cache-Control "public";
access_log off;
# 防止路径穿越攻击
if ($request_uri ~* "\.\.") { return 403; }
}
# Halo原始配置(保留其他路由)
location / {
proxy_pass http://halo_backend;
}
}
验证是否生效(网页)
https://pcjsb.com/ads.txt //访问成功代表已经配置完成
三、高级排错指南
场景1:Nginx报403 Forbidden
检查Nginx反代中是否配置正确
场景2:Google提示"Found no ads.txt"
确保响应头无
X-Robots-Tag: noindex
检查网页中是否意外包含
<meta name="robots" content="none">