There is no problem not worth solving, and no technology not worth learning!

EdgeOne Traffic Cost Control Decision: Should I Move the English Site from /en/ to en.shuijingwanwq.com?

[图4:EdgeOne 按 URL path 开始于 /en/ 筛选后的流量截图]

WordPress CDN & Global Acceleration Practice

图16:浏览器访问正常,网站全球访问成功

(1) Complete migration combat record from Alibaba Cloud DNS to Cloudflare global acceleration

这一套规则遵循 Cloudflare + WordPress 标准 CDN 架构:

(2) CloudFlare SSL/TLS and Cache Rules configuration combat

图12:评论实时生效

(3) WordPress + CloudFlare Recommended Configuration with Cache Rules Practical Optimization (SSL/API/Cached Closed Loop Full Record)

CDN上线后的boce数据

(4) Performance comparison before and after CDN launch: WordPress cache misjudgment correction and real acceleration effect verification

【图9:boce 测试 cn-test,灰云直连阿里云 ECS,平均响应 0.478s】

(5) Is Cloudflare Free Suitable for a Mainland China WordPress Site? A Real-World Test from Cache HIT to Gray-Cloud Direct Aliyun ECS

[Figure 1: Tencent Cloud EdgeOne product page, selecting “Start Now”]

(6) Migrating a WordPress Main Site from Cloudflare Free to Tencent Cloud EdgeOne: A Real-World CDN Acceleration Setup for China and Overseas Traffic

【图2:EdgeOne 上线后 boce 第二次测试,平均响应 0.354s,不可访问 2 个】

(7) How Much Faster Is EdgeOne After Migrating from Cloudflare Free? A Three-Stage WordPress CDN Test with boce and WebPageTest

[图2,EdgeOne 昨日 L7 访问流量,显示 6.56 GB]

(8) EdgeOne Traffic Cost Troubleshooting: Moving WordPress Uploads Static Assets to a Cloudflare Media Subdomain

【图3,EdgeOne 301 请求的 URL Path 排行,集中在 /wp-content/uploads/ 图片路径】

(9) Troubleshooting Persistent EdgeOne 301 Requests After Moving WordPress Images to a Media Subdomain

图4:Cloudflare Edge TTL 配置、Cloudflare Browser TTL 配置

(10) Cloudflare Cache Rules Adjustment After Migrating WordPress Media to a CDN

[图4:EdgeOne 按 URL path 开始于 /en/ 筛选后的流量截图]

(11) EdgeOne Traffic Cost Control Decision: Should I Move the English Site from /en/ to en.shuijingwanwq.com?

Over the past few days, I have been investigating the traffic consumption issue after connecting my main WordPress site to Tencent Cloud EdgeOne.

In the previous article, I completed one important adjustment: I moved the WordPress /wp-content/uploads/ media library resources to media.shuijingwanwq.com, and routed that media subdomain through Cloudflare instead of EdgeOne.

Previous article:

This article is not about making another immediate change. Instead, it records a new cost-control decision: whether it is worth moving the English site from www.shuijingwanwq.com/en/ to en.shuijingwanwq.com/, and routing the English subdomain through Cloudflare to further reduce EdgeOne traffic consumption.

[Figure 1: Traffic cost investigation in the previous EdgeOne article]
[Figure 1: Traffic cost investigation in the previous EdgeOne article]

1. Current architecture: uploads have been moved to Cloudflare, but www still handles many requests

First, it is important to clarify the current architecture.

The previous article did not move “all static resources to Cloudflare”. It only moved the WordPress uploads media library resources to the media subdomain.

A more accurate view of the current structure is:

Plaintext
www.shuijingwanwq.com

    EdgeOne

WordPress 主站请求
包括:
- 首页
- 文章页
- 分类页
- 标签页
- /en/ 英文路径页面
- sitemap
- feed
- WordPress 主题、插件、wp-includes 下的 CSS / JS
- 其他非 /wp-content/uploads/ 的资源与动态请求


media.shuijingwanwq.com

    Cloudflare

WordPress uploads 媒体库资源
仅包括:
- /wp-content/uploads/ 下的图片
- /wp-content/uploads/ 下的附件
- ZIP / PDF / PNG / JPG / WebP 等上传文件

In other words, media.shuijingwanwq.com does not handle all static resources of the WordPress site. It only handles the WordPress media library uploads directory.

This distinction matters.

After moving uploads away, EdgeOne indeed no longer shows a large amount of image and attachment traffic related to /wp-content/uploads/. However, www.shuijingwanwq.com still receives many requests for page HTML, theme CSS, plugin JS, wp-includes resources, sitemaps, feeds, category pages, tag pages, English pages, and other content.

So the question has changed from:

Plaintext
如何把 /wp-content/uploads/ 图片和附件从 EdgeOne 拆出去

to:

Plaintext
在 uploads 已经拆出去之后,是否还需要继续把 /en/ 英文页面流量从 EdgeOne 拆出去

2. Current problem: today’s EdgeOne traffic trend is still too high

This morning, I continued checking EdgeOne analytics.

By around 9 a.m., today’s L7 traffic was roughly:

Plaintext
1.4 GB

Using that pace for a rough estimate:

Plaintext
1.4 GB ÷ 9 小时 × 24 小时 ≈ 3.7 GB/天

Calculated over 30 days:

Plaintext
3.7 GB × 30 ≈ 111 GB/月

But my goal is to keep EdgeOne monthly traffic under:

Plaintext
50 GB/月以内

Converted to a daily budget, that is only about:

Plaintext
50 GB ÷ 30 ≈ 1.67 GB/天

In other words, the current trend is more than twice the target level.

This means that although moving uploads to Cloudflare has already reduced part of the EdgeOne traffic, the 50 GB monthly EdgeOne traffic target is still tight if the current architecture remains unchanged.

[Figure 2: EdgeOne L7 traffic screenshot showing about 1.4 GB today]
[Figure 2: EdgeOne L7 traffic screenshot showing about 1.4 GB today]

3. Page caching is not the main issue right now

At first, I suspected that WordPress page HTML might not be cached properly by EdgeOne.

That was because the MISS ratio looked relatively high in EdgeOne’s cache status statistics.

Later, however, I tested with a Firefox private window and curl GET requests, and confirmed that page caching was actually working.

Test article page:

Plaintext
https://www.shuijingwanwq.com/2026/05/29/14108/

第 1 次:eo-cache-status: MISS
第 2 次:eo-cache-status: HIT
第 3 次:eo-cache-status: HIT

Test English homepage:

Plaintext
https://www.shuijingwanwq.com/en/

第 1 次:eo-cache-status: MISS
第 2 次:eo-cache-status: HIT
第 3 次:eo-cache-status: HIT

This shows that EdgeOne can cache WordPress page HTML.

The high MISS ratio in the dashboard is more likely caused by:

Plaintext
1. 历史文章、分类页、标签页很多,URL 非常分散;
2. Bot 会抓取大量不同页面,每个 URL 第一次访问都是 MISS;
3. EdgeOne 是边缘节点缓存,不同节点之间不是完全共享同一份缓存;
4. 页面 HTML 缓存 TTL 之前只有 10 分钟,过期后再次访问仍然会重新 MISS;
5. uploads 图片流量已经拆走后,EdgeOne 剩下的主要就是页面和非 uploads 资源,MISS 占比自然会更显眼。

So it does make sense to extend the HTML page cache TTL, for example from 10 minutes to 1 hour. But this kind of optimization mainly reduces:

Plaintext
EdgeOne → 源站

That means fewer origin requests, lower origin pressure, and faster page responses.

It does not necessarily reduce:

Plaintext
访问者 / Bot → EdgeOne

this part of L7 response traffic.

As long as a visitor or crawler downloads a page from EdgeOne, EdgeOne still generates response traffic. Whether the page is a HIT or MISS mainly affects whether EdgeOne needs to fetch from the origin, not whether EdgeOne sends downstream traffic.

Therefore, if the goal is to control EdgeOne plan traffic, improving the cache hit ratio alone cannot fully solve the problem.

4. Bot traffic exists, but blocking one User-Agent is not enough

The User-Agent ranking clearly shows a meaningful amount of bot traffic.

One obvious example is:

Plaintext
meta-externalagent/1.1
256.99 MB,占 18.4%

There are also:

Plaintext
curl/8.7.1
bingbot
SemrushBot
Baiduspider
Amazonbot
DotBot

Some of these User-Agents are search engine crawlers, some are SEO tool crawlers, and some may be AI or scraping-related crawlers.

[Figure 3: EdgeOne User-Agent ranking screenshot]
[Figure 3: EdgeOne User-Agent ranking screenshot]

However, blocking only curl/8.7.1 would not help much. It accounted for roughly 5% of the traffic this morning. Even if it were fully blocked, it would still be difficult to bring the estimated 3.7 GB/day down to the target of 1.67 GB/day.

Bot handling should be a long-term strategy, not the only solution for the current problem.

A more reasonable bot strategy should be tiered:

Plaintext
保留:
Googlebot、Bingbot、Baiduspider

观察:
meta-externalagent

限制或拦截:
SemrushBot、DotBot、Amazonbot、GPTBot、ClaudeBot、curl、python-requests、Go-http-client、AhrefsBot、MJ12bot、PetalBot、Bytespider

But these rules may affect search indexing, social previews, and legitimate traffic. They also carry a risk of false positives. Without a complete strategy, large-scale blocking is not suitable yet.

So I continued looking for a more controllable traffic split.

5. Key finding: the /en/ English path accounts for about one-third of EdgeOne traffic

To decide whether the English site is worth migrating separately, I added a filter in EdgeOne analytics:

Plaintext
URL path / 开始于 /en/

After filtering, I could see that from midnight to around 9 a.m. today, traffic related to /en/ was:

Plaintext
486.14 MB

Today’s total traffic was about:

Plaintext
1.4 GB

So the English /en/ path accounted for roughly:

Plaintext
486 MB ÷ 1434 MB ≈ 33.9%

In other words, the English path is currently consuming about one-third of EdgeOne traffic.

[Figure 4: EdgeOne traffic screenshot filtered by URL path starting with /en/]
[Figure 4: EdgeOne traffic screenshot filtered by URL path starting with /en/]

This is already a significant share.

If I move:

Plaintext
https://www.shuijingwanwq.com/en/*

to:

Plaintext
https://en.shuijingwanwq.com/*

and route en.shuijingwanwq.com through Cloudflare instead of EdgeOne, then in theory EdgeOne traffic could drop by about one-third.

Based on the current trend:

Plaintext
当前预计:3.7 GB/天
去掉 /en/ 约 34%:3.7 × (1 - 0.34) ≈ 2.44 GB/天

Converted to monthly traffic:

Plaintext
2.44 GB × 30 ≈ 73 GB/月

This still does not bring the traffic below 50 GB/month, but it is a clear reduction from the original estimate of 111 GB/month.

So migrating the English site is not the final answer, but it is a clear, controllable, and high-impact intermediate step.

6. Why the English site is a good candidate for a subdomain split

The main reason I use EdgeOne for the primary site is to maintain a better access experience from mainland China.

But the English site is mainly intended for overseas readers. For that part of the audience, continuing to route through EdgeOne is not the only option.

If the English site is moved to:

Plaintext
en.shuijingwanwq.com

and routed through Cloudflare, the structure would become:

Plaintext
www.shuijingwanwq.com

    EdgeOne

中文主站 + 非 uploads 资源 + 仍保留在 www 下的请求


media.shuijingwanwq.com

    Cloudflare

WordPress uploads 媒体库资源


en.shuijingwanwq.com

    Cloudflare

英文站页面

The benefits would be:

Plaintext
1. EdgeOne 继续服务中文主站,优先保障中国大陆访问体验;
2. 英文站主要面向海外用户,交给 Cloudflare 更合理;
3. EdgeOne 的访问流量可以直接减少一部分;
4. 中文站、英文站、媒体资源的流量边界更清晰;
5. 后续更容易分别观察各自的缓存、Bot、流量成本。

Of course, there are costs as well:

Plaintext
1. 中国大陆用户访问英文站可能会慢一些;
2. 需要处理 /en/* 到 en 子域名的 301;
3. 需要确认 WordPress / Polylang 多语言配置是否支持这种结构;
4. 需要处理 sitemap、canonical、hreflang、站内链接;
5. 需要避免大量旧标签规则和新迁移规则发生冲突。

So this is not a simple DNS adjustment. It is a full URL architecture migration.

7. The complexity of the existing 301 rules

The site currently has a large number of 301 rules in Nginx, roughly around 8,000 entries.

These rules are mainly used for:

Plaintext
1. 中文标签 slug 合并;
2. 英文路径下中文标签 slug 翻译为英文 slug;
3. 部分旧专题路径合并到新专题路径。

The current configuration is similar to this:

Nginx
map $uri $new_tag_uri {
    default "";
    ~^/tag/权限/?$ "/tag/permission/";
    ~^/en/tag/权限/?$ "/en/tag/permission/";
    ~^/tag/菜单/?$ "/tag/menu/";
    ~^/en/tag/菜单/?$ "/en/tag/menu/";
    ~^/tag/30-天试用/?$ "/tag/30-day-trial/";
    ~^/en/tag/30-天试用/?$ "/en/tag/30-day-trial-en/";
    ~^/tag/在线商店/?$ "/tag/online-store/";
    ~^/en/tag/在线商店/?$ "/en/tag/online-store-en/";
    ~^/series/15-year-backend-dev-survival-notes-in-ai-era/?$ "/series/ai-era-developer-monetization-system/";
    ~^/en/series/15-year-backend-dev-survival-notes-in-ai-era-en/?$ "/en/series/ai-era-developer-monetization-system-en/";
}

Then it is executed inside the server block:

Nginx
if ($new_tag_uri != "") {
    return 301 $new_tag_uri;
}

If I directly add a generic rule like this:

Plaintext
/en/* → https://en.shuijingwanwq.com/*

it may create two 301 redirects.

For example:

Plaintext
https://www.shuijingwanwq.com/en/tag/30-天试用/
→ https://www.shuijingwanwq.com/en/tag/30-day-trial-en/
→ https://en.shuijingwanwq.com/tag/30-day-trial-en/

The final destination would still be correct, but the extra 301 in the middle is not ideal.

The better result should be a single redirect to the final URL:

Plaintext
https://www.shuijingwanwq.com/en/tag/30-天试用/
→ https://en.shuijingwanwq.com/tag/30-day-trial-en/

Therefore, when migrating the English site, I cannot simply place a broad /en/* redirect rule at the top.

8. Recommended 301 handling logic

A safer approach is to keep the existing 8,000 map rules unchanged, and add one additional layer of “final destination conversion” before the actual redirect.

The overall logic is:

Plaintext
第一步:
旧标签 / 旧专题规则先把旧 URL 映射为标准路径。

第二步:
如果标准路径以 /en/ 开头,则最终跳转到 en.shuijingwanwq.com,并去掉 /en/ 前缀。

第三步:
如果标准路径不是 /en/ 开头,则继续跳转到 www.shuijingwanwq.com。

The expected results should be:

Plaintext
https://www.shuijingwanwq.com/en/tag/30-天试用/
→ https://en.shuijingwanwq.com/tag/30-day-trial-en/
Plaintext
https://www.shuijingwanwq.com/en/tag/30-day-trial-en/
→ https://en.shuijingwanwq.com/tag/30-day-trial-en/
Plaintext
https://www.shuijingwanwq.com/tag/30-天试用/
→ https://www.shuijingwanwq.com/tag/30-day-trial/
Plaintext
https://www.shuijingwanwq.com/en/2026/07/08/19083/
→ https://en.shuijingwanwq.com/2026/07/08/19083/

The advantages of this approach are:

Plaintext
1. 不用手工修改 8000 条旧规则;
2. 英文旧标签可以一次跳转到最终英文子域名;
3. 中文标签合并逻辑仍然保留在 www 主域名;
4. 普通 /en/ 文章页、分类页、标签页可以统一迁移;
5. 可以避免大部分两次 301 的问题。

9. Things to confirm before migration

Before making the change in production, at least the following items need to be confirmed.

1. en.shuijingwanwq.com must not go through EdgeOne

This is the premise for reducing EdgeOne traffic.

If en.shuijingwanwq.com still routes through EdgeOne, then the migration only changes the URL structure and does not actually help with EdgeOne traffic cost.

The target should be:

Plaintext
en.shuijingwanwq.com

    Cloudflare

英文站

2. Confirm whether WordPress / Polylang supports the English subdomain

After switching the English site to a subdomain, the following items need to work correctly:

Plaintext
英文首页
英文文章页
英文分类页
英文标签页
英文专题页
语言切换链接
canonical
hreflang
sitemap
站内链接

If Polylang is not configured correctly, internal links may still point to /en/, or canonical and hreflang tags may become inconsistent.

3. 301 redirects should go to the final URL in one step whenever possible

This is especially important for old English tag URLs like:

Plaintext
/en/tag/30-天试用/

The ideal result should be:

Plaintext
https://en.shuijingwanwq.com/tag/30-day-trial-en/

Instead of first redirecting to:

Plaintext
https://www.shuijingwanwq.com/en/tag/30-day-trial-en/

and then redirecting again to the English subdomain.

4. Search engines need the English site to be submitted again

After the migration, en.shuijingwanwq.com should be added as a new property in Google Search Console and Bing Webmaster Tools.

A new English sitemap should also be submitted, and the indexing migration should be monitored.

5. Slower mainland China access to the English site must be accepted

The core trade-off of this solution is:

Plaintext
中文主站继续走 EdgeOne,保障中国大陆访问体验;
英文站走 Cloudflare,降低 EdgeOne 流量成本,并更适合海外读者。

If users in mainland China access the English site more slowly, that is an acceptable side effect.

10. Recommended execution order

I will not execute this immediately. When I have time later, I can move forward in the following order.

Step 1: Prepare en.shuijingwanwq.com

First, add the DNS record for the English subdomain and confirm that it goes through Cloudflare.

Do not switch production traffic at the beginning. First make sure the subdomain can access the English site content.

Step 2: Confirm the WordPress multilingual configuration

Check whether Polylang or the current multilingual plugin supports:

Plaintext
中文:https://www.shuijingwanwq.com/
英文:https://en.shuijingwanwq.com/

Focus on verifying language switching, canonical tags, hreflang tags, and sitemaps.

Step 3: Adjust the Nginx 301 rules

Add final destination conversion on top of the existing map $uri $new_tag_uri logic.

The goal is to let the old-path correction rules take priority, with the English subdomain migration as the fallback.

Step 4: Test key URLs locally

At minimum, test the following paths:

Plaintext
https://www.shuijingwanwq.com/en/
https://www.shuijingwanwq.com/en/2026/07/08/19083/
https://www.shuijingwanwq.com/en/tag/30-天试用/
https://www.shuijingwanwq.com/en/tag/30-day-trial-en/
https://www.shuijingwanwq.com/tag/30-天试用/
https://www.shuijingwanwq.com/en/category/...
https://www.shuijingwanwq.com/en/post-sitemap.xml

Focus on checking:

Plaintext
是否 301
是否只跳一次
Location 是否为最终地址
是否保留查询参数
是否出现循环跳转

Step 5: Monitor EdgeOne traffic after launch

After the migration is complete, return to EdgeOne analytics and continue filtering by:

Plaintext
URL path / 开始于 /en/

The ideal result is that traffic under /en/ on www.shuijingwanwq.com drops significantly.

At the same time, monitor whether total EdgeOne traffic drops from the current estimate of:

Plaintext
约 3.7 GB/天

to:

Plaintext
约 2.4 GB/天左右

The actual result may be affected by bots, caching, and search engines recrawling the site, so it needs to be observed for a few days rather than judged only on the migration day.

11. Current decision

Based on the current data, the /en/ English path accounts for about one-third of today’s EdgeOne traffic.

This means moving the English site from:

Plaintext
https://www.shuijingwanwq.com/en/

to:

Plaintext
https://en.shuijingwanwq.com/

and routing the English subdomain through Cloudflare is a cost optimization plan worth taking seriously.

But it is not the final solution.

Based on the current estimate, even if /en/ is moved away from EdgeOne, monthly EdgeOne traffic may still be around 70 GB, which is still above the target of 50 GB/month. The next stages still need to address:

Plaintext
低价值 Bot
Meta/Facebook 爬虫流量
页面体积
主题和插件前端资源
HTML 缓存 TTL
异常路径请求

So this migration is more like the first stage of a larger traffic split:

Plaintext
第一阶段:
uploads 媒体库资源 → media.shuijingwanwq.com → Cloudflare

第二阶段:
英文站页面 → en.shuijingwanwq.com → Cloudflare

第三阶段:
中文主站继续走 EdgeOne,并进一步优化 Bot、缓存和页面体积

The current conclusion is:

Plaintext
可以迁移,但不要仓促迁移。
先形成方案,确认 Polylang、Cloudflare、Nginx 301、sitemap、canonical、hreflang 都没有问题后,再分步骤执行。

The core goal of this change is not simply to modify the URL structure. It is to redefine the traffic boundaries:

Plaintext
中文主站优先保障中国大陆访问体验;
英文站交给更适合海外访问的 Cloudflare;
uploads 媒体库继续由 media 子域名承接;
EdgeOne 流量尽量控制在可接受范围内。

In the long run, this architecture is clearer than putting everything behind www.shuijingwanwq.com + EdgeOne, and it should also make future cost control easier.

Cloudflare Cache Rules Adjustment After Migrating WordPress Media to a CDN

Linux Server Operations, Deployment & Production Troubleshooting

If your website or backend service runs on a Linux server and you are facing unstable access, Nginx configuration issues, MySQL / Redis errors, Docker service failures, full disk usage, or high CPU / memory usage, feel free to contact me for remote troubleshooting.

Ideal For:
✅ Website downtime or unstable access
✅ Nginx / PHP-FPM configuration issues
✅ MySQL / Redis performance or connection problems
✅ Docker service deployment and maintenance
✅ Server migration and environment setup
✅ CPU / memory / disk usage investigation

What I Offer:
✅ Linux environment inspection
✅ Website migration and deployment
✅ Nginx / PHP-FPM / MySQL / Redis troubleshooting
✅ Docker configuration and maintenance
✅ Server performance analysis
✅ Long-term remote operations support

Please contact me and mention: Linux Operations Consultation.

Contact Me:
Telegram: @shuijingwan
WeChat: 13980074657
Email: shuijingwanwq@gmail.com

评论

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.