/u/* の正規化構造により、多くの URL がインデックス化される

当初、「バグ」カテゴリのためにこれを書きました…

…しかし、誰かがこれをPRやコミットに値すると感じても、私を止める必要はありません :crossed_fingers:

過去2か月間、Discourseの標準構造を熱心に研究してきましたが、全体的に素晴らしいです。

no_definitions=true/search?q= のような奇妙なURLでも、正しい標準URLが返されます。

これらすべては、ユーザーとクローラーの両方にサイトのJSバージョンを提供する場合に機能します。

しかし、/u/* URLは考慮されていないようです。これらには標準URLがありますが、Googleに何千もの追加URLがインデックスされる原因となっています。

ジョブ:

ユーザー名の後のすべてのURLが、メインのユーザープロファイルページに標準化されるようにしたいです。

したがって、/u/FlyNumber がメインのプロファイルページです。

以下は、上記に標準化されるべきです(現在は自身に標準化されているのではなく)。

/u/FlyNumber/summary
/u/FlyNumber/activity
/u/FlyNumber/activity/topics
/u/FlyNumber/activity/replies
/u/FlyNumber/activity/likes-given
/u/FlyNumber/badges
「いいね!」 1

これはここで議論されているカスタムインデックス設定用ですか?

もしそうなら、求職者が何に巻き込まれるかを知るために、これを記載しておくと役立つかもしれません。

デフォルトでは、/u/ URL はインデックス作成されません。これは robots.txt で設定されており、ページ上の最初のヘッダーリクエストで渡されます。

image

「いいね!」 4

いいえ、prerenderの使用をやめたためです。メインメニューやログインボタンなどをレンダリングできませんでした。

Googlebotは「アプリ」を直接取得しています。

Discourseのサイト設定で、クローラーにJSバージョンを提供するように隠しています。(それについては近日中にさらにアップデートがあります。)

良い点ですね。/badgesも同様です…

カスタム編集したrobotsファイルを
[/quote]

ページへの初期ヘッダーリクエストで渡しました。

image
[/quote]

Cloudflare Workersを使用してヘッダーを変更し、'index'にしています。

/u/FlyNumber/summary
/u/FlyNumber/activity
/u/FlyNumber/activity/topics
/u/FlyNumber/activity/replies
/u/FlyNumber/activity/likes-given
/u/FlyNumber/badges

これらの URL の canonical を完全に削除することも、正しい方向への一歩になることを指摘しておきたいと思います。(私の意見では、私の方法は SEO に適しています)

上記で述べたように、noindex に設定されているため、Discourse が canonical を生成する理由がわかりません。

Discourse のコードをいじるのを避けるために、JS と Cloudflare Workers を使って賢い方法でこれを実現できる方法を知っている人はいますか?

/u/* でしかトリガーできないので、/u/*/summary に「トリガー」を設定し、以下のようなものを実行できます。

const canonical = document.querySelector('link[rel="canonical"]');
if (canonical !== null) {
  canonical.href = 'NEW_HREF_GOES_HERE';
}

ここで、ユーザー名を NEW_HREF_GOES_HERE に渡すにはどうすればよいですか?そして、canonical/u/*/summary の代わりに /u/* になるようにするにはどうすればよいですか?

どんな助けでも大変感謝します。

編集

関連する GitHub ページを教えていただければ、コードを編集してみます。

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.