建站規(guī)避動態(tài) URL 參數(shù)過多的完整方案
核心思路:能靜態(tài)就靜態(tài);必要參數(shù)就精簡;無用參數(shù)直接干掉;會產(chǎn)生重復(fù)頁面的參數(shù)做屏蔽,在建站階段直接定好規(guī)則,不要等上線再補救。
一、優(yōu)先方案:開啟偽靜態(tài)(首選,制造業(yè)官網(wǎng) / 營銷站通用)
偽靜態(tài) = 后臺仍是程序讀取數(shù)據(jù),但對外展示無復(fù)雜參數(shù)的語義化靜態(tài) URL
- 原始動態(tài):
/product.php?id=123&cate=5&brand=18 - 偽靜態(tài)改寫后:
/product/jg-series-reducer.html
? 建站要求開發(fā):
- 產(chǎn)品、新聞、欄目詳情全部偽靜態(tài),不要原生動態(tài) URL 對外暴露
- 用別名 / 自定義路徑,不要依賴 id 作為唯一訪問入口(id 可保留在后臺,前端 URL 用英文關(guān)鍵詞)
- 服務(wù)器配置:Nginx/Apache 開啟 rewrite 重寫規(guī)則;Windows IIS 配置 URL 重寫模塊
注意:偽靜態(tài)只是地址好看,底層仍是動態(tài)程序,和純靜態(tài)生成不一樣,但是足夠滿足 SEO,也是企業(yè)站常用方案。
二、如果必須保留 URL 參數(shù)(篩選、排序、分頁),遵守 3 條規(guī)則
很多產(chǎn)品站篩選功能一定會帶參數(shù),不能一刀切刪掉,重點區(qū)分索引參數(shù)和僅前端展示參數(shù)
- 只保留必要參數(shù),砍掉追蹤類、統(tǒng)計類隨機參數(shù)
? 刪掉:
?utm_source、?from=xxx、?random=12345、會話 id、廣告追蹤碼 ? 保留:僅業(yè)務(wù)必需,如?cate=5、?page=2 - 參數(shù)順序固定,禁止同參數(shù)不同順序生成不同 URL
禁止:
list?cate=3&sort=price和list?sort=price&cate=3都能訪問同一頁面 解決方案:后端強制參數(shù)排序,統(tǒng)一輸出順序;不同順序的 URL 做 301 重定向到標準版本 - 參數(shù)值控制范圍,禁止隨機、無限制參數(shù) 不要允許隨意篡改參數(shù) id 生成不存在頁面,要加參數(shù)校驗,非法參數(shù)直接 404。
三、對篩選、排序這類帶參數(shù)列表頁:不讓搜索引擎收錄(重要)
篩選頁是參數(shù)泛濫重災(zāi)區(qū),比如:價格區(qū)間、材質(zhì)、規(guī)格,組合后會生成成千上萬相似頁面,消耗抓取配額。 建站階段約定規(guī)則:
- 所有篩選組合頁面添加
noindex,nofollowmeta 標簽,或者在 robots.txt 屏蔽這類參數(shù) - 核心欄目列表(不帶篩選參數(shù))作為規(guī)范頁面,加 canonical 標簽,所有帶篩選參數(shù)頁面的 canonical 指向基礎(chǔ)列表頁
舉例:
/reducer-list?price=1000-5000的 canonical 寫為/reducer-list
分頁單獨處理:
- 分頁
?page=2這類可以允許收錄,但要配置rel="next" / rel="prev" - 也可以偽靜態(tài)分頁:
/reducer-list/2.html
四、 canonical 規(guī)范化,解決多參數(shù)同內(nèi)容
同一個頁面可以通過多組參數(shù)訪問時,用 canonical 標簽告訴搜索引擎唯一標準 URL。 適用場景:排序(按價格 / 銷量)、少量可選參數(shù)。 ?? canonical 不是 301,只是提示;嚴重重復(fù)還是優(yōu)先 301。
五、robots.txt 屏蔽危險參數(shù)(兜底方案)
通過 robots 規(guī)則直接禁止蜘蛛抓取帶某些參數(shù)的 URL,Nginx/Apache 也可直接攔截。 示例 robots 寫法:
Disallow: /*?*brand=
Disallow: /*?*price=
Disallow: /*?*sort=
注意:robots 只是不抓取,頁面依然可以訪問,配合 noindex 一起使用穩(wěn)妥。
六、開發(fā)層面硬性約束(寫進建站需求)
- 前端跳轉(zhuǎn)、內(nèi)部鏈接,全站統(tǒng)一輸出偽靜態(tài) URL,不能在頁面內(nèi)輸出動態(tài)參數(shù)鏈接(很多坑是內(nèi)鏈寫了動態(tài)地址)
- 網(wǎng)站內(nèi)鏈全部用固定別名,不要拼接 id 參數(shù)生成鏈接
- 關(guān)閉多余的調(diào)試參數(shù)、緩存參數(shù)、預(yù)覽參數(shù),預(yù)覽頁面加密碼或 noindex
- 禁止在站內(nèi)搜索結(jié)果頁開放給爬蟲:搜索結(jié)果頁參數(shù)極多,robots 屏蔽搜索路徑
- 服務(wù)器層面:拒絕空參數(shù)、無效參數(shù)訪問,返回 404,避免爬蟲無限爬取隨機參數(shù)
七、幾種不推薦的方案對比
- 純靜態(tài)生成(生成 html 文件):URL 干凈,但新增產(chǎn)品需要重新生成,維護成本高,適合產(chǎn)品少的官網(wǎng)
- 偽靜態(tài):推薦,兼顧維護和 SEO,制造業(yè)營銷站首選
- 原生動態(tài) URL(大量參數(shù)直接對外展示):盡量避免,后期參數(shù)治理工作量巨大
? 交付驗收檢查清單(上線前自測)
- 查看頁面源代碼,a 標簽鏈接是否都是偽靜態(tài),有沒有大量
?xxx= - 隨意修改參數(shù),看是否生成大量相似頁面
- 篩選頁源碼檢查,是否存在
noindex - 檢查是否存在同內(nèi)容多參數(shù) URL,是否設(shè)置 canonical
- 測試 robots,確認篩選參數(shù)目錄被屏蔽
- 抓取模擬:用百度抓取診斷,看蜘蛛拿到的 URL 是否干凈
常見踩坑提醒
- 只改瀏覽器地址欄,但頁面源碼內(nèi)鏈還是動態(tài)參數(shù):等于白做偽靜態(tài),蜘蛛抓到的依然是動態(tài)鏈接。
- 篩選頁只靠 robots 屏蔽,忘記加 noindex:已經(jīng)被收錄的頁面不會自動取消索引。
- 分頁和篩選參數(shù)混在一起,canonical 寫錯,造成權(quán)重錯亂。




