微信客服
Telegram:guangsuan
电话联系:18928809533
发送邮件:xiuyuan2000@gmail.com

6 Lý Do Kỹ Thuật Khiến Trang Sản Phẩm Không Được Lập Chỉ Mục|Không Bao Gồm Nội Dung Trùng Lặp Và Giới Hạn Thu Thập Dữ Liệu

本文作者:Don jiang

Nguyên nhân khiến trang không được lập chỉ mục có thể ẩn trong cấu trúc mã hoặc cấu hình máy chủ

Ví dụ, bot không thể “đọc hiểu” nội dung động của bạn hoặc một tham số sai khiến trang bị coi là trùng lặp.

Bài viết này sẽ xuất phát từ góc độ kỹ thuật, tổng hợp 6 vấn đề thường bị bỏ qua nhưng ảnh hưởng trực tiếp đến việc lập chỉ mục, kèm cách kiểm tra và khắc phục cụ thể.

6 nguyên nhân kỹ thuật khiến trang sản phẩm không được lập chỉ mục

Table of Contens

Tốc độ tải trang chậm làm bot không thể thu thập dữ liệu

Ví dụ, nếu thời gian phản hồi máy chủ vượt quá 3 giây, Googlebot có thể từ bỏ việc thu thập hoặc chỉ lập chỉ mục nội dung bị thiếu.

Vấn đề này thường bị bỏ qua, vì nhiều quản trị viên web chỉ chú trọng trải nghiệm người dùng (như việc hiển thị animation khi tải trang) mà quên mất “ngưỡng chịu đựng” của bot.

Thời gian phản hồi máy chủ quá lâu

Cách kiểm tra vấn đề:
Kiểm tra TTFB (Time to First Byte) qua Google Search Console ở mục “Core Web Vitals” hoặc dùng công cụ như GTmetrix. Nếu TTFB vượt quá 1.5 giây, cần tối ưu.

Giải pháp:

  1. Nâng cấp cấu hình máy chủ (CPU/RAM) hoặc chuyển sang các nhà cung cấp hosting hiệu suất cao (như Cloudways, SiteGround).
  2. Tối ưu truy vấn database: Giảm các truy vấn JOIN phức tạp, thêm index vào bảng dữ liệu sản phẩm.
  3. Bật cache máy chủ (như Redis hoặc Memcached) để giảm tần suất tạo trang động.

Chưa tối ưu các tệp tài nguyên

Các vấn đề thường gặp:

  • Ảnh sản phẩm chưa nén (ví dụ PNG chưa chuyển sang WebP, độ phân giải quá 2000px).
  • CSS/JS chưa được gộp, gây ra hàng chục yêu cầu HTTP.

Các bước khắc phục:

  1. Dùng Squoosh hoặc TinyPNG để nén ảnh, chọn kích thước phù hợp với thiết bị phổ biến (ví dụ 1200px chiều rộng).
  2. Dùng Webpack hoặc Gulp để gộp CSS/JS, giảm số lượng yêu cầu tệp.
  3. Bật nén Gzip hoặc Brotli để giảm dung lượng truyền tải.

Script chặn hiển thị nội dung

Ở góc nhìn bot:
Bot khi gặp script không tải bất đồng bộ (ví dụ Google Analytics tải đồng bộ) sẽ tạm dừng xử lý HTML cho tới khi script thực thi xong.

Giải pháp tối ưu:

  • Thêm thuộc tính async hoặc defer cho các script không cần thiết (ví dụ: ).
  • Chuyển các công cụ bên thứ ba (như chatbox, heatmap) tải sau khi trang đã hiển thị xong.

Công cụ kiểm tra & gợi ý ưu tiên

Checklist tự kiểm tra:

  1. PageSpeed Insights: Xác định vấn đề tải tài nguyên cụ thể (ví dụ “Giảm thời gian thực thi JavaScript”).
  2. Screaming Frog: Kiểm tra hàng loạt TTFB các trang sản phẩm, lọc ra các URL có tốc độ chậm.
  3. Lighthouse: Xem mục “Cơ hội” để nhận đề xuất (ví dụ xóa CSS không dùng).

Ưu tiên tối ưu gấp:
Xử lý ngay các trang có TTFB > 2 giây, trang có trên 50 HTTP request, hoặc ảnh dung lượng > 500KB.

Tham khảo số liệu:
Google cho biết, nếu thời gian tải trang tăng từ 1 giây lên 3 giây, khả năng bot thất bại khi thu thập dữ liệu tăng 32%. Áp dụng các giải pháp trên có thể giúp đa số trang sản phẩm tải xong dưới 2 giây, nâng cao đáng kể khả năng được lập chỉ mục.

robots.txt chặn nhầm thư mục sản phẩm

Ví dụ, nếu vô tình viết Disallow: /tmp/ thành Disallow: /product/, bot sẽ không thể truy cập trang sản phẩm, dù nội dung chất lượng cao.

Cách nhanh để kiểm tra robots.txt chặn URL

Công cụ kiểm tra:

  • Google Search Console: Vào “Chỉ mục” > “Trang”, nếu trang sản phẩm bị chặn sẽ hiện chi tiết lý do do robots.txt.
  • Công cụ kiểm tra trực tuyến: Dùng robots.txt tester nhập URL để kiểm tra quyền truy cập dưới góc nhìn bot.

Các lỗi thường gặp:

  1. Gõ sai đường dẫn (ví dụ /produc/ thay vì /product/).
  2. Dùng ký tự đại diện * quá mức (ví dụ Disallow: /*.jpg$ chặn tất cả ảnh sản phẩm).

Cách sửa lỗi chặn robots.txt nhầm lẫn

Nguyên tắc viết đúng chuẩn

  • Khớp chính xác đường dẫn: Tránh chặn quá rộng, ví dụ với thư mục tạm thời nên dùng Disallow: /old-product/ thay vì Disallow: /product/
  • Phân loại bot rõ ràng: Nếu chỉ muốn chặn bot rác, cần chỉ rõ User-agent (ví dụ: User-agent: MJ12bot)

Xử lý tham số URL

  • Cho phép tham số cần thiết (ví dụ phân trang ?page=2), chỉ nên chặn tham số sắp xếp bằng Disallow: *?sort=
  • Dùng ký hiệu $ để chỉ kết thúc tham số (ví dụ: Disallow: /*?print=true$)

Quy trình khôi phục khẩn cấp & kiểm tra xác minh

Ví dụ các bước thực hiện

  1. Chỉnh sửa file robots.txt, ghi chú hoặc xóa dòng sai (ví dụ: # Disallow: /product/)
  2. Gửi yêu cầu cập nhật robots.txt trên Google Search Console
  3. Dùng công cụ “Kiểm tra URL” để kiểm tra thủ công trạng thái thu thập dữ liệu của trang sản phẩm
  4. Kiểm tra lại tình trạng index sau 24h, nếu chưa khôi phục có thể gửi sitemap sản phẩm thủ công

Biện pháp bảo vệ

  • Quản lý lịch sử chỉnh sửa robots.txt bằng công cụ quản lý phiên bản (ví dụ Git) để dễ dàng khôi phục lại
  • Thử nghiệm các thay đổi trên môi trường staging, tránh chỉnh sửa trực tiếp trên môi trường chính

Phân tích tình huống thực tế

Cấu hình sai

User-agent: *

Disallow: /

Allow: /product/

Vấn đề: Disallow: / đã chặn toàn bộ website, nên rule Allow sau đó không có tác dụng

Chỉnh sửa đúng

User-agent: *

Disallow: /admin/

Disallow: /tmp/

Allow: /product/

Giải pháp: Chỉ chặn thư mục quản trị và thư mục tạm thời, cho phép rõ ràng đường dẫn sản phẩm

Trang sản phẩm thiếu liên kết nội bộ hợp lệ

Nếu trang sản phẩm không có liên kết nội bộ (ví dụ: menu điều hướng, bài viết liên quan, anchor text trong nội dung), nó sẽ trở thành “đảo cô lập”. Dù nội dung tốt, bot cũng khó index.

Tình huống này thường gặp ở sản phẩm mới, trang chuyên đề độc lập hoặc trang nhập hàng loạt từ công cụ bên ngoài — những trang này chưa được gắn vào cấu trúc điều hướng tổng thể của website.

Thiếu cấu trúc điều hướng hoặc thiết kế kém hợp lý

Vấn đề phổ biến

  • Trang sản phẩm không nằm trong menu chính hoặc danh mục (chỉ hiển thị qua trang tìm kiếm)
  • Menu di động dạng ẩn (hamburger menu), nhưng đường dẫn sản phẩm quan trọng lại bị ẩn sâu trong nhiều tầng submenu

Giải pháp

Công cụ tự kiểm tra: Dùng Screaming Frog crawl toàn bộ site, lọc trang sản phẩm có “số lượng liên kết nội bộ ≤ 1”

Các bước tối ưu

  1. Thêm liên kết đến trang sản phẩm tổng hợp (ví dụ: “Sản phẩm mới nổi bật”, “Danh mục gợi ý”) ngay trong menu chính
  2. Đảm bảo mỗi trang sản phẩm đều thuộc ít nhất 1 danh mục (ví dụ: /category/shoes/product-A)

Chưa tận dụng tốt module sản phẩm liên quan

Góc nhìn bot: Nội dung kiểu “Có thể bạn thích” nếu chỉ tải bằng JavaScript thì bot có thể không thu thập được các liên kết này.

Cung cấp lối vào tĩnh cho nội dung gợi ý động, chẳng hạn như cố định vị trí hiển thị “Top 10 sản phẩm bán chạy tuần này” và liên kết trực tiếp đến trang sản phẩm.

Thanh điều hướng Breadcrumb không bao phủ đầy đủ cấp danh mục quan trọng

Ví dụ sai: Đường dẫn breadcrumb quá ngắn, không hiển thị trang danh mục (ví dụ: Trang chủ > Sản phẩm A).

Cách khắc phục:

  1. Bổ sung đầy đủ các cấp danh mục (ví dụ: Trang chủ > Giày thể thao > Giày chạy bộ > Sản phẩm A), mỗi cấp đều cần có liên kết có thể nhấp.
  2. Thiết lập CMS tự động tạo breadcrumb, đảm bảo cấu trúc URL khớp (ví dụ: /category1/category2/product-name).

Thiếu liên kết anchor text trong trang nội dung

Chèn tự nhiên liên kết đến các sản phẩm liên quan trong mô tả sản phẩm (ví dụ: “Máy ảnh này tương thích với Chân máy X”).

Trong phần đánh giá người dùng, thêm đề xuất liên kết như “Khách hàng mua sản phẩm này cũng xem những sản phẩm sau”.

Chiến lược khắc phục khẩn cấp

Phương án tạm thời:

  • Tạo trang tổng hợp “Sản phẩm mới cập nhật” để liên kết các sản phẩm chưa được lập chỉ mục và thêm vào footer trang chủ.
  • Chèn liên kết đến trang sản phẩm mục tiêu trong các trang có độ uy tín cao (ví dụ: bài viết blog “Đọc thêm: Top giày chạy bộ tốt nhất 2024”).

Phương án duy trì lâu dài:

  • Hàng tuần kiểm tra trạng thái index của trang sản phẩm bằng công cụ như Ahrefs Site Audit, kịp thời bổ sung các liên kết nội bộ còn thiếu.

Thiếu nội dung do JavaScript dynamic rendering

Ví dụ: Trang sản phẩm được phát triển bằng Vue hoặc React, nếu thông tin quan trọng (như SKU, thông số kỹ thuật) được tải bất đồng bộ qua API, crawler có thể không kịp thu thập dữ liệu do timeout.

Kết quả là trang được index chỉ hiển thị placeholder “Đang tải”, làm giảm khả năng cạnh tranh trên kết quả tìm kiếm.

Cách phát hiện vấn đề thiếu nội dung do dynamic rendering

Công cụ tự kiểm tra:

  1. Google Mobile-Friendly Test: Nhập URL trang sản phẩm, kiểm tra ảnh chụp HTML sau khi render có hiển thị nội dung chính (giá sản phẩm, nút mua hàng, v.v.) hay không.
  2. Giả lập crawler bằng lệnh curl: Dùng terminal chạy lệnh curl -A "Googlebot" URL để so sánh HTML trả về với nguồn trang trong DevTools trình duyệt.

Dấu hiệu phổ biến:

  • Trong source code không có mô tả sản phẩm, đánh giá, chỉ còn các thẻ placeholder như

    .

  • Google Search Console báo cáo “Đã thu thập dữ liệu nhưng chưa được lập chỉ mục”, lý do “Trang trống”.

Giải pháp SSR (Server-Side Rendering) và Pre-rendering

Ưu điểm của SSR: Tạo HTML đầy đủ trên server trước khi gửi đến crawler, đảm bảo nội dung có thể thu thập ngay từ lần đầu.

Framework phù hợp: Next.js (React), Nuxt.js (Vue), Angular Universal.

Ví dụ code (Next.js cho trang sản phẩm):

export async function getServerSideProps(context) {
const product = await fetchAPI(`/product/${context.params.id}`);
return { props: { product } };
Phương án thay thế Pre-rendering: Đối với các trang web khó chuyển đổi sang SSR, có thể sử dụng Prerender.io hoặc Rendertron để tạo snapshot tĩnh.

Các bước cấu hình:

  1. Thiết lập middleware trên máy chủ để phát hiện yêu cầu từ bot và chuyển tiếp đến dịch vụ pre-rendering.
  2. Cache kết quả render để giảm chi phí render lặp lại.

Tối ưu hóa thời điểm tải nội dung động

Logic quan trọng: Nhúng trực tiếp thông tin chính của sản phẩm (tiêu đề, giá, thông số kỹ thuật) vào HTML ban đầu, thay vì tải bất đồng bộ qua JS.

Ví dụ sai:

// Lấy giá bất đồng bộ (bot có thể không chờ được)
fetch('/api/price').then(data => {
document.getElementById('price').innerHTML = data.price;
});

Phương án chỉnh sửa:

<!-- In giá trực tiếp trong HTML ban đầu -->

$99.99

Kiểm soát thời gian thực thi JS và dung lượng tài nguyên

Ngưỡng chịu đựng của bot: Googlebot chỉ chờ khoảng 5 giây để thực thi JS và render.

Biện pháp tối ưu:

Chia nhỏ code (Code Splitting): Chỉ tải các JS cần thiết trên trang sản phẩm (ví dụ, loại bỏ các module thư viện ảnh hoặc slideshow không cần thiết)

// Import động các module không quan trọng (ví dụ: trình phát video sản phẩm)
import('video-player').then(module => {
module.loadPlayer();
});

Trì hoãn tải tài nguyên không thuộc vùng nhìn đầu tiên (non-first screen resources): Các module như bình luận, sản phẩm gợi ý nên tải sau sự kiện DOMContentLoaded.

Vấn đề URL trùng lặp do tham số lộn xộn

Ví dụ, cùng một sản phẩm nhưng thứ tự tham số khác nhau (/product?color=red&size=10/product?size=10&color=red) có thể bị bot coi là hai trang khác nhau, gây phân tán giá trị nội dung hoặc bị phạt vì trùng lặp nội dung.

Xác định phạm vi ảnh hưởng của tham số URL trùng lặp

Công cụ tự kiểm tra:

  1. Google Search Console: Kiểm tra báo cáo “Coverage”, lọc các URL “Đã gửi nhưng chưa được lập chỉ mục” để xác định tỷ lệ URL trùng lặp do tham số.
  2. Screaming Frog: Thiết lập “Ignore Parameters”, quét toàn bộ trang để đếm số biến thể URL cho cùng một trang sản phẩm.

Các trường hợp phổ biến:

  • Một sản phẩm có nhiều URL do bộ lọc (ví dụ: sắp xếp theo giá, lọc theo màu sắc).
  • Tham số phân trang không cài đặt rel="canonical", dẫn đến việc mỗi trang phân trang bị coi là trang riêng biệt.

Chuẩn hóa tham số và gom tụ giá trị SEO

Thứ tự ưu tiên các giải pháp:

Cố định thứ tự tham số: Áp dụng quy tắc sắp xếp tham số cố định (ví dụ: màu sắc → kích thước → sắp xếp) để tránh URL trùng lặp.

  • Ví dụ: Bắt buộc tất cả URL sản phẩm phải tuân theo định dạng /product?color=red&size=10, các URL khác sẽ redirect 301 về URL chuẩn.

Sử dụng thẻ Canonical: Thêm thẻ canonical trong phần <head> của các trang có tham số, trỏ về URL sản phẩm chính.

Chặn các tham số không cần thiết

Sử dụng meta robots noindex hoặc robots.txt để ngăn không cho lập chỉ mục các tham số theo dõi (ví dụ: ?session_id=xxx)

Các kỹ thuật xử lý tham số phía máy chủ

Quy tắc viết lại URL:

Ví dụ Apache (ẩn tham số phân trang và chuẩn hóa URL):


RewriteCond %{QUERY_STRING} ^page=([2-9]|10)$
RewriteRule ^product/?$ /product?page=%1 [R=301,L]

Ví dụ Nginx (hợp nhất tham số sắp xếp):


if ($args ~* "sort=price") {
rewrite ^/product /product?sort=price permanent;
}

Kiểm soát tham số động:

  • Đặt trước danh sách các tham số hợp lệ trong CMS, từ chối các yêu cầu tham số không hợp lệ (trả về 404 hoặc chuyển hướng về trang chính).

Chiến lược SEO cho trang phân trang và trang lọc sản phẩm

Trang phân trang:

  1. Thêm thẻ rel="prev"rel="next" để thông báo cho công cụ tìm kiếm về mối quan hệ giữa các trang phân trang.
  2. Đối với các trang phân trang không phải trang đầu tiên (ví dụ: page=2 trở đi), nên đặt noindex, chỉ cho phép lập chỉ mục trang đầu tiên.

Trang lọc sản phẩm:

Nếu kết quả lọc không có sản phẩm phù hợp (ví dụ: /product?color=purple nhưng hết hàng), hãy trả về lỗi 404 hoặc chuyển hướng 302 đến danh mục liên quan.

Thiếu thẻ HTML chuẩn

Ví dụ, nếu trang không có thẻ H1, công cụ tìm kiếm có thể đánh giá là “không rõ chủ đề”, ngoài ra nếu không cài đặt Schema Structured Data, các thuộc tính quan trọng như giá sản phẩm, tình trạng hàng tồn kho sẽ không được hiển thị nổi bật trên kết quả tìm kiếm.


<link rel="canonical" href="https://example.com/product" />

Thiếu hoặc trùng lặp thẻ H1

Xác định vấn đề

  • Sử dụng công cụ dành cho nhà phát triển của trình duyệt để kiểm tra xem trang sản phẩm có tồn tại thẻ

    duy nhất và chứa từ khóa hay không.

  • Lỗi phổ biến: Có nhiều thẻ H1 (ví dụ sử dụng cho cả tên sản phẩm và tên thương hiệu), hoặc nội dung H1 không liên quan đến chủ đề trang (ví dụ: “Chào mừng bạn đến với cửa hàng”).

Giải pháp khắc phục

  • Đảm bảo mỗi trang sản phẩm chỉ có một thẻ H1 duy nhất, ưu tiên chứa tên sản phẩm + điểm bán hàng chính (ví dụ:

    Giày chạy bộ dòng X | Giảm chấn, thoáng khí, mẫu mới 2024

    ).

  • Không sử dụng hình ảnh thay thế cho văn bản H1 (bot tìm kiếm không thể đọc văn bản trong hình ảnh); nếu bắt buộc phải dùng hình, cần thêm thuộc tính aria-label.

Thẻ Meta Description chưa được tối ưu

Ảnh hưởng:Nếu thẻ meta description không đầy đủ hoặc thiếu, công cụ tìm kiếm sẽ tự động lấy nội dung ngẫu nhiên trên trang làm đoạn mô tả, giảm tỷ lệ nhấp chuột.

Các bước tối ưu

  1. Độ dài nên từ 150-160 ký tự, chứa từ khóa chính của sản phẩm và lời kêu gọi hành động (ví dụ: ).
  2. Cấu hình CMS để tự động lấy thông tin điểm bán hàng sản phẩm điền vào description, tránh bỏ trống.

Bỏ qua dữ liệu có cấu trúc Schema

Nhu cầu của công cụ tìm kiếm:Schema Markup giúp xác định rõ các thuộc tính quan trọng như giá, đánh giá, tình trạng còn hàng, tăng độ phong phú cho kết quả tìm kiếm.

Cách triển khai

Sử dụng Schema Markup Generator để tạo đoạn mã JSON-LD kiểu Product và chèn vào phần của trang:

<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Giày chạy bộ dòng X",
"image": "https://example.com/shoe.jpg",
"offers": {
"@type": "Offer",
"price": "99.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}
script>
  • Công cụ kiểm tra: Sử dụng Google Structured Data Testing Tool để xác nhận đánh dấu đã hoạt động đúng.

Hình ảnh chưa thêm thuộc tính Alt

Giá trị SEO:Alt text giúp công cụ tìm kiếm hiểu nội dung hình ảnh và tăng khả năng truy cập cho người dùng khiếm thị.

Ví dụ sai

  • Bỏ trống Alt () hoặc nhồi nhét từ khóa quá mức (alt="giày chạy bộ giày thể thao giày giảm chấn mẫu mới 2024").

Viết đúng cách

  • Mô tả rõ nội dung và ngữ cảnh của hình ảnh (ví dụ: alt="Hình ảnh thực tế giày chạy bộ dòng X màu đen, hiển thị cấu trúc đế giày giảm chấn").
  • Đối với hình ảnh trang trí, nên để alt="" để tránh thông tin dư thừa.

Thẻ Canonical trỏ sai URL

Rủi ro:Nếu thẻ Canonical của trang sản phẩm trỏ về trang danh mục hoặc trang chủ, sẽ làm sai lệch phân bổ sức mạnh SEO.

Kiểm tra & khắc phục

  • Dùng Screaming Frog để quét hàng loạt các trang sản phẩm, lọc các trang có Canonical trỏ sai hoặc ra ngoài trang web.
  • Cách viết chuẩn: (trỏ đúng về URL tiêu chuẩn của trang hiện tại).

Hãy chọn một trang sản phẩm lâu ngày chưa được lập chỉ mục, kiểm tra chi tiết theo danh sách trên, thường chỉ cần 30 phút để phát hiện vấn đề cốt lõi.

滚动至顶部