web-dev-qa-db-ja.com

実際のURLおよびサイトマップのアンパサンド(&)

アンパサンド(&)を含むURLを追加するサイトマップ(インデックス作成のためにGoogleに送信されます)があります。サイトマップでは&をエスケープする必要があるため、サイトマップのURLで&&に置き換えました。私の実際のページURLには&のみが含まれています。

GoogleウェブマスターとSEOは初めてなので、URLとサイトマップのこのアンパサンドの違いが問題を引き起こすかどうかを理解したいと思います。ページはインデックスに登録されますか?これは、URLの&&に置き換えた後にサイトにアクセスできるため、noobレベルの質問のように思えるかもしれません。しかし、まだこの面での助けは非常に高く評価されます。

3
user109308

uRLとサイトマップのこのアンパサンドの違いが問題を引き起こす場合。

tl; dr問題ありません。RLは同じであるためです。

サイトマップでは&をエスケープする必要があるため、&&に置き換えました...

サイトマップはXMLドキュメントです。他のXMLドキュメントと同様に、データ値はエンコードされたXMLエンティティに格納する必要があります。 &文字は特殊文字(それ自体がXMLエンティティの開始を示す)であるため、その特別な意味を無効にするためにエンコードする必要があります。これは、データを保存する方法ですXMLドキュメント内

XMLパーサーによってXMLドキュメントが読み取られると、データ値はXMLエンティティdecodedになり、実際の値に戻ります。したがって、XMLドキュメントが読み取られると、&&になります。

したがって、/page?foo=1&bar=2形式のURLは、HTML5ドキュメントの/page?foo=1&bar=2XMLドキュメント内に保存されていますidenticalです。

私の実際のページURLには&のみが含まれています

HTML5では完全に問題ありませんが、あいまいさはありません。ただし、HTML4.1(およびそれ以前)では、有効なHTMLのHTMLソースコードで&&として正しくHTMLエンティティエンコードする必要があります。ただし、ブラウザは非常に寛容であり、HTMLドキュメントはおそらく「機能」しているはずです。

HTML5では、厳密にneedが曖昧な場合にHTMLエンティティに&をエンコードします。次のcontrivedの例を見てください。リテラル文字列「$」を渡したいfoo URLパラメーター。

<!-- In an HTML document (WRONG) -->
<a href="/page?foo=&dollar;">link</a>

desired URLはhttp://example.com/page?foo=&dollar;ですが、上記のHTMLアンカーはユーザーをhttp://example.com/page?foo=$に送信します-これは意図ではありません。目的の結果を作成するには、&mustをHTMLエンティティでエンコードし、その特別な意味を無効にして、次の(正しい)HTMLを作成します。

<!-- In an HTML document (CORRECT) -->
<a href="/page?foo=&amp;dollar;">link</a>

HTMLドキュメントで&を一貫してHTMLエンティティでエンコードすることは、常にsaferです。 CMSを介してコンテンツを生成する場合、これは自動的に行われます。

URLの&&amp;に置き換えた後、サイトにアクセスできます。

おそらく、「URLでHTMLで "? HTMLエンティティにする場合は、ブラウザのアドレスバーで&&amp;でエンコードする(たとえば)ためです。 HTMLコンテキストの外部では、期待した結果が得られません。たとえば、ブラウザのアドレスバーに次を直接入力した場合:

/page?foo=1&amp;bar=2

次に、2つのURLパラメーター[foo] => 1および[amp;bar] => 2を取得しますが、これは明らかに意図ではありません。

4
MrWhite

サイトマップに含めるURLは、 RFC-3986標準 に従う必要があります。 Google公式ガイド を読むとわかるように、&&amp;でエスケープする必要があるため、すぐに使用できます。

それでも、Google Searh Consoleからサイトマップを送信すると、送信されたURLに問題があるかどうかを知ることができます。

念のため、最終URLのみを含める必要があります。つまり、回避できるパラメーターがある可能性があります。例えば:

 - https://example.com/shoes (good one)
 - https://example.com/shoes?order=1&amp;color=blue (remove this one)
2
Emirodgar