Nucleusのロゴ核
‹ すべてのユースケース
フラット化 · 翻訳済み SEO キャッシュ

クローラーが 現在認識する翻訳済みページ。

Flattenは、検索エンジンやAIクローラーに対し、翻訳済みの各ページのコピーをすぐに利用できる形で提供します。 そのコピーは、実際のサイトと一致している間だけ有効です。 これは、同じキャッシュが2つのサイトに同時に存在している状態です。1つはNucleusとDispatchによって常に最新の状態に保たれ、もう1つはエンジニアが設定したcronジョブによって更新されています。 また、これは製品チームが何らかの決定を下す前に、現場チームが実際の顧客を対象にテストを行い、埋めた製品上のギャップでもあります。

現在99.84% 1時間ごとに再キューイング モデルコール0 費用/1回あたり0ドル
核+派遣
現在99.84%完了 · 20,728 件中20,694 件のURL
わずか 34個の 古いものが最後に平らにされた: 数時間以内に
手動で作成したcronジョブ
現在23.8%完了 · 8,474 件中2,014 件のURL
6,460 古いレンダリング: 7 か月前
01

Flattenが翻訳サイトにもたらす効果

GlobalLink Webは、顧客のウェブサイトを、販売対象地域であるすべての言語に翻訳します。 ユーザーのブラウザは、ページが読み込まれる際に翻訳結果を取得します。 クローラーはまた別の話です。多くの検索エンジンやAIクローラーはHTMLを読み取ってページのスクリプトを実行せずにページを離れるため、翻訳されていない原文を見ることになります。

フラット化せずに

クローラーがドイツ語のページをリクエストしています。

  • 翻訳がまだ適用されていないソースHTMLを取得します
  • 適用するスクリプトは実行されません
  • ドイツ語のURL上の英語のテキストをインデックス化します
  • そのため、翻訳されたサイトはドイツ語の検索結果にはほとんど表示されません。

✓ フラット化

翻訳は既に完了しています。

  • 翻訳された各URLは、事前に一度だけレンダリングされます。
  • 完成したHTMLはキャッシュされており、既にドイツ語で表示されています。
  • クローラーにはキャッシュされたコピーが即座に配信されます
  • 検索とAIの回答により、ページがドイツ語で表示されます
キャッシュされていない登録済み

URLはキャッシュに認識されていますが、まだレンダリングされていません。

キューに入れられたレンダリング待ち

レンダリングのために準備完了。 URLは自動的にここに移動するわけではありません。

キャッシュ済み現在

クローラーは、現在のページの内容の翻訳を取得します。

古くなった時代遅れ

ソースページはレンダリング後に変更されたため、クローラーは依然として古いバージョンを取得しています。

プラットフォームは、ソースページが変更されたことを検知し、キャッシュされたコピーを 古いものとしてマークします。 自動的に再レンダリングされるわけではありません。 何らかの方法で彼らを列に戻さなければならないまた、新しいページは、表示される前に登録する必要があります。 すべての顧客は、それを永続的に行ってくれる人や何かを必要としている。 このページは、誰が、あるいは何がそれを行うのかについて説明しています。
02

古いキャッシュが顧客に与える損失

古いページは壊れているようには見えない。 これは最後にレンダリングした翻訳を表示するため、顧客がドイツ語で検索して前シーズンのカタログを見つけるまで、誰も気づかない。

誤った事実

古い価格、古い商品

廃止された製品、前四半期の価格、または廃止されたポリシーは、すべての言語でインデックス化され続け、キャッシュが古い状態である限り、次のクロールまでだけでなく、その状態が続きます。

落丁

決して表示されない新しいページ

登録されていないページはレンダリングされないため、ローンチページや新製品ラインは検索結果に翻訳された形で一切表示されません。

AIが回答します

アシスタントは古いページを引用する

AIクローラーは同じキャッシュされたコピーを読み取るため、他の言語でのブランドに関する回答は、顧客が既に置き換えたコンテンツに基づいて構築されます。

ショッピング&商業施設

古くなったページは市場を失うことになる

オンラインストアは、各国ごとに価格と在庫状況を含む商品フィードをGoogle Merchant Centerに送信します。 Googleは各製品のランディングページをクロールし、そのページがフィードの内容と一致するかどうかを確認します。 翻訳されたストアでは、そのチェックを行うクローラーはフラット化されたコピーを取得します。

その情報が古い場合、ドイツ語版のページにはまだ前シーズンの価格が表示されていたり、再入荷した商品が売り切れと表示されていたりします。 価格または在庫状況の不一致により、製品が承認されない。そして、ドイツ国内のショッピング広告や無料掲載リストから削除される。 翻訳版が獲得するはずだったのは、まさにその市場だったのだ。

商品の自動更新が有効になっている場合、結果はさらに悪化する可能性があります。Googleがクロールした情報に合わせて商品リストを書き換えてしまい、買い物客に古い価格を表示してしまう可能性があるからです。 不一致が続くと、マーチャントセンターのアカウント全体が危険にさらされる可能性もあります。

製品フィード · DE トラベルマット、ブラック 79,00 ユーロ 在庫あり
≠
ランディングページ(Googleがクロール済み、 7 ヶ月前にレンダリング) 旅のマット、黒 89,00 ユーロで完売
不承認 · 価格不一致、在庫不一致 · ドイツ
キャッシュが最新の状態であれば、クローラーは今日のページを認識し、フィードが一致するため、掲載情報は有効なままになります。
03

2つのキャッシュ、1つの瞬間、古いものにフィルタリング

どちらのビューも、製品独自のフラット化画面で状態フィルターを 「古い」に設定して表示したものです。 以下のホスト名とパスは、同じ形式の架空のものに置き換えられており、カウントと経過時間は記録されたとおりです。

エンタープライズソフトウェアサイト

20,728 件中34件 のURL
6つのロケールドメイン · Nucleus + Dispatchによって管理されています
URL最終フラット化状態
kr.example.com/events 10 時間前古い
kr.example.com/partners/program 8 時間前古い
www.example.de/learning/certs過去1時間期限切れ
www.example.de/legal/addendum 7 時間前古い
www.example.es/events 10 時間前古い
…あと 29時間、数ヶ月ではない

アパレルECサイト

8,474 件中6,460件 のURL
製品カタログ · 手動で作成したcronジョブによって管理されています
URL最終フラット化状態
www.example-shop.com/ 3 ヶ月前古い
…/de-de/products/travel-mat-black 7 か月前古い
…/de-de/products/trucker-hat-white 7 か月前古くなった
…/de-de/products/mat-towel-espresso 7 か月前古い
…/de-de/products/headband-red 7 か月前古い
…さらに 6,455ヶ月ほど

ある時点におけるスナップショット。 健全なキャッシュにおける古いキャッシュの数は、サイトの変更や1時間ごとの再キュー処理の追いつきに伴い、1日を通して増減します。

健全なキャッシュは規模が大きく、より多くのドメインに分散しており、日々変化しているにもかかわらず、ほぼ完全に最新の状態を保っている。 そこに存在する古いページは数時間前のものです。なぜなら 、次の1時間ごとの実行でそれらが再キューに追加されるからです。 もう一方のサイトでは、4ページのうち3ページが古く、レンダリングも数ヶ月も前のものだった。 7ヶ月もあれば、製品カタログは完全に変わってしまうのに十分な期間だ。
04

3つのワークフロー、2つの時計、モデルなし

キャッシュを常に最新の状態に保つには、2つの作業が必要であり、それぞれ異なるコストがかかる。 顧客のサイトマップを読むことで、新規に追加されたページや変更されたページを見つけることができるが、これが時間のかかる作業だ。 もう一方の処理は、プラットフォームが既に古いとマークしたものを再キューイングするもので、これには1回の呼び出しが必要です。 それぞれが独自のスケジュールで実行され、3つ目のワークフローが両方の状況を報告します。

既に古くなったものを再キューに入れる

毎時間

1回の呼び出しで、 古くなった キャッシュされていない すべての URL をキューに移動します。 顧客のサイトには一切アクセスしないため、サイトのボット対策機能で速度を低下させたりブロックしたりすることはできない。 そのため、ここにある古いページは数ヶ月前のものではなく、数時間前のものなのです。

フラット化 · ステータスによる再レンダリング

新しく追加されたページや変更されたページをご覧ください

6 時間ごと

ワークフローは、6つのロケールドメインそれぞれについてサイトマップを読み込み、過去 12 時間(2倍の期間なので、実行が遅れても何も見逃さない)に変更されたページのみを保持し、各ページをプロジェクト独自のスコープルールと照合して、スコープ内にあるものを登録します。 ドメインは一度に3つまで実行されます。 1つのドメインが故障しても、残りの5つのドメインは正常に動作する。

fetch_sitemap › match_scope › jq · urls › add_urls_to_flatten × 6 ドメイン

失敗も含め、すべての結果を報告してください。

成功または失敗

このレポートは、スキャンの最終段階ではありません。なぜなら、最終段階はそれまでのすべての処理が正常に完了した場合にのみ実行され、重要な実行結果については何も報告しないからです。 これは、他の2つのタスクが完了した時点で( 成功したか失敗したかにかかわらず)、自動的に開始される別のワークフローであり、チームのSlackチャンネルに投稿されます。

jq · compose › slack · post
Nucleus を介したツール呼び出し ボックス上のローカルデータステップ
3つのワークフローにわたる27 のステップがあり、そのうちの1つはモデルを呼び出していません。 鮮度には明確な答えがあります。ページは古いか最新か、そして対象範囲内か範囲外かのどちらかです。 ツールは毎回同じ方法でその答えを計算します。 運行に追加料金がかからないため、スケジュールは1時間単位となっています。 どのステップもモデルやローカルシステムを必要としないため、同じステップをクラウド上のNucleusワークフローとして構築することも同様に可能です。 これはDispatch上で動作し、同じNucleusツールを呼び出します。
05

製品の不足部分を現場から補う

これらのワークフローが何をしているのか、もう一度よく見てみましょう。 Flattenは古いページをマークしますが、それらを再キューに追加しません。また、サイトマップ内の新しいページを単独で見つけることもできません。 通常、それは製品チームが十分な顧客がその機能を必要としているかどうかを判断する間、バックログに保留される機能リクエストです。 Nucleusでは、顧客と接する人々が、製品コードではなくツールやワークフローを用いて、自らギャップを埋めることができた。 それ以降のすべての実験で証拠が得られている。

01 · 分野隙間を見つけよう

顧客の翻訳済みページが古くなり、製品にはそれらをキューに戻すための機能は何もない。

02 日、リリースではありません工具を詰め込む

製品独自のAPIは、既にツールとしてNucleusに組み込まれています。 ワークフローによってそれらが整理され、製品として出荷されるものは何もない。

03 · 実際の顧客本番環境で試す

このシステムは、今すぐ必要とする顧客のために稼働し、すべての稼働とすべてのステップの結果が記録されます。

04 · 製品チームデータを使って構築する

誰がその機能を必要としているか、どのくらいの頻度で実行すべきか、どこで不具合が発生するかを把握した上で、その機能を導入するか、あるいは導入を見送るかを決定する。

裁判で分かったことは、仕様書では
1時間ごとの再キューイングにより、20,000個のURLキャッシュが 99.84%最新の状態に維持されたことが確認された。 同様の施設で、そのような施設がない場所では、割合は 23.8%だった。
そのため、この機能には、製品自体に古いページを自動的に再キューイングする機能が必要です。 時間単位での利用で十分な場合が多く、費用もほとんどかかりません。
ある顧客のボット対策機能がサイトマップの取得を完全に拒否するため、検出は失敗するが、再キューイングは機能し続けることが確認された。
そのため、この機能では検出と再キューイングを別々のジョブとして処理する必要があります。 再キューイングは、顧客のサイトに到達することに依存してはならない。
ある顧客のサイトマップにはソース言語のURLしか記載されておらず、 13 の言語すべてが別々のサブドメインに存在することが確認された。
そのため、この機能には、サイトマップに記載されているURLだけでなく、各ソースURLをすべてのロケールホストにマッピングする検出機能が必要です。
観測されたレンダリング失敗にはHTTPステータスが全く含まれておらず、失敗とマークされたページの中には、実際のブラウザでは正常に読み込まれるものもある。
そのため、この機能では、誰かが操作を行う前に、失敗したページを実際にチェックする必要があります。 ステータスフィルターでは、これらを検出することはできません。
実行開始が遅れた場合、実行間隔で欠落したページ数に等しい検出ウィンドウが観測された。
そのため、この機能には、約2倍の期間の参照ウィンドウが必要ですが、これはジョブが実際のスケジュールで実行されるまで見つけることができません。
これは見落としがちな利点です。 Nucleusは 、ロードマップを待つことなく、顧客に最も近い人々がニッチなニーズに今すぐ対応できるようにするものです。 13 個のロケールサブドメインとソースのみのサイトマップを持つ顧客は、製品のエスカレーションではなく、ワークフローの手順が1つ増えただけだった。 一方、製品チームはバックログチケットでは決して得られないものを手に入れる。それは、実際の顧客で検証され、エッジケースも既に特定された、動作するソリューションだ。 必要性を認識した上で機能を開発することも、ニッチな機能だと判明した場合は現場に残しておくこともできる。
06

cronジョブの失敗は、何の通知もなしに発生する。 これらはそうではありません。

cronジョブは、スケジュールが設定されていないからといって失敗するわけではありません。 エンジニアが異動すると、その作業が機能しなくなったことを誰にも知らせる手段がなくなるため、この方法は失敗する。 上記のスナップショットでは、最大7ヶ月前のレンダリング画像から、誰にも知らされていなかったことがわかる。

伝統的な配置

サーバー上のスクリプトは、一度書き込まれると

  • それを書いた人が手放すまでは、その人が所有する。
  • エラーが発生した場合は、ログファイルに記録されます(ログファイルがある場合)。
  • 新しいロケール、移動したサイトマップ、または新しいボット対策はコードの変更を意味します
  • それは誰の名前も使わず、直接認証情報を保持します
  • 数ヶ月後の古くなった在庫数からわかる
核+派遣

誰でも閲覧・変更できるワークフロー

  • すべての実行とすべてのステップの入力と出力が保存され、表示できます。
  • 失敗も含め、すべての結果はチームのチャンネルに投稿されます。
  • 新しいロケールはコピーされたステップであり、新しいスケジュールは1つの編集です。
  • 各通話は、名義人であるNucleusによって承認および記録されます。
  • Slackで1時間以内にわかる
07

新しいサイトを立ち上げるのにエンジニアは必要ありません

FlattenツールはNucleusに含まれており、エンジンはDispatchであるため、顧客の追加は簡単な会話で済みます。 オンボーディングエージェントは、プロジェクトキーやサイトマップなど、安全に推測できない情報については、推測するのではなく、直接尋ねる。 URLを登録すると、たとえ数千個のURLが含まれていても、そのバッチ全体を対象とした人間の承認を待つことになります。

ノートパソコンから

クロード

このサイトをFlattenに組み込み、6時間ごとにサイトマップを確認し、古いページを1時間ごとに再キューに入れ、結果を#web-opsに投稿してください。
プロジェクトキーとサイトマップのURLが必要です。 私も推測はしません。 データを入手したら、承認前に件数を確認できるよう、インポートの予行演習を実行します。
電話から

ディスパッチアプリ

承認が必要です · XXXX-XXXX-XXXX-XXXXの 3,198 URL を登録します

ワンタップで一括承認できます。 そこから、次の顧客向けに設定されたワークフローをコピーしたり、スケジュールを変更したり、各実行の手順をリアルタイムで追跡したりできます。

チャンネルから

スラック

/flatten-requeue example-shop
再レンダリングのために、 412 個の古いURLをキューに追加しました。

スラッシュコマンドは、スケジュールが実行するのと同じワークフローを開始するため、問題に気づいた人は誰でもそのチャネルから問題を修正できます。

これが比較のポイントです。 健全なキャッシュが健全な状態に保たれたのは、より優れたエンジニアがより優れたスクリプトを書いたからではない。 システムは 、アクセス権を持つ人なら誰でも設定、閲覧、変更できる自動化機能によって健全な状態に維持されており、スケジュールに基づいて無料で実行され、自身の障害を報告する。 顧客は常に最新の状態に保たれた翻訳ページを受け取ることができ、コードの記述や保守に時間を割ける担当者を待つ必要もなくなります。
違い

99.84%が現在稼働しており、 誰でも変更可能な設定によってその状態が維持されています。