入口页的 URL 是蜘蛛进入蜘蛛池后最先接触的信息之一。它不像页面内容那样显眼,却会影响蜘蛛是否愿意继续爬、会不会重复抓同一批地址,以及后期看日志时能不能快速判断问题。入口页数量一多,URL 设计上的小毛病会被放大,所以值得在搭建阶段就定好规则。
先定入口页的 URL 形态
入口页通常不需要复杂路径。建议保持短、稳定、可读,层级控制在两到三层。比如用 /topic/abc/ 这类目录加短标识,比一长串参数更容易被蜘蛛理解和记录。扩展名不是关键,.html 和目录形式都可以,但同一个池子里尽量统一,减少无意义的差异。
- 层级尽量浅,入口页不要藏在五六层目录之后。
- 用目录表达分类,而不是把分类信息全塞进参数。
- 除非内容真的按时间归档,否则不要用时间戳做唯一标识。
参数怎么处理
入口页最好不要用参数来区分内容。如果业务上必须保留参数,要把参数数量控制住,固定顺序,并且避免蜘蛛穷举组合。筛选、排序、分页、跟踪这几类参数最容易出问题,处理方式也不一样。
- 筛选参数:如果页面内容重复度高,考虑 robots 屏蔽或 canonical 归并,不要在所有入口页都放出筛选链接。
- 排序参数:只保留一个默认排序,或者把排序值写死,别让蜘蛛抓到大量仅排序不同的 URL。
- 分页参数:能用路径式 /page/2/ 就少用 ?p=2,参数越少越稳。
- 跟踪参数:utm 之类的参数不要出现在蜘蛛可抓的链接里,入口页自身也不应带这些参数。
命名与大小写
命名上,统一小写、用短横线分词,避免大小写混用和下划线、短横线混用。如果入口页需要唯一 ID,把 ID 放在路径末尾,前面保留可读前缀,这样日志里也能看出页面大致属于哪一批。随机字符串不是不能用,但会让后续排查变慢。
URL 是蜘蛛读到的第一层信息,稳定、可读、少变化,比花哨的命名更有用。
去重与 canonical
同一份内容如果出现多个 URL,蜘蛛会分别抓取,抓取预算就被分薄。入口页之间尤其容易出现这种情况:带 www 和不带 www、带尾斜杠和不带尾斜杠、大小写不同、参数顺序不同,都可能被当成不同地址。处理时,先用 301 把变体归到主地址;不能跳转的,再用 canonical 指向主入口页。注意别在入口页之间互相 canonical 成环,那样蜘蛛很难判断哪个是主版本。
和 sitemap、robots 的配合
sitemap 只放希望被发现的入口页 URL,不要一边在 sitemap 里提交参数页,一边又在 robots 里屏蔽同一批地址。robots 用来挡住不该抓的参数路径,sitemap 用来提交干净的主入口页,两者分工要清楚。如果入口页有轮换,旧 URL 失效后最好 301 到新地址,不要直接留一堆 404。
一份可落地的检查清单
- 检查是否存在仅大小写不同的重复 URL。
- 检查参数组合是否可以被蜘蛛穷举,尤其是筛选和排序。
- 检查入口页是否返回 200,canonical 是否指向自身或正确的主版本。
- 检查蜘蛛是否在参数页、排序页上反复空转。
- 检查 URL 变更后是否有 301,而不是直接 404。
- 检查 sitemap 和 robots 是否互相矛盾。
URL 结构不是搭完就不用管的事。入口页轮换、页面改版、域名迁移之后,都要重新过一遍这些规则。稳定的 URL 不会直接带来收录,但能减少蜘蛛空跑,让日志更好读,也让后续调整有据可依。