先给有条件的结论:当你能用同一批词稳定描述一组对象、且这些对象会被用户拿来互相比较时,先做聚合页;当每个对象的需求词彼此差异大、用户进入后只关心单个对象本身时,先做详情页。判断依据不是词多词少,而是这些需求能否被一个页面同时满足。若强行把互不相关的需求塞进一个聚合页,页面会失去主题焦点,用户也会在列表里找不到下一步。
聚合页的价值在于承接一组共享同一意图的搜索需求。它成立需要两个前提同时满足。第一,这些需求指向的对象属于同一类别,用户看完列表后能自然选择其中一个。第二,列表本身能提供比较价值,比如名称、类别、地区、更新状态这类可并列的信息。缺少第二条,聚合页就只是链接堆叠,用户仍要逐个点开才能判断。
满足前提时,聚合页还有一个实际好处:它给详情页提供可抓取的入口。搜索引擎在抓取和索引之间是分环节的,聚合页让爬虫在一次抓取中触达多个详情页,详情页被发现的路径更短。但这只是发现路径的改善,不等于详情页会被索引或获得排名,后续仍取决于详情页自身内容是否值得收录。
反例出现在需求词虽然数量多,但彼此不构成同一类别时。假设一个网址目录同时收录本地服务、软件工具和学习资料,若把这三类混在一个聚合页,用户搜索“本地服务”时看到的页面里一半是无关内容,页面主题被稀释,用户跳出后也不会继续浏览。此时正确顺序是先按类别拆出各自的聚合页,再在类别内部决定是否继续拆详情页。
另一个失效信号是:聚合页上的对象数量太少,只有三五个,且每个对象的需求词差异很大。这种情况下聚合页没有比较价值,用户搜索的是某个具体对象,直接做详情页更合适。聚合页不是越多越好,它需要足够多的同类对象来支撑比较。
假设你要做一个收录本地咖啡馆的网址目录,手上有两类搜索需求:一类是“咖啡馆推荐”“附近咖啡馆”这类泛需求,另一类是“某家咖啡馆的营业时间”“某家咖啡馆的菜单”这类具体需求。泛需求可以用一个聚合页承接,列出咖啡馆名称、区域和营业状态;具体需求则对应每家店的详情页。此时先做聚合页,因为它是泛需求的落点,也是详情页的入口。若反过来只做详情页,泛需求没有页面承接,详情页之间也缺少互相发现的路径。
但如果你的目录只有五家咖啡馆,且用户搜索的都是具体店名,那么聚合页的比较价值有限,先做详情页更直接。这个假设说明:对象数量和需求类型共同决定顺序,不能只看词量。
做完第一版后,观察两个信号。第一,聚合页是否被用户继续点击进入详情页。如果聚合页的跳出率高、详情页几乎没有来自聚合页的访问,说明聚合页没有起到分发作用。第二,详情页是否被索引。如果详情页长期不被索引,可能是聚合页提供的入口不足,也可能是详情页内容本身太薄。这两种原因需要区分,不能只归因于聚合页。
一个实际动作是:先上线聚合页,记录它链接到的详情页数量,再检查这些详情页中有多少被索引。如果索引比例低,下一步不是继续加聚合页,而是先补详情页的独有内容,比如营业时间、地址、服务范围这类用户真正需要的信息。索引是排名之前的环节,详情页没有被索引时,讨论排名没有意义。
把收集到的需求词按意图分组,而不是按词量排序。每组问一个问题:用户搜这组词时,是想比较多个对象,还是只想看一个对象。想比较的归聚合页,只想看单个对象的归详情页。分组完成后,先做能覆盖最多同组需求的页面,再补其他组。这样做的结果是,每个页面都有明确的承接对象,后续扩展时也不会因为需求混杂而反复改版。