Hướng dẫn về Cloudflare Workers SEO
Cách làm SEO kỹ thuật thay đổi on Cloudflare Workers — đó fetch handler, HTMLRewriter cho canonical/hreflang/JSON-LD injection, KV-được hỗ trợ các chuyển hướng, đó Bộ nhớ đệm API so với edge bộ nhớ đệm so với Cache-Control, đó cloaking boundary, và cách Bot Fight Chế độ có thể block Googlebot.
Ngôn ngữ
1 tín hiệu bằng chứng trên trang này
- Dữ liệu nguồn được liên kếtGooglebot.json
Cloudflare Workers SEO là đang làm SEO kỹ thuật on Cloudflare's serverless runtime: một Worker chỉ sees các yêu cầu của nó route matches, và mỗi một of những enters một fetch handler nơi bạn rewrite đó yêu cầu, đó các header phản hồi, và đó thân phản hồi. Thân phản hồi rewriting chạy qua HTMLRewriter — đó thực tế mechanism cho injecting một canonical tag, sửa hreflang, hoặc thêm JSON-LD không có một CMS deploy — và điều này cần to là idempotent so với missing, duplicate, và non-HTML cases. Các chuyển hướng tại scale belong trong KV hoặc D1; Bulk Các chuyển hướng/Rules là simpler cho nhỏ sets, nhưng pick một owner per URL so các hệ thống không conflict. Three tách biệt điều share đó word bộ nhớ đệm — đó Workers Bộ nhớ đệm API, đó Cloudflare edge bộ nhớ đệm, và origin Cache-Control — và conflating them là vì sao an injected tag seems to không cho thấy up; diagnose by bộ nhớ đệm key, layer, TTL, và invalidation. Đó hard rule là cloaking: apply giống hệt logic cho Googlebot và người dùng. Đó hầu hết Workers-cụ thể self-inflicted wound là Bot Fight Chế độ blocking Googlebot on một pipeline của bạn WAF cho phép-rules không even reach. Ship mỗi SEO-affecting thay đổi với recorded version metadata và một tested rollback, thì verify với GSC URL Inspection và đó CF-Bộ nhớ đệm-Status header. See đó Edge SEO hub cho đó chung concept.
Tóm tắt — Cloudflare Workers là little programs đó chạy on Cloudflare’s network, trong front của của bạn thực trang web. Worker có thể thêm chuyển hướng, khắc phục meta tag, hoặc inject thẻ canonical as trang flies past — không có touching của bạn CMS hoặc đang chờ on nhà phát triển. điều này trang là hands-on, code-level version của rộng hơn Edge SEO idea: Cách bạn thực ra làm nó on Workers cụ thể. một rule Bạn có thể’t break: whatever Worker thay đổi, nó có để thay đổi cho Google và thực khách truy cập giống nhau way. Cho thấy Google điều gì đó khác là cloaking.
Điều gì Cloudflare Worker là, trong đơn giản terms
nếu của bạn trang web là on Cloudflare, mỗi yêu cầu từ khách truy cập (hoặc từ Googlebot) truyền qua Cloudflare’s network trước khi nó reaches của bạn thực tế máy chủ. Worker là nhỏ script Bạn có thể chạy tại đó point trong path. nó sees yêu cầu coming trong và phản hồi going out, và nó có thể thay đổi either một. Evidence for this claim Cloudflare Workers run code on Cloudflare's network and can inspect or modify requests and responses. Scope: Cloudflare Workers request handling. Confidence: high · Verified: Cloudflare Workers: How Workers works
đó toàn bộ appeal Đối với SEO: bạn nhận để khắc phục điều trên các trang Bạn có thể’t nếu không edit. Stuck on locked-down nền tảng? Đang chờ weeks cho nhà phát triển để thêm canonical tag? Worker có thể làm nó trong minutes, trực tiếp, không có deploy để trang web itself.
Điều gì mọi người sử dụng Workers cho trong SEO
- Các chuyển hướng — gửi old các URL để new ones tại edge, even thousands của them.
- Sửa hoặc thêm tags — inject thẻ canonical, đúng tiêu đề, thêm hreflang, drop trong dữ liệu có cấu trúc — all không có editing trang nguồn.
- Rewriting các header — thêm hoặc khắc phục điều like
X-Robots-Tag.
rule bạn không thể break
Whatever của bạn Worker làm, nó có để làm nó cho mọi người. nếu bạn hiển thị Googlebot khác trang hơn thực person sees — để game thứ hạng — đó cloaking, và nó so với Google rules. Evidence for this claim Google defines serving materially different content to search engines and users to manipulate rankings as cloaking and a spam-policy violation. Scope: Google Search spam policy; legitimate personalization is context-dependent. Confidence: high · Verified: Google: Spam policies — cloaking safe pattern là đơn giản: apply giống nhau logic để mỗi yêu cầu, không quan trọng ai asking. ( Edge SEO hub covers điều này rule trong depth — điều này trang assumes bạn đã nhận concept và muốn Cloudflare-cụ thể Cách-để.)
hai ways để hurt yourself
phần lớn “Cloudflare hurt my SEO” (bản dịch) «Cloudflare hurt my SEO» stories không phải Worker code tại all:
- MỘT bot-blocking setting. Cloudflare’s Bot Fight Chế độ có thể accidentally block hoặc challenge Googlebot. Nếu Google không thể fetch của bạn các trang, không có gì khác matters.
- Bộ nhớ đệm confusion. Cloudflare có hơn một kind of bộ nhớ đệm, và nếu bạn không know mà một bạn là touching, một thay đổi bạn shipped có thể seem to “not show up.” (bản dịch) «không cho thấy up.»
Muốn thực tế code — fetch handler, HTMLRewriter ví dụ, KV chuyển hướng
bảng — plus bộ nhớ đệm và bot-blocking details? Switch để Nâng cao tab.
TL;DR — MỘT Cloudflare Worker chỉ sees các yêu cầu khớp by của nó configured route, và điều này intercepts mỗi một trong một single
fetchhandler, nơi bạn làm three điều trong sequence: rewrite đó yêu cầu, rewrite đó các header phản hồi, và rewrite đó thân phản hồi quaHTMLRewriter. đó là đó real mechanism behind “inject a canonical” (bản dịch) «inject một canonical» hoặc “cách sửa một tiêu đề” — và điều này cần to là idempotent, tested so với missing, duplicate, và non-HTML các phản hồi, không chỉ đó happy path. Các chuyển hướng tại scale trực tiếp trong KV (fast key lookup) hoặc D1 (relational); Bulk Các chuyển hướng/Rules cover nhỏ sets hơn đơn giản, và I generally ưu tiên edge-level các chuyển hướng over máy chủ-level — nhưng pick một owner per URL, since một Worker chuyển hướng, một Bulk Chuyển hướng, và an origin chuyển hướng có thể all fire on đó giống nhau path. Three khác nhau điều share đó word “bộ nhớ đệm” — đó Workers Bộ nhớ đệm API (caches.default), đó Cloudflare edge bộ nhớ đệm, và originCache-Control— và confusing them là đó thông thường nguyên nhân of “my tag didn’t show up” (bản dịch) «my tag đã không cho thấy up»; diagnose staleness by bộ nhớ đệm key, layer, TTL, và invalidation thay vì guessing. Google own ETag / If-None-Match / 304 hướng dẫn là trực tiếp actionable cho một Worker đó owns đó phản hồi. Đó cloaking line: giống hệt logic cho mỗi requester. Đó hầu hết Workers-cụ thể self-inflicted wound là Bot Fight Chế độ, mà chạy bên ngoài đó WAF Ruleset Engine, so ordinary “cho phép” rules không reach điều này. Ship mỗi SEO-affecting thay đổi với recorded version metadata, một tested rollback, và một dừng condition — thì verify với GSC URL Inspection vàCF-Cache-Status.
Điều gì điều này bài viết là (và không phải)
Này là đó practitioner, code-level companion to đó Edge SEO
hub. Đó hub owns đó chung definition, đó nền tảng so sánh bảng (Workers,
Akamai, Fastly, Lambda@Edge, Vercel, Netlify), đó Snippets-so với-Workers decision, và
đó đầy đủ treatment of đó cloaking rule. I’m không re-deriving any of đó ở đây. Này trang
goes một level deeper vào Cloudflare Workers cụ thể — đó runtime này very site
own worker chạy on, wired trong qua run_worker_first trong wrangler.toml — với real
APIs thay vì “edge compute can inject tags” (bản dịch) «edge compute có thể inject tags» hand-waving.
note trước khi code: Google có không Cloudflare-Workers-cụ thể tài liệu. chính thức hướng dẫn đó governs điều này (cloaking policy, HTTP bộ nhớ đệm, CDN crawling) là chung và áp dụng để bất kỳ edge implementation. I’d rather say đó plainly hơn imply Google doc tồn tại đó không.
Cách Worker sits trong yêu cầu/phản hồi path
Worker là serverless script đang chạy on V8 isolates. mỗi yêu cầu nó routed để
enters qua fetch handler. Evidence for this claim A Cloudflare Worker receives HTTP requests through a fetch handler. Scope: Cloudflare Workers handlers. Confidence: high · Verified: Cloudflare Workers: Fetch handler “Routed to” là đang làm thực hoạt động trong đó sentence:
Worker chỉ sees các yêu cầu đó match của nó configured
route hoặc custom domain —
mọi thứ khác không bao giờ reaches fetch handler tại all. nơi hai routes có thể cả hai match
giống nhau URL, nhiều hơn cụ thể pattern takes precedence, so trước khi bạn trust Worker
behavior cho được cho URL, xác nhận route thực ra matches nó và kiểm tra mà deployed
version là trực tiếp on đó route (Wrangler environments và gradual rollouts có nghĩa là version
serving traffic không phải luôn một trong của bạn editor). Bên trong handler Bạn có thể làm three
distinct điều, trong order:
- Rewrite yêu cầu trước khi nó goes để của bạn origin.
- Rewrite phản hồi các header on way back out.
- Rewrite phản hồi thân phản hồi — qua
HTMLRewriter.
Ở đây minimal shape:
export default {
async fetch(request, env, ctx) {
// 1. (optionally) inspect/modify the request
const response = await fetch(request); // hit the origin
// 2. rewrite headers
const headers = new Headers(response.headers);
headers.set("X-Robots-Tag", "index, follow");
// 3. rewrite the body with HTMLRewriter (see next section)
return new Response(response.body, { ...response, headers });
},
};SALT.agency team, ai coined “edge SEO” off Cloudflare Workers research, được xây dựng của họ tooling as filter chain — yêu cầu filter, phản hồi filter, và thân phản hồi filter. đó giống nhau three-phase pattern; họ chỉ named nó. Giữ những điều đó three phases tách biệt trong của bạn head giữ Worker legible.
Rewriting HTML với HTMLRewriter
HTMLRewriter là Cloudflare’s streaming HTML parser, và đây là đó thực tế API behind mỗi
“inject a tag” (bản dịch) «inject một tag» trick. Evidence for this claim Cloudflare HTMLRewriter provides selector-based handlers that can transform streamed HTML elements. Scope: Cloudflare Workers HTMLRewriter API. Confidence: high · Verified: Cloudflare Workers: HTMLRewriter Bạn register .on(selector, handler) element
handlers, và đó handler nhận getAttribute / setAttribute, prepend / append,
setInnerContent, và replace. Vì điều này streams, bạn là không buffering đó toàn bộ
document trong memory.
Injecting hoặc sửa thẻ canonical
class CanonicalHandler {
constructor(url) { this.url = url; }
element(el) { el.setAttribute("href", this.url); }
}
const rewriter = new HTMLRewriter()
.on('link[rel="canonical"]', new CanonicalHandler("https://example.com/preferred/"));
return rewriter.transform(response);nếu trang có không canonical tại all, bạn attach handler để head và append một
thay vì editing existing tag. Either way, remember lesson từ
canonicalization side của điều này:
rel=canonical là hint, không command — Worker lets bạn đặt nó consistently across
toàn bộ nền tảng, nhưng Google vẫn decides.
CanonicalHandler trên assumes tag đã tồn tại và phản hồi là HTML. Neither
là guaranteed trong production, và getting nó sai là Cách bạn end up với hai canonical tags
on một trang thay vì một. trước khi bạn ship rewrite like điều này, làm nó idempotent và kiểm thử
nó so với:
- Không existing canonical — của bạn handler cần để detect missing case và
appendmột đểhead, không silently không-op onlink[rel="canonical"]matching không có gì. - ** duplicate hoặc malformed canonical đã present** — quyết định liệu bạn xóa stray tag hoặc leave của bạn rewrite để thêm thứ hai một ( latter là thực bug, không edge case — duplicate canonicals là phổ biến self-inflicted vấn đề).
- ** non-HTML phản hồi** — API route, image, hoặc chuyển hướng phản hồi đã truyền qua
giống nhau Worker không nên là chạy qua
HTMLRewritertại all; phạm vi transform để routes và nội dung types bạn’ve thực ra checked. - Đang chạy transform twice on giống nhau phản hồi ( retry, nested
fetch) — xác nhận nó không re-append thứ hai tag.
Thêm hoặc correcting hreflang alternates
giống nhau mechanism, driven off config. bạn append một link[rel="alternate"] per locale để
head. nếu của bạn alternates là per-locale và relational, đó config belongs trong D1; nếu nó
flat lookup, KV là fine. point là đó HTMLRewriter injects them identically cho mỗi
requester — bạn’re không branching on người dùng agent.
Injecting JSON-LD dữ liệu có cấu trúc
new HTMLRewriter().on("head", {
element(head) {
head.append(
`<script type="application/ld+json">${JSON.stringify(schema)}</script>`,
{ html: true }
);
},
});CPU limits đó bite tại scale
Một đối thủ claim I’d push back on là “sub-millisecond, no constraints.” (bản dịch) «sub-millisecond, không constraints.» Đó real ceiling
là CPU time: 10 ms on đó free plan, 30 ms on paid (wall-clock time đang chờ on fetch
không count — CPU time làm). Cho typical rewrites bạn’ll không bao giờ notice. Cho nặng
HTMLRewriter truyền over very lớn các trang, đây là một real constraint to design khoảng, không
scaremongering.
Các chuyển hướng tại edge: KV so với D1 so với Rules
I typically ưu tiên để có các chuyển hướng on edge (CDN level) over có them on máy chủ — nó offloads hoạt động từ của bạn origin và áp dụng trước khi trang là bao giờ generated. On Cloudflare cụ thể, trong my Ahrefs hướng dẫn để các chuyển hướng Đối với SEO I laid out đó bạn’ve đã nhận several options: single hoặc bulk các chuyển hướng, chuyển hướng rules, trang rules, hoặc Workers với mấu chốt-giá trị pairs — hoặc Worker đó modifies các header để thêm chuyển hướng.
cho Worker-driven bảng, KV là natural home: fast, eventually-consistent mấu chốt lookup keyed by URL.
export default {
async fetch(request, env) {
const url = new URL(request.url);
const target = await env.REDIRECTS.get(url.pathname); // KV namespace
if (target) return Response.redirect(target, 301);
return fetch(request);
},
};Reach cho D1 Khi các chuyển hướng là relational (per-locale, per-segment SQL bạn muốn để query). và know Khi Worker là overkill: cho nhỏ, static đặt của các chuyển hướng, Cloudflare’s Bulk Các chuyển hướng hoặc chuyển hướng Rules là simpler và cần không code tại all. không hand-roll KV Worker cho fifty các chuyển hướng.
Pick một owner cho được cho URL và không let Worker chuyển hướng, Bulk chuyển hướng, chuyển hướng Rule, và origin chuyển hướng all apply để giống nhau path — họ’re tách biệt các hệ thống đó có thể mỗi fire on giống nhau yêu cầu, và Khi nhiều hơn hơn một matches, bạn’re gỡ lỗi precedence thay vì sạch chuyển hướng. trước khi bạn thêm chuyển hướng anywhere, kiểm tra liệu một đã tồn tại cho đó path trong khác các hệ thống, và pick layer dựa trên match complexity (đơn giản 1:1 so với. pattern-based), scale, và ai cần để observe hoặc roll nó back — Worker chuyển hướng lives trong của bạn code và nhật ký; Bulk chuyển hướng hoặc Rule lives trong dashboard và là easier cho non-nhà phát triển để audit hoặc revert.
bộ nhớ đệm: three khác điều, một confusing name
Này là đó section đối thủ các trang skip, và đây là đó một đó generates đó hầu hết “why didn’t my change show up” (bản dịch) «vì sao đã không my thay đổi cho thấy up» confusion. Three tách biệt layers share đó word bộ nhớ đệm:
- ** Workers bộ nhớ đệm API** —
caches.defaultvàcaches.open(). Đây là Worker-scoped programmable bộ nhớ đệm bạn đọc và ghi trong code. - ** Cloudflare edge bộ nhớ đệm** — CDN bộ nhớ đệm đó phục vụ của bạn assets. Distinct từ bộ nhớ đệm API.
- Origin
Cache-Control— các header của bạn origin (hoặc của bạn Worker) sets, mà influence cả hai của trên và Điều gì Googlebot làm.
Conflate them và bạn’ll swear thay đổi đã không deploy Khi nó chỉ là served từ layer bạn đã không purge.
Khi thay đổi genuinely không phải cho thấy up, không guess — diagnose nó layer by layer:
- bộ nhớ đệm mấu chốt. Điều gì yêu cầu các thuộc tính determine liệu hai các yêu cầu hit giống nhau được lưu đệm entry (URL, và đôi khi các header hoặc cookies nếu của bạn bộ nhớ đệm mấu chốt bao gồm them)? rewrite đó varies by điều gì đó không trong bộ nhớ đệm mấu chốt có thể phục vụ sai variant.
- Mà layer served phản hồi. kiểm tra
CF-Cache-Status(HIT/MISS/EXPIRED/DYNAMIC) để see liệu edge bộ nhớ đệm answered tại all, hoặc yêu cầu reached của bạn Worker. - Location/state. Cloudflare’s bộ nhớ đệm là distributed across dữ liệu centers — purge hoặc fresh deploy không nhất thiết invalidate mỗi edge location instantly.
- TTL và rule đó đặt nó. xác nhận liệu bộ nhớ đệm rule,
Cache-Controlheader từ của bạn origin, hoặc header của bạn Worker itself đặt là controlling TTL. - Invalidation. Đã làm bạn purge cụ thể URL, purge mọi thứ, hoặc rely on TTL expiry?
Worker-owned bộ nhớ đệm API entry (
caches.default) cần của nó own rõ ràngdelete()— purging CDN bộ nhớ đệm không touch nó.
Điều gì Googlebot làm với ETag / nếu-None-Match / 304
nếu của bạn Worker generates hoặc rewrites phản hồi, nó owns bộ nhớ đệm các header — mà có nghĩ là
Google December 2024 HTTP bộ nhớ đệm hướng dẫn là trực tiếp actionable cho bạn. Google hỗ trợ
heuristic HTTP bộ nhớ đệm qua ETag/If-None-Match và Last-Modified/If-Modified-Since,
strongly khuyến nghị ETag
vì nó ít hơn lỗi-prone, và nói đó Khi crawler ETag matches, của bạn máy chủ
nên trả về 304 Chư sử đổi với không thân phản hồi. phản hồi-generating Worker có thể implement
chính xác đó: compute ETag, so sánh nó so với If-None-Match, và ngắn-circuit để 304
itself — saving compute và giving Googlebot fast, có thể lưu vào bộ nhớ đệm tín hiệu.
max-age recrawl tradeoff
Google cũng nói để cân nhắc setting Cache-Control: max-age để help các crawler quyết định Khi để
recrawl. catch cho Worker đó rewrites HTML: aggressive max-age trên một trang whose
Worker-injected tags chỉ changed có thể delay Googlebot từ seeing cập nhật bạn chỉ shipped.
không slap dài bộ nhớ đệm lifetime on rewritten HTML và forget về nó.
cloaking boundary, applied để Workers
hard rule, trong Workers terms: chạy giống nhau logic cho mỗi requester. Google spam policy defines cloaking as presenting khác nội dung để người dùng và các công cụ tìm kiếm để manipulate thứ hạng, và cụ thể calls out inserting text hoặc từ khóa chỉ Khi requester là công cụ tìm kiếm.
couple của clarifications, vì mọi người over-đúng ở đây:
- Inspecting Người dùng-Agent không phải tự động cloaking. Logging bot traffic, hoặc serving được lưu đệm phản hồi nhanh hơn để bất kỳ client, là fine. line là nội dung khác biệt by requester identity, đã xong để manipulate thứ hạng.
- trang-split /B kiểm thử on Workers là fine. Splitting người dùng by URL và treating mỗi requester giống nhau là legitimate. Splitting by ai asking — bot so với. human — không phải.
worked ví dụ của safe pattern: điều này trang web own preview gate là Worker đó 404s bất kỳ
/preview/ path trừ khi cookie matches secret. nó trả về đó 404 để mọi người không có
cookie — Googlebot được bao gồm. đó precisely safe shape: nó không phải hiding một điều từ
bots và cho thấy một để người dùng; nó áp dụng một rule uniformly.
và không lean on bot-chỉ pre-render step even nếu bạn xây dựng nó cleanly on Workers. Google có được gọi là dynamic rendering workaround và không dài-term giải pháp; Worker đó pre-renders chỉ cho bots inherits đó deprecation.
Cách Worker có thể accidentally block hoặc chậm Googlebot
Đây là phần lớn Workers-cụ thể way để shoot yourself trong foot, và nó thường không trong của bạn Worker code.
Bot Fight Chế độ chạy bên ngoài Ruleset Engine
Bot Fight Chế độ (và Super Bot Fight Chế độ) có thể produce sai positives so với legitimate các crawler, Googlebot được bao gồm. trap: Bot Fight Chế độ là evaluated on tách biệt pipeline từ WAF Ruleset Engine, so của bạn ordinary WAF “cho phép” hoặc “skip” custom rules không override nó. nếu Bot Fight Chế độ là challenging Googlebot, bạn không khắc phục nó với cho phép-rule — bạn có để thay đổi hoặc disable chế độ itself. (xác nhận hiện tại mechanics so với Cloudflare’s Bot Fight Chế độ và Super Bot Fight Chế độ tài liệu trước khi bạn rely on nó — bot các sản phẩm thay đổi.)
verified-bots custom rule pattern
Cloudflare exposes cf.client.bot trường và
verified-bots cho phép pattern
so Bạn có thể permit known-good các crawler trong của bạn custom rules — hữu ích cho WAF side, though (per
trên) nó không reach Bot Fight Chế độ.
CDN itself là neutral-để-positive
để là clear về myth: Cloudflare—CDN không hurt SEO. Google own 2024
Crawling December
hoạt động notes đó Google increases tốc độ crawl Khi nó detects CDN — nhưng đó CDN có thể cũng
accidentally block Googlebot qua WAF/bot rules, và đó 503 là tốt hơn hơn bot-verification
interstitial. risk là misconfigured Worker hoặc bot setting, không infrastructure.
Verifying Điều gì Googlebot thực ra đã nhận
sau khi bất kỳ Worker deploy, xác nhận Điều gì crawler thực ra đã nhận — không assume:
- GSC URL Inspection → Kiểm thử Trực tiếp URL. Fetches đó trang as Google và cho thấy đó được kết xuất HTML, so bạn có thể xác nhận của bạn injected canonical/hreflang/JSON-LD là thực ra present.
- Kiểm tra
CF-Cache-Statusalongside đó HTML.HIT/MISS/EXPIREDtells bạn liệu bạn là looking tại một fresh Worker phản hồi hoặc một được lưu đệm một — đó fastest way to catch một “change didn’t show up” (bản dịch) «thay đổi đã không cho thấy up» đó là thực sự một bộ nhớ đệm-layer vấn đề. - Fetch as Googlebot trực tiếp. Yêu cầu với Googlebot’s người dùng agent và so sánh — nhưng remember matching đó string proves không có gì về identity; verify real Googlebot với reverse + forward DNS so với Google published ranges (see đó Scripts tab).
Deployment hygiene cụ thể để Workers
thành công wrangler deploy tells bạn script shipped — nó không tell bạn Googlebot là
getting right được kết xuất output. Treat mỗi SEO-affecting Worker thay đổi as phát hành với
record, không chỉ push:
- Phạm vi của bạn routes. không chạy một Worker on
/*theo mặc định. Match điều này to đó paths điều này cần trong của bạnwrangler.tomlroute patterns so một bug không thể take down của bạn toàn bộ site. - Kiểm tra hiện tại limits trước khi bạn promise scale. CPU time, subrequest được tính, và script size limits vary by plan và thay đổi theo thời gian — xác nhận so với Cloudflare’s hiện tại limits trang trước khi bạn design một rewrite khoảng một cụ thể ceiling, thay vì relying on một remembered number.
- Record version metadata cho đó phát hành. Cloudflare’s versions và deployments model tracks đó nguồn version, compatibility date, bindings, và routes cho mỗi deploy — note mà version là trực tiếp on mà route so một “the Worker is doing X” (bản dịch) «đó Worker là đang làm X» claim là checkable so với điều gì là thực ra deployed, không điều gì là trong của bạn editor.
- Version và roll back với Wrangler environments. Ship to một staging environment, dần dần roll out by percentage, và giữ đó ability to revert to đó prior version instantly.
- Dùng scoped logs to monitor đó rollout — với của họ limits trong mind. Cloudflare’s Workers Logs và log tailing có thể hỗ trợ gỡ lỗi một gradual rollout, nhưng logs là sampled và retained cho một limited window — treat them as scoped evidence cho đó các yêu cầu they captured, không một hoàn tất record of mỗi crawler visit.
- Set một dừng condition và kiểm thử đó rollback trước khi bạn cần điều này. Decide up front điều gì observed behavior (lỗi rate, một wrong phản hồi on một spot-kiểm tra, một crawl-rate drop) halts đó rollout, và xác nhận đó rollback path thực ra hoạt động thay vì assuming điều này sẽ.
- Purge bộ nhớ đệm as part of đó deploy. Since three bộ nhớ đệm layers là trong play, làm bộ nhớ đệm purge/invalidation an rõ ràng step of shipping một rewrite, không an afterthought.
Bing note, và một forward-looking điều
Bing có không Cloudflare/edge-cụ thể hướng dẫn either. Nhưng vì một Worker deploy là instant trong khi crawl không, IndexNow là đó natural pairing — fire điều này đó moment một Worker-driven chuyển hướng bảng hoặc tag thay đổi ships so Bing (và other participating engines) re-crawl promptly. Và worth một glance: Cloudflare shipped edge-enforced canonicalization as một sản phẩm feature (“Redirects for AI Training” (bản dịch) «Các chuyển hướng cho AI Training») — verified AI-training các crawler nhận một 301 to của bạn canonical URL với một toggle. đây là một hữu ích contrast to hand-rolling canonical logic trong của bạn own Worker, và một reminder đó “serving crawlers something different from users” (bản dịch) «serving các crawler điều gì đó khác nhau từ người dùng» là một pattern Microsoft có publicly đã skeptical of on Cloudflare’s other AI-crawler features — một good gut kiểm tra on any bot-conditional Worker.
cho rộng hơn picture — nền tảng so sánh, Snippets so với. Workers, dev-queue và governance angles — head back để Edge SEO hub.
AI summary
condensed take on Nâng cao version:
- Cloudflare Workers SEO = đang làm SEO kỹ thuật on Cloudflare’s V8-isolate runtime. đây là đó code-level, Workers-cụ thể implementation of đó chung Edge SEO concept — see đó hub cho đó definition, nền tảng so sánh, và cloaking depth.
- MỘT Worker chỉ sees điều gì của nó route matches. Route/domain configuration và precedence decide
mà các yêu cầu reach đó
fetchhandler tại all — xác nhận đó route và đó deployed version trước trusting một Worker behavior cho một URL. - Một
fetchhandler, three phases: rewrite đó yêu cầu, rewrite đó các header phản hồi, rewrite đó thân phản hồi. Thân phản hồi rewriting chạy quaHTMLRewriter— đó real mechanism cho injecting một canonical, sửa hreflang, hoặc thêm JSON-LD. Làm đó rewrite idempotent và kiểm thử điều này so với missing, duplicate, malformed, và non-HTML các phản hồi, không chỉ đó happy path. - Các chuyển hướng: KV cho fast key lookups, D1 cho relational config, Bulk Các chuyển hướng/Rules cho nhỏ static sets. Patrick prefers edge-level các chuyển hướng over máy chủ-level — nhưng pick một owner per URL; một Worker chuyển hướng, Bulk Chuyển hướng, Chuyển hướng Rule, và origin chuyển hướng có thể all fire on đó giống nhau path.
- Three caches share một word: đó Workers Bộ nhớ đệm API (
caches.default), đó Cloudflare edge bộ nhớ đệm, và originCache-Control— conflating them gây ra “my change didn’t show up.” (bản dịch) «my thay đổi đã không cho thấy up.» Diagnose điều này by bộ nhớ đệm key, layer, TTL, và invalidation thay vì guessing. - Google ETag/If-None-Match/304 bộ nhớ đệm hướng dẫn (Dec 2024) là trực tiếp actionable: một
phản hồi-owning Worker có thể ngắn-circuit to một 304 itself; nhưng an aggressive
max-agecó thể delay recrawl of một chỉ-changed trang. - Cloaking rule: giống hệt logic cho mỗi requester. Inspecting đó UA không tự động cloaking; một nội dung khác biệt by requester identity to manipulate thứ hạng là.
- Biggest self-inflicted risk: Bot Fight Chế độ chạy bên ngoài đó WAF Ruleset Engine, so thông thường cho phép-rules không reach điều này — bạn phải thay đổi đó chế độ itself.
- Ship có chủ ý: kiểm tra hiện tại plan limits trước promising scale, record version metadata (compatibility date, bindings, routes) per phát hành, dùng scoped logs (sampled, không một hoàn tất record) to watch một rollout, và set một dừng condition với một tested rollback trước khi bạn cần điều này.
- Verify với GSC URL Inspection (Kiểm thử Trực tiếp URL) và đó
CF-Cache-Statusheader; watch CPU limits (10 ms free / 30 ms paid) on nặng rewrites.
Tài liệu chính thức
có không Cloudflare-Workers-cụ thể SEO doc từ Google hoặc Bing — governing hướng dẫn là chung. phần lớn hữu ích chính sources là split giữa các công cụ tìm kiếm (policy/bộ nhớ đệm) và Cloudflare ( runtime APIs).
Google (áp dụng để bất kỳ edge implementation)
- Spam policies — cloaking — hard boundary bất kỳ Worker logic phải respect.
- Crawling December: HTTP bộ nhớ đệm (2024) — ETag / nếu-None-Match / 304 / max-age, trực tiếp actionable cho phản hồi-owning Worker.
- Crawling December: CDNs và crawling (2024) — Cách CDN ảnh hưởng tốc độ crawl và Cách bot rules có thể block Googlebot.
- Dynamic rendering (deprecated) — Vì sao bot-chỉ pre-render Worker inherits deprecated pattern.
- Overview của Google các crawler và fetchers — người dùng agents và published IP ranges cho verification.
Cloudflare ( runtime)
- HTMLRewriter — streaming HTML parser API.
- bộ nhớ đệm API —
caches.default/caches.open(). - Cách bộ nhớ đệm hoạt động — bộ nhớ đệm API so với. edge bộ nhớ đệm.
- Routes và domains — route matching, precedence, và mà các yêu cầu thực ra invoke Worker.
- Bulk Các chuyển hướng — không-code chuyển hướng hệ thống Worker chuyển hướng có thể conflict hoặc overlap với.
- Workers limits — hiện tại CPU, subrequest, và script-size ceilings; plan- và date-sensitive, so kiểm tra nó trực tiếp thay vì trusting remembered number.
- Versions và deployments — versioned/gradual deploys và rollback.
- Workers nhật ký — invocation nhật ký, tailing, và của họ sampling/retention limits.
- Bot Fight Chế độ / Super Bot Fight Chế độ — bot settings đó có thể block Googlebot.
- Cho phép traffic từ verified bots —
cf.client.botcustom-rule pattern.
Bing — không edge/Workers trang tồn tại; IndexNow là relevant pairing cho instant post-deploy re-crawl.
Quotes từ nguồn
On—record statements. mỗi Google link là deep link đó jumps để quoted passage.
Google — cloaking boundary
- “Cloaking refers to the practice of presenting different content to users and search engines with the intent to manipulate search rankings and mislead users.” (bản dịch) «Cloaking refers to đó practice of presenting khác nhau nội dung to người dùng và các công cụ tìm kiếm với đó intent to manipulate tìm kiếm thứ hạng và mislead người dùng.» — Google Search Central, Spam policies cho Google web tìm kiếm. Jump to quote
- “Inserting text or keywords into a page only when the user agent that is requesting the page is a search engine, not a human visitor” (bản dịch) «Inserting text hoặc từ khóa vào một trang chỉ khi người dùng agent đó là requesting đó trang là một công cụ tìm kiếm, không một human khách truy cập» — listed as an ví dụ of cloaking. Jump to quote
Google — HTTP bộ nhớ đệm (Crawling December, 2024)
- “Google’s crawling infrastructure supports heuristic HTTP caching as defined by the HTTP caching standard, specifically through the ETag response- and If-None-Match request header, and the Last-Modified response- and If-Modified-Since request header.” (bản dịch) «Google crawling infrastructure hỗ trợ heuristic HTTP bộ nhớ đệm as được định nghĩa by đó HTTP bộ nhớ đệm tiêu chuẩn, cụ thể qua đó ETag phản hồi- và If-None-Match header yêu cầu, và đó Last-Modified phản hồi- và If-Modified-Since header yêu cầu.» Jump to quote
- “We strongly recommend using ETag because it’s less prone to errors and mistakes (the value is not structured unlike the Last-Modified value).” (bản dịch) «We strongly khuyến nghị dùng ETag vì đây là ít hơn prone to các lỗi và mistakes (đó giá trị không phải structured unlike đó Last-Modified giá trị).» Jump to quote
- “If the ETag value sent by the crawler matches the current value the server generated, your server should return an HTTP 304 (Not modified) status code with no HTTP body.” (bản dịch) «Nếu đó ETag giá trị đã gửi by đó crawler matches đó hiện tại giá trị đó máy chủ generated, máy chủ của bạn nên trả về an HTTP 304 (Không thay đổi) mã trạng thái với không HTTP thân phản hồi.» Jump to quote
- “While not required, consider also setting the max-age field of the Cache-Control header to help crawlers determine when to recrawl the specific URL.” (bản dịch) «Trong khi không bắt buộc, consider cũng setting đó max-age trường of đó Cache-Control header to help các crawler determine khi nào nên recrawl đó cụ thể URL.» Jump to quote
Google — dynamic rendering (deprecated)
- “Dynamic rendering was a workaround and not a long-term solution for problems with JavaScript-generated content in search engines.” (bản dịch) «Dynamic rendering đã là một workaround và không một dài-term giải pháp cho các vấn đề với JavaScript-generated nội dung trong các công cụ tìm kiếm.» Jump to quote
Me — on edge-level các chuyển hướng
- “I typically prefer to have redirects on the edge (CDN-level) over having them on the server.” (bản dịch) «I typically ưu tiên to có các chuyển hướng on đó edge (CDN-level) over có them on đó máy chủ.» — từ my Ahrefs hướng dẫn, 11 Types of Các chuyển hướng & Của họ SEO Impact. Relayed từ my own published bài viết; wording là mine nhưng xác nhận đó chính xác phrasing so với đó trực tiếp trang trước treating điều này as một hard quote.
Cloudflare / SALT.agency — Vì sao Workers cho các chuyển hướng
- “we needed to implement simple redirects, which should be easy to create on the majority of platforms but wasn’t supported” (bản dịch) «we needed to implement đơn giản các chuyển hướng, mà nên là easy to tạo on đó majority of các nền tảng nhưng đã không supported» — Igor Krestov & Dan Taylor, Diving vào SEO kỹ thuật dùng Cloudflare Workers (Cloudflare blog). Relayed qua summarization of đó Cloudflare blog post, không confirmed as an chính xác substring — re-verify so với đó trực tiếp trang trước dùng as một hard blockquote.
Mà tool cho job?
“I need to add redirects.” (bản dịch) «I cần to thêm các chuyển hướng.»
- MỘT nhỏ, static set (vài dozen, không logic)? → Cloudflare Bulk Các chuyển hướng hoặc Chuyển hướng Rules. Không Worker, không code.
- Thousands of URL-keyed các chuyển hướng? → MỘT Worker + KV lookup.
- Relational (per-locale, per-segment, queried) các chuyển hướng? → MỘT Worker + D1.
- Cần to chuyển hướng và rewrite các header trong đó giống nhau truyền? → MỘT Worker (Rules không thể làm cả hai).
“I need to inject or fix a tag (canonical, hreflang, title, JSON-LD).” (bản dịch) «I cần to inject hoặc cách sửa một tag (canonical, hreflang, tiêu đề, JSON-LD).»
- → MỘT Worker với
HTMLRewriter. có không không-code Cloudflare sản phẩm cho arbitrary thân phản hồi rewriting; này là Workers’ job.
“Googlebot’s crawl dropped after I added Cloudflare.” (bản dịch) «Googlebot’s crawl dropped sau I đã thêm Cloudflare.»
- Đầu tiên suspect Bot Fight Chế độ / Super Bot Fight Chế độ, không của bạn Worker. Kiểm tra xem đây là challenging Googlebot — và remember một WAF cho phép-rule sẽ không cách sửa điều này; bạn thay đổi đó chế độ itself.
- Thì kiểm tra WAF custom rules và liệu một
503/interstitial là đang served to bots. - Chỉ thì audit đó Worker code và route phạm vi.
“My injected tag isn’t showing up.” (bản dịch) «My injected tag không cho thấy up.»
- Kiểm tra
CF-Cache-Status.HIT/EXPIRED? bạn là seeing một được lưu đệm phản hồi — purge đó right layer (Workers Bộ nhớ đệm API so với. edge bộ nhớ đệm) và re-kiểm thử. MISSvà vẫn wrong? Hiện tại đây là của bạn Worker logic hoặc route phạm vi. Xác nhận với GSC URL Inspection.
“Should I pre-render only for bots on a Worker?” (bản dịch) «Nên I pre-render chỉ cho bots on một Worker?»
- → Không. đó là dynamic rendering, mà Google có deprecated. Ưu tiên SSR/static rendering applied to mọi người.
Cloudflare Workers SEO checklist
trước khi bạn ship rewrite Worker
- Route là scoped để paths nó cần trong
wrangler.toml— không/*by reflex — và bạn’ve confirmed mà deployed version là thực ra trực tiếp on đó route. - Worker áp dụng giống hệt logic để mỗi requester (không bot-so với-human nội dung branch).
-
HTMLRewriterhandlers là idempotent và tested so với missing tag, duplicate/malformed existing tag, và non-HTML phản hồi — không chỉ happy path. - cho các chuyển hướng, bạn’ve picked right tool: Bulk Các chuyển hướng/Rules (nhỏ/static), KV (URL-keyed tại scale), hoặc D1 (relational) — và confirmed không khác chuyển hướng hệ thống đã owns đó URL.
- hiện tại plan limits (CPU, subrequests, script size) là checked trực tiếp, không remembered.
-
Cache-Controlon rewritten HTML không phải so aggressive nó delays recrawl của changed các trang. - Version metadata (compatibility date, bindings, routes) là recorded cho phát hành, với tested rollback path và được định nghĩa dừng condition cho rollout.
bộ nhớ đệm sanity
- bạn know mà của three layers (Workers bộ nhớ đệm API / edge bộ nhớ đệm / origin
Cache-Control) bạn’re touching. - nếu Worker owns phản hồi, nó sets đúng
ETagvà có thể ngắn-circuit để304. - bộ nhớ đệm purge/invalidation là rõ ràng step trong deploy.
Bot access
- Bot Fight Chế độ / Super Bot Fight Chế độ không phải challenging Googlebot (checked trực tiếp — WAF cho phép-rule làm không override nó).
- Verified-bots custom rule (
cf.client.bot) là trong place nếu bạn gate on WAF side. - Bots nhận
503, không verification interstitial, Khi bạn cần chậm them.
Verify sau khi deploy
- GSC URL Inspection → Kiểm thử Trực tiếp URL xác nhận injected tag là trong được kết xuất HTML.
-
CF-Cache-Statuschecked (HIT/MISS/EXPIRED) so bạn know nếu bạn’re seeing được lưu đệm copy. - IndexNow fired (Bing/others) nếu chuyển hướng bảng hoặc tag thay đổi chỉ shipped.
- Versioned qua Wrangler environments với tested rollback path.
mental models
1. Một handler, three phases.
mỗi Worker là fetch handler, và mọi thứ bạn làm lives trong một của three phases trong order:
rewrite yêu cầu → rewrite phản hồi các header → rewrite phản hồi thân phản hồi
(HTMLRewriter). Locate Điều gì bạn’re thay đổi trong đó sequence trước khi bạn ghi line.
2. “Bộ nhớ đệm” là three điều, không một.
Workers Bộ nhớ đệm API (caches.default) ≠ Cloudflare edge bộ nhớ đệm ≠ origin Cache-Control. Khi một thay đổi
“doesn’t show up,” (bản dịch) «không cho thấy up,» ask mà layer bạn là thực ra looking tại trước khi bạn touch đó code.
3. Đó cloaking kiểm thử: identity so với. logic. Branching on ai asking to thay đổi nội dung = cloaking. Applying đó giống nhau logic to mọi người — ngay cả khi đó logic inspects đó UA cho logging hoặc speed — là fine. Ask: “would a real user get exactly what Googlebot got?” (bản dịch) «sẽ một real người dùng nhận chính xác điều gì Googlebot đã nhận?»
4. blame order cho crawl drop. Bot Fight Chế độ → WAF rules → Worker code → route phạm vi. bot settings chạy on pipeline của bạn cho phép rules không reach, so suspect them đầu tiên.
5. Worker owns phản hồi — so nó owns bộ nhớ đệm semantics.
nếu của bạn Worker generates hoặc rewrites thân phản hồi, nó responsible cho ETag, 304, và max-age.
đó khả năng (ngắn-circuit 304 yourself) và liability (over-bộ nhớ đệm và delay recrawl).
Cloudflare Workers SEO — bảng tra nhanh
Pick chuyển hướng tool
| Situation | sử dụng |
|---|---|
| một vài dozen static các chuyển hướng | Bulk Các chuyển hướng / chuyển hướng Rules (không code) |
| Thousands, keyed by URL | Worker + KV |
| Relational / per-locale, queried | Worker + D1 |
| chuyển hướng và rewrite các header together | Worker |
** three caches**
| Layer | Điều gì nó là | bạn touch nó qua |
|---|---|---|
| Workers bộ nhớ đệm API | Programmable, Worker-scoped | caches.default, caches.open() |
| Cloudflare edge bộ nhớ đệm | CDN bộ nhớ đệm | bộ nhớ đệm rules / purge |
Origin Cache-Control | phản hồi các header | của bạn origin hoặc của bạn Worker |
HTMLRewriter handler API
getAttribute/setAttribute— đọc/đặt tag thuộc tính (e.g., canonicalhref)prepend/append— thêm markup bên trong element (e.g., tag vàohead)setInnerContent— replace element nội dungreplace— đổi element hoàn toàn
Fast facts
- CPU limit: 10 ms free / 30 ms paid (wall-clock
fetchchờ không count). - Cloaking = nội dung khác biệt by requester identity to manipulate thứ hạng — không “the Worker read the UA.” (bản dịch) «đó Worker đọc đó UA.»
- Bot Fight Chế độ chạy bên ngoài đó WAF Ruleset Engine — cho phép-rules không reach điều này; thay đổi đó chế độ.
- Verify một Worker thay đổi: GSC Kiểm thử Trực tiếp URL +
CF-Cache-Statusheader. - Google khuyến nghị
ETag; matching ETag → trả về 304 với không thân phản hồi.
Verify Điều gì Googlebot thực ra đã nhận — sau khi Worker deploy
Fetch as Googlebot và diff (shell)
# Fetch as a normal browser
curl -sS -A "Mozilla/5.0" https://example.com/page/ -o user.html -D user.headers
# Fetch as Googlebot's UA
curl -sS -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" \
https://example.com/page/ -o bot.html -D bot.headers
# The bodies should be identical — a diff is a cloaking red flag
diff user.html bot.html && echo "identical (good)"
# Check what cache layer served it
grep -i "cf-cache-status" bot.headers # HIT / MISS / EXPIREDxác nhận thực Googlebot (UA strings là trivially spoofed) — reverse + forward DNS
# 1) Reverse DNS the IP from your logs — must end in googlebot.com / google.com
host 66.249.66.1
# 2) Forward DNS that hostname back — must resolve to the same IP
host crawl-66-249-66-1.googlebot.comnếu either kiểm tra fails, nó không phải Googlebot. Bạn có thể cũng match so với Google published Googlebot.json ranges.
đọc injected tags out của được kết xuất HTML (DevTools console)
// Paste into the browser console on the live page to confirm your Worker's injection
[...document.querySelectorAll('link[rel="canonical"]')].map(l => l.href);
[...document.querySelectorAll('link[rel="alternate"][hreflang]')]
.map(l => `${l.hreflang} -> ${l.href}`);
[...document.querySelectorAll('script[type="application/ld+json"]')].map(s => s.textContent);** minimal ETag / 304 ngắn-circuit bên trong Worker**
export default {
async fetch(request, env, ctx) {
const res = await fetch(request);
const body = await res.text();
const etag = `"${await sha1(body)}"`; // your hash of choice
if (request.headers.get("If-None-Match") === etag) {
return new Response(null, { status: 304 }); // no body, per Google's guidance
}
const headers = new Headers(res.headers);
headers.set("ETag", etag);
return new Response(body, { ...res, headers });
},
}; Tools cho building và verifying Workers SEO
- Wrangler — Cloudflare’s CLI cho developing, versioning, và deploying Workers (route scoping, environments, rollback, secrets). Đây là nơi deployment hygiene lives.
- HTMLRewriter — được xây dựng-trong streaming HTML parser; API cho all thân phản hồi rewriting.
- Workers KV / D1 — storage cho chuyển hướng các bảng và config (KV cho mấu chốt lookups, D1 cho SQL).
- GSC URL Inspection → Kiểm thử Trực tiếp URL — fetches và renders trang as Google so Bạn có thể xác nhận injected canonical/hreflang/JSON-LD thực ra landed.
CF-Cache-Statusheader (quacurl -Ihoặc DevTools Network) — tells bạnHIT/MISS/EXPIREDso bạn know liệu bạn’re looking tại được lưu đệm copy hoặc fresh Worker phản hồi.- IndexNow — ping Bing và khác participating engines instant Worker-driven thay đổi ships.
- máy chủ log analysis — ground truth cho liệu thực (verified) Googlebot là reaching của bạn Worker routes tại all.
Audit Worker Đối với SEO consistency và bộ nhớ đệm behavior
Review this Cloudflare Worker fetch handler as an SEO edge change. Trace the request,
response-header, body-rewrite, redirect, and caching paths. Return:
1. Every branch based on user agent, bot status, cookie, geography, or request header
2. Whether Googlebot/no-cookie traffic can receive different indexable content or SEO tags
3. HTMLRewriter selectors that fail when a tag is missing or create duplicates
4. Redirect lookups that can chain, loop, or fall through unexpectedly
5. Each use of the Cache API, Cloudflare edge cache behavior, and origin Cache-Control—kept as separate layers
6. Cache keys that could mix variants or preserve a stale canonical/robots/header change
7. A minimal test matrix for users, verified bots, cache hit/miss, and representative URLs
Apply the same content and SEO logic to bots and users. Flag intentional personalization
for human review rather than calling it cloaking automatically. Do not invent Cloudflare
settings, bindings, routes, cache rules, or origin behavior that are not in my input.
Worker code, bindings, routes, and relevant cache/security configuration:
[PASTE INPUT]Review HTMLRewriter thay đổi trước khi deployment
Audit this HTMLRewriter implementation for one SEO task: [CANONICAL / HREFLANG / JSON-LD].
Check whether it handles existing, missing, and duplicate elements; produces valid absolute
URLs or JSON; applies to the intended route cohort; and behaves identically for every
requester. Then return corrected code plus raw-response and rendered-response tests.
Do not add product, organization, locale, URL, or schema facts that are not supplied.
Code and expected per-route output:
[PASTE INPUT] Tự kiểm tra: Cloudflare Workers SEO
Five nhanh các câu hỏi on đang làm kỹ thuật SEO với Cloudflare Workers. Pick câu trả lời cho mỗi, sau đó kiểm tra.
các tài nguyên worth của bạn time
My related writing
- 11 Types của Các chuyển hướng & của họ SEO Impact (Ahrefs) — chuyển hướng options on Cloudflare, và Vì sao I ưu tiên edge-level các chuyển hướng over máy chủ-level.
- Người mới bắt đầu Hướng dẫn để kỹ thuật SEO (Ahrefs) — nơi edge thay đổi fit trong wider picture.
- JavaScript SEO Các vấn đề & Thực hành tốt nhất (Ahrefs) — rendering side, relevant để bất kỳ pre-render-on—edge temptation.
My speaking
- Fine-Tune của bạn kỹ thuật SEO, trang Speed, và Security (Marketing Speak interview) — nơi I walk qua sử dụng Cloudflare Workers để rewrite trước khi người dùng bao giờ sees trang, và offloading các chuyển hướng để CDN. Spoken-word interview transcript; treat cụ thể phrasings as paraphrase thay vì chính xác quotes.
từ khoảng ngành
- Diving vào kỹ thuật SEO sử dụng Cloudflare Workers — Igor Krestov (SALT.agency) & Dan Taylor on Cloudflare blog; origin của filter-chain (yêu cầu/phản hồi/thân phản hồi) pattern.
- Điều gì là edge SEO? (công cụ tìm kiếm Land) — concept điều này bài viết parent hub covers, trong thứ ba-party form.
- Edge SEO (Dan Taylor) — từ person ai coined term off Cloudflare Workers research.
- HTMLRewriter (Cloudflare tài liệu) — canonical reference cho thân phản hồi-rewriting API.
- Cách bộ nhớ đệm hoạt động (Cloudflare tài liệu) — untangles bộ nhớ đệm API từ edge bộ nhớ đệm.
- Các chuyển hướng cho AI Training (Cloudflare blog) — edge-enforced canonicalization as sản phẩm feature, hữu ích contrast để hand-rolling nó trong Worker.
Go deeper / sideways
- Edge SEO — parent hub: chung concept, nền tảng so sánh, Snippets so với. Workers, cloaking rule trong đầy đủ.
Nhật ký thay đổi
Đã cập nhật 8 thg 8, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Đã cập nhật 18 thg 7, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.