Halo添加AdSense ads.txt完整教程 - 5分钟完成认证配置

发布于 2025年04月25日

一、为什么Halo需要配置ads.txt?

(强化搜索引擎可见性)

  1. Google政策强制要求

    • 自2017年起,AdSense要求所有广告发布商必须提供ads.txt,否则可能导致:
      🔴 广告填充率下降50%+
      🔴 虚假流量难以申诉

  2. 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"

  • 使用Google Ads.txt Validator检测:

    • 确保响应头无X-Robots-Tag: noindex

    • 检查网页中是否意外包含<meta name="robots" content="none">