web-dev-qa-db-ja.com

ファイルから.html拡張子を削除した後、タイトルタグとメタ記述を複製する

Googleウェブマスターツール/ Search Consoleで、タイトルタグとメタ説明の重複に関するエラーが表示されます。

問題のWebサイトは静的なHTML Webサイトです。すべてのドキュメントには、.html拡張子があります。すべてのドキュメントから.htmlを削除するために、。htaccessファイルで以下のコードを使用しています。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]

たとえば、http://example.com/about.htmlhttp://example.com/aboutになります。Googleは、ページについては2つに分かれていると考えています。誰かがこれを解決する方法を説明できますか?

4
Alex

URLを変更したときに.htmlのURLが既にインデックス化されていた(そして.html拡張子を削除した)場合、SEOを保持し、取得から重複コンテンツを避ける唯一の方法は、.html URLから目的のURLへの301リダイレクトを実装することです。

(これは、アプリケーションのすべてのURLを目的の「拡張機能のない」URLに変更したことを前提としています。)

.htaccessファイルの上部にある次のようなもの:

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule (.+)\.html$ /$1 [R=301,L]

REDIRECT_STATUSに対するチェックは、書き換えられた要求(.htmlへ)がリダイレクトされないようにすることでリダイレクトループを回避することです(内部書き換えがトリガーされると、REDIRECT_STATUS200に設定されます)。


すべてのドキュメントから.htmlを削除するために、。htaccessファイルで以下のコードを使用しています

Aside:これはおそらくあなたがそれをどのように説明しているのかと思いますが、実際にはそのコードの断片はそうではありません。アプリケーションでURLを物理的に変更することにより、(.htmlではなく)URLから「.htaccessを削除」します。次に、.htaccessを使用して内部書き換え URLを実際のファイルシステムパス(.html拡張子付き)に戻します。これが、コードスニペットが行うことです。 .html拡張を再追加しますが、削除はしません。

2
MrWhite

Www.example.com/aboutを割り当てましょう-Googleでインデックスを作成するメインURLとそのURLです。

そしてwww.example.com/about.html-重複したURLであり、Googleでインデックスを作成したくない。

したがって、2つの完璧なソリューションがあります。いずれかまたは両方を使用できます。

1) 1リダイレクトを使用 example.com/about.htmlからexample.com/aboutへ。したがって、GoogleはURLの最終バージョンまたはリダイレクトバージョンのみをインデックスに登録します。

2) キャノニカルリンクタグを使用 ヘッドセクション。

ページが重複しているため、正規リンクタグはこれらのすべてのページで同じになります。

www.example.com/about/
www.example.com/about
www.example.com/about.html
www.example.com/about/index.html

そのため、正規リンクタグの下に配置すると、すべてのURLでWebページのタイトル/説明が同じであるように、上記のすべてのページに同じ正規リンクタグが継承されます。

<link rel="canonical" href="https://www.example.com/about" />

そのため、ここではGoogleはその正規リンクタグのみをインデックスに登録し、他のページは重複していると見なし、Googleはそれをインデックスに登録しません。

4
Goyllo