Dev bàn giao website xong, hai tuần sau bên SEO gửi lại một file audit dài 40 dòng. Phần lớn trong đó là những thứ có thể bắt được ngay lúc review pull request cuối cùng, nếu biết nhìn vào đâu.
Đây là checklist mình dùng trước khi bàn giao một site cho người làm SEO. Không bàn chuyện từ khoá hay nội dung, chỉ những gì nằm trong code và cấu hình.
1. HTML ban đầu có đủ nội dung chưa
Chạy thử:
curl -s https://example.com/san-pham/abc | grep -o '<h1[^>]*>.*</h1>' curl -s https://example.com/san-pham/abc | grep -c '<p' Nếu h1 hoặc phần mô tả chỉ xuất hiện sau khi JavaScript chạy, Google vẫn có thể render, nhưng chậm hơn và dễ lệch. Các bot AI thì nhiều con không render JS. Trang quan trọng nên có nội dung chính ngay trong HTML server trả về.
2. Mỗi trang một title, một meta description, một h1
Lỗi hay gặp nhất khi dùng layout chung: mọi trang danh mục mang cùng một title lấy từ config. Kiểm nhanh bằng cách crawl sitemap rồi đếm trùng:
for u in $(curl -s https://example.com/sitemap.xml | grep -o '<loc>[^<]*' | cut -c6-); do curl -s "$u" | grep -o '<title>[^<]*' done | sort | uniq -c | sort -rn | head Số đầu dòng lớn hơn 1 là có trang trùng title.
3. Canonical trỏ đúng chính nó
- Trang có tham số lọc (
?color=red) canonical về trang gốc. - Trang gốc canonical về chính URL đó, có
https, đúng có hay không có dấu/cuối như cấu hình thật. - Không để canonical trỏ về trang chủ cho tất cả, lỗi này hay đến từ một biến môi trường để trống.
4. Redirect: một bước, đúng mã
curl -sIL http://www.example.com/trang-cu | grep -E '^(HTTP|location)' Từ http, www, đường dẫn cũ sang URL cuối nên là một bước 301. Chuỗi 3–4 lần redirect hoặc 302 cho thay đổi vĩnh viễn là thứ bên SEO sẽ phải nhờ dev sửa lại.
5. robots.txt và noindex của môi trường staging
Đây là lỗi tốn kém nhất mà mình từng thấy: site lên production vẫn mang Disallow: / hoặc <meta name="robots" content="noindex"> từ staging. Thêm một bước vào CI:
curl -s https://example.com/robots.txt curl -s https://example.com/ | grep -i 'name="robots"' 6. Sitemap chỉ chứa URL trả 200 và được index
Sitemap không nên có URL redirect, URL 404 hay trang đã gắn noindex. Nếu sitemap sinh tự động, kiểm tra nó có loại bỏ các trang nháp và trang lọc không.
7. Trang lỗi trả đúng mã 404
Trang "Không tìm thấy" đẹp nhưng trả mã 200 sẽ thành trang trùng lặp mỏng. curl -sI https://example.com/khong-ton-tai phải ra 404.
8. Ảnh có alt, có kích thước
width/height (hoặc aspect-ratio) giúp giảm nhảy layout. alt mô tả ảnh, không nhồi từ khoá. Ảnh trang chủ nên có loading="eager", ảnh dưới màn hình đầu thì lazy.
9. Schema khớp với chữ trên trang
Nếu có JSON-LD Organization hoặc Product, tên, giá, địa chỉ trong đó phải trùng với phần người đọc thấy. Mình có ghi chi tiết phần này ở bài Entity SEO: ví dụ schema Organization và Person trong HTML.
10. Search Console và GA4 đứng tên chủ website
Không phải code, nhưng nên nằm trong biên bản bàn giao: ai là owner của Search Console, GA4, Tag Manager. Dev hoặc agency giữ quyền owner rồi rời dự án là chuyện mất vài tuần để gỡ.
Checklist này nằm ở đâu trong một dự án SEO
Mười mục trên chỉ là phần nền kỹ thuật. Một dự án SEO tổng thể thường còn cấu trúc trang theo nhu cầu tìm kiếm, nội dung, uy tín, SEO cho AI và đo chuyển đổi, và phần kỹ thuật được làm đầu tiên vì các phần sau đều dựa vào nó. Nếu bạn là dev muốn hiểu bên SEO sẽ làm gì tiếp theo trong 90 ngày đầu, có thể xem thêm roadmap 90 ngày theo 6 trụ.
Bạn hay bị bên SEO trả lại lỗi nào nhất sau khi bàn giao? Mình muốn bổ sung vào danh sách.
