Marketing

SEO Checklist Bài Blog: Đủ Bộ Trước Khi Publish (2026)

Checklist SEO đầy đủ cho 1 bài blog article: SEO title, meta description, OG banner, schema, URL, heading - format chuẩn và giới hạn ký tự cụ thể.

🇬🇧 English

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ố:

  1. SEO Title - tiêu đề hiển thị trên Google
  2. Meta Description - mô tả xuất hiện dưới tiêu đề trên SERP
  3. URL / Slug - đường dẫn trang
  4. Open Graph (OG) - dữ liệu hiển thị khi share mạng xã hội (bao gồm OG banner)
  5. Heading Structure - cấu trúc H1, H2, H3
  6. Schema Markup - dữ liệu có cấu trúc cho Google đọc
  7. 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ùng article cho bài blog (không phải website)
  • 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-default trỏ 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 text mô 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 đó
  • 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 đó.

Liên Kết

✦ Miễn phí

Muốn nhận thêm kiến thức như thế này?

Mình tổng hợp AI, marketing và tech insights mỗi tuần - gọn, có gu.

Không spam. Unsubscribe bất cứ lúc nào.