非常好!你选择了Rendertron/Prerender.io 云端预渲染方案,这是在中国大陆环境下解决 SPA 网站 Google SEO 问题的最优解,且无需改动你的前端代码。

方案一:Rendertron 本地/云端部署(推荐,完全免费)
1. Rendertron 简介
Rendertron 是 Google 官方开源的无头 Chrome 渲染服务,可以自己部署在本地服务器、云服务器或 Docker 容器。
你只需让 Nginx 检测到爬虫流量时,反代到 Rendertron 服务即可。
2. Rendertron 快速部署
A. 用 Docker 一键启动 Rendertron
docker run -d --name rendertron -p 3000:3000 ghcr.io/rendertron/rendertron
-
这会在本地 3000 端口启动 Rendertron 服务。
B. Nginx 配置(核心)
假设你的前端站点是 hk.newoceanmachines.top,Rendertron 服务在 localhost:3000:
server {
listen 80;
server_name hk.newoceanmachines.top;
root /path/to/your/dist;
index index.html;
location / {
set $is_bot 0;
if ($http_user_agent ~* "googlebot|bingbot|yandex|baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator") {
set $is_bot 1;
}
if ($args ~ "_escaped_fragment_") {
set $is_bot 1;
}
if ($http_user_agent ~ "Rendertron") {
set $is_bot 0;
}
if ($uri ~* "\\.(js|css|xml|less|png|jpg|jpeg|gif|pdf|doc|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent|ttf|woff|svg|eot)$") {
set $is_bot 0;
}
resolver 8.8.8.8;
if ($is_bot = 1) {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Original-User-Agent $http_user_agent;
proxy_set_header X-Forwarded-Host $host;
proxy_pass http://localhost:3000/render/https://$host$request_uri;
break;
}
try_files $uri $uri/ /index.html;
}
}
-
这样,只有爬虫流量会被 Rendertron 渲染,普通用户访问不受影响。
C. 重启 Nginx
sudo nginx -s reload
D. 验证
curl -A "googlebot" http://hk.newoceanmachines.top/
你应该能看到完整的 HTML 内容。

方案二:Prerender.io 云服务(有免费额度)
-
注册 Prerender.io,获取 Token。
-
按照前述 Nginx 配置,将爬虫流量反代到 Prerender.io 服务。
-
免费额度每月 2500 次,超出需付费。
方案对比
|
方案 |
费用 |
维护 |
适合场景 |
|---|---|---|---|
|
Rendertron |
免费 |
需自部署 |
服务器有 Docker/Node |
|
Prerender.io |
免费额度 |
云端 |
服务器能访问外网 |
结论
-
Rendertron 推荐自部署,完全免费,适合有服务器/云主机的团队。
-
Prerender.io 适合不想自己维护服务、流量不大的网站。
591

被折叠的 条评论
为什么被折叠?



