Bỏ qua điều hướng
chuanweb.com
Quay lại tất cả bài viết

SEO kỹ thuật cho website tĩnh Astro: sitemap, robots và structured data

chuanweb.com 2 phút đọc

Website tĩnh chạy nhanh là lợi thế lớn cho SEO, nhưng nếu bỏ quên khâu kỹ thuật — sitemap, robots, structured data — thì nội dung hay cũng khó lên top. Astro v5 cung cấp sẵn công cụ cho hầu hết các việc này, chỉ cần bật đúng chỗ.

Sitemap và robots.txt chuẩn

Astro có sẵn tích hợp @astrojs/sitemap. Thêm vào cấu hình:

// astro.config.mjs
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';

export default defineConfig({
  site: 'https://chuanweb.com',
  integrations: [sitemap()],
});

Sau khi build, file sitemap-index.xml và danh sách URL được sinh tự động trong dist. Đồng thời tạo robots.txt trong thư mục public:

User-agent: *
Allow: /
Sitemap: https://chuanweb.com/sitemap-index.xml

Thẻ canonical chống nội dung trùng lặp

Khi cùng một nội dung xuất hiện ở nhiều URL, Google cần biết bản chính thức. Dùng Astro.canonicalURL trong layout:

---
// src/layouts/BaseLayout.astro
const { title } = Astro.props;
---

<!doctype html>
<html lang="vi">
<head>
  <meta charset="utf-8" />
  <title>{title} · chuanweb.com</title>
  <link rel="canonical" href={Astro.canonicalURL} />
</head>
<body>
  <slot />
</body>
</html>

Structured data bằng JSON-LD

Dữ liệu có cấu trúc giúp Google hiển thị rich snippet. Cho trang blog, dùng schema Article hoặc BlogPosting ngay trong chính bài viết:

---
const { title, description, pubDate, tags } = Astro.props;
const jsonLd = {
  '@context': 'https://schema.org',
  '@type': 'BlogPosting',
  headline: title,
  description,
  datePublished: pubDate,
  keywords: tags.join(', '),
  url: Astro.canonicalURL,
};
---

<script type="application/ld+json" set:html={JSON.stringify(jsonLd)} />

Google sẽ đọc BlogPosting và có thể hiển thị ngày đăng, mô tả đậm hơn trong kết quả tìm kiếm.

Meta cơ bản vẫn phải chắc

  • <title> duy nhất cho từng trang, chứa từ khóa chính.
  • meta name="description" trong 150–160 ký tự, miêu tả trúng nhu cầu người đọc.
  • meta name="viewport"lang="vi" luôn đúng để Google xác định ngôn ngữ.

Kết luận

  • Bật @astrojs/sitemap và khai báo site chính xác — nền tảng cho mọi kiểm tra crawl.
  • Canonical + robots.txt + JSON-LD là bộ ba không thể thiếu cho blog Astro.
  • Sau khi ra mắt, dùng Google Search Console để gửi sitemap và theo dõi lỗi lập chỉ mục.