兄弟,你要搞WordPress多站点?听哥一句劝,先别急着敲代码,我当年第一次搭多站点的时候,愣是在一个破虚拟主机上硬扛了个十站网络,结果没撑到三个月,数据库直接卡成PPT,后台点个“添加站点”要等半分钟,用户发个文章都能超时,后来换方案、改配置、调插件,前前后后折腾了小半年,才算真正摸透了这玩意儿的脾气,今天就把这些血泪教训摊开了说,能帮你省时间省预算,少走三倍弯路。
第一个大坑:子目录还是子域名?别拍脑袋选
刚开始我图省事,直接用的子目录模式(domain.com/site1、domain.com/site2),好处是证书只配一个,DNS也不用折腾,但坏处很快来了:第一,SEO权重全集中在主域名上,分站想做独立关键词几乎没戏;第二,URL结构容易混乱,尤其是用了缓存插件之后,经常出现 /site1/wp-content/ 的静态资源被其他站点误加载;第三,最致命的是——用户权限和cookie冲突,一个用户在主站登录,跑到子站里cookie不认,得重新登录,客户直接骂娘。
后来我全面转向子域名模式(site1.domain.com、site2.domain.com),每个子站独立cookie、独立SEO,资源隔离也干净,但代价是多站点SSL证书管理麻烦,尤其是你给客户做SAAS平台,客户要用自己的域名,那证书得跟着跑,解决方案:用Let’s Encrypt + acme.sh做自动续签,配合Nginx的server_name通配符证书(*.domain.com),一个证书搞定所有子域名,注意:如果你有超过50个子站,建议上Cloudflare的证书或商业通配符,别省那几百块,到期证书报错能让你半夜爬起来修。
服务器配置:别拿共享主机当多站点跑
第二个坑更离谱,我当初图便宜,上了某知名虚拟主机商,号称“无限站点”,结果搭了8个子站之后,MySQL连接数直接爆表,虚拟主机的max_connections通常只有30~50,多站点每个请求都要查一堆表,并发一上来就“数据库连接太多”报错,更坑的是,虚拟主机不支持opcache和memcached,多站点的PHP加速全靠硬扛。

WordPress多站点搭建,别等崩了才后悔,这些坑我都替你踩过
推荐配置(预算敏感版):买台2核4G的VPS,装Rocky Linux 9 + Nginx + PHP 8.2 + MariaDB 10.11,别用Apache,尼玛多站点下.htaccess解析会拖慢所有子站,Nginx直接写map块来解析子域名,配置清爽,性能甩Apache两条街,如果预算再紧一点,阿里云轻量应用服务器(2核2G)也能跑20个子站,但必须装LiteSpeed Web Server(免费版),配合LiteSpeed Cache插件,静态资源缓存后扛个几百并发没问题。
数据库方面,MariaDB比MySQL快,尤其在多站点场景下,多表JOIN和索引优化更好,再加一个Redis做对象缓存,用redis-cache插件或w3 total cache的Redis模块,能将数据库查询量降低70%,多站点的瓶颈99%在数据库,而不是CPU。
插件筛选:这几样是保命级别的
多站点里插件有三类:能用的、别碰的、必须装的。
必须装的:
- MainWP(免费版足够)——远程管理所有子站的更新、备份、安全扫描,不用每个站单独登录,一个主面板就能批量更新插件和主题,省下的时间够你刷两季美剧。
- WP-Optimize或WP Rocket——缓存+数据库优化,多站点下缓存配置容易出bug,一定要在
wp-config.php里加上define('WP_CACHE', true);,然后强制所有子站共享同一套缓存目录(Nginx里配proxy_cache_path),否则每个子站单独缓存会撑爆磁盘。 - Wordfence——安全,多站点一旦被黑,所有子站全部沦陷,Wordfence的网络防火墙能统一规则,而且支持子站单独禁用登录保护(避免主站密码泄露影响所有子站)。
别碰的:
- 所有“多站点专用”的会员插件(如Paid Memberships Pro的多站点版),兼容性极烂,更新慢,容易和用户角色冲突。
- Elementor全家桶,Elementor在多站点下激活费翻倍,而且编辑器在子域模式下经常报错“Restricted Access”,别问我怎么知道的,我喂了半个月的客服工单。
推荐替代:
- 页面构建用Gutenberg + Kadence Blocks(免费够用),轻量,多站点下资源消耗极低。
- 会员功能用Ultimate Member(免费版),记得给每个子站单独设置角色权限,网络管理员和站点管理员要区分开。
长期维护:别等崩了才备份
多站点的备份是个大活儿,不能只靠插件,我的惨痛教训:某个客户子站的upload目录不小心被插件生成了一堆临时图片,撑到60GB,我傻乎乎全站整体备份,结果恢复时MariaDB的max_allowed_packet设太小,直接丢了一个月的文章数据。
正确做法:
-
用UpdraftPlus(免费版)+ 远程存储(S3或Backblaze B2),每个子站单独备份数据库,
wp-content/uploads也单独备份,主站只备份配置文件和一个共享数据库(比如用户表),注意:多站点下wp_users和wp_usermeta是全局表,别备份到子站里,否则恢复时会冲突。 -
用WP-CLI写个定时脚本,每天凌晨自动执行
wp db export+wp media export,然后压缩上传到对象存储,脚本里加个判断,如果磁盘使用率超过80%,自动删除7天前的备份,别心疼,旧备份多了也没用。 -
更新策略:所有子站先在一个测试站上跑新版本插件/主题/核心,测试一周没问题再推到全网,别信“自动更新”,我吃过亏——WordPress 6.4更新后某个老主题直接白屏,全校20个子站瘫痪,客户打电话骂到凌晨两点。永远保留一个“更新缓冲区”,用MainWP的“更新暂缓”功能,把所有子站手动排期。
省钱省时间的终极大法
如果你建了超过30个子站,别自己扛服务器,上Kinsta或Cloudways的托管方案,虽然贵一点,但人家的数据库集群、Redis、CDN都是内置的,你只管配域名和装插件,我目前带了150个子站,用Cloudways的“DigitalOcean Premium”方案($99/月),每核CPU支持100个子站,单站成本不到7毛钱,性能比我自己搭的VPS稳得多。
最后说一句:多站点不是万能药,如果你的站点之间业务逻辑完全不同(比如一个卖课程的、一个卖产品的),老老实实分站独立部署,别为了省管理费硬凑一起,多站点的核心优势是用户统一、后台统一、数据共享——用对了是神器,用错了是自杀工具,兄弟,保重。
发表评论