SEO cho Drupal

Cách giúp một website Drupal xếp hạng — những điểm Drupal core làm tốt, bộ module đóng góp thực sự đảm nhiệm SEO (Pathauto, Metatag, Simple XML Sitemap, Redirect), các lỗi thường gặp (nội dung trùng lặp node/NID, tham số Views, trang taxonomy mỏng, sai lệch quyền truy cập) và cách khắc phục cụ thể.

Drupal cung cấp một trong những nền tảng SEO kỹ thuật vững nhất trong các CMS: định tuyến URL sạch từ Drupal 7, HTML ngữ nghĩa, trường văn bản thay thế cho hình ảnh, khả năng đa ngôn ngữ trong core và bộ nhớ đệm tích hợp. Tuy nhiên, cài đặt mặc định chưa phải một giải pháp SEO hoàn chỉnh. Phần việc chính nằm ở một số module đóng góp: Pathauto + Token (bí danh URL; nếu không, bạn chỉ có /node/123), Metatag (tiêu đề, mô tả, canonical, robots), Schema.org Metatag (JSON-LD), Simple XML Sitemap (sơ đồ trang XML) và Redirect (chuyển hướng 301s; Drupal core không tự động chuyển hướng URL cũ). Tính linh hoạt của nền tảng cũng tạo ra các lỗi dễ dự đoán: một node tồn tại đồng thời ở /node/NID và bí danh, bộ lọc công khai của Views sinh URL tham số, taxonomy tạo trang mỏng và nội dung bị kiểm soát truy cập trả về 403 cho Googlebot dù vẫn nằm trong sitemap. Bản phân phối Drupal CMS 2025 được cấu hình sẵn các công cụ này.

Tóm tắt — Drupal có một trong những mức nền SEO kỹ thuật vững nhất trong các CMS, nhưng trần SEO mặc định lại thấp: core cung cấp định tuyến URL sạch (từ Drupal 7), HTML ngữ nghĩa, trường alt text cho hình ảnh, hỗ trợ đa ngôn ngữ và bộ nhớ đệm tích hợp — nhưng không có bí danh tự động, sitemap, quản lý thẻ meta, dữ liệu có cấu trúc hay chuyển hướng. Bộ module đóng góp mới đảm nhiệm phần việc chính: Pathauto + Token (bí danh), Metatag + Schema.org Metatag (metadata + JSON-LD), Simple XML Sitemap (sitemap), Redirect (301s). Tính linh hoạt của Drupal sau đó tạo ra các lỗi dễ dự đoán — trùng lặp giữa /node/NID và bí danh, bộ lọc công khai của Views làm phình URL tham số, trang taxonomy mỏng, kết quả tìm kiếm nội bộ và nội dung bị kiểm soát truy cập trả về 403 cho Googlebot dù vẫn nằm trong sitemap. Mỗi lỗi cần cấu hình có chủ đích, không chỉ cài module. Bản phân phối Drupal CMS 2025 đã cấu hình sẵn các công cụ này.

Bằng chứng cho nhận định này Drupal's contributed Simple XML Sitemap module generates XML sitemaps. Phạm vi: Contributed module, not Drupal core; sitemap contents require configuration. Độ tin cậy: cao · Đã xác minh: Drupal: Simple XML Sitemap

Đánh giá thẳng thắn: nền tảng vững, trần mặc định thấp

Phần lớn nội dung về Drupal SEO chỉ là danh sách module hoặc checklist dùng chung cho mọi nền tảng. Góc nhìn hữu ích hơn là vì sao sức mạnh của Drupal tạo ra những lỗi SEO cụ thể và dễ dự đoán. Drupal cho bạn điểm khởi đầu kỹ thuật tốt hơn đa số CMS — nhưng cụm từ “thân thiện với SEO” dễ gây hiểu lầm. Webdesign.org viết: “Stating that Drupal is SEO friendly will cause people to erroneously assume it is SEO friendly out-of-the-box. Out of the box Drupal makes it very easy to screw up your URLs.” (bản dịch) «Việc nói Drupal thân thiện với SEO khiến mọi người lầm tưởng rằng nó thân thiện với SEO ngay khi cài đặt. Ở trạng thái mặc định, Drupal khiến việc làm hỏng URL trở nên rất dễ dàng.» Đó là mô hình tư duy đúng: mức nền vững, nhưng trần thấp cho đến khi bạn cấu hình hệ thống.

Những điểm Drupal core làm tốt (không cần module)

  • Định tuyến URL sạch. /node/123 là đường dẫn nội bộ, nhưng hệ thống định tuyến hỗ trợ sẵn bí danh dễ đọc; “URL sạch” (loại bỏ ?q=) đã là mặc định từ Drupal 7 — hầu hết máy chủ không cần thủ thuật mod_rewrite.
  • HTML ngữ nghĩa, dễ tiếp cận — phân cấp tiêu đề đúng và các vai trò mốc ARIA.
  • Alt text ở cấp mô hình nội dung — trường hình ảnh có sẵn trường alt text, nên yêu cầu này được thực thi trong mô hình dữ liệu thay vì gắn thêm về sau.
  • Hình ảnh đáp ứng (core). Module Responsive Image xuất srcset/sizes; Image Styles tạo các biến thể hình ảnh.
  • Bộ nhớ đệm tích hợp — Internal Page Cache (người dùng ẩn danh), Dynamic Page Cache (người dùng đã xác thực) và BigPipe đều thuộc core, có lợi cho TTFB và LCP.
  • Đa ngôn ngữ trong core — các module Content Translation, Interface Translation và Language; hreflang xuất hiện trong phần head khi ngôn ngữ đã được cấu hình.
  • Kiểm soát truy cập theo vai trò — quyền chi tiết, tác động trực tiếp đến nội dung mà trình thu thập dữ liệu có thể xem.

Bộ module thiết yếu

Core cung cấp nền tảng; các module đóng góp sau tạo nên một hệ thống SEO dùng trong môi trường thực tế. Các phiên bản hiện hành đều hỗ trợ Drupal 10/11 (Drupal 9 hết vòng đời vào tháng 11 năm 2023; một số module cũ đã bị loại bỏ trong quá trình chuyển từ 9 sang 10, vì vậy hãy dùng bản phát hành tương thích D10 hiện hành).

Quản lý URL

  • Pathauto (với Token) — tự động tạo bí danh URL từ mẫu token ([node:title], [node:field_category]/[node:title], v.v.). Drupal.org mô tả: “automatically generates URL/path aliases for various kinds of content (nodes, taxonomy terms, users) without requiring the user to manually specify the path alias.” (bản dịch) «Tự động tạo bí danh URL/đường dẫn cho nhiều loại nội dung khác nhau (node, thuật ngữ taxonomy, người dùng) mà không yêu cầu người dùng tự chỉ định bí danh đường dẫn.» Nếu không có module này, URL mặc định là /node/NID.
  • Redirect — quản lý chuyển hướng 301s, bao gồm chuyển URL cũ sau khi bí danh thay đổi. Drupal core không tự động chuyển hướng URL cũ — nếu thiếu module này, thay đổi URL sẽ gây lỗi 404 và làm mất giá trị liên kết.

Siêu dữ liệu

  • Metatag — tiêu đề, mô tả meta, thẻ canonical, Open Graph, Twitter Cards và chỉ thị robots. Module hỗ trợ token, nên bạn có thể tạo mẫu metadata ở quy mô lớn (mặc định toàn cục → theo loại nội dung → ghi đè theo entity). Nếu chỉ cài một module SEO, hãy chọn module này. Bằng chứng cho nhận định này Metatag supports canonical, Open Graph, Twitter Card, robots, and token-driven metadata in Drupal. Phạm vi: Current contributed Metatag module and enabled submodules. Độ tin cậy: cao · Đã xác minh: Drupal: Metatag module
  • Schema.org Metatag (module con của Metatag) — thêm dữ liệu có cấu trúc JSON-LD, định dạng Google khuyến nghị.

Sitemap và robots

  • Simple XML Sitemap — module sitemap được duy trì tích cực tính đến năm 2025 (phần lớn đã thay thế module XML Sitemap cũ vẫn xuất hiện trong nhiều hướng dẫn). Module hỗ trợ hreflang đa ngôn ngữ và mục hình ảnh. Nó tạo sitemap; bạn vẫn cần gửi sitemap trong Search Console và Bing Webmaster Tools. Bằng chứng cho nhận định này Simple XML Sitemap supports multilingual and image sitemap output in Drupal. Phạm vi: Supported module features; actual entries depend on site entities and module configuration. Độ tin cậy: cao · Đã xác minh: Drupal: Simple XML Sitemap
  • RobotsTxt — chủ yếu cần cho multisite, nơi mỗi website cần một robots.txt riêng từ cùng codebase.

Chất lượng và khả năng khám phá nội dung

  • Rabbit Hole — chặn URL công khai của các entity mà bạn không muốn lập chỉ mục (thuật ngữ taxonomy ít giá trị, hồ sơ người dùng).
  • Yoast SEO for Drupal (còn gọi là Real-Time SEO) — phản hồi ngay trong trình biên tập, tương tự Yoast trên WordPress.
  • Easy Breadcrumb — tự động tạo đường dẫn breadcrumb (kết hợp với schema BreadcrumbList).
  • Google Tag / Google Analytics — core không có analytics; bạn phải bổ sung.

Các lỗi chính của Drupal (và cách sửa từng lỗi)

Đây là phần thực sự phân biệt một website Drupal có thứ hạng với một website không có.

1. Trùng lặp /node/NID và bí danh

Khi URL sạch được bật, cùng một node có thể truy cập ở cả /node/123 lẫn bí danh — hai URL cho một nội dung. Cần hai module phối hợp: Pathauto tạo bí danh và Redirect chuyển hướng 301 từ /node/NID sang bí danh. Thẻ canonical của Metatag là tín hiệu phụ hữu ích, nhưng 301 mạnh hơn — Google xem chuyển hướng là tín hiệu chuẩn hóa mạnh hơn rel=canonical. (Đây cũng là cơ chế nội dung trùng lặp tôi từng viết nói chung; đó là huyền thoại về hình phạt nội dung trùng lặp — không có “hình phạt”, nhưng các tín hiệu sẽ bị phân tán.)

2. Bộ lọc công khai của Views — bẫy URL tham số

Views là thành phần có rủi ro SEO cao nhất trong Drupal. Mỗi tổ hợp bộ lọc công khai tạo một URL riêng. Nếu không kiểm soát, đây sẽ là nơi tiêu hao ngân sách thu thập dữ liệu và sinh nội dung trùng lặp. Hãy chặn không gian tham số trong robots.txt (ví dụ Disallow: /*? hoặc chỉ chặn từng tham số cụ thể), thêm noindex bằng Metatag cho các trang View dạng tổng hợp/tìm kiếm, dùng tùy chọn truy vấn “Distinct” để ngăn node xuất hiện trùng lặp và chuẩn hóa các trang View phân trang. Hướng dẫn về ngân sách thu thập dữ liệu của Google áp dụng trực tiếp cho những website dùng nhiều Views.

3. Trang thuật ngữ taxonomy mỏng

Mỗi thuật ngữ taxonomy có một trang công khai tại /taxonomy/term/TID (cùng bí danh). Các thuật ngữ ít giá trị tạo ra nhiều trang mỏng. Hãy dùng Rabbit Hole để chặn URL entity không cần thiết, hoặc đặt noindex bằng Metatag theo từng vocabulary.

4. Kết quả tìm kiếm nội bộ

Tìm kiếm tích hợp của Drupal tạo các trang kết quả có thể được lập chỉ mục. Hãy đặt noindex qua Metatag và loại chúng khỏi sitemap.

5. Kiểm soát truy cập và khả năng thu thập dữ liệu

Trình thu thập dữ liệu truy cập với tư cách người dùng ẩn danh. Nếu một loại nội dung bị hạn chế truy cập, Googlebot không thể xem — thường đó là hành vi đúng. Cạm bẫy là node vẫn có URL công khai, trả về 403 cho Googlebot, đồng thời vẫn nằm trong sitemap. Sai lệch này lãng phí ngân sách thu thập dữ liệu. Hãy kiểm tra quyền của vai trò ẩn danh và đối chiếu với nội dung sitemap.

6. Môi trường staging bị lập chỉ mục

Hãy chặn staging ở nhiều lớp: HTTP auth hoặc Cloudflare Access là lớp đáng tin cậy; noindex toàn website qua Metatag và quy tắc chặn trong robots.txt là lớp bảo vệ bổ sung. Lý do cần nhiều lớp: robots.txt chặn thu thập dữ liệu, không chặn lập chỉ mục; một URL bị chặn vẫn có thể được lập chỉ mục nếu nơi khác liên kết đến nó.

Cấu hình on-page ở quy mô lớn

  • Mẫu Pathauto theo loại nội dung — ví dụ [node:field_category]/[node:title] — kèm bí danh ghi đè thủ công cho các trang quan trọng nhất.
  • Kế thừa Metatag — mặc định toàn cục, ghi đè theo loại nội dung và theo entity, tất cả đều dựa trên token ([node:title] | [site:name]).
  • Thẻ canonical — Drupal 8+ tự động xuất canonical tự tham chiếu cho các trang nội dung tiêu chuẩn; dùng Metatag trong các trường hợp cần ghi đè (và ghép canonical với hreflang trên trang đa ngôn ngữ). Xem canonical tags gone wild để hiểu những lỗi thường gặp.

SEO đa ngôn ngữ

Khi Content Translation + Language đã được cấu hình, hreflang tự động xuất hiện trong phần head. Simple XML Sitemap cũng có thể đưa hreflang vào sitemap. Hãy dùng URL có tiền tố ngôn ngữ (/fr/, /de/) hoặc tên miền theo ngôn ngữ, đồng thời đặt metadata riêng cho từng phiên bản bằng Metatag. Google yêu cầu hreflang nhất quán trên mọi phiên bản ngôn ngữ.

Hiệu suất và Core Web Vitals

Bộ nhớ đệm trong core (Internal Page Cache, Dynamic Page Cache, BigPipe) hỗ trợ đáng kể cho TTFB và LCP. Ngoài ra, hãy dùng AdvAgg để tổng hợp CSS/JS vượt quá khả năng của core, Image Optimize (cùng WebP và thuộc tính tải lười gốc của core) và — với website có lưu lượng thực sự cao — CDN bên ngoài (Cloudflare, Fastly, Akamai) cùng một lớp Varnish hoặc Redis.

Drupal headless / tách rời

Một mô hình doanh nghiệp phổ biến là dùng Drupal làm backend headless (JSON:API hoặc GraphQL) với frontend Next.js hoặc Gatsby. Trách nhiệm SEO chuyển sang frontend — thẻ meta, sitemap và dữ liệu có cấu trúc trở thành việc của framework frontend. Module Metatag có thể cung cấp dữ liệu qua JSON:API để frontend sử dụng. SSR hoặc SSG là thiết yếu: chỉ kết xuất Drupal headless phía client sẽ gặp các vấn đề SEO JavaScript quen thuộc.

Drupal CMS (2025) so với bản cài đặt cổ điển

Drupal CMS là một bản phân phối riêng xây dựng trên Drupal 10/11 core, hướng đến người dựng website thay vì nhà phát triển. Nó được cấu hình sẵn công cụ SEO — tối ưu URL, sitemap HTML và XML, robots.txt, thẻ meta, checklist SEO và tích hợp analytics — nên phần lớn gánh nặng cấu hình của bản Drupal cổ điển đã được xử lý. Đừng cho rằng cài đặt Drupal core cổ điển và Drupal CMS có cùng điểm khởi đầu SEO; chúng khác nhau.

Thêm ghi chú chuyên gia

Ghim trích dẫn chuyên gia

Người mới? Hãy tạo hồ sơ chưa có người xác nhận cho họ tại /admin/experts/ → Ghim trích dẫn chuyên gia trước.