WordPressは、親レベルで入力されたときに、部分的なURLを「正しい」ページに解決するようです。 Googleはこの部分URLを検索結果に含めています。たとえば、何年も前に、私はBookeoというサイトに関するブログ投稿を書きました。
http://www.example.com/2011/04/bookeo/
これを入力すると、上記のURLに解決されます。
http://www.example.com/book/
何らかの理由で、Googleは実際に/book/
URLを、それが独自のページであるかのようにキャッシュしました。サイト名+ブックを検索すると、短縮された誤ったURLが返されます。これは私が最後にしたいことです。なぜなら人々はアポイントメントなどを予約するためにそこに行くかもしれないからです。
余談として、WPは実際に一致する最初の結果に解決されます。したがって、/book1/
および/book2/
を使用したブログ投稿がある場合は、最初のものを選択します。
Googleに正しいリンク先URLのみをキャッシュさせる方法はありますか?サイトマップには正しいもののみが含まれており、robots.txt
でリンクされています。 Googleウェブマスターにも手動で送信しました。
robots.txt
をブロックして/book
をブロックする唯一のオプションです。または、WordPressでそのURL解決機能を無効にする方法を見つけますか?
最初のコメントは、WordPressのURL推測機能を無効にする方法を理解する必要があることを示唆しています。それが最善の解決策だと思います。その方法の1つがここで回答されています。
https://wordpress.stackexchange.com/questions/92103/disable-wordpress-url-auto-complete
remove_filter('template_redirect', 'redirect_canonical');
ただし、重複するURLペナルティの防止など、SEOの多くの利点を備えた機能全体が無効になるため、禁止すべき理由に関する警告が付属しています。私が望まない部分は:
また、ユーザーが正確なWordPressクエリに基づいて存在しないURLを入力すると、正しいリンクを見つけようとします。代わりに、正しいページを見つけようとしてURLまたはクエリを解析しようとします。
どうやらオープンWordPressチケットがあります。回避策はここにあり、同様のリンクも上記のリンクにあります。
https://core.trac.wordpress.org/ticket/16557
function remove_redirect_guess_404_permalink( $redirect_url ) {
if ( is_404() )
return false;
return $redirect_url;
}
add_filter( 'redirect_canonical', 'remove_redirect_guess_404_permalink' );