先给结论:如果日志里那些分散的查询请求指向同一类意图、但当前没有页面稳定承接,优先做聚合页;如果每个查询各自对应不同的使用条件、且已有详情页能被抓取和索引,则继续补详情页,不要急着合并。判断依据不是查询数量,而是这些请求当前落在哪些URL、返回什么状态、以及用户点进来后能否在同一页完成比较。
搜索需求分散,通常有两种表现。一种是大量不同措辞的查询都落到同一个详情页或首页,说明现有页面已经承担了宽泛意图,但页面标题和结构没有把这类意图讲清楚。另一种是每个查询各自落到不同详情页,页面之间只差一个参数或一个词,彼此内容高度相似。前一种更适合做聚合页,后一种更适合保留详情页并做差异化。
在日志文件查看时,重点看三列:请求URL、状态码、来源。把返回200的URL按路径前缀分组,统计每组被请求的URL数量和请求次数。如果某一组里URL很多、每个URL请求次数都很少,同时这些URL的内容主题接近,这就是聚合页的候选信号。反过来,如果某个详情页请求次数稳定,且它承接的查询带有明确限定条件,就不要为了“集中权重”把它删掉。
聚合页适合满足以下条件:分散查询共享同一决策阶段,用户需要在一页内比较多个选项;现有详情页各自只覆盖一个子项,缺少横向对照;日志显示这些详情页被频繁抓取但很少被点击进入。此时做聚合页的实际动作是:新建一个路径更短、标题覆盖该类意图的页面,在页面上用列表或简短说明链接到各详情页,并让详情页回链聚合页。
这个动作的结果会直接影响下一步。如果聚合页上线后,日志里原本分散的请求开始集中到聚合页,且详情页仍然被正常抓取,说明结构成立,可以继续补充聚合页的筛选和排序维度。如果聚合页上线后,详情页请求明显下降、聚合页也没有获得点击,说明用户意图并不需要聚合,应该回退到详情页并检查标题与摘要是否匹配查询。
详情页优先的条件是:每个查询对应不同的使用场景、版本、地区或限制条件;用户需要精确答案而不是选项列表;现有详情页已经能被抓取和索引,只是内容不够完整。此时的实际动作是补全每个详情页的独有信息,例如适用条件、操作步骤、常见错误,而不是新建一个笼统的聚合页。
有一个反例会推翻“详情页优先”的判断:日志显示大量分散查询都落在同一个详情页,且该页返回200但内容只覆盖其中一个子项。这种情况下继续补详情页只会让更多查询挤到同一页,用户找不到自己要的部分。更合理的动作是先在这个详情页顶部增加一段导航,指向相关子项页面,再观察日志中该页的跳出和后续请求是否分散到子项页。如果分散成功,再决定是否为这些子项建立聚合入口。
假设某站点有“日志文件查看”相关的三类查询:一类问怎么打开,一类问怎么看状态码,一类问怎么按时间筛选。日志显示这三类查询都请求同一个教程页,该页只讲了打开方式。此时先做聚合页并不合适,因为用户要的是具体操作。更合适的动作是把教程页拆成三个详情页,分别覆盖打开、状态码、时间筛选,并在原教程页保留一段总览链接到三个详情页。
上线后查看日志:如果三个详情页各自开始收到对应查询的请求,且原教程页仍然被请求,说明拆分成立;如果三个详情页都没有请求,而原教程页请求不变,说明用户并不需要拆分,应该回到原页补充内容,而不是继续建新页。这个例子的数字只用于说明比较方法,不代表任何真实站点的表现。
无论选聚合页还是详情页,都先用一个可回退的动作验证方向。具体做法是:从日志中选出请求最分散的一组URL,在其中一个页面上增加指向同组其他页面的链接,或新建一个只包含该组链接的聚合页,保持其他页面不变。上线后观察日志中该组URL的请求分布是否变化,同时确认这些页面仍然返回200且可被抓取。
如果请求开始向新入口集中,且原有页面没有被大量替代,就可以继续扩展这个结构;如果没有变化,就停止扩展,回到内容本身检查每页是否真正回答了对应查询。抓取、索引和排名是不同环节,日志只能告诉你请求到了哪里,不能单独证明页面该合并还是该拆分,因此这个验证动作必须配合页面状态和内容差异一起看。