Hồ sơ dự án · cập nhật 21·08·2026

SEO OS — hệ điều hành vận hành marketing

Không phải công cụ báo số liệu. Là một vòng lặp khép kín: phát hiện bất thường → tìm nguyên nhân có bằng chứng → đề xuất việc cụ thể → giao người làm → máy kiểm chứng → đo kết quả → ghi nhớ để lần sau quyết định tốt hơn.

10/10 PRD hoàn tất 176 test case Quyết định 1·2·5 đã chốt Quyết định 3·4·6 còn treo Go · 7 microservice Chưa có code
01

Vấn đề và khác biệt

Công cụ SEO hiện có trả lời “số liệu hiện tại là bao nhiêu”. Câu hỏi thật của người vận hành là “vì sao nó đổi, nên làm gì, và việc đã làm có hiệu quả không”.

Khoảng cách đó khiến đội ngũ marketing làm việc theo cảm tính: thấy tụt hạng thì viết lại nội dung, viết xong thì không biết có tác dụng hay không, tháng sau gặp lại tình huống tương tự thì lại đoán từ đầu. Công sức tích luỹ nhưng kinh nghiệm thì không.

Câu hỏiCông cụ thông thườngHệ thống này
Số liệu là bao nhiêu?Trả lời tốtTrả lời tốt
Vì sao nó thay đổi?Một “điểm SEO” không giải thích được5 nhánh chẩn đoán, mỗi nhánh có điểm bằng chứng riêng, bấm ra được dữ liệu gốc
Nên làm gì trước?Danh sách lỗi dài hàng trăm dòngViệc nhỏ nhất có bằng chứng mạnh nhất, xếp theo giá trị kinh doanh
Việc đó có hiệu quả không?Không trả lờiSo với nhóm đối chứng, có ngưỡng đủ dữ liệu, 6 mức kết quả
Lần sau có khôn hơn không?KhôngBộ nhớ tình huống → chẩn đoán → việc → kết quả
Tài sản không sao chép được

Đối thủ sao chép được giao diện và danh sách tính năng. Cái không sao chép được là lịch sử dữ liệu tích luỹ, và bộ nhớ “việc gì đã hiệu quả trong hoàn cảnh nào”. Vì vậy lưu lịch sử bất biến là yêu cầu từ ngày đầu, không phải tính năng thêm sau.

02

Vòng lặp lõi

Toàn bộ sản phẩm là một vòng lặp. Mọi module tồn tại để phục vụ một mắt xích trong đó.

DỮ LIỆU TÍN HIỆU CHẨN ĐOÁN BẰNG CHỨNG HÀNH ĐỘNG THAY ĐỔI KẾT QUẢ BỘ NHỚ

Ba mắt xích tô đậm là phần khó nhất và cũng là phần tạo giá trị. Phần còn lại là công việc tích hợp — tốn sức nhưng ai cũng làm được.

Vòng lặp này không riêng của SEO. Quảng cáo, email, mạng xã hội có cấu trúc y hệt: dữ liệu khác, tín hiệu khác, nhưng khung thì một. Vì vậy các bảng lõi được thiết kế trung lập với kênh ngay từ V1 — thêm kênh về sau là thêm dữ liệu đăng ký, không phải nhân bản module.

03

Kịch bản: một tình huống từ đầu đến cuối

Website bán phần mềm SEO. Sau một đợt chỉnh menu, trang sản phẩm chủ lực tụt hạng. Đây là toàn bộ những gì hệ thống làm — không có bước nào do người phải nhớ.

Ngày 0
Thiết lập Nhập tên miền, nối Google Search Console. Máy đọc website, đoán công ty bán 4 nhóm sản phẩm. Chủ doanh nghiệp xác nhận và chấm điểm: phần mềm SEO 100, thiết kế web 80. Xong trong 15 phút.
Ngày 1–2
Hiểu thị trường Lấy truy vấn thật từ Search Console (miễn phí) trước, rồi mới mở rộng bằng nguồn tính tiền. Gom thành cụm bằng ngữ nghĩa, xác nhận cụm bằng cách lấy mẫu 3 từ khoá mỗi cụm — không phải cả 5.000.
Ngày 3
Kế hoạch nội dung Đối chiếu nhu cầu với các trang đang có. Cụm “phần mềm SEO” đã có trang phù hợp → giữ nguyên URL mục tiêu, ghi nhận thiếu phần bảng giá. Không tạo trang trùng ý định.
Ngày 12
Phát hiện tín hiệu Trang sản phẩm rơi từ hạng 5 xuống hạng 11. Hệ thống kiểm tra phạm vi trước: chỉ một trang bị ảnh hưởng, không phải sự cố toàn website.
Ngày 12
Chẩn đoán — 5 nhánh, không nhánh nào bỏ qua Kỹ thuật 5 điểm (khoẻ) · Nội dung 62 · Liên kết nội bộ 84 · Liên kết ngoài 70 · Thị trường 30. Kết luận: rào cản chính là liên kết nội bộ, giảm từ 18 xuống 7 đường dẫn ngay sau đợt chỉnh menu. Chưa nên viết lại nội dung.
Ngày 12
Đề xuất việc — nhỏ nhất, bằng chứng mạnh nhất “Khôi phục 8 liên kết nội bộ trỏ về trang sản phẩm.” Mức P1. Kèm sẵn: trang nguồn nào, từ neo gợi ý lấy từ truy vấn thật. Chốt trước cách đo: chỉ số chính là thứ hạng cụm, chỉ số canh chừng là lượt đăng ký dùng thử. Chặn mọi thay đổi khác trên trang này.
Ngày 13
Duyệt và giao việc Quản lý SEO duyệt. Hệ thống sinh việc cho nhân viên, kèm nguyên nhân, dữ liệu, và danh sách phần không được sửa để không làm nhiễu phép đo.
Ngày 14
Máy kiểm chứng Nhân viên bấm xong — chưa đủ. Máy tự vào website đếm. Tìm thấy 5/8 link, báo thiếu đúng 3 trang nào. Sau khi bổ sung: đủ 8 → ghi nhận thay đổi đã lên production, mở cửa sổ quan sát.
Ngày 35
Đánh giá kết quả Thứ hạng cụm 11,2 → 7,6 · lượt hiển thị +28% · đăng ký dùng thử +12%. So với nhóm trang tương tự không bị đụng vào để loại trừ biến động thị trường. Kết luận: có vẻ tốt, độ tin cậy trung bình. Ghi vào bộ nhớ.
Đầu tháng
Báo cáo “Khách tiềm năng từ tìm kiếm tăng 17%, chủ yếu từ nhóm phần mềm SEO. 18 việc hoàn tất: 6 tốt, 1 xấu, 5 đang đo, 6 chưa kết luận được.” Số liệu chốt cứng theo mốc thời gian — mở lại sau 2 tháng vẫn ra đúng con số đó.
Lần sau
Hệ thống đã khôn hơn Gặp trang bán hàng khác cũng mất liên kết nội bộ, hệ thống hiện tiền lệ: “3 lần trước làm việc này — 2 lần tốt, 1 lần không đổi.” Người quyết định có cơ sở, không đoán.
Chi tiết quyết định cả sản phẩm

Ở ngày 12, hệ thống chỉ đề xuất một việc dù cả liên kết ngoài cũng yếu. Lý do: nếu đổi hai thứ cùng lúc rồi thứ hạng tăng, không ai biết thứ nào có tác dụng — và bộ nhớ học được từ đó là bộ nhớ sai. Kỷ luật “mỗi lần một biến” là thứ biến sản phẩm thành hệ thống biết học, thay vì một danh sách việc cần làm.

04

Mười một bước, mười module

BướcModuleLàm gìTC
1Business ProfileBiết công ty bán gì, cho ai, cái gì đáng tiền14
2Market MapKhách đang tìm gì, nhóm nào đáng làm16
3Content & URL PlanGiữ · bổ sung · tạo mới · gộp · đổi hướng · hoãn15
4Diagnosis Engine5 nhánh, chấm điểm bằng chứng, chọn rào cản chính18
5Action EngineViệc cụ thể, ưu tiên, chống thay nhiều biến cùng lúc20
6Outcome EngineĐối chứng, đủ dữ liệu mới kết luận, ghi bộ nhớ20
7WorkflowGiao việc, duyệt, máy kiểm chứng đã làm thật17
8ReportingBốn cách nhìn theo vai trò, số liệu chốt cứng16
9AI GatewayAI đứng sau bộ kiểm tra, không bịa số, không ghi dữ liệu20
10Nền tảng thương mạiTài khoản, hạn mức, chi phí, thanh toán20
11Phạm vi V1Chốt làm gì trước, hoãn gì lại176
05

Công nghệ

Backend Go, bảy service. Nguyên tắc cắt service: theo ranh giới giao dịch, không theo tên bước nghiệp vụ.

LớpChọnVì sao
Mô hìnhWeb SaaS multi-tenantBước 7 cần nhiều người cùng làm việc — ứng dụng cài máy không làm được
BackendGo 1.23 · 7 microserviceThu thập dữ liệu, báo cáo và vòng lặp lõi có nhịp vận hành khác hẳn nhau, tách để scale riêng
Cơ sở dữ liệuPostgreSQL 16 + pgvectorMột cụm, mỗi service một schema và một tài khoản riêng — ranh giới ép bằng quyền, không bằng thoả thuận
Truy cập dữ liệupgx + sqlc, không ORMTruy vấn của phần chẩn đoán và đo kết quả quá đặc thù để giao cho ORM
Giao tiếpgRPC + outbox trên PostgresSự kiện ghi cùng transaction với dữ liệu nghiệp vụ — không mất sự kiện, không cần hai pha
Hàng đợiriver (Postgres)Đã có Postgres; thêm hạ tầng chỉ khi thật cần
Contractbuf · proto · registry YAMLMột kho nguồn sinh ra mã Go, SQL và TypeScript. Không ai khai lại lần thứ hai
FrontendReact · Vite · TanStack QueryNhiều màn hình lặp cấu trúc “danh sách → chi tiết → bằng chứng”
Thu thập webGo colly/chromedp dự phòngTự viết. Đây là dữ liệu nền, phụ thuộc bên thứ ba ở đây là rủi ro
AIService cổng riêngLà service để không thể đi vòng. Model rẻ cho phân loại, model mạnh cho suy luận
Quan sátOpenTelemetry · GrafanaBảy service thì truy vết xuyên service là bắt buộc, không phải thêm sau
Triển khaiDocker Compose · VPS · GitHub ActionsKubernetes khi cần scale riêng. Quy trình: nhánh tính năng → develop → máy chủ thử → main → production

Bảy service — cắt theo ranh giới giao dịch

ServiceSở hữuVì sao đứng riêng
identityTổ chức, dự án, quyền, hạn mức, chi phíRanh giới bảo mật của cả hệ thống
collectorThu thập web, Search Console, thứ hạng, từ khoáNặng vào ra, chạy nền, giới hạn tốc độ theo nhà cung cấp
knowledgeHồ sơ doanh nghiệp, bản đồ thị trường, kế hoạch nội dungChạy theo chu kỳ tuần/tháng
intelligenceTín hiệu → chẩn đoán → hành động → kết quả → bộ nhớBốn bước phải ghi nguyên tử, tách ra là phải dựng saga
workflowViệc, duyệt, kiểm chứng, nhật kýNhịp do con người điều khiển
reportingChỉ số, bản báo cáo chốt cứngTruy vấn nặng, tách để không làm chậm đường ghi
ai-gatewayTác vụ AI, model, nhật ký gọi, khoá của kháchLà chokepoint bắt buộc — dựng thành service để không đi vòng được
Quyết định quan trọng nhất trong bảng trên

Chẩn đoán, hành động và đo kết quả nằm chung một service. Ba thứ phải ghi trong cùng một giao dịch: hành động và hồ sơ đo · ghi thay đổi và khoá cửa sổ quan sát · kết luận và nhả khoá. Tách ra thì mỗi cái thành một saga, và saga hỏng giữa chừng để lại dữ liệu sai mà không ai phát hiện. Chấp nhận một service lớn còn hơn ba saga cho ba câu lệnh giao dịch.

RULE #1 được ép bằng máy, không bằng nhắc nhau

Bảy service là bảy cơ hội để một enum bị định nghĩa lần thứ hai rồi hai bản trôi khỏi nhau. Trong một khối mã duy nhất trình biên dịch bắt được; qua ranh giới mạng thì không ai bắt. Vì vậy mỗi quy tắc có một cổng kiểm tra tự động, hỏng thì dừng build.

Một nguồn contract

Enum, đăng ký loại hành động, định nghĩa chỉ số khai một chỗ; mã Go, SQL và TypeScript đều sinh ra. Máy kiểm tra mã sinh khớp nguồn.

Cách ly dữ liệu

Mọi truy vấn bắt buộc mang mã dự án; mỗi service một tài khoản cơ sở dữ liệu chỉ thấy phần của mình. Có bài kiểm tra tìm đường lách.

Lịch sử bất biến

Quyền sửa và xoá bị thu hồi ngay ở lần tạo bảng đầu tiên. Sai thì ghi bản ghi mới.

Thư viện chung không chứa nghiệp vụ

Chỉ cơ chế: xác thực, ghi nhật ký, giao dịch. Công thức chấm điểm thuộc về service sở hữu nó — nếu không, đổi một dòng phải triển khai lại tất cả.

Chẩn đoán phải có bằng chứng

Không tồn tại kết luận nào không trỏ ngược được về dữ liệu gốc. Ép ở tầng ghi.

Chi phí đo được

Việc ghi mức sử dụng nằm bên trong lớp gọi nhà cung cấp — nơi gọi không thể quên.

06

Ai dùng, dùng để làm gì

Người dùngViệc hằng ngàyGiá trị nhận được
Agency SEO
khách chính đề xuất
Quản lý nhiều dự án, giao việc cho đội, gửi báo cáo tháng cho kháchChuẩn hoá quy trình, báo cáo đứng vững khi khách hỏi lại từng con số, chứng minh được việc mình làm có kết quả
Quản lý SEO nội bộMở app buổi sáng, xem hôm nay việc gì gấpKhông phải tự dò lỗi trong hàng trăm dòng; hệ thống chỉ ra rào cản chính có bằng chứng
Người viết nội dungNhận yêu cầu bổ sung nội dungBiết viết cho truy vấn nào, đối thủ đang phủ gì, và phần nào không được sửa
Lập trình viênNhận việc kỹ thuậtYêu cầu nói rõ hiện trạng, kỳ vọng, và cách xác minh
Chủ doanh nghiệpXem một màn hình mỗi thángBốn câu trả lời: tốt hay xấu · nhờ đâu · đáng lo gì · đội ngũ đang làm gì
07

Mô hình kinh doanh

Chi phí chia ba lớp theo nguyên tắc ai tự mua đượcđộ biến động. Dữ liệu thứ hạng và AI chẩn đoán do nền tảng trả — khách không tự mua được, và chi phí dự đoán được. AI viết nội dung là khoản đắt và biến động gần 20 lần: gói cao bao sẵn một hạn mức, ai cần nhiều hơn thì tự mang khoá riêng.

GóiGiá / thángDự ánChi phí ước tínhBiên gộp
Starter590.000đ1~60.000đ~90%
Pro1.490.000đ3~400.000đ~73%
Agency3.990.000đ10~1.340.000đ~66%
Cảnh báo về các con số trên

Đơn giá nhà cung cấp là ước lượng để kiểm tra mô hình, chưa có báo giá thật. Nếu giá thật cao hơn 50%, gói Agency rơi xuống khoảng 50% biên. Khảo giá ít nhất hai nhà cung cấp là việc đang chặn quyết định công bố giá.

Vì sao phải phân bổ chi phí theo mức quan trọng

Kiểm tra thứ hạng 500 từ khoá mỗi ngày tốn khoảng 390.000đ/tháng cho một website — gần bằng cả gói Pro. Trang bán hàng kiểm tra hằng ngày, bài viết cũ kiểm tra hằng tuần: còn 89.000đ. Giảm 77% chi phí, gần như không mất giá trị chẩn đoán. Đây là điều kiện sống của mô hình kinh doanh, không phải tối ưu kỹ thuật.

08

Kế hoạch xây dựng

Thứ tự bắt buộc theo chuỗi. Không xây phần chẩn đoán khi lịch sử dữ liệu chưa bất biến — không có lịch sử thì không có bằng chứng.

MốcNội dungHoàn thành khi
M0.1Kho contract + sinh mãĐổi một dòng khai báo → mã Go, SQL, TypeScript đổi theo; CI kiểm mã sinh khớp nguồn
M0.2Thư viện chung + service mẫuCó bài kiểm tra chứng minh không lách được cách ly dữ liệu
M0.3identityTài khoản, tổ chức, dự án, quyền, hạn mức
M1Thu thập dữ liệuSearch Console, thu thập web, thứ hạng, từ khoá, liên kết
M2Lịch sửChỉ ghi thêm, quyền sửa/xoá đã bị thu hồi
M3Tín hiệu15 loại, chỉ phát hiện, không kết luận
M4Chẩn đoánMọi kết luận trỏ được về dữ liệu gốc
M5Hành động6 loại, có cách đo trước khi làm, chống đổi nhiều biến
M6Vận hànhGiao việc, duyệt, máy kiểm chứng
M7Kết quảĐối chứng, ngưỡng đủ dữ liệu, ghi bộ nhớ
M8Giao diện + báo cáoNgười dùng mở app biết hôm nay làm gì
Khối lượng V1105–140

tuần-người, đã cộng chi phí microservices

2–3 lập trình viên11–16 tháng

theo khối lượng trên

4–5 lập trình viên7–10 tháng

hoặc cắt phạm vi để rút ngắn

Cắt được và không cắt được

Cắt được: phần tìm cơ hội mới rút gọn · ba quyết định trang phức tạp để sau · báo cáo chỉ giữ tóm tắt điều hành · bỏ nhánh chẩn đoán liên kết ngoài · thanh toán làm tay lúc đầu.

Không được cắt

Cách ly dữ liệu giữa các khách · lịch sử bất biến · bằng chứng cho mỗi chẩn đoán · định cách đo trước khi làm · đo kết quả. Cắt những thứ này là cắt chính sản phẩm — phần còn lại chỉ là một bảng số liệu.

09

Rủi ro và quyết định còn treo

Rủi roVì sao nguy hiểmCách chặn
Chi phí vượt giá bánChi phí tăng theo từng khách; bán càng nhiều lỗ càng lớnGhi sổ chi phí từ V1 · phân bổ theo mức quan trọng · cầu chì trần chi phí tự ngắt
Xây 9 tháng không có khách thậtXây sai thứ, phát hiện quá muộn3–5 dự án thí điểm chạy trên website thật từ tháng thứ hai
Phần lõi thành vài câu điều kiệnMất lợi thế, sản phẩm thành bảng số liệuBằng chứng và cách đo là ràng buộc ở tầng dữ liệu, không phải quy ước
Lộ dữ liệu giữa hai kháchMột lần là mất toàn bộ uy tínHai lớp chặn cộng bài kiểm tra tìm đường lách
AI bịa số liệuMất uy tín nhanh hơn mọi lỗi khácMáy soát: mọi con số trong câu AI viết phải có trong dữ liệu gốc
Phạm vi phình16 hạng mục, đội nhỏBảng cắt phạm vi quyết định trước khi bắt đầu, không phải giữa đường

Ba quyết định đang chờ

Quyết địnhChặn việc gìKhuyến nghị
Khách chính là agency hay đội nội bộThứ tự ưu tiên tính năng vận hành và báo cáoAgency — trả theo số dự án, doanh thu mỗi khách cao hơn
Nhà cung cấp dữ liệu thứ hạngCông bố giáSo ít nhất hai nhà; lớp trừu tượng bắt buộc dù chọn ai
Tự viết bộ thu thập webChi phí và mức kiểm soátTự viết — đây là dữ liệu nền của toàn hệ thống
10

Đang có gì

Tài liệu đặc tả10 / 10

Mỗi bản có luồng, lược đồ dữ liệu, giao diện lập trình, tiêu chí nghiệm thu, bảng rủi ro

Kịch bản kiểm thử176

Kèm 113 tiêu chí nghiệm thu, xuất ra Excel bằng một lệnh

Mã nguồn0

Chưa bắt đầu — chờ ba quyết định ở mục 09

Ba việc kế tiếp, theo thứ tự