Back to blogs

SEO

Tối ưu SEO cho portfolio Astro: sitemap, canonical, structured data và social preview

Bài viết này tổng hợp cách mình tối ưu SEO cho portfolio Astro theo hướng thực dụng: sitemap, robots, canonical, Open Graph, Twitter Card, structured data và các route nên noindex.

5 min readseoastrostructured-dataopen-graphsitemapgg-search-console
Tối ưu SEO cho portfolio Astro: sitemap, canonical, structured data và social preview

Tối ưu SEO cho portfolio Astro: sitemap, canonical, structured data và social preview

SEO cho một website portfolio hoặc blog cá nhân không chỉ là thêm vài dòng meta titlemeta description. Nếu muốn Google hiểu đúng nội dung, index đúng URL, và hiển thị đẹp khi chia sẻ lên mạng xã hội, mình cần làm đầy đủ hơn ở nhiều lớp.

1. Mục tiêu SEO của một portfolio/blog cá nhân

Với dạng website như portfolio, blog kỹ thuật, hoặc trang giới thiệu cá nhân, mục tiêu SEO thường không phải là spam từ khóa. Thay vào đó, mục tiêu thực tế hơn là:

  • để Google crawl được nội dung quan trọng
  • để các bài blog có thể index đúng theo slug
  • để trang chi tiết có title, description và ảnh preview riêng
  • để các route nội bộ như /new hoặc /edit/:slug không bị index nhầm
  • để khi share link lên Facebook, Telegram, Discord hoặc X thì preview nhìn đủ tốt

2. Title, description và canonical là phần cơ bản nhất

Mỗi trang nên có:

  • title riêng
  • description riêng
  • canonical riêng

Điều này đặc biệt quan trọng với các trang như:

  • /blogs
  • /blogs/:slug
  • /projects
  • /projects/:slug

Nếu detail page chỉ dùng một bộ metadata chung cho toàn site thì Google và social bot sẽ không phân biệt được từng nội dung cụ thể.

Canonical cũng quan trọng vì nó giúp nói rõ URL chuẩn là gì, tránh trường hợp cùng một nội dung nhưng bị xem như nhiều URL khác nhau.

3. Sitemap và robots giúp bot hiểu cấu trúc site

Một site có blog và project detail nên có:

  • /sitemap.xml
  • /robots.txt

robots.txt nên cho phép bot đọc phần public, nhưng chặn những route nội bộ như:

  • /projects/new
  • /blogs/new
  • /projects/edit/:slug
  • /blogs/edit/:slug

Còn sitemap.xml nên liệt kê:

  • trang chủ
  • trang danh sách projects
  • trang danh sách blogs
  • toàn bộ projects/:slug
  • toàn bộ blogs/:slug

Khi đã có sitemap, bước tiếp theo vẫn phải làm thủ công ở Google Search Console là submit sitemap.xml.

4. Open Graph và Twitter Card không phải SEO thuần, nhưng rất đáng làm

Khi ai đó gửi link bài blog của bạn qua chat hoặc mạng xã hội, platform thường đọc:

  • og:title
  • og:description
  • og:image
  • og:type
  • twitter:card

Nếu thiếu các field này, link preview thường rất xấu hoặc bị rỗng.

Với bài viết blog, og:type nên là article. Với các page khác như home hoặc projects detail thì có thể dùng kiểu generic hơn.

5. Structured data giúp Google hiểu ngữ nghĩa tốt hơn

Phần này không thay thế SEO cơ bản, nhưng nó giúp nội dung có cấu trúc rõ hơn với search engine.

Một portfolio/blog cá nhân thường nên có:

  • WebSite
  • Person
  • BreadcrumbList
  • Article cho blog detail
  • CreativeWork hoặc tương đương cho project detail

Ví dụ, với một blog detail, structured data có thể mô tả:

  • tiêu đề bài viết
  • mô tả ngắn
  • ngày tạo
  • ngày cập nhật
  • ảnh cover
  • tác giả
  • URL chuẩn

Điểm quan trọng là metadata hiển thị cho người dùng và structured data nên nhất quán với nhau.

6. Không nên index các route thao tác nội bộ

Các route như tạo mới và chỉnh sửa thường không mang giá trị tìm kiếm, nên cần noindex.

Ví dụ:

  • /projects/new
  • /blogs/new
  • /projects/edit/:slug
  • /blogs/edit/:slug

Nếu không chặn, Google vẫn có thể crawl những trang này nếu gặp internal link hoặc link bị lộ ở đâu đó.

7. Social preview tốt cũng là một phần của chất lượng nội dung

Một bài blog kỹ thuật có preview đẹp sẽ tăng tỷ lệ người khác bấm vào khi bạn gửi link.

Thường mình cần ít nhất:

  • ảnh cover đủ rõ
  • title ngắn gọn
  • description đủ cụ thể
  • không dùng cùng một ảnh cho mọi bài nếu có thể tránh

Nếu chưa có hệ thống auto-generate OG image, vẫn có thể dùng cover image riêng của từng bài.

8. Hiệu suất vẫn ảnh hưởng gián tiếp tới SEO

SEO không chỉ là metadata. Một trang chậm, layout nhảy nhiều, hoặc hydrate quá nặng vẫn ảnh hưởng trải nghiệm thực tế.

Điểm mình thấy Astro hợp ở đây là:

  • HTML server-rendered hoặc pre-rendered sạch
  • ít JavaScript mặc định hơn
  • content page dễ tối ưu hơn so với SPA-first

Đặc biệt với blog và project detail, render nội dung sẵn ở HTML luôn tốt hơn việc để bot chỉ thấy loading state.

9. Checklist ngắn mình dùng cho một bài blog

Trước khi publish, mình thường check:

  • đã có title riêng chưa
  • đã có description riêng chưa
  • canonical đúng chưa
  • og:image chưa
  • og:type đã là article chưa
  • có structured data Article chưa
  • slug có sạch và đọc được không
  • bài đã xuất hiện trong sitemap chưa
  • route có public read permission thật chưa

10. Kết luận

SEO tốt cho portfolio/blog không cần quá màu mè. Phần quan trọng nhất là cấu trúc rõ, metadata đúng, route public sạch, và nội dung detail được render theo cách mà bot đọc được ngay.

Nếu làm đúng các phần như sitemap, canonical, Open Graph, structured data và noindex cho route nội bộ, site sẽ gọn hơn rất nhiều trong mắt cả Google lẫn người dùng chia sẻ link.