SEO Checklist Bài Blog: Đủ Bộ Trước Khi Publish
Trước khi nhấn nút “Publish”, mỗi bài blog cần pass qua một checklist SEO - không phải để chiều Google, mà để đảm bảo bài được hiển thị đúng trên SERP, đúng khi share lên mạng xã hội, và đúng khi AI search đọc qua. Bài này liệt kê toàn bộ những gì cần có, kèm format chuẩn và giới hạn ký tự cụ thể.
Viết xong bài blog thường chiếm 90% công sức. 10% còn lại - phần SEO kỹ thuật - lại hay bị bỏ qua hoặc làm qua loa vì “content tốt là đủ rồi.” Nhưng thực tế là một bài blog thiếu meta description sẽ bị Google tự ý tạo đoạn trích ngẫu nhiên. Thiếu OG banner thì khi share lên Facebook hay LinkedIn chỉ hiện một ô vuông trắng. Thiếu schema thì FAQ không bao giờ được Google chọn vào Featured Snippet. Checklist dưới đây giải quyết hết từng điểm đó.
Tổng Quan: Bài Blog Cần Những Gì?
Một bài blog đạt chuẩn SEO bao gồm 7 nhóm yếu tố:
- SEO Title - tiêu đề hiển thị trên Google
- Meta Description - mô tả xuất hiện dưới tiêu đề trên SERP
- URL / Slug - đường dẫn trang
- Open Graph (OG) - dữ liệu hiển thị khi share mạng xã hội (bao gồm OG banner)
- Heading Structure - cấu trúc H1, H2, H3
- Schema Markup - dữ liệu có cấu trúc cho Google đọc
- Các yếu tố bổ sung - canonical, hreflang, alt text, internal links
1. SEO Title (Thẻ Title)
SEO title là tiêu đề xuất hiện trên tab trình duyệt và trên trang kết quả tìm kiếm Google (SERP). Đây là yếu tố on-page quan trọng nhất.
Format chuẩn:
[Từ khóa chính] - [Mô tả ngắn] | [Tên thương hiệu]
Ví dụ:
SEO Checklist Bài Blog: Đủ Bộ Trước Khi Publish (2026) | NateCue
Quy tắc:
- Độ dài: 50-60 ký tự (kể cả tên thương hiệu). Dài hơn bị cắt hiển thị trên SERP
- Từ khóa chính xuất hiện sớm, ưu tiên trong 30 ký tự đầu
- Không nhét keyword (keyword stuffing) - đọc phải tự nhiên
- Mỗi bài có title duy nhất - không copy từ bài khác
- Có yếu tố kéo click: số liệu, năm (2026), từ mạnh (“Đầy đủ”, “Chuẩn”, “Từ A-Z”)
Lưu ý: SEO title và H1 (tiêu đề trong bài) có thể khác nhau - và thường nên khác để SEO title tối ưu cho SERP còn H1 tối ưu cho người đọc.
2. Meta Description
Meta description là đoạn mô tả ngắn xuất hiện phía dưới tiêu đề trên SERP. Không trực tiếp ảnh hưởng ranking nhưng ảnh hưởng rất lớn đến CTR (Click-Through Rate).
Format chuẩn:
[Từ khóa chính] + [Giải thích ngắn bài viết làm được gì] + [CTA nhẹ]
Ví dụ:
Checklist SEO đầy đủ cho bài blog: SEO title, meta description, OG banner, schema và URL chuẩn - format cụ thể kèm giới hạn ký tự để bạn publish đúng từ đầu.
Quy tắc:
- Độ dài: 140-160 ký tự. Dưới 120 ký tự bị Google coi là quá ngắn, dài hơn 160 bị cắt
- Chứa từ khóa chính (Google in đậm từ khóa khớp với truy vấn tìm kiếm)
- Mô tả đúng nội dung trang - không mislead để tăng click ảo
- Có yếu tố CTA nhẹ: “Xem đầy đủ”, “Tìm hiểu ngay”, “Cập nhật 2026”
- Mỗi bài có meta description duy nhất
- Nếu bỏ trống, Google sẽ tự tạo - thường chất lượng kém hơn viết tay
3. URL / Slug
URL là đường dẫn đến bài viết. Một URL tốt giúp Google hiểu chủ đề trang và giúp người dùng đọc được ý nghĩa trước khi click.
Format chuẩn:
domain.com/blog/tu-khoa-chinh-bai-viet
Quy tắc:
- Ngắn gọn: 3-6 từ, chỉ giữ từ khóa chính, bỏ stop words (“là”, “và”, “của”, “the”, “a”)
- Dùng dấu gạch ngang (
-) phân tách các từ, không dùng gạch dưới (_) hay khoảng trắng - Chỉ dùng chữ thường, không dùng ký tự đặc biệt, không dấu tiếng Việt
- Không thêm ngày tháng vào URL (gây khó cập nhật sau này)
- Không thay đổi URL sau khi publish - sẽ mất toàn bộ backlink và SEO đã tích lũy
- Ví dụ tốt:
/seo-checklist-bai-blog; Ví dụ xấu:/blog/2026/04/21/seo-checklist-cho-bai-blog-article-truoc-khi-publish
4. Open Graph (OG) - Dữ Liệu Khi Share Mạng Xã Hội
Open Graph là bộ thẻ meta quy định cách bài viết hiển thị khi được share lên Facebook, LinkedIn, Twitter/X, Slack, Discord, v.v. Đây là phần hay bị bỏ qua nhất - và thiếu nó thì preview khi share sẽ rất tệ.
OG Title
<meta property="og:title" content="SEO Checklist Bài Blog: Đủ Bộ Trước Khi Publish (2026)" />
- Độ dài: 60-90 ký tự (không gian hiển thị rộng hơn SEO title)
- Có thể giống hoặc khác SEO title - nhưng phải hấp dẫn khi nhìn trên feed mạng xã hội
OG Description
<meta property="og:description" content="Checklist đầy đủ SEO cho bài blog: title, meta, OG banner, schema, URL - kèm format chuẩn và giới hạn ký tự cụ thể." />
- Độ dài: 100-200 ký tự
- Phục vụ mục tiêu social sharing - viết để người đang scroll feed muốn click
OG Image (OG Banner)
<meta property="og:image" content="https://domain.com/images/seo-checklist-og.jpg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
- Kích thước chuẩn: 1200 x 630 px (tỉ lệ 1.91:1) - dùng cho hầu hết mạng xã hội
- Dung lượng: dưới 1MB, định dạng JPG hoặc PNG
- Nội dung ảnh: tiêu đề bài viết + brand/logo đủ lớn để đọc được trên mobile
- Không dùng ảnh có nhiều text nhỏ - thumbnail hiển thị rất nhỏ trên feed
- Mỗi bài có OG image riêng - không dùng ảnh generic cho toàn site
- Kiểm tra preview: Facebook Sharing Debugger hoặc LinkedIn Post Inspector
Các thẻ OG bổ sung
<meta property="og:type" content="article" />
<meta property="og:url" content="https://domain.com/blog/seo-checklist-bai-blog" />
<meta property="og:site_name" content="NateCue" />
<meta property="article:published_time" content="2026-04-21T00:00:00Z" />
<meta property="article:author" content="https://www.facebook.com/natecue" />
-
og:type: dùngarticlecho bài blog (không phảiwebsite) -
og:url: URL canonical của trang -
article:published_time: ngày publish theo format ISO 8601
Twitter Card
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="SEO Checklist Bài Blog: Đủ Bộ Trước Khi Publish" />
<meta name="twitter:description" content="Checklist đầy đủ kèm format chuẩn và giới hạn ký tự." />
<meta name="twitter:image" content="https://domain.com/images/seo-checklist-og.jpg" />
- Dùng
summary_large_imageđể hiển thị ảnh to trên X/Twitter - Twitter image có thể dùng chung với OG image nếu cùng tỉ lệ 1200x630
5. Cấu Trúc Heading (H1, H2, H3)
Heading không chỉ là tổ chức nội dung - Google đọc heading để hiểu cấu trúc và chủ đề của bài.
Quy tắc:
- Mỗi bài chỉ có đúng 1 H1 - chứa từ khóa chính, thường là tiêu đề bài viết
- H2 là các mục lớn - dùng semantic keyword và related terms, không lặp lại từ khóa chính y chang
- H3 là mục con của H2 - chi tiết hóa thêm
- Không bỏ qua cấp: không nhảy từ H1 sang H3 mà không có H2
- Không dùng heading để trang trí (in đậm một câu bằng cách biến thành H2 là sai)
- Mỗi H2 nên có ít nhất 2-3 đoạn nội dung phía dưới
6. Schema Markup (Dữ Liệu Có Cấu Trúc)
Schema markup là code JSON-LD giúp Google hiểu bài viết sâu hơn - và là điều kiện để xuất hiện trong Rich Results (kết quả giàu định dạng trên SERP).
Article Schema (bắt buộc cho mọi bài blog)
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "SEO Checklist Bài Blog: Đủ Bộ Trước Khi Publish (2026)",
"datePublished": "2026-04-21",
"dateModified": "2026-04-21",
"author": {
"@type": "Person",
"name": "NateCue",
"url": "https://natecue.com"
},
"image": "https://natecue.com/images/seo-checklist-og.jpg",
"publisher": {
"@type": "Organization",
"name": "NateCue",
"logo": {
"@type": "ImageObject",
"url": "https://natecue.com/logo.png"
}
}
}
FAQ Schema (nếu bài có phần hỏi đáp)
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "OG banner kích thước bao nhiêu là chuẩn?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Kích thước chuẩn cho OG banner là 1200 x 630 px, tỉ lệ 1.91:1, dung lượng dưới 1MB."
}
}]
}
- Article schema có mặt trên mọi bài blog
- FAQ schema thêm vào nếu bài có
<details>hoặc phần Q&A - Kiểm tra bằng Google Rich Results Test
7. Các Yếu Tố Bổ Sung
Canonical Tag
<link rel="canonical" href="https://domain.com/blog/seo-checklist-bai-blog" />
- Luôn có canonical tag - tránh trường hợp Google index nhiều phiên bản URL (với
?utm,?ref, v.v.) - Canonical trỏ về URL chính thức, không có parameter
Hreflang (nếu bài có đa ngôn ngữ)
<link rel="alternate" hreflang="vi" href="https://domain.com/vi/seo-checklist-bai-blog" />
<link rel="alternate" hreflang="en" href="https://domain.com/en/seo-checklist-blog-article" />
<link rel="alternate" hreflang="x-default" href="https://domain.com/seo-checklist-bai-blog" />
- Thêm hreflang nếu website có nhiều ngôn ngữ - báo Google biết bài nào cho đối tượng nào
-
x-defaulttrỏ về version mặc định (thường là tiếng Anh hoặc ngôn ngữ chính)
Alt Text Hình Ảnh
- Mọi ảnh trong bài có
alt textmô tả nội dung ảnh - Alt text tự nhiên, có thể chứa từ khóa nhưng không nhồi nhét
- Ảnh không có alt text = Google “mù” với ảnh đó
Internal Links
- Mỗi bài có ít nhất 2-3 internal links trỏ đến bài liên quan trong cùng site
- Anchor text mô tả đúng bài đích - không dùng “click here” hay “xem thêm” chung chung
- Không internal link vòng vo (A → B → C → A)
Blog Article SEO Ruleset (AI Agent Standard)
Đây là bộ quy tắc chuẩn dành cho AI Agent khi viết và publish bài blog. Mỗi rule có constraint cụ thể - không dùng từ mơ hồ như “ngắn” hay “đủ dài”.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
BLOG ARTICLE SEO RULESET — Universal Standard (2026)
For use by AI Agents when generating or reviewing blog content.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
── FRONTMATTER ──────────────────────────────────────
TITLE (SEO Title / <title> tag)
Rule : 50–60 characters including brand suffix
Format: {Primary Keyword}: {Descriptor} | {Brand Name}
Constraints:
- Primary keyword must appear within first 30 chars
- No keyword repetition (each keyword appears once)
- Must differ from H1 — SERP copy, not body copy
- Forbidden words: "ultimate", "best ever", vague superlatives
Example: "Blog Article SEO Checklist: Full Guide (2026) | YourBrand"
DESCRIPTION (Meta Description)
Rule : 140–160 characters
Format: {Primary keyword} + {what reader gains} + {light CTA}
Constraints:
- Primary keyword in first 20 chars
- Must describe page content accurately — no clickbait
- End with action-oriented phrase, not a period
- Unique per article — never reuse across pages
Example: "Complete SEO checklist for blog articles: title, meta,
OG banner, schema — with exact formats. Ready to copy."
DATE
Rule : ISO format YYYY-MM-DD
Update: Set dateModified whenever content changes
LANG
Rule : Use the language code of the article (e.g. "en", "vi", "ja")
Pair : If site is multilingual, link translations via translationSlug
KEYWORDS (array)
Rule : 3–5 items only
Order : [primary keyword, secondary keyword, 1–2 long-tail variants]
Constraints:
- Primary keyword must match the searcher's exact phrasing
- No brand name in keywords array
- All keywords must appear naturally in body content
IMAGE
Rule : Relative path to OG image file
Format: /images/{slug}-og.jpg
Size : 1200 × 630 px, under 1 MB, JPG or PNG
── URL / SLUG ───────────────────────────────────────
SLUG
Rule : 3–6 words, kebab-case, ASCII only
Format : {primary-keyword-condensed}
Strip : articles (a, the), prepositions (for, in, of),
conjunctions (and, or), non-ASCII diacritics
Frozen : NEVER change slug after first publish
Example : "seo-checklist-blog-article" ✓
"2026-04-complete-seo-checklist-for-your-blog" ✗
── HEADING STRUCTURE ────────────────────────────────
H1
Rule : Exactly 1 per article
Must : Contain primary keyword
Must : Match article topic — not a teaser or question hook
May : Differ from SEO title
H2
Rule : Minimum 3, maximum 8 per article
Must : Use semantic variants of primary keyword (not exact repeat)
Must : Each H2 has ≥ 2 paragraphs of content below it
Format: Sentence case, not Title Case for every word
H3
Rule : Subsections of H2 only — never skip a level
Use : For step breakdowns, sub-features, sub-categories
── BODY CONTENT ─────────────────────────────────────
WORD COUNT : 800 words minimum / 1500 words target
PARAGRAPH : Max 3–4 sentences. One line break between paragraphs.
KEYWORD USAGE : Primary keyword in intro paragraph, ≥ 2 H2 headings,
and conclusion. Semantic variants everywhere else.
BOLD : Use for technical terms, constraints, and key takeaways
only — not for decoration
INTRO : First paragraph must state the problem and promise a
specific outcome. No vague "In this article we will..."
── OPEN GRAPH ───────────────────────────────────────
OG:TITLE
Rule : 60–90 characters
Write : For social feed, not for Google — more descriptive is fine
Must : Include primary keyword
OG:DESCRIPTION
Rule : 100–200 characters
Write : As a feed hook — assumes zero prior context for the reader
OG:IMAGE
Dimensions : 1200 × 630 px (1.91:1 ratio) — REQUIRED
File size : < 1 MB
Format : JPG or PNG (no WebP — some platforms reject it)
Content : Legible title text + brand mark at thumbnail scale
Unique : One image per article — no shared fallback images
Validate : https://developers.facebook.com/tools/debug/
OG:TYPE : "article" (not "website")
OG:URL : Canonical URL, no query parameters
TWITTER:CARD : "summary_large_image"
── SCHEMA MARKUP ────────────────────────────────────
ARTICLE SCHEMA (mandatory on every blog post)
Required fields: headline, datePublished, dateModified,
author.name, author.url, image, publisher.name
FAQ SCHEMA (add if article has ≥ 2 Q&A pairs)
Trigger : Any <details> block, numbered Q&A list, or FAQ section
Benefit : Eligible for FAQ Rich Results + AI Overview citations
VALIDATE: https://search.google.com/test/rich-results
(must show zero errors before publish)
── TECHNICAL TAGS ───────────────────────────────────
CANONICAL : Always present. Points to clean URL (no params).
HREFLANG : Required if article exists in multiple languages.
Include x-default pointing to primary-language version.
── IMAGES IN BODY ───────────────────────────────────
ALT TEXT
Rule : Required on every image — no exceptions
Format : Descriptive phrase, ≤ 125 chars
May : Include primary keyword if it fits naturally
Never : Stuff keywords, repeat "image of", leave blank
FILE NAME
Rule : Descriptive kebab-case
Good : seo-checklist-og-banner-example.jpg
Bad : IMG_20260421_001.jpg
── INTERNAL LINKING ─────────────────────────────────
MINIMUM : 2 internal links per article
ANCHOR : Describes the destination precisely
Good: "see the full SEO audit checklist"
Bad : "click here", "read more", "this article"
DIRECTION : Must not create circular chains (A → B → A)
PLACEMENT : Distribute through body — not all at the end
── PRE-PUBLISH VALIDATION SEQUENCE ──────────────────
Run in this order before marking any article as ready:
1. Count SEO title characters → must be 50–60
2. Count meta description characters → must be 140–160
3. Confirm slug is ASCII kebab-case → no diacritics, no dates
4. Count H1 tags → must equal exactly 1
5. Check primary keyword placement → intro + ≥2 H2s + conclusion
6. Confirm OG image exists and is named → /images/{slug}-og.jpg
7. Confirm OG image dimensions → 1200 × 630 px
8. Confirm Article schema fields → all required fields present
9. Run Google Rich Results Test → zero errors
10. Run Facebook Sharing Debugger → correct image + title render
11. Count internal links → minimum 2
12. Check all images have alt text → zero blank alt attributes
13. Confirm canonical tag is present → clean URL, no params
14. Confirm hreflang (if multilingual) → all language variants listed
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Câu Hỏi Thường Gặp (FAQ)
SEO title và H1 có phải giống nhau không?
Không bắt buộc - và thường nên khác nhau. SEO title tối ưu cho SERP: ngắn, có từ khóa, kéo click. H1 tối ưu cho người đọc: rõ nghĩa, mô tả đúng nội dung bài. Ví dụ: SEO title là “SEO Checklist Blog (2026) - Đủ Bộ Trước Publish | NateCue”, H1 là “SEO Checklist Bài Blog: Đủ Bộ Trước Khi Publish”.
OG banner kích thước bao nhiêu là chuẩn?
Kích thước chuẩn là 1200 x 630 px (tỉ lệ 1.91:1). Đây là kích thước được hầu hết mạng xã hội (Facebook, LinkedIn, Twitter/X, Discord, Slack) hiển thị tốt nhất. Dung lượng nên dưới 1MB để load nhanh. Kiểm tra preview sau khi upload bằng Facebook Sharing Debugger.
Meta description có ảnh hưởng trực tiếp đến ranking không?
Không - meta description không phải ranking factor của Google. Nhưng nó ảnh hưởng mạnh đến CTR (tỉ lệ click). CTR cao cho một từ khóa có thể gián tiếp cải thiện ranking vì Google đo mức độ hài lòng của người dùng với kết quả. Nếu bỏ trống, Google sẽ tự tạo đoạn trích từ nội dung bài - thường chất lượng thấp hơn viết tay.
Canonical tag dùng khi nào?
Luôn luôn dùng - ngay cả khi không có duplicate content. Canonical tag khai báo “đây là URL chính thức” của trang, ngăn Google bị nhầm lẫn giữa các phiên bản URL khác nhau (với ?utm_source, ?fbclid, ?ref, có/không có www, v.v.). Đặt canonical trỏ về URL gốc không có parameter.
Khi nào cần FAQ schema?
Khi bài viết có phần câu hỏi - trả lời rõ ràng (dù ở dạng accordion, danh sách, hay section riêng). FAQ schema giúp Google hiểu đây là Q&A có cấu trúc và có thể hiển thị trong Featured Snippet dạng FAQ hoặc trả lời trực tiếp trong AI Overview. Không cần viết FAQ schema thủ công nếu CMS/framework của bạn hỗ trợ tự động generate từ markup.
Tổng Kết
Một bài blog đạt chuẩn SEO không chỉ là nội dung tốt - mà là đủ bộ tín hiệu kỹ thuật để Google đọc đúng, SERP hiển thị đẹp, và mạng xã hội preview ấn tượng. Checklist 7 nhóm ở trên bao gồm toàn bộ: SEO title, meta description, URL, OG banner, heading, schema và các yếu tố bổ sung. Mỗi bài trước khi publish nên chạy qua checklist này một lần - mất 10-15 phút nhưng tiết kiệm được nhiều tuần optimize sau đó.