首頁 / 科技生活 / 文章

科技生活

Astro 部落格的 SEO 設定與 Google Search Console 教學

整理 Astro 部落格的 SEO 設定:自動產生 sitemap、設定 canonical 與結構化資料、用 noindex 排除不重要的頁面,再到 Google Search Console 驗證網站並提交收錄,附上驗證檔放錯位置的解法。

· 8 分鐘閱讀

Astro 部落格的 SEO 設定與 Google Search Console 教學

網站架好、網域也綁好之後,下一個問題是:Google 怎麼知道這個網站存在?這篇接續上一篇架站的流程,整理如何替 Astro 部落格做的 SEO 設定,以及在 Google Search Console 驗證網站、提交收錄的步驟。

技術設定能做什麼

SEO 的技術設定,作用是讓搜尋引擎找得到、讀得懂你的網站。它不會讓排名自動變好,排名主要還是看內容的品質與數量,以及時間的累積。所以下面這些設定做一次就好,做完之後該花時間的地方是寫文章。

另外,網路上常看到要設定的 <meta name="keywords">,Google 早已不使用它,不用特地加了。

一、設定網站網址

Astro 的 sitemap、RSS 與 canonical 網址,都是從設定檔裡的 site 產生的,所以第一件事是把它填對:

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

export default defineConfig({
  site: 'https://你的網域',
  trailingSlash: 'always',
});

trailingSlash: 'always' 的用意是讓每個網址統一以斜線結尾,避免同一頁同時出現有斜線與沒斜線兩種網址。

如果你之後換了網域,這裡要一起改,並且重新部署。

二、自動產生 sitemap

sitemap 是一份網站的頁面清單,讓搜尋引擎知道有哪些頁面可以看。Astro 有官方的整合套件:

npm install @astrojs/sitemap
import sitemap from '@astrojs/sitemap';

export default defineConfig({
  site: 'https://你的網域',
  integrations: [
    sitemap({
      // 不收錄 404、標籤頁與歸檔頁
      filter: (page) => !/\/(404|tags|archive)\//.test(page),
    }),
  ],
});

建置之後會自動產生 sitemap-index.xml。用 filter 把標籤頁、歸檔頁與 404 排除,原因在後面「不重要的頁面」那一節說明。

三、robots.txt

public/robots.txt 告訴搜尋引擎哪些路徑不用爬,並且指出 sitemap 的位置:

User-agent: *
Allow: /
Disallow: /admin/

Sitemap: https://你的網域/sitemap-index.xml

小細節:最後一行的 Sitemap 必須寫完整的檔案網址,如果只寫了網域,沒有加上 /sitemap-index.xml,等於沒有告訴搜尋引擎 sitemap 在哪裡。另外,這個檔案是手寫的,換網域時不會自動更新,要記得一起改。

四、每頁的標題、摘要與分享圖

把這些設定集中在共用的版面檔(Base.astro),每個頁面傳入自己的資料:

  • 標題:每頁不同,格式是「頁面標題|網站名稱」,首頁則用網站名稱加一句標語。
  • 摘要(description):搜尋結果常會直接拿它當說明文字,所以每篇文章都要自己寫,我的做法是寫成 80 到 120 字的完整句子。
  • canonical:告訴搜尋引擎「這一頁的正式網址是什麼」,由 site 加上目前路徑產生。
  • 分享圖(Open Graph):貼到 LINE、Facebook、Threads 時顯示的預覽圖。文章有封面就用封面,沒有的話用一張預設圖,建議尺寸 1200×630。

五、結構化資料

結構化資料是用 JSON-LD 格式,直接告訴搜尋引擎「這是一篇文章,作者是誰、什麼時候發布」。替每篇文章加上 BlogPosting:

{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "標題",
  "description": "摘要",
  "datePublished": "2026-10-31T00:00:00.000Z",
  "author": { "@type": "Person", "name": "作者名稱" }
}

另外也加了麵包屑(BreadcrumbList),標示「首頁 → 分類 → 文章」的層級。結構化資料可以幫助搜尋引擎理解頁面,但不保證一定會出現特殊的搜尋結果樣式。

六、不重要的頁面設定 noindex

標籤頁與歸檔頁的內容,只是把已經有的文章重新排列,本身沒有獨立的內容。把它們也收錄,可能分散搜尋引擎對主要頁面的注意力。所以要在這些頁面加上:

<meta name="robots" content="noindex,follow" />

noindex 是請搜尋引擎不要收錄,follow 則仍然允許它順著頁面上的連結,去找到其他文章。再搭配前面 sitemap 的 filter,這些頁面既不會被列進清單,也不會被收錄。404 頁面同理。

七、Google Search Console

設定完之後,部署上線,接著到 Google Search Console 登記網站。

新增資源:兩種類型

  • 網域:輸入網域名稱(不含 https)。它會涵蓋 www、其他子網域與 http/https,必須用 DNS 驗證。
  • 網址前置字元:輸入完整網址,只涵蓋該網址,驗證方式比較多,包括上傳 HTML 檔案。

如果你的網域託管在 Cloudflare,DNS 驗證最簡單方便:Google 會給你一串 TXT 紀錄,回頭貼到 Cloudflare 的 DNS 設定,不用再上傳任何檔案。

用 HTML 檔案驗證時注意

如果選的是網址前置字元,用上傳檔案的方式驗證。Google 會讓你下載一個 google 開頭的 .html 檔,要放到網站根目錄。這邊注意如果直接把它放在專案的根目錄,部署後 Google 會一直說找不到。

原因是 Astro 只會把 public/ 資料夾裡的檔案,複製到建置的結果中:

驗證檔放在專案根目錄會失敗,放在 public 資料夾才會出現在網站根目錄

所以必須把檔案移進 public/資料夾中,重新部署,再用瀏覽器打開 你的網域/驗證檔名.html,確認畫面上有出現那一行驗證文字,最後回到 Search Console 按「驗證」。

驗證成功之後,這個檔案要一直留著,不要刪掉或改內容,否則驗證會失效。

提交 sitemap

  1. 在 Search Console 左側選單點「Sitemap」。
  2. 輸入 sitemap-index.xml,按送出。
  3. 狀態顯示「成功」就完成了。剛提交時偶爾會先顯示無法擷取,過一陣子通常會自己恢復。

要求建立索引

提交 sitemap 之後,還可以針對重要的網址,請 Google 優先處理:

  1. 在最上方的搜尋列貼上完整網址,按 Enter。
  2. 如果顯示「網址不在 Google 上」,點選「要求建立索引」。

這個功能有每日次數限制,所以只對首頁與最新的幾篇文章使用就好,不需要大量送出。

收錄要等多久

新網站通常需要一段時間,才會被收錄並出現在搜尋結果裡,幾天到幾週都有可能,沒辦法保證。Search Console 的「網頁」報表會列出哪些網址已經收錄、哪些被排除。標籤頁、歸檔頁與 404 出現在「已排除」是正常的,那就是刻意設定的 noindex。

之後可以固定看「成效」報表,它會顯示搜尋結果的曝光次數、點擊次數與搜尋字詞。前幾週數字是零很正常,等資料累積起來,就可以依照流量判斷接下來要做什麼。

常見問題整理

  • robots.txt 的 Sitemap 寫不完整:要寫成 https://你的網域/sitemap-index.xml。
  • 換網域後 sitemap 或 robots.txt 還是舊網址:site 會自動更新,robots.txt 是手寫的,要自己改。
  • Search Console 找不到驗證檔:檔案要放在 public/,不是專案根目錄,並確認部署後瀏覽器能打開。
  • 驗證通過後刪掉了驗證檔:驗證會失效,要重新驗證。
  • 標籤頁與歸檔頁沒有被收錄:這是設定的結果,不是錯誤。

小結

這些設定做完,搜尋引擎就能順利找到、讀懂你的網站。透過這些設定SEO的方法完整優化網站,並且耐心等待收錄與累積。

# SEO# Astro# Search Console

你可能也會喜歡