ecki
(Bernd)
1
ブログ記事にRSSプラグイン(または手動コピー)を使用して、カテゴリ内にディスカッションアンカーを作成しています。Googleはこのような「コピーされた」コンテンツを好まず、ブログのSEO評価を損なうと脅しています。
もちろん、Discourse(またはカテゴリ)のGoogleインデックス作成を停止することもできますが、これが意図したものであることを何らかの方法で定義した経験がある方はいらっしゃいますか?「このサブドメインはブログに属しており、リンクファームを作成しようとしているわけではありません」といったようなものです。もしそうであれば、Discourseの設定でどのように実装すればよいでしょうか?
rel=nofollowなどで、少なくともバックリンクファーミングの側面に対処できる(コンテンツの重複の側面については不明)ことを大まかに覚えています。Googleをなだめるような「これはコピーです」というヘッダーはありますか?
「いいね!」 2
simon
2
embed set canonical url サイト設定が問題の解決に役立つかもしれません。
ただし、Google のドキュメントを確認することをお勧めします。
ドキュメントをリンクしたのは、embed truncate 設定が有効になっている場合に embed set canonical url 設定を有効にすることについて確信がなかったためです。embed truncate が有効になっている場合、Google が Discourse でクロールできる元の記事はスニペットのみになります。「投稿全体を表示」ボタンをクリックすると、完全な記事が iframe で表示されます。iframe のコンテンツは Google によってクロールされないと確信しています。「5 つのよくある間違い」記事の最初の点は、その問題に多少なりとも対処しています。
「いいね!」 2
ecki
(Bernd)
3
サイモン、ヒントをありがとう!確かに、私が考えていたのは正規化(canonical)のようです。試してみましたが、完全に機能しません。RSSソースではなく、それ自体を指す正規化URLが埋め込まれます。
代わりに
(これは stable/3.2.0 です)
また、これを注目のリンク(featured link)としても設定できますか、また設定すべきですか?
この場合、切り捨て(truncate)は使用しません(ただし、RSSフィードはすでに切り捨てられています)。しかし、Googleがそれでも受け入れてくれることを願っています。
「いいね!」 1
simon
4
ブラウザのウェブインスペクタで表示するのではなく、ページのソースを表示してみてください。ページのソースを表示すると正規URLがRSS投稿のURLに設定され、ウェブインスペクタでHTMLを表示するとDiscourseトピックのURLに設定されていることがわかるはずです。それが正しければ、RSSトピックの重複コンテンツ警告は表示されないはずです。
(embed set canonical url を有効にした状態で)DiscourseのRSSフィードから取り込まれたトピックをウェブインスペクタで表示したときに、私が確認しているのは次のとおりです。
そして、ページのソースを表示したとき(ページを右クリックしてメニューから「ページのソースを表示」を選択)の正規URLは次のとおりです。
<link rel="canonical" href="https://blog.discourse.org/2023/03/how-discourse-scaled-to-10m-arr-with-only-1-salesperson" />
正規URLが正しく設定されたページのソースを表示するバージョンは、クローラーが見るものです。
ウェブインスペクタを使用し、ユーザーエージェントとしてGooglebotを選択することで、違いを確認することもできます。
設定はクローラーが見るものに関しては期待どおりに機能していると思いますが、私を混乱させていました。問題は、DiscourseがJavaScriptが有効な状態でページを表示すると、JavaScriptで正規URL属性を上書きすることのようです。参考までに、それはここで発生します。
https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/instance-initializers/meta-tag-updater.js#L25-L27
RSSフィードから作成されたトピックの注目のリンクは、(現時点では)設定できないと思います。私はSEOの専門家ではありませんが、それを設定しても設定しなくてもSEOに影響はないと思います。
「いいね!」 2
ecki
(Bernd)
5
curl -i | grep canon を使用したところ、間違ったタグの URL (ヘッダーなし) が表示されましたが、別の UA で再度試すことができます (これは少し奇妙ですが)。投稿を数回再作成する必要があったため、混乱していたのかもしれません。ここに更新します。
確かに、注目のリンクは SEO 用ではありませんが、ブログのリンクをより目立たせたいという内部的な希望がありました。そして、URL は同じなので…
(しかし、より長い要件リストが得られるようで、rss-poll をフォークする必要があるかもしれません (残念ながら、ほとんどの作業はプラグインでは行われていないようです)。埋め込みコードも拡張可能ですか?)
simon
6
RSS フィードから作成されたトピックで embed set canonical url が有効になっている場合、curl -i は RSS アイテムの URL を正規 URL として返すことを期待します。これはローカルサイトでテストした際には機能します。
Discourse Rails コンソールにアクセスできると仮定すると、トピックを見つけてから topic_embed プロパティを確認することで、何が起こっているかを確認できます。たとえば、次のようになります。
t = Topic.find 495
t.topic_embed
または単に:
TopicEmbed.find_by(topic_id: 495)
TopicEmbed が返されるはずです。その embed_url は、Discourse がトピックの正規 URL を設定するために使用することが期待されるものです。
私も以前からそう思っていました。埋め込みは Discourse のコアコードの一部であるため、RSS プラグインの変更よりも難しくなります。