Cyber SEO: giảm 50%
Tùy chọn

Quyền riêng tư rất quan trọng với chúng tôi, vì vậy bạn có thể tắt một số loại lưu trữ không cần thiết cho hoạt động cơ bản của website. Việc chặn các nhóm này có thể ảnh hưởng đến trải nghiệm của bạn trên website. Thông tin thêm (Chính sách cookie)

Chấp nhận tất cả cookie

SEO React: dựng trang, metadata và liên kết cho một ứng dụng React lên top

Hướng dẫn SEO React: vì sao dựng phía client làm hại việc lập chỉ mục, khi nào chọn SSR hoặc dựng trước, cách đặt thẻ meta trong React 19 và vẫn đọc được bởi AI.

Xuất bản ngày
25/10/2026
Cập nhật ngày
25/10/2026
Thời gian đọc
9 phút
Ảnh chụp màn hình Sorank với một thẻ trắng gắn nhãn Technical SEO và ghi "React SEO", phía sau là cửa sổ trò chuyện với trợ lý SEO AI

Công cụ

Trên trang này

Tóm lại

React có thể lên top Google, nhưng một ứng dụng một trang mặc định gửi một tệp HTML gần như rỗng và phụ thuộc vào JavaScript để hiện nội dung, điều này làm chậm việc lập chỉ mục và ẩn trang khỏi hầu hết crawler AI. Cách sửa đáng tin cậy là gửi HTML từ máy chủ: dựng sẵn các trang tĩnh lúc build hoặc dùng một framework có dựng phía máy chủ (Next.js, React Router). Sau đó đặt tiêu đề, mô tả và canonical riêng cho từng URL, dùng liên kết thật và mã trạng thái đúng, rồi kiểm tra những gì bot nhận được.

Muốn tìm hiểu sâu hơn? Hãy hỏi

Bài trắc nghiệm nhanh

SEO có phù hợp với bạn không, và nên bắt đầu như thế nào?

Câu hỏi 1 trên 425%
Mọi người có tìm kiếm trên Google những gì bạn bán không?

SEO React là công việc làm cho một ứng dụng React có thể được công cụ tìm kiếm và trợ lý AI thu thập, lập chỉ mục và hiểu. Bản thân React là trung lập: vấn đề phát sinh khi mọi thứ được dựng trong trình duyệt. Google xác nhận trong kiến thức cơ bản về SEO JavaScript rằng nó xử lý ứng dụng JavaScript qua ba giai đoạn (thu thập, dựng, lập chỉ mục) và rằng "dựng phía máy chủ hoặc dựng trước vẫn là một ý tưởng rất tốt, vì nó làm website nhanh hơn cho người dùng và crawler, và không phải bot nào cũng chạy được JavaScript."

Vì sao React khó cho SEO?

Một ứng dụng React được tạo dưới dạng ứng dụng một trang gửi một tệp HTML chỉ có một thẻ div gốc rỗng và một thẻ script. Trình duyệt tải JavaScript, chạy nó và dựng trang. Một crawler chỉ đọc HTML sẽ không thấy gì để lập chỉ mục: không có tiêu đề, không có văn bản, không có liên kết.

Googlebot có chạy JavaScript, nhưng trong một bước riêng: trang được thu thập, xếp hàng để dựng, được dựng trong Chromium không giao diện, và chỉ sau đó nội dung và liên kết đã dựng mới được dùng. Mỗi bước thêm là một cơ hội thất bại (lỗi script, API bị chặn, quá thời gian chờ) và làm chậm việc trang mới xuất hiện trên tìm kiếm. Hướng dẫn về SEO JavaScript của chúng tôi trình bày chi tiết quy trình này, còn bài viết về lập chỉ mục trên Google giải thích cách đưa trang vào chỉ mục nhanh hơn.

Các bot khác thì kém kiên nhẫn hơn. Phân tích tháng 12/2024 của Vercel, The rise of the AI crawler, nhận thấy rằng "hiện không có crawler AI lớn nào dựng JavaScript", kể tên GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot và PerplexityBot. Một trang React dựng phía client sẽ vô hình với ChatGPT, Claude và Perplexity, ngay cả khi Google đã lập chỉ mục nó.

Một site React nên dùng cách dựng nào?

Đội ngũ React giờ khuyến nghị bắt đầu các ứng dụng mới bằng một framework. Khi ngừng hỗ trợ Create React App vào ngày 14/02/2025, họ viết trong thông báo rằng "dựng phía máy chủ có thể cải thiện SEO", và cũng cải thiện hiệu năng vì giảm lượng JavaScript người dùng phải tải trước khi thấy nội dung. Các lựa chọn, từ yếu nhất đến mạnh nhất với tìm kiếm:

Cách tiếp cậnBot nhận được gìĐánh giá SEOCông cụ điển hình
Dựng phía client (SPA)HTML rỗng, nội dung xuất hiện sau JavaScriptYếu: lập chỉ mục chậm, vô hình với crawler AIVite + React, các dự án Create React App cũ
Dựng động (dynamic rendering)HTML đã dựng sẵn chỉ dành cho botGiải pháp tạm, Google không khuyến nghịDịch vụ dựng trước, proxy trình duyệt không giao diện
Dựng trước tĩnh lúc buildHTML đầy đủ cho mọi URL đã biếtRất tốt cho nội dung ít thay đổiDựng trước với React Router, trình tạo site tĩnh, xuất tĩnh Next.js
Dựng phía máy chủ (SSR)HTML đầy đủ ở mỗi yêu cầu, sau đó hydrateTốt nhất cho site lớn hoặc được cập nhật thường xuyênNext.js, React Router (chế độ framework, trước đây là Remix)

Về dựng động, tài liệu của Google nói rõ: nó "là một giải pháp tạm thời, không phải giải pháp lâu dài", và Google khuyến nghị dựng phía máy chủ, dựng tĩnh hoặc hydrate thay thế. Nếu bạn đang chọn framework, hướng dẫn SEO Next.js của chúng tôi trình bày chi tiết các chế độ dựng, Metadata API và sitemap.

Nếu không thể chuyển đổi, một ứng dụng một trang vẫn có thể được Google lập chỉ mục khi làm cẩn thận. Hướng dẫn về SEO cho ứng dụng một trang của chúng tôi liệt kê các điều kiện; phần còn lại của bài viết này áp dụng cho cả hai trường hợp.

Làm thế nào để đặt tiêu đề và thẻ meta trong React?

Từ React 19 (ổn định từ ngày 05/12/2024), các thành phần có thể render trực tiếp thẻ title, meta và link, và React đưa chúng lên phần đầu của tài liệu. Ghi chú phát hành React 19 nêu rằng hỗ trợ gốc này hoạt động "với các ứng dụng chỉ chạy phía client, SSR có streaming và Server Components". Trước React 19, các thư viện như react-helmet hoặc react-helmet-async làm cùng công việc, và chúng vẫn hữu ích để ghi đè giá trị mặc định theo từng route.

function ProductPage({ product }) {
  return (
    <>
      <title>{`${product.name} | Shop`}</title>
      <meta name="description" content={product.summary} />
      <link rel="canonical" href={`https://example.com/p/${product.slug}`} />
      <h1>{product.name}</h1>
    </>
  )
}

Ba quy tắc áp dụng bất kể phương pháp nào:

  • Một tiêu đề cho mỗi trang, duy nhất và mô tả rõ nội dung. Tài liệu của React cảnh báo rằng nếu nhiều thành phần cùng render tiêu đề, "hành vi của trình duyệt và công cụ tìm kiếm là không xác định". Hãy truyền cho nó một chuỗi duy nhất (template literal), không trộn văn bản và biến rời rạc.
  • Một mô tả và một canonical cho mỗi URL, được tạo từ dữ liệu trang. Công cụ tạo thẻ meta giúp soạn nháp, và công cụ kiểm tra canonical xác nhận những gì đang hoạt động.
  • Thẻ Open Graph có trong HTML ban đầu cho các trang được chia sẻ, vì các bot xem trước liên kết thường đọc HTML thô.

Cần chú ý

Trong một ứng dụng chỉ chạy phía client, các thẻ do React render chỉ tồn tại sau khi JavaScript chạy. Google có thể đọc chúng sau khi dựng; crawler AI và hầu hết bot xem trước mạng xã hội thì không. Dựng phía máy chủ hoặc dựng trước đưa chúng vào phản hồi HTML cho mọi người.

Những lỗi định tuyến và liên kết nào chặn việc lập chỉ mục?

Google nêu rõ rằng nó "chỉ có thể khám phá liên kết của bạn nếu chúng là phần tử HTML a có thuộc tính href" và khuyên không dùng phần băm (fragment) của URL để tải nội dung khác nhau. Phần lớn lỗi SEO React đến từ các chi tiết định tuyến:

LỗiHậu quảCách sửa
Điều hướng bằng onClick trên div hoặc buttonGoogle không tìm thấy liên kết để theoDùng thành phần Link của router, nó render thẻ a có href
Route dạng hash (/#/products)Mọi trang chia sẻ chung một URL với GoogleDùng route dựa trên lịch sử (/products) với BrowserRouter hoặc framework
Giao diện "không tìm thấy" trả về trạng thái 200Soft 404 trong Search ConsoleTrả về 404 thật từ máy chủ, hoặc thêm noindex bằng JavaScript trong SPA thuần
Chỉ chuyển hướng phía clientChuyển hướng chậm hoặc bị bỏ sótDùng chuyển hướng 301 hoặc 308 từ máy chủ cho trang đã chuyển
Nội dung tải khi nhấp hoặc cuộnCrawler không bao giờ thấy văn bảnRender nội dung chính khi tải trang; phân trang danh sách bằng URL thật
JavaScript hoặc API bị chặn trong robots.txtGoogle dựng ra trang trốngCho phép các script và endpoint API mà trang cần

Để xem Google dựng những gì, dùng công cụ Kiểm tra URL trong Search Console và xem HTML của trang đã kiểm tra, hoặc chạy công cụ kiểm tra khả năng lập chỉ mục trên các mẫu trang chính.

Làm thế nào để xử lý sitemap và dữ liệu có cấu trúc trong React?

React không có sitemap sẵn. Hãy tạo sitemap.xml lúc build từ các route và dữ liệu của bạn (hoặc từ tính năng sitemap của framework), chỉ liệt kê các URL canonical trả về 200, và tham chiếu đến nó trong robots.txt. Công cụ tạo sitemap XML phù hợp với các site tĩnh nhỏ.

Dữ liệu có cấu trúc tuân theo cùng quy tắc với metadata: render script JSON-LD cùng trang, từ cùng dữ liệu, lý tưởng là trên máy chủ. Google có thể đọc JSON-LD được chèn bằng JavaScript sau khi dựng, nhưng đánh dấu không có trong HTML ban đầu thì vắng mặt với các crawler không dựng trang. Dùng Article cho bài viết, Product cho thương mại điện tử, Organization cho toàn site và BreadcrumbList cho các trang sâu.

Mẹo

Chạy curl trên URL một trang và tìm trong kết quả H1 của nó cùng một câu trong nội dung. Nếu không có, Google có thể lập chỉ mục trang sau khi dựng, nhưng crawler AI sẽ không thấy gì.

Hiệu năng ảnh hưởng thế nào đến SEO React?

Các gói JavaScript lớn làm hại Core Web Vitals: trình duyệt phải tải, phân tích và hydrate mã trước khi trang phản hồi, điều này ảnh hưởng đến Largest Contentful Paint và Interaction to Next Paint, nhất là trên di động. Thông báo về Create React App của đội ngũ React ghi rằng dựng phía máy chủ gửi ít JavaScript hơn và một tài liệu HTML đầy đủ, giúp First Contentful Paint nhanh hơn và có thể giảm INP. Các đòn bẩy thực tế: tách mã theo route bằng React.lazy, cung cấp hình ảnh với kích thước rõ ràng, tải lười các thành phần nằm dưới màn hình đầu, và rà soát các script bên thứ ba.

Danh sách kiểm tra SEO React nên có những gì?

  1. Mọi URL có thể lập chỉ mục trả về HTML đầy đủ (dựng phía máy chủ hoặc dựng trước), kiểm tra bằng curl.
  2. Một tiêu đề, một mô tả và một canonical tự trỏ về chính nó cho mỗi URL, đều duy nhất.
  3. Route dựa trên lịch sử, không có URL dạng hash, và mọi liên kết nội bộ đều được render thành thẻ a có href.
  4. Mã trạng thái thật: 404 cho trang không tồn tại, 301 hoặc 308 cho trang đã chuyển.
  5. Một sitemap.xml được tạo từ cùng dữ liệu với các route, được liệt kê trong robots.txt.
  6. JSON-LD được render cùng trang, đã kiểm tra bằng Rich Results Test.
  7. Các script, kiểu dáng và API cần để dựng được cho phép trong robots.txt.
  8. Mã được tách theo route, và Core Web Vitals được theo dõi trên người dùng thật.

Làm thế nào để một site React hiển thị trong câu trả lời AI?

GEO (generative engine optimization) bắt đầu từ khả năng truy cập. Vì crawler AI tải HTML thô, một trang React phải cung cấp văn bản, tiêu đề và JSON-LD mà không cần JavaScript thì mới được đọc, tóm tắt và trích dẫn. Kiểm tra AI về khả năng thu thập của website cho thấy những bot này nhận được gì từ trang của bạn. Điều kiện thứ hai là nội dung đáng được trích dẫn: các trang trả lời một câu hỏi mỗi phần, có nguồn, số liệu và định nghĩa rõ ràng.

Phần nội dung đó là thứ Sorank, sản phẩm của chúng tôi, tự động hóa. Sorank là phần mềm SEO và GEO chạy theo chế độ autopilot: trình tạo bài viết blog của nó viết và xuất bản 20, 60 hoặc 120 bài mỗi tháng kèm nguồn, liên kết nội bộ và hình ảnh, và nó kết nối với các hệ thống tùy chỉnh như site React hoặc Next.js qua webhook. Trò chuyện SEO của nó trả lời các câu hỏi về hiệu suất tìm kiếm của site bạn qua hội thoại.

Trợ lý trò chuyện SEO của Sorank trả lời câu hỏi về hiệu suất tìm kiếm của một website trong cuộc hội thoại

Tóm lại: gửi HTML từ máy chủ, cho mỗi URL một tiêu đề, mô tả và canonical riêng, và dùng liên kết thật. Khi đó React xếp hạng như mọi site khác, và trợ lý AI có thể đọc nó. Để giữ site đó luôn có bài viết được viết cho Google và AI, xem các gói của Sorank, từ $49 mỗi tháng và có bản dùng thử miễn phí 3 ngày.

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

React có xấu cho SEO không?

Không. React là thư viện giao diện người dùng, và SEO của nó phụ thuộc vào cách trang được dựng. Một ứng dụng một trang dựng phía client gửi HTML trống và dựa vào bước dựng của Google, điều này làm chậm việc lập chỉ mục và ẩn nội dung khỏi crawler AI. Cùng mã React đó được phục vụ bằng dựng phía máy chủ hoặc dựng trước tĩnh sẽ xếp hạng như một website cổ điển.

Google có lập chỉ mục các website React không?

Có. Googlebot dựng JavaScript bằng một phiên bản Chromium gần đây, nên nó có thể lập chỉ mục nội dung mà ứng dụng React tạo ra trong trình duyệt. Việc dựng diễn ra sau khi thu thập và có thể bị trì hoãn hoặc thất bại nếu script lỗi hoặc API bị chặn. Kiểm tra HTML đã dựng bằng công cụ Kiểm tra URL trong Search Console sẽ cho thấy Google thấy gì.

Với React 19 có còn cần React Helmet không?

Không cần trong các trường hợp cơ bản. React 19 render thẻ title, meta và link từ bất kỳ thành phần nào và đưa chúng lên phần đầu tài liệu. Các thư viện như react-helmet-async vẫn hữu ích khi bạn cần ghi đè giá trị mặc định của cả site theo từng route, hoặc hỗ trợ các phiên bản React cũ hơn.

Kiểm toán SEO & GEO miễn phí

Nhận kế hoạch nội dung 30 ngày miễn phí

Chúng tôi phân tích đối thủ, website và mức độ hiển thị trên AI của bạn để lập kế hoạch nội dung phù hợp, hoàn toàn miễn phí.

Công cụ SEO miễn phí của chúng tôi

Xem tất cả công cụ miễn phí của chúng tôi

Nhận bản kiểm tra website miễn phí

HỌ ĐÃ THỬ SORANK TRƯỚC BẠN

Lời chứng thực từ các nhà sáng lập đầy tham vọng

Tăng trưởng tự nhiênE-commerce

từ 0 lên 10000 lượt truy cập trong 5 tháng

Celio Fabianomonrobotlavevitre.fr
Tăng trưởng tự nhiênPhần mềm

từ 0 lên 5000 khách hàng trong 8 tháng

Thibault BMsorank.com
Tăng trưởng tự nhiênGiải trí và hàng không

từ 0 lên 1104 lượt nhấp trong 4 tháng

Dominiqueflight-sensations-idf.com
Tăng trưởng tự nhiênTạo khách hàng tiềm năng cho đơn vị lắp đặt

x98 lượt nhấp trong 2 tháng

LeadBolt Agencyleadbolt.online
Tăng trưởng tự nhiênPhần mềm âm nhạc

tăng gấp 55 lần lượt nhấp trong 5 tháng

Valentin Cordiertiger-sounds.com