技術 SEO
這個分類下的問題與解答。點標題可以展開答案,也可以點右上角進到單題頁面。
搜尋引擎的三個階段
要理解技術 SEO,先要知道搜尋引擎在做什麼。整個過程分三步:
- 檢索(Crawl)——爬蟲程式(俗稱網路蜘蛛)沿著連結發現並讀取網頁
- 索引(Index)——分析內容,判斷主題與品質,決定是否納入資料庫
- 排名(Serve)——有人搜尋時,從資料庫中選出最合適的結果排序呈現
三個階段是依序的。 沒有被檢索就不會被索引,沒有被索引就不可能出現在搜尋結果——不論內容多好。
這也是技術 SEO 的核心價值:它不負責讓內容變好,而是確保好內容能被看見。
爬蟲怎麼發現你的頁面
- 從其他網站的連結過來——最主要的途徑
- 從你網站內部的連結——首頁連到分類、分類連到內頁
- 從網站地圖檔案——主動提交的頁面清單
- 推測網址結構——例如依序號規則嘗試相鄰的編號
第二項是最容易被忽略的。沒有任何連結指向的頁面(孤島頁面),爬蟲很難發現,見網站結構與內部連結怎麼影響 SEO。
阻擋檢索與阻擋收錄是兩件事
這是技術 SEO 最常見的誤解,而且用錯會造成完全相反的結果。
| robots.txt 阻擋 | noindex 標記 | |
|---|---|---|
| 作用 | 請爬蟲不要讀取這一頁 | 讀取了但請不要收錄 |
| 能否保證不出現在搜尋結果 | 不能 | 可以 |
| 適用 | 節省抓取資源、避免無意義的路徑 | 確實不希望被搜到的頁面 |
為什麼 robots.txt 不能保證
被 robots.txt 阻擋的頁面,爬蟲不會讀取內容。但如果其他網站連到它,搜尋引擎仍可能知道這個網址存在並收錄——只是沒有內容描述。
更麻煩的是:如果一頁同時被 robots.txt 阻擋又設了 noindex,noindex 反而失效——因為爬蟲讀不到那個標記。
結論:真的不想被收錄,用 noindex,不要用 robots.txt 阻擋。
抓取預算的概念
搜尋引擎對每個網站分配的抓取資源是有限的。影響因素包含網站的規模、更新頻率、伺服器回應速度與整體評價。
對小型網站來說這通常不是問題。但內容量大的網站要注意:
- 伺服器回應慢,同樣時間內能抓的頁面就少
- 大量無意義的網址(篩選參數的各種組合)會消耗資源
- 大量錯誤頁面與轉址鏈也會浪費
- 結果是新頁面被收錄的速度變慢
速度對抓取的影響見網站速度為什麼重要。
怎麼確認自己的頁面被收錄了
- 在搜尋引擎搜尋該頁的完整網址——有出現就是被收錄了
- 用 Search Console 的網址檢查功能——最準確,還會說明未收錄的原因
- 看 Search Console 的涵蓋範圍報表——整站的收錄狀況一覽
如果重要頁面沒被收錄,常見原因:
- 被 noindex 或 robots.txt 阻擋
- 沒有任何內部連結指向它
- 正規網址指向了其他頁面
- 內容太少或與其他頁面高度重複
- 網站太新,還沒被完整抓取
最嚴重的一種失誤
測試期間的封鎖設定被帶到正式站。
測試站通常會設定不允許檢索,若上線時忘記解除,整個網站不會被收錄——網站正常運作,但搜尋不到,而且可能兩三個月後才被發現。
這是改版最常見也最嚴重的失誤,驗收時務必列入檢查。詳見網站改版或更換網域,SEO 排名怎麼保住。
刪除頁面要謹慎
已經被收錄的頁面若直接刪除,會產生兩個損失:
- 從搜尋結果點進來的人看到錯誤頁面,這個曝光機會就消失了
- 搜尋引擎持續撞到失效頁面,對整站的評價有負面影響
正確做法是轉向到相近的內容,或明確回傳「已永久移除」的狀態。處理方式見技術 SEO 的常見問題排查。
同一個內容,可能有很多個網址
這是網站最常見的技術問題之一,而且多數人不知道自己有這個問題。
以下這些網址,對使用者而言是同一頁,但對搜尋引擎而言是四個不同的網址:
http://example.com/producthttp://www.example.com/producthttps://example.com/producthttps://www.example.com/product
如果四個都能打開且顯示相同內容,網站的評價就被拆成四份,而且搜尋引擎要自行猜測哪一個是主要版本。
第一步:統一基本形式
必須做出三個決定,並全站一致:
| 項目 | 決定 | 處理方式 |
|---|---|---|
| 加密 | 一律使用 https | http 全部 301 轉向 |
| www | 擇一(有或沒有) | 另一種 301 轉向 |
| 結尾斜線 | 擇一 | 統一,避免兩種並存 |
選哪一個沒有優劣,重點是一致。 決定之後,網站內部的所有連結、網站地圖、正規標記都要用同一種形式。
檢查方法
把上述四種形式各輸入一次,看是否都自動導向同一個。如果有任何一個停在原地,就是需要處理的。
第二步:正規網址標記
正規標記(canonical)的作用是告訴搜尋引擎:「這一頁的正式版本是哪一個網址」。
什麼時候需要
- 同一內容可從多個網址存取
- 有帶參數的網址——追蹤碼、排序、篩選
- 列印版或行動版的獨立網址
- 商品同時出現在多個分類路徑下
常見的錯誤
- 全站都指向首頁——這會讓所有內頁都不被收錄,是災難性的錯誤
- 指向的網址與實際不符——例如指向 http 但實際是 https
- 分頁的第二頁指向第一頁——第二頁以後的內容就不會被收錄
- 忘記設定——讓搜尋引擎自行判斷,結果未必如預期
每一頁的正規標記都應該指向自己,除非確實有另一個版本才是正式的。
帶參數的網址
篩選、排序、追蹤都會產生參數。例如:
/products?sort=price——排序/products?color=red&size=m——篩選/products?utm_source=fb——廣告追蹤
問題在於參數的組合可能產生大量網址,內容卻幾乎相同——這會消耗抓取資源,也造成重複內容。
處理原則
- 排序與追蹤參數——正規標記指向無參數的版本
- 篩選參數——若該組合有獨立的搜尋需求(例如「紅色 T恤」確實有人搜),可以讓它獨立被收錄;若只是輔助瀏覽,就指向無參數版本
- 避免產生無意義的組合——例如同一組篩選有多種參數順序
分頁的處理
商品列表或文章列表的第二頁、第三頁,處理原則:
- 每一頁的正規標記指向自己,不要全部指向第一頁
- 每一頁都要能被獨立存取與收錄——否則深層的商品永遠不會被發現
- 標題可以加上頁數,避免各頁標題完全相同
- 如果提供「顯示全部」的版本,可以考慮讓它作為正規版本
無限捲動要小心
捲到底自動載入更多內容的設計,對使用者體驗不錯,但爬蟲通常不會捲動。這代表第一批之後的內容可能完全不會被發現。
解法是同時提供可點擊的分頁連結,即使視覺上隱藏也可以。
重複內容的判斷
不是所有重複都有問題:
| 情況 | 是否有問題 |
|---|---|
| 不同語言的翻譯版本 | 沒問題 |
| 同一內容多個網址可存取 | 要處理 |
| 商品規格表在多個商品頁重複 | 通常沒問題 |
| 多個頁面內容高度相似 | 應考慮合併 |
| 大量自動產生的相似頁面 | 有風險 |
多語系的處理見多語系網站的 SEO 該注意什麼。
網址本身的規劃
- 用有語意的英文小寫,單字之間用連字號
- 避免中文與空格——網址中會變成一長串編碼,難以閱讀與分享
- 層級不要太深
- 上線後不要輕易更動——若必須改,一定要做 301
網址規劃應該在架構階段就決定,見樹狀圖與線框圖。
網站結構是給搜尋引擎看的地圖
搜尋引擎靠連結發現與理解網站。連結結構同時傳達三件事:
- 哪些頁面存在
- 頁面之間的關係與層級
- 哪些頁面比較重要
結構良好的網站,好內容能被完整發現;結構混亂的網站,可能有一半的頁面從來沒被抓到。
點擊深度:三層是上限
從首頁點擊到任何內容頁,建議不超過三次。
為什麼
- 抓取優先度——層級越深,被抓取與重新抓取的頻率越低
- 權重傳遞——首頁通常是外部連結最多的頁面,層級越深接收到的越少
- 使用者也找不到——每多一層,願意繼續點的人就少一截
如果內容量大到三層裝不下,通常不是層級要加深,而是分類方式要重想——可以用篩選或標籤取代層層點擊。
層級規劃的原則見網站選單怎麼設計。
孤島頁面:等於不存在
沒有任何內部連結指向的頁面,爬蟲很難發現,實際上就是不存在。
常見的孤島來源
- 舊活動頁面,活動結束後從選單移除但頁面還在
- 只透過電子報或廣告連結進入的頁面
- 分類層級太深,列表分頁沒有被完整連結
- 商品下架後仍存在但已無連結
檢查方式:比對網站地圖的頁面清單與實際有連結指向的頁面,差集就是孤島。
內部連結的三個作用
一、幫助發現
新發布的內容,若有從既有頁面連過去,會比只放在列表深處更快被抓到。
二、傳遞權重
外部連結帶來的評價,會透過內部連結分配到其他頁面。你希望哪些頁面排名好,就多從其他頁面連向它。
對企業網站而言,通常是服務頁與主要產品頁。
三、傳達主題關聯
同主題的頁面互相連結,能讓搜尋引擎理解你在這個領域有系統性的內容——這對整體的主題權威有幫助。
連結文字很重要
連結上的文字(錨點文字)是搜尋引擎判斷目標頁面主題的線索之一。
- 不好:詳細內容請點此、更多、閱讀更多
- 建議:網站架設費用怎麼算、下載產品型錄
這同時也是無障礙的要求——螢幕報讀軟體會列出頁面上所有連結供使用者選擇,二十個「請點此」等於沒有資訊。
建立主題叢集
這是內容量大的網站最有效的結構安排:
- 主題頁——涵蓋某個大主題的總論,並連向底下所有細項
- 細項頁——各自回答一個具體問題,並連回主題頁
- 橫向連結——相關的細項之間互相連結
好處是:主題頁集中接收外部連結的權重,再分配給細項;細項各自鎖定長尾字,避免互相競食同一組關鍵字。
長尾策略見長尾關鍵字:中小企業真正該打的戰場。
麵包屑
顯示「首頁 › 分類 › 子分類 › 目前頁面」的路徑。三個作用:
- 讓從搜尋結果直接進入內頁的訪客知道自己在哪
- 提供往上一層的捷徑
- 向搜尋引擎明確傳達頁面的層級關係,且可能顯示在搜尋結果中
建議全站都有,並搭配對應的結構化標記。
nofollow 的正確用法
在連結上加註 nofollow,是告訴搜尋引擎不要沿著這個連結傳遞評價。
適用情況
- 無法為內容擔保的連結——使用者留言、訪客投稿中的外部連結
- 付費或廣告性質的連結——依規範應標示性質
- 登入、註冊之類的功能連結——沒有必要讓爬蟲前往
不該做的事
不要用 nofollow 來「控制」內部連結的權重分配。 過去有一種做法是把不重要的內部連結加上 nofollow,希望把權重集中到重要頁面——這個做法現在效果有限,而且容易弄巧成拙。
要控制權重分配,正確做法是調整連結的數量與位置,而不是加標記。
三個實用的檢查
- 從首頁開始,三次點擊內能到達重要頁面嗎?
- 每個頁面都至少有一個內部連結指向它嗎?
- 重要的服務頁,有幾個頁面連向它? 如果只有選單,可以在相關文章中補上
兩個檔案,作用完全不同
| robots.txt | sitemap.xml | |
|---|---|---|
| 作用 | 告訴爬蟲哪些路徑不要讀取 | 提供你希望被收錄的頁面清單 |
| 性質 | 限制 | 建議 |
| 位置 | 網站根目錄 | 通常也在根目錄 |
| 必要性 | 建議有 | 內容量大時很有價值 |
兩者都不是排名因素,但都影響能不能被完整發現與收錄。
robots.txt 該怎麼設定
它是放在網站根目錄的純文字檔,任何人都能瀏覽——所以不要用它來隱藏機密路徑,那反而是在公告位置。
通常該阻擋的
- 後台管理路徑
- 購物車、結帳、會員專區這類個人化頁面
- 站內搜尋的結果頁
- 大量無意義的參數組合
- 系統暫存或程式檔案目錄
絕對不要阻擋的
- CSS 與 JavaScript 檔案——爬蟲需要它們才能正確理解頁面的呈現,阻擋會影響判斷
- 圖片目錄——除非確實不希望圖片被搜尋到
- 整個網站——這是最嚴重的失誤,見下方
最嚴重的失誤
測試期間設定的「阻擋全站」被帶到正式環境。
網站一切正常,但搜尋引擎完全不會收錄。而且這件事不會有任何錯誤訊息,可能兩三個月後才被發現,那時流量已經歸零。
上線後第一件事就是打開自己的 robots.txt 看一眼。 這是驗收必查項目。
robots.txt 不能保證不被收錄
被阻擋的頁面,爬蟲不會讀取內容,但如果有其他網站連過來,網址仍可能被收錄——只是沒有描述。
真的不希望被收錄,要用 noindex 標記,而且該頁不能同時被 robots.txt 阻擋(否則爬蟲讀不到那個標記)。詳見搜尋引擎怎麼抓取與收錄網站。
sitemap.xml 該包含什麼
它是一份 XML 格式的頁面清單,讓搜尋引擎知道你有哪些頁面、最後更新是什麼時候。
應該包含
- 所有希望被收錄的正式頁面
- 正規版本的網址——不要放會被轉向或非正規的網址
- 最後修改時間,且要真實反映實際更新
不該包含
- 設了 noindex 的頁面
- 會被轉向的網址
- 錯誤頁面
- 被 robots.txt 阻擋的路徑
- 帶追蹤參數的網址
清單中若混雜大量無效網址,會降低這份檔案的參考價值。
最後修改時間要誠實
常見的錯誤是把所有頁面的更新時間都設為當天,希望促使重新抓取。這不會有幫助,反而讓這個欄位失去意義。
什麼情況特別需要 sitemap
- 網站頁面數量多——數百頁以上
- 新網站——外部連結還很少,爬蟲不易發現
- 內部連結結構不完整——有較深或較難到達的頁面
- 內容更新頻繁
相對地,一個只有十幾頁、結構清楚的小型網站,sitemap 的效益不大——把內部連結做好比較實際。
大型網站的分割
單一檔案有筆數與大小上限。超過時要分割成多個檔案,再用一個索引檔統整。
另一個好處是可以依類型分開——商品一份、文章一份、分類頁一份。這樣在 Search Console 中就能分別看到各類型的收錄狀況,問題比較容易定位。
提交與檢查
- 在 robots.txt 中註明 sitemap 的位置
- 在 Search Console 中提交
- 定期查看提交後的狀態——已提交幾筆、已收錄幾筆、有無錯誤
第三項最有價值。如果提交了 500 筆但只收錄 200 筆,那個差距就是要調查的線索——可能是內容太少、重複、或被正規標記指向了別處。
應該自動產生
手動維護的 sitemap 一定會過期。這份檔案應該由系統依實際的頁面狀態自動產生:
- 新增內容時自動加入
- 下架或刪除時自動移除
- 更新時間依實際修改日期
- 排除草稿與未發布的內容
發包時可以直接把這一項列入需求。網站架設完成後也要確認它確實在運作。
還有一種給人看的網站地圖
除了 XML 檔案,也可以做一個 HTML 的網站地圖頁面,把整站結構列出來給訪客看。
它的價值是:提供大量內部連結,也讓爬蟲多一條發現頁面的路徑,對結構複雜的網站有幫助。但對小型網站不是必要的。
技術 SEO 的問題都是靜默的
網站看起來正常運作,但搜尋流量莫名下滑或長期不成長。這類問題不會有錯誤訊息,只能主動檢查。
以下是最常見的幾種,依嚴重程度排列。
一、整站不被收錄
最嚴重,但也最容易修正。 依序檢查:
- 打開自己的 robots.txt——是否有阻擋全站的設定
- 檢查頁面是否有 noindex 標記——測試期間常設定,上線忘記移除
- 用 Search Console 的網址檢查——它會直接說明未收錄的原因
這三項幾乎涵蓋了所有「網站正常但搜尋不到」的情況。改版後的網站尤其要查。
二、大量 404 錯誤
常見於改版之後,舊網址沒有做轉向。
處理原則
| 情況 | 正確處理 |
|---|---|
| 內容搬到新網址 | 301 永久轉向 |
| 內容已永久移除 | 回傳 410 已刪除 |
| 暫時下架,之後會回來 | 維持 404 或另做說明頁 |
| 找不到對應的頁面 | 轉向到最相近的分類頁 |
不要全部轉向到首頁。 大量轉首頁會被視為軟性 404,等同放棄那些頁面的評價。
改版的完整處理見網站改版或更換網域,SEO 排名怎麼保住。
三、轉址鏈與轉址迴圈
轉址鏈是 A 轉到 B、B 再轉到 C。每一次轉向都有耗損,也浪費抓取資源。
常見於多次改版累積下來的設定——第一次改版做了轉向,第二次改版又在上面加一層。
正確做法是讓 A 直接轉到 C,整理成單層。
轉址迴圈則是 A 轉 B、B 又轉回 A,頁面完全無法開啟。常見原因是 www 與 https 的轉向規則互相衝突。
四、軟性 404
頁面顯示「找不到商品」之類的訊息,但回傳的狀態卻是正常。搜尋引擎會認為這是一個有效頁面而收錄它。
常見於商品下架、搜尋無結果、分類為空的情況。正確做法是確實回傳 404 或 410 狀態,而不只是顯示一段文字。
五、混合內容
網站已經是 https,但頁面中仍有以 http 載入的圖片、樣式或腳本。
後果是瀏覽器可能顯示不安全警告,或直接阻擋那些資源導致版面異常。
常見來源:內文中寫死的 http 網址。這也是為什麼建議內文的網址使用相對路徑或佔位符,見後台編輯器怎麼用。
六、行動裝置的問題
搜尋引擎主要以手機版的呈現作為判斷依據。所以:
- 手機版隱藏的內容,可能等於不存在
- 手機版無法正常瀏覽會直接影響評價
- 手機與電腦版若內容差異太大,會造成判斷混亂
手機端的檢查見手機版破版與常見問題排查。
七、內容需要執行程式才顯示
如果頁面的主要內容是由前端程式動態產生的,搜尋引擎可能無法完整取得。
判斷方法
在瀏覽器中檢視網頁原始碼(不是開發者工具的檢查,而是原始碼)。如果看不到主要的文字內容,那搜尋引擎也可能看不到。
這種情況需要開發端處理,常見的解法是讓伺服器端先產生內容。發包時若網站有大量動態內容,可以先確認這一點。
八、每頁的標題與描述重複
全站共用同一組標題與描述,是很常見的疏忽。後果是搜尋引擎難以判斷各頁的差異,搜尋結果的呈現也沒有吸引力。
每一頁都應該有各自的標題與描述,且後台要能個別設定。寫法見關鍵字密度是迷思嗎。
排查的順序
如果搜尋流量下滑,建議這樣查:
- 確認範圍——全站下滑還是特定頁面?特定關鍵字還是全面?
- 查 Search Console 的涵蓋範圍——收錄數是否減少
- 查 robots.txt 與 noindex——最常見的原因
- 查是否有大量 404——近期是否改版或刪除內容
- 對照時間點——下滑的時間是否對應到某次改版、搬遷或設定變更
- 確認是否為搜尋引擎的演算法更新——若同業也普遍下滑,可能是外部因素
第五項最有效。技術性的流量下滑,幾乎都能對應到某個具體的變更。
定期檢查的建議
- 每季——查看 Search Console 的涵蓋範圍與錯誤報表
- 每次改版或搬遷後——完整檢查 robots.txt、noindex、轉向、sitemap
- 每半年——檢查轉址鏈是否累積、是否有孤島頁面
技術 SEO 的多數問題,是設定一次就長期有效的。花時間查一次,效益可以持續很久。
準備好讓網站 開始幫你帶生意了嗎?
不論是要做新網站、救舊網站,還是只想先聊聊方向——先諮詢,不用先付錢,我們照實給你建議。
