干了十年WordPress,帮客户搬了上百个站,每次听到有人问“导入工具怎么选”,我就想起当年那个通宵修数据库的夜晚——客户把一堆乱七八糟的CSV丢给我,标题里带着BOM头,图片链接全是相对路径,分类层级十几层,导入一半直接白屏,那会儿真想摔键盘,嘿,闭着眼都能把数据整得明明白白,今天就把这些年踩过的坑、试过的药全都倒出来,你照着做,少花冤枉钱,少熬通宵。
第一个坑:导入超时,白屏让你怀疑人生
多数人第一次用WordPress自带导入工具(就是后台“工具→导入”里那个),传个几万条文章,跑着跑着就卡死了,症状:浏览器转圈,服务器返回500,或者干脆什么提示都没有,原因很简单——PHP执行时间太短,内存不够,默认max_execution_time=30秒,memory_limit=128M,来个一万条带缩略图的数据,直接干崩。
解决方案(亲测有效):
别指望改个代码就能搞定,直接动服务器配置,找到php.ini(找不到?用宝塔的就进“软件管理→PHP→设置”),把下面几项改掉:
- max_execution_time = 600
- memory_limit = 512M
- post_max_size = 128M
- upload_max_filesize = 64M
改完重启PHP服务,如果还是超时,那就用WP-CLI,命令很简单:wp import yourfile.xml --authors=create,WP-CLI没有时间限制,跑几万条数据跟玩似的,没装WP-CLI?那你赶紧装上,这玩意儿省的时间够你刷两部剧了。

WordPress导入工具?我踩过的坑比你见过的插件还多!
第二个坑:编码乱码,标题变成一堆问号
去年帮一个外贸网站迁移,CSV文件是从老系统导出的,编码是GBK,WordPress默认UTF-8,一导入所有中文标题全变成“????”,我当时没注意,结果客户骂了三天,这坑太经典了,新手必中。
解决方案:
任何数据文件,必须转成UTF-8无BOM格式,推荐用Notepad++(免费),打开CSV,点“编码→转为UTF-8无BOM编码”,保存,或者用VS Code,右下角点击编码选择“UTF-8”,千万别选“UTF-8 with BOM”,WordPress不识别BOM头,导入时会在标题前面加个看不见的字符,后面改起来烦死你,CSV里的换行符也要注意,最好用Unix格式(LF),别用Windows的CRLF。
第三个坑:图片丢失,几千张图一个都没传上来
用自带导入工具导入WXR文件(WordPress eXtended RSS),图片附件默认是包含在XML里的,但如果你从别的CMS导出的是文章带图片URL,导入后图片链接全是远程地址,点开404,更坑的是,有些导入插件会把图片链接直接当成文章内容的一部分,不会自动下载。
解决方案(实测最稳):
推荐两个免费方案:
- 用“Auto Upload Images”插件(免费,活跃维护),导入文章后,插件会自动检测内容里的外部图片URL,下载到本地媒体库并替换链接,注意:先导入文章,等全部导入完成后再启用这个插件,它会跑一个后台批量任务,缺点:图片多时容易超时,建议分批跑,一次500篇文章。
- 如果数据量巨大(十万级),不用插件,直接写个脚本,用WP-Cron或者手动执行一个PHP文件,用
media_sideload_image()函数下载,网上有现成代码,搜“wordpress import images from url script”,半小时搞定。
长期维护建议:
导入后一定要检查图片有没有缺失,我习惯用“Media Library”插件的“检测未使用的图片”功能,或者手动搜一下文章里的图片链接,如果发现有些图是外部引用(比如原站的防盗链),那就麻烦点——得先下载好图片,再用“Replace Image”插件批量替换。
第四个坑:分类层级乱掉,父子关系全变平行
有些导入工具对分类支持很差,特别是自定义分类法(比如产品的品牌、颜色),我试过一个免费插件,导入后所有子分类都变成了顶级分类,而且slug被截断,导致URL结构全乱,客户SEO排名直接掉了三分之一。
解决方案:
别用WordPress自带的分类导入,它只支持一级分类,推荐用 WP All Import,虽然是付费插件($99起),但确实物有所值,它支持任意层级、任意分类法,还能自定义映射规则,如果预算紧张,可以试试免费的 WP Import Export Lite,它支持层级导入,但需要手动设置父级ID,对新手不太友好。
我的省钱技巧:
如果数据里分类列的格式是“父分类>子分类>孙分类”,直接用Excel分列成多列,然后导入后用SQL更新父级ID,具体操作:先导入顶级分类,再导入子分类时,在CSV里加一列“parent_id”,从数据库查出来填上,虽然麻烦点,但零成本,命令参考:
UPDATE wp_terms SET parent = (SELECT term_id FROM wp_terms WHERE slug = 'parent-slug') WHERE slug = 'child-slug';
第五个坑:导入后网站变慢,数据库多了几千条临时数据
这是最容易被忽略的,导入过程中,WordPress会生成很多临时选项(比如导入进度记录)、修订版本、自动草稿,如果你一次导入几万条文章,这些垃圾数据能让你的数据库膨胀50%以上,有次客户找我优化,一看数据库表1GB,里面全是修订版,页面加载慢得像蜗牛。
解决方案:
导入完成后立刻清理,推荐插件 WP-Optimize,免费版就能清理修订版本、自动草稿、垃圾评论,或者直接跑SQL:
DELETE FROM wp_posts WHERE post_type = 'revision'; DELETE FROM wp_postmeta WHERE meta_key LIKE '%_edit_lock%' OR meta_key LIKE '%_edit_last%';
别忘了清空缓存(如果你用了Redis或对象缓存,重启一下),导入完成后建议重建一下索引,用 “Index WP MySQL For Speed” 插件,免费,几秒钟就能优化数据库查询速度。
推荐配置与插件清单(闭眼抄作业)
如果你不想折腾,直接按这个来,至少省80%的力气:
| 场景 | 推荐工具 | 价格 | 备注 |
|---|---|---|---|
| 一次性迁移小站(<1万条) | WordPress自带导入工具 + WP CLI | 免费 | 注意改php.ini |
| 批量导入CSV(任何规模) | WP All Import 或免费版 WP Import Export Lite | 付费/免费 | 分类层级选前者 |
| 图片远程下载 | Auto Upload Images | 免费 | 导入后启用 |
| 数据清理 | WP-Optimize | 免费 | 导入后必须跑一次 |
| 编码转换 | Notepad++ 或 VS Code | 免费 | 必装 |
| 大文件处理 | Big File Uploads 插件 | 免费 | 解决上传限制 |
长期维护建议:别以为导入完就结束了
- 备份导入前后的数据库,我用 UpdraftPlus 免费版,全量备份到网盘,万一导入翻车,一分钟恢复。
- 检查自定义字段和元数据,有些导入工具会把字段名搞乱,比如把“价格”字段导入成“_price”而不是“price”,写个SQL查一下:
SELECT meta_key FROM wp_postmeta GROUP BY meta_key;,看到不对的就批量更新。 - 配置301重定向,如果从老站迁移过来,URL结构变了,必须用 Redirection 插件设置新旧URL映射,否则流量全丢了。
- 定期优化,每月跑一次WP-Optimize,清理修订、瞬态、垃圾数据,数据库大了,后台操作会越来越卡。
最后一句实话:WordPress导入这事儿,三分技术七分细心,别信那些“一键导入”的广告,你永远不知道源数据里藏着什么奇葩格式,按我上面说的来,哪怕手动改几个字段,也比出了问题再修强一百倍,省下的时间,陪陪家人,比啥都值。
还没有评论,来说两句吧...