爬虫程序 目前看到的已翻译页面。
Flatten 为搜索引擎和 AI 爬虫提供每个翻译页面的现成副本。 该副本只有在与实际网站内容一致时才有用。 这是同一时刻两个站点上的同一个缓存:一个由 Nucleus 和 Dispatch 保持最新,另一个由工程师设置的 cron 作业保持最新。 这也是产品团队在产品团队做出任何承诺之前,通过现场团队对真实客户进行测试来填补的产品空白。
Flatten 对翻译网站的作用
GlobalLink Web 将客户的网站翻译成他们销售产品所使用的所有语言。 页面加载时,用户的浏览器会获取翻译结果。 爬虫程序的情况则有所不同:许多搜索引擎和人工智能爬虫程序会读取 HTML 代码,但不会运行页面脚本,因此它们会看到未翻译的原文。
不压平
爬虫程序请求德语页面。
- 它会获取源 HTML,但翻译仍待应用。
- 它不会运行应用该脚本。
- 它索引德语网址上的英文文本
- 因此,该翻译网站在德语搜索中几乎不存在。
✓ 带扁平化
译文已完成。
- 每个翻译后的URL都会预先渲染一次。
- 最终生成的 HTML 代码已被缓存,目前已是德语版本。
- 爬虫程序会立即获得缓存副本。
- 搜索和人工智能答案显示页面为德语
该URL已被缓存,但尚未渲染。
已准备好渲染。 URL不会自动跳转到这里。
网络爬虫会获取页面当前的翻译版本。
源页面在渲染后发生了变化,所以爬虫程序仍然获取到的是旧版本。
为过期。 它不会自行重新渲染它们。 必须有某种因素促使他们重新回到队列中。新页面必须先注册才能进行渲染。 每个客户都需要有人或某种方式来长期提供这种服务。 本页介绍的是谁或什么执行了这项操作。 过期缓存会给客户带来多大损失?
过期的页面看起来并不像是坏的。 它会显示上次生成的翻译,所以直到有顾客用德语搜索并找到上一季的目录时,才会有人注意到。
旧价格,旧产品
已停产的产品、上个季度的价格或已过时的政策会在每种语言中保留索引,并且只要缓存保持过期状态,它就会一直存在,而不仅仅是到下一次抓取为止。
新页面永远不会出现
从未注册过的页面永远不会被渲染,因此发布页面或新产品线在搜索结果中根本没有翻译版本。
助手引用旧页面
AI爬虫读取的是相同的缓存副本,因此其他语言中关于该品牌的答案是根据客户已经替换的内容构建的。
过时的页面会让你失去市场
在线商店会向 Google Merchant Center 发送每个国家/地区的商品信息流,其中包含价格和库存信息。 然后,谷歌会抓取每个产品的着陆页,并检查该页面是否与信息流匹配。 在已翻译的商店中,执行该检查的爬虫会获取扁平化副本。
如果该副本已过时,德语页面仍显示上一季的价格,或者显示补货商品已售罄。 该产品因价格或供货不符而被拒收并且它从德国的购物广告和免费列表中消失了。 这正是该译本原本应该赢得的市场。
如果开启自动商品更新功能,结果可能会更糟:谷歌可能会重写商品信息以匹配其抓取的内容,并向购物者显示过时的价格。 持续的不匹配也可能使整个商户中心账户面临风险。
两个缓存,同一时间,被过滤成过期数据
这两个视图均来自产品自身的扁平化屏幕,状态过滤器设置为 “陈旧” 。 以下主机名和路径已替换为相同格式的虚构主机名和路径,计数和年龄与记录一致。
企业软件网站
20,728 个网址中的第 34 个服装电商网站
8,474 个网址中的第 6,460 个特定时间点的快照。 随着网站的变化和每小时重新排队的更新,健康缓存的过期计数会在一天中上下波动。
三种工作流程,两种时钟,无模型
保持缓存新鲜度归结为两项工作,而这两项工作的成本不同。 要找到新增或已更改的页面,需要阅读客户的站点地图,这是最慢的部分。 另一个方法是将平台已标记为过期的内容重新排队,这只需要一次调用。 它们各自按照自己的时间表运行,第三个工作流程会对两者进行报告。
重新排队购买已过期的商品
每小时一次调用即可将所有 过期 和未缓存的 URL 移至队列中。 它从不与客户的网站联系,因此网站的机器人防护措施无法减慢或阻止它。 这就是为什么这里的旧页面只有几个小时而不是几个月的原因。
发现新增和已更改的页面
每 6 小时对于六个本地化域中的每一个,工作流都会读取站点地图,只保留最近 12 小时内更改的页面(间隔的两倍,因此即使延迟运行也不会遗漏任何内容),根据项目自身的范围规则检查每个页面,并注册哪些内容在范围内。 域名同时运行三个。 如果一个域发生故障,其他五个域仍然可以正常运行。
报告所有结果,包括失败结果。
无论成功还是失败该报告并非扫描流程的最后一步,因为最后一步只有在之前的所有步骤都成功的情况下才会运行,而且它会对真正重要的运行情况保持沉默。 这是一个独立的流程,由其他两个流程完成时触发,无论 成功还是失败,它都会发布到团队的 Slack 频道。
产品中的一个缺口,由田间试验填补。
再仔细看看这些工作流程是做什么的。 “扁平化”功能会将页面标记为过时,但不会重新排队,而且它本身也无法在站点地图中找到新页面。 通常情况下,这类功能请求会先放入待办事项列表中,等待产品团队决定是否有足够的客户需要它。 借助 Nucleus,与客户打交道的人员通过工具和工作流程(而不是产品代码)自行弥合了差距。 此后的每一次运行都产生了证据。
客户的翻译页面过期了,产品中没有任何内容可以使其重新进入队列。
该产品自身的 API 已经作为工具集成到 Nucleus 中。 工作流程会安排它们,产品中不会包含任何这些内容。
它为现在需要的客户运行,每次运行和每一步的结果都会被记录下来。
确定哪些人需要该功能、该功能应该运行多久一次以及该功能在哪些地方会出错,然后再决定是否开发该功能,或者干脆跳过它。
定时任务失败时不会发出任何声音。 这些不是。
cron 任务不会因为缺少计划任务而失败。 它之所以失败,是因为一旦工程师离开,没有人会知道这项工作何时停止进行。 从上面的截图中可以看出,长达七个月前的渲染图显示,没有人被告知此事。
服务器上的脚本,编写一次
- 版权归作者所有,直到他们搬走为止。
- 如果出现故障,则会记录到日志文件中。
- 新的语言环境、移动的站点地图或新的机器人防护措施都意味着代码变更。
- 它直接存储凭证,不以任何人的名义存储。
- 几个月后,你从过时的统计数据中才发现这一点。
任何人都可以阅读和更改的工作流程
- 每次运行以及每一步的输入和输出都会被保存并查看。
- 所有结果,包括失败,都会发布到团队频道。
- 新的语言环境是一个复制步骤,新的日程安排是一个编辑步骤。
- 每次通话均由 Nucleus 作为指定所有者进行授权和记录。
- 你会在一小时内通过 Slack 得知结果。
搭建新网站不需要工程师。
由于 Flatten 工具位于 Nucleus 中,引擎是 Dispatch,因此添加客户只需进行简短的对话。 入职代理会询问它无法安全猜测的信息,例如项目密钥和站点地图,而不是进行推断。 注册 URL 后,需要等待一位人工审核员对整个批次进行批准,无论该批次包含多少个 URL。
克劳德
Dispatch应用程序
轻点一下即可确认批次。 从这里,您可以复制为下一个客户设置的工作流程,更改计划,或实时跟踪每次运行的步骤。
松弛
斜杠命令启动与计划运行相同的流程,因此任何发现问题的人都可以从频道中修复它。