SEO GRAPHQL theo type page, post, product (ok)
ưới đây là các truy vấn GraphQL đã viết sẵn để lấy metadata SEO từ Rank Math SEO cho từng loại: page, post, và product (giả sử WooCommerce đang dùng WPGraphQL for WooCommerce).
✅ Truy vấn SEO cho Page
graphqlCopyEditquery GetPageSEOMetadata($uri: ID!) {
page(id: $uri, idType: URI) {
title
seo {
title
description
canonicalUrl
breadcrumbTitle
robots
focusKeywords
fullHead
jsonLd {
raw
}
breadcrumbs {
text
url
}
}
}
}✅ Truy vấn SEO cho Post
✅ Truy vấn SEO cho Product (WooCommerce)
🔁 Tuỳ biến dùng chung (optionally)
Bạn cũng có thể viết 1 query "union" tùy biến nếu bạn dùng nodeByUri (áp dụng nếu site bạn bật tính năng này):
Nếu bạn đang dùng Next.js với Apollo Client, mình có thể giúp bạn viết sẵn hook hoặc getStaticProps / getServerSideProps để gọi mấy cái này cho chuẩn. Muốn không?
Tuyệt! Dưới đây là cách bạn có thể tích hợp lấy SEO metadata từ Rank Math SEO vào dự án Next.js sử dụng Apollo Client, với cả getStaticProps, getServerSideProps, và React hook nếu dùng Client-side.
🔧 1. Cấu hình Apollo Client
Nếu bạn chưa có sẵn Apollo Client, bạn cần khởi tạo:
📦 2. Tạo GraphQL Query (dùng nodeByUri)
nodeByUri)🧠 3. getStaticProps (Static Page với SEO)
getStaticProps (Static Page với SEO)✅ Tương ứng với slug: /about, /contact, /products/abc
🕸 4. getServerSideProps (SEO cập nhật real-time)
getServerSideProps (SEO cập nhật real-time)🪝 5. Custom Hook (Client-side fetching)
🧠 6. Hiển thị SEO data trong <Head>
<Head>Nếu bạn cho mình biết:
Bạn dùng App Router hay Pages Router?
Bạn có cần multi-language (i18n)?
Bạn dùng client-side hay server-side rendering?
Mình có thể tinh chỉnh đoạn code này phù hợp hơn 💡
Hoàn hảo! Vì bạn dùng:
Next.js Pages Router
i18n (đa ngôn ngữ) – ví dụ
/en/about,/vi/aboutServer-side Rendering (SSR)
Mình sẽ giúp bạn tối ưu toàn bộ flow lấy Rank Math SEO metadata theo đúng chuẩn, có thể xài cho bất kỳ trang nào (post, page, product,...).
🧩 1. Cấu trúc URL hỗ trợ i18n
Trong Next.js pages với i18n, bạn thường có:
Nghĩa là:
/en/about⇒ uri là/about/vi/gioi-thieu⇒ uri là/gioi-thieu
➡️ Ta cần tách locale ra khỏi resolvedUrl để lấy uri.
🧠 2. Viết getServerSideProps với i18n và Rank Math SEO
getServerSideProps với i18n và Rank Math SEO🔁 3. File query GraphQL
🧱 4. Component SEO (inject vào <Head>)
<Head>)✅ Kết quả:
Bạn có thể thêm SEO tự động cho mọi trang
/en/*hoặc/vi/*Sử dụng
SSRđể lấy đúng dữ liệu từ Rank Mathi18n xử lý chuẩn vì mình bóc
localekhỏiresolvedUrl
Bạn có muốn mình giúp bạn xử lý luôn cả breadcrumbs hoặc tạo sitemap XML tự động từ Rank Math không?
Last updated
Was this helpful?