先抓住一个可验证的节点:从你的页面出发,用抓取工具或浏览器开发者工具记录每一次状态码和最终落点。如果中间出现301、302、meta refresh或JavaScript跳转,维护责任通常落在“发起这次跳转的页面所有者”身上,而不是最终目标站。只有当你无法控制发起页、且对方长期不回应时,才转为替换或移除该链接。
条件一:链接由你方页面发起跳转,例如友情链接页上写的是 <a href="/go/abc">,再由站内跳转脚本送到对方站点。这种情况下,责任在你方。因为跳转规则、目标地址和失效处理都由你方代码或配置决定。实际动作是:把跳转映射表纳入版本管理,每次对方换域名或改路径时只改映射,不动友情链接页本身。动作结果会直接影响下一步——如果映射表可追溯,你就能判断是对方改址还是你方配置写错,避免把问题推给最终站点。
条件二:链接直接指向对方页面,但对方页面又做了跳转,例如对方旧域名301到新域名,或中间页跳转到活动页。这种情况下,责任在对方。你只能决定是否继续保留这条链接。实际动作是:连续观测两到四周,记录中间跳转是否稳定、最终落点是否与当初交换时的主题一致。如果最终落点变成无关页、停用页或需要登录才能看的页面,就应把该链接标记为待替换,而不是继续把它当作有效友情链接。
判断责任时,不要只看“能不能打开”。要拆成三段证据:第一段是你方页面到第一个中间地址;第二段是中间地址到最终地址;第三段是最终地址返回的状态。若第一段就失败,问题在你方链接写法、站内规则或服务器配置。若第一段正常、第二段失败,问题多在中间跳转的维护方。若前两段正常、第三段返回404或410,问题在最终目标页的维护方。
这里有一个容易误判的地方:最终页面能打开,不等于友情链接仍然成立。它可能被重定向到首页、频道页或完全无关的页面。此时应记录“最终落点是否等于交换时约定的页面”。如果不相等,即使状态码是200,也应视为链接关系已经变化。这个判断不需要第三方权重数据,只需要你自己的观测记录。
假设你有一个友情链接网站栏目,其中一条链接写的是对方三年前的专题页。现在访问时先跳转到对方的新域名,再跳转到该站首页。你的观测记录显示:第一跳301,第二跳302,最终200。此时不能因为最终能打开就认定链接有效。更合理的处理是:先联系对方确认专题页是否已合并;若对方不回应,就在栏目中把这条链接改为对方当前与交换主题一致的页面,或者移除。这个例子的数字只用于说明比较方法,不代表任何真实站点数据。
个别样本成立,不代表整套流程可以原样放大。样本少时,你可以人工逐条打开、记录跳转链、发消息确认。链接数量上升后,人工逐条确认会遗漏中间跳转,尤其是JavaScript跳转和需要交互才触发的跳转。此时应把检查拆成两层:一层是定时抓取,只记录状态码和最终URL;另一层是人工复核,只处理最终URL与约定不一致、连续多次失败或跳转层数异常的条目。
但规模化检查也有边界。抓取工具看到的最终URL,可能因为地区、登录状态、User-Agent或反自动化策略而与你手动打开时不同。所以,当抓取结果与人工结果冲突时,以人工在无登录、常规网络环境下的结果为准,并把冲突条目单独列出。不要因为一次抓取失败就删除链接,也不要因为一次抓取成功就认定长期有效。
要减少扯皮,最实际的动作是给每条友情链接加三个字段:发起方、中间跳转方、最终落点方。发起方通常是你的栏目页;中间跳转方可能是你方跳转服务,也可能是对方旧域名;最终落点方是当前实际展示内容的页面。每次变更只改对应字段,并保留变更时间和观测结果。
这样做的结果是:当一条链接再次出现多次跳转时,你能迅速判断该找谁。若发起方是你,先查自己的映射和规则;若中间跳转方是对方,先问对方是否还维护旧地址;若最终落点方已换主题,就按友情链接是否仍相关来决定保留、替换或移除。责任清楚之后,下一步不是继续争论,而是执行对应动作并复测一次。