Báo Cáo Lỗi Kỹ Thuật SEO

📅 Ngày kiểm tra: 2026-03-03 🌐 Website: xehunglong.com 📝 Cập nhật: Thêm phần Blog/Content SEO audit

0. VẤN ĐỀ KHẨN CẤP

Google gần như không index

0.1 Google chỉ index 2 trang

  • Tìm site:xehunglong.com trên Google → chỉ thấy 2 kết quả: trang chủ và /ve-chung-toi/
  • Các trang /gui-hang, /xe-hop-dong, /tin-tuc, và toàn bộ bài viết blog KHÔNG được index
  • Nguyên nhân chính: Website dùng Next.js với Client-Side Rendering (CSR) → Googlebot không thấy nội dung thực tế, chỉ thấy shell HTML trống
Yêu cầu KHẨN CẤP: Chuyển toàn bộ trang sang Server-Side Rendering (SSR) hoặc Static Site Generation (SSG) bằng getServerSideProps hoặc getStaticProps trong Next.js. Đây là vấn đề #1 cần fix trước mọi thứ khác.

0.2 Blog articles dùng URL query string

  • URL hiện tại: /tin-tuc/bai-viet?slug=huong-dan-mua-ve
  • URL chuẩn SEO: /tin-tuc/huong-dan-mua-ve (clean URL, không có query string)
  • Google đánh giá thấp URL dạng ?slug= so với đường dẫn tĩnh
Yêu cầu: Chuyển sang dynamic routes của Next.js: /tin-tuc/[slug].tsx thay vì dùng query parameter.

0.3 Trang /ve-chung-toi/ trả về 404

  • URL /ve-chung-toi/ (có trailing slash) → 404 Not Found
  • Nhưng Google đã index URL này → người dùng click từ Google sẽ thấy trang lỗi
Yêu cầu: Fix routing hoặc redirect /ve-chung-toi//ve-chung-toi (hoặc ngược lại, tùy cấu hình trailingSlash trong next.config.js).

1. SEO - Vấn đề nghiêm trọng (Toàn site)

1.1 Sitemap chỉ có 4 URL

  • Sitemap (/sitemap.xml) chỉ chứa 4 trang: /, /gui-hang, /xe-hop-dong, /tin-tuc
  • Ngày cập nhật cuối: 2024-08-22 (hơn 1 năm không cập nhật)
  • Thiếu <changefreq> cho từng URL
Yêu cầu: Tự động sinh sitemap khi thêm bài viết blog, landing page mới. Cập nhật lastmod đúng thời gian thực.

1.2 Thiếu Canonical Tag

  • Trang chủ không có <link rel="canonical"> → Google có thể index nhiều phiên bản URL trùng lặp
Yêu cầu: Thêm canonical tag cho mọi trang.

1.3 Thiếu Schema LocalBusiness

  • Chỉ có schema OrganizationWebSite
  • Thiếu schema LocalBusiness với thông tin: địa chỉ 2 chi nhánh, số điện thoại, giờ hoạt động, tọa độ GPS
Yêu cầu: Thêm JSON-LD LocalBusiness cho cả 2 văn phòng (Hà Nội + Quảng Bình).

1.4 Title & Branding không nhất quán

  • Title hiện tại: "Xe Quảng Bình - Công ty TNHH du lịch 338"
  • Tên thương hiệu chính là Xe Hưng Long nhưng title lại dùng "Xe Quảng Bình"
  • OG image trỏ tới domain khác: xequangbinh.vn/images/banner_hunglong.jpg
Yêu cầu: Đổi title thành format có thương hiệu Hưng Long. Host ảnh OG trên chính domain xehunglong.com.

1.5 Robots meta tag có nocache

  • Tag hiện tại: index, follow, nocache
  • nocache ngăn Google lưu bản cache → không cần thiết, có thể ảnh hưởng SEO
Yêu cầu: Đổi thành index, follow (bỏ nocache).

2. Blog/Content SEO - Vấn đề nghiêm trọng

2.1 Nội dung blog không render phía server (Critical)

  • Toàn bộ nội dung bài viết load bằng JavaScript client-side
  • Googlebot nhận được HTML trống không có text, heading, hình ảnh
  • Kết quả: 0 bài blog được Google index, dù đã có bài viết trên site
Yêu cầu: Dùng SSR (getServerSideProps) hoặc SSG (getStaticProps + getStaticPaths) cho mọi trang blog.

2.2 Meta tags giống nhau cho MỌI trang (Critical)

  • Mọi trang đều dùng cùng OG tags (Title giống nhau, URL luôn trỏ về homepage, chung banner)
  • Trang /gui-hang có title "Tạo đơn gửi hàng" nhưng OG title vẫn là homepage
Yêu cầu: Mỗi trang phải có OG tags riêng biệt, đặc biệt og:title, og:description, og:url, và og:image phải tương ứng với nội dung trang đó.

2.3 Meta description cực kỳ yếu

  • Trang tin tức, gửi hàng, xe hợp đồng: Chỉ có chữ "Nhà xe" (2 từ!)
  • Meta description chuẩn: 150-160 ký tự, chứa từ khóa, mô tả nội dung cụ thể
Yêu cầu: Viết meta description riêng cho mỗi trang, 150-160 ký tự, chứa từ khóa target.

2.4 Title tag quá ngắn và generic

  • /tin-tuc → "Tin tức" (thiếu brand, thiếu keyword)
  • /gui-hang → "Tạo đơn gửi hàng" (thiếu brand)
Yêu cầu: Format chuẩn: [Nội dung trang] | Nhà Xe Hưng Long. Ví dụ: "Tin Tức Xe Khách Hà Nội - Quảng Bình | Nhà Xe Hưng Long"

2.5 Các lỗi cấu trúc khác (Schema, Breadcrumbs, Sitemap)

  • Thiếu Article Schema (JSON-LD BlogPosting) cho bài viết
  • Thiếu BreadcrumbList Schema và giao diện Breadcrumb tương ứng
  • Sitemap KHÔNG chứa các URL bài viết riêng lẻ
  • Không có pagination (rel="next" / rel="prev") cho trang listing
  • Author tag sai thương hiệu (đang là "Xe Quảng Bình" thay vì "Nhà Xe Hưng Long")
Yêu cầu: Bổ sung đồng bộ schema, khai báo sitemap động và chuẩn hóa thương hiệu trong source code.

3. Tracking & Analytics

  • Thiếu GTM: Chỉ mới cài GA4 trực tiếp, chưa qua Google Tag Manager dẫn đến khó setup track sự kiện.
  • Thiếu Ads Conversion: Chưa cài tracking pixel cho Google Ads.
  • Thiếu Cookie Consent: Không có cơ chế xin phép user cookie.
Cài đặt Google Tag Manager làm base để load toàn bộ tracking scripts.

4. Performance

  • Quá nhiều JS chunks: >20 file JS làm nghẽn quá trình render.
  • CSS load tuần tự: 4 file CSS load độc lập thay vì inline critical CSS.
  • Thiếu Lazy Load & Responsive Image: Ảnh không dùng thuộc tính loading="lazy" và không resize qua next/image.
Tối ưu hóa Core Web Vitals (LCP, INP) thông qua tính năng có sẵn của Next.js.

5. Accessibility (Trợ năng)

  • Thiếu link "Skip to main content" ẩn cho screen readers.
  • Nhiều hình ảnh (bao gồm OG Image) thiếu thẻ alt.
  • Không có semantic ARIA landmarks (dùng thẻ <div> vô tội vạ thay vì <main>, <nav>).

6. Technical / Infra

  • Số hotline 0914.077.779 không bọc trong thẻ <a href="tel:..."> dẫn đến không bấm gọi được trên Mobile.
  • Thiếu hreflang tags cho multi-region routing (hoặc default lang).
  • Thiếu CSP (Content Security Policy) header tiềm ẩn rủi ro bảo mật XSS.

📌 7. Mức Độ Ưu Tiên Xử Lý

# Hạng mục công việc / Fixes Độ ưu tiên Ảnh hưởng
1 Chuyển CSR → SSR/SSG cho toàn bộ trang KHẨN CẤP Google không index được site
2 Đổi blog URL từ ?slug= sang /tin-tuc/[slug] KHẨN CẤP URL query khó index
3 Fix meta tags riêng cho từng trang (title, desc, OG) KHẨN CẤP Google coi đa trang là duplicate
4 Fix sitemap auto-generate (Gắn full bài viết) Cao Crawler không biết có bài mới
5 Cài GTM + GA4 event tracking + Google Ads pixel Cao Thiếu tracking convert
6 Thêm canonical tags cho mọi trang Cao Tránh duplicate content
7 Thêm schema: LocalBusiness + BlogPosting + Breadcrumb Cao Cải thiện hiển thị SERP rich snippet
8 Fix trailing slash 404 (/ve-chung-toi/) Cao Gây mất traffic từ index lỗi
9 Số điện thoại dùng tel: link Cao Trải nghiệm người dùng Mobile
10 Host OG image trên domain chính + Giảm JS cache Trung Bình Images, Web Vitals Performance
💡 Ghi chú Ahrefs: Không có Ahrefs MCP server được kết nối trong session này. Dữ liệu từ Obsidian vault trước đó cho thấy DR hiện tại là 3.9/100, organic traffic ~1,900/tháng (chủ yếu branded search).