SEO WordPress

Taxonomy SEO

Tối ưu hóa các phân loại (category, tag, custom taxonomy) về tiêu đề, mô tả, canonical và noindex nếu cần.

5 lượt xem Cập nhật: 31/05/2026

Taxonomy SEO là gì?

Taxonomy SEO là việc tối ưu hóa các phân loại nội dung trên website WordPress — bao gồm danh mục (category), thẻ (tag) và phân loại tùy chỉnh (custom taxonomy) — nhằm giúp công cụ tìm kiếm hiểu đúng cấu trúc, chủ đề và mức độ liên quan giữa các nhóm bài viết. Đây không phải là việc tạo thêm nội dung, mà là điều chỉnh cách các trang phân loại được hiển thị, lập chỉ mục và xếp hạng: từ tiêu đề, mô tả meta, đường dẫn (URL), thẻ canonical đến việc quyết định có cho lập chỉ mục (index) hay chặn (noindex) trang đó.

Tại sao quan trọng trong SEO?

Các trang phân loại thường chiếm tới 30–60% tổng số URL trên một website WordPress. Nếu không được quản lý đúng, chúng dễ gây ra:

  • Nội dung trùng lặp: Nhiều trang hiển thị cùng một bài viết (ví dụ: bài viết xuất hiện ở cả danh mục 'SEO WordPress' và 'Tối ưu hóa website') → làm loãng tín hiệu xếp hạng;
  • Phân tán link equity: Liên kết nội bộ đổ vào hàng chục trang phân loại yếu thay vì tập trung vào các trang chủ lực;
  • Chỉ mục thừa: Google lập chỉ mục hàng trăm trang tag rỗng hoặc ít nội dung → làm giảm tỷ lệ crawl hiệu quả cho các trang quan trọng.

Theo nghiên cứu của Ahrefs (2023), 41% website WordPress có hơn 200 trang phân loại bị Google đánh dấu là 'low-value', trong đó 68% không có mô tả meta và 52% thiếu thẻ canonical hợp lý.

Cách hoạt động

Taxonomy SEO hoạt động dựa trên ba lớp tương tác:

  1. Lớp cấu trúc: WordPress tự sinh URL dạng /category/seo-wordpress/ hoặc /tag/tu-khoa/. Mỗi URL này là một trang riêng, có thể được lập chỉ mục nếu không bị chặn.
  2. Lớp trình bày: Nội dung hiển thị trên trang phân loại (tiêu đề, mô tả, số bài viết, phân trang) ảnh hưởng trực tiếp đến trải nghiệm người dùng và tín hiệu chất lượng với Google.
  3. Lớp tín hiệu kỹ thuật: Thẻ <title>, <meta name="description">, rel="canonical", noindex, và cấu hình robots.txt quyết định cách Google xử lý trang đó.

Hướng dẫn thực hiện

Dưới đây là quy trình thực hiện Taxonomy SEO chuẩn cho WordPress (áp dụng với plugin Yoast SEO, Rank Math hoặc All in One SEO):

  1. Phân tích hiện trạng: Dùng công cụ như Screaming Frog hoặc Sitebulb để xuất danh sách toàn bộ trang category/tag, kiểm tra: số bài viết/trang, độ dài tiêu đề/meta, trạng thái index, tồn tại canonical.
  2. Lọc và gộp phân loại dư thừa: Xóa hoặc chuyển hướng 301 các tag không có nội dung rõ ràng (ví dụ: tag 'mới', 'hay', 'tổng hợp'), hoặc các danh mục chồng chéo (như 'SEO' và 'SEO cơ bản').
  3. Tối ưu tiêu đề & mô tả:
    • Tiêu đề: Dạng {Danh mục} – {Mô tả ngắn} | {Tên website} (độ dài 50–60 ký tự).
    • Mô tả: Viết thủ công, dưới 155 ký tự, chứa từ khóa chính + lời kêu gọi (CTA) như 'Khám phá hướng dẫn chi tiết', 'Cập nhật mới nhất'. Không để mặc định 'Danh mục: SEO WordPress'.
  4. Thiết lập canonical: Đảm bảo mỗi trang phân loại có thẻ rel="canonical" trỏ về chính nó (không trỏ về trang chủ hay trang khác). Với phân trang (page/2), canonical phải trỏ về trang đầu tiên của phân loại — trừ khi dùng rel="prev/next" theo chuẩn Google.
  5. Quyết định index/noindex:
    • Index: Chỉ với danh mục chính, có ít nhất 5 bài viết chất lượng, có mô tả rõ ràng và được liên kết nội bộ từ ít nhất 3 trang khác.
    • Noindex: Các tag ít sử dụng (<5 bài), danh mục con không có nội dung riêng, phân loại tùy chỉnh chỉ dùng cho backend (ví dụ: 'internal_status', 'author_team').
  6. Tối ưu URL và cấu trúc: Tránh tiền tố /category/ nếu không cần thiết (có thể bỏ qua bằng permalink settings hoặc plugin). Đảm bảo URL ngắn, chứa từ khóa chính, không có ký tự đặc biệt.

Lỗi thường gặp

Lỗi Hệ quả Cách khắc phục
Mỗi trang phân loại đều có tiêu đề giống nhau (ví dụ: 'Danh mục: SEO') Google khó phân biệt chủ đề → giảm khả năng xếp hạng Dùng biến động trong plugin (ví dụ: %%term_title%% – %%sep%% %%sitename%%) và viết mô tả riêng cho từng danh mục
Tag không có bài viết nào hoặc chỉ có 1 bài Tạo trang mỏng (thin content), dễ bị xếp hạng thấp hoặc loại khỏi chỉ mục Xóa tag hoặc gộp vào tag có liên quan; bật tính năng 'noindex tag archives' trong plugin
Canonical trỏ sai (ví dụ: trang /category/seo/ lại trỏ canonical về /) Google coi đây là nỗ lực thao túng — có thể gây mất xếp hạng toàn bộ phân loại Kiểm tra bằng View Page Source hoặc công cụ Rich Results Test; sửa trong cài đặt plugin hoặc code theme (hàm wpseo_canonical)

Ví dụ thực tế

Một website đào tạo WordPress có danh mục 'Tối ưu tốc độ' với 12 bài viết. Trước khi tối ưu:

  • Tiêu đề: Danh mục: Tối ưu tốc độ (52 ký tự, nhưng thiếu thương hiệu và CTA)
  • Mô tả: để trống → Google tự cắt từ nội dung bài viết đầu tiên
  • Canonical: trỏ về trang chủ do lỗi cấu hình plugin
  • Không có liên kết nội bộ nào từ trang khác
Sau tối ưu:
  • Tiêu đề: Tối ưu tốc độ WordPress – Hướng dẫn từ A-Z | WebMaster Việt (60 ký tự)
  • Mô tả: Học cách tăng tốc website WordPress: tối ưu hình ảnh, cache, CDN, database và hosting. Cập nhật 2024 với checklist tải xuống miễn phí.
  • Canonical: trỏ đúng về https://webmasterviet.vn/category/toi-uu-toc-do/
  • Thêm 4 liên kết nội bộ từ các bài viết nổi bật và trang giới thiệu khóa học
Kết quả sau 8 tuần: lượt hiển thị (impressions) tăng 217%, vị trí trung bình cải thiện từ #14 lên #5 trên Google Search Console.

Câu hỏi thường gặp

Custom taxonomy có cần tối ưu như category không?

Có. Bất kỳ taxonomy nào được public = true và có archive = true đều tạo trang công khai, do đó đều phải áp dụng đầy đủ các bước: title, description, canonical, index/noindex — trừ khi bạn chủ động ẩn chúng bằng public => false trong mã PHP.

Có nên noindex tất cả tag?

Không bắt buộc. Tag hữu ích khi chúng biểu đạt chủ đề cụ thể và có ít nhất 3–5 bài viết liên quan (ví dụ: tag 'woocommerce-speed-optimization'). Còn tag mang tính chất nhãn dán chung chung ('tips', 'update') thì nên noindex — tùy trường hợp.

Phân trang (page/2, page/3…) có cần canonical không?

Có. Trang phân trang thứ hai trở đi nên có thẻ rel="canonical" trỏ về trang đầu tiên của phân loại (ví dụ: /category/seo/). Ngoài ra, nên thêm thẻ rel="prev"rel="next" cho chuỗi phân trang — tuy nhiên Google xác nhận đã ngừng sử dụng rel="next/prev" từ năm 2020, nên chỉ cần canonical là đủ. Cách xử lý chính xác nhất là để plugin tự động quản lý hoặc dùng hàm wp_rel_next_prev() nếu theme hỗ trợ.