Prerender IO本地测试正常但Heroku生产环境无法正常渲染如何解决?
Prerender生产环境渲染异常排查配置项
- 校验django-seo-js后端配置:确认settings.py中SEO_JS_BACKEND的值为
seo_js.backends.prerender_io.PrerenderIO,避免误用本地测试时配置的本地服务后端、测试假后端 - 核对Prerender.io鉴权配置:确认SEO_JS_PRERENDER_TOKEN和Prerender.io后台分配的生产环境令牌完全一致,如果你没有使用默认的Prerender服务地址,确保SEO_JS_PRERENDER_URL配置为官方服务地址,不要残留本地测试时的
http://localhost:3000值 - 修复Heroku反向代理头配置:在settings.py中新增如下配置:
避免Prerender服务拿到的目标站点地址为Heroku内部应用地址,无法正确爬取你的自定义域名站点USE_X_FORWARDED_HOST = True SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') - 检查爬虫UA匹配规则:确认SEO_JS_USER_AGENTS配置列表中包含
Googlebot,如果有自定义UA列表不要漏加目标爬虫标识,非必要不要开启SEO_JS_PREPEND_HOST配置,避免路径拼接错误 - 清理Prerender侧缓存:如果Prerender后台显示请求成功但返回内容未渲染,大概率是首次爬取时站点未完全部署,Prerender缓存了未渲染的空页面,到Prerender后台清空对应路径的缓存后重新测试即可
- 放开站点访问限制:如果生产站点配置了HTTP基础认证、IP白名单、WAF防护规则,需要将Prerender.io的官方IP段加入白名单,避免Prerender爬取时被拦截,返回401/403错误页面
内容的提问来源于stack exchange,提问作者Pari Baker
相关产品推荐
相关产品推荐

