Google Search Consoleで、Netlifyにホストされているreact-helmet-asyncを使ったReactアプリの作成サイトに存在しないページがインデックスされる。

1
2022.04.29

私のウェブサイト(Netlifyにホストされている)を検索すると、Googleは存在しないページを表示します。

それはこのように見えます。https://*********.com.tr/Achlamydeae1901520.htmlまたはhttps://*********.com.tr/Cumar1152083.html(これらのページは存在しないので、ユーザーは私が作成した404カスタムページにリダイレクトされます)。

私のsitemap.txtは次のようになります。

https://*********.com.tr/
https://*********.com.tr/about
https://*********.com.tr/companies
https://*********.com.tr/team
https://*********.com.tr/activities
https://*********.com.tr/contact

私の_redirectsファイルは次のようになります。

/*    /index.html   200

私のrobots.txtファイルはこのような感じです。

User-agent: Googlebot
Disallow: /nogooglebot/

User-agent: *
Allow: /

Sitemap: https://*********.com.tr/sitemap.txt

私のreact-helmet-asyncのメタは次のようになります。

<Helmet>
     <title>website title</title>
              <meta
                name="description"
                content="This is a desciption"
              />
              <meta
                name="keywords"
                content="this is the website keywords"
              />
             
    
              <link rel="canonical" href="/" />
</Helmet>

私のReact router v6はこのように見えます。

      <Router>
        <Routes>
          <Route path="/" element={<Home />} />
          <Route index element={<Home />} />
          <Route path="contact" element={<ContactUs />} />
          <Route path="companies" element={<OurCompanies />} />
          <Route path="team" element={<OurTeam />} />
          <Route path="about" element={<AboutUs />} />
          <Route path="activities" element={<Activities />} />
          <Route path="news" element={<ComingSoon />} />

          <Route path="*" element={<Error404 />} />
        </Routes>
      </Router>

どうすればこの問題を解決できますか?

EDIT : Google Search Consoleで、Coverageカテゴリに上記の2つのようなURLが3k以上あることが分かりました。

enter image description here

回答
2
2022.04.30

この問題は、Google検索ヘルプの素晴らしい人々のおかげで解決されました。

この回答は私のために機能しました。

純粋にクライアントサイドでレンダリングされたサイトのようなので、ページは200ステータスを返します。(クライアント側でステータスコードを変更することはできません)

つまり、ページが404と表示しているにもかかわらず、実際には200なのです。

クライアント側でルーティングされたサイトでは、次の2つの選択肢があります。

  • noindexタグを追加する
  • または、JavaScriptでアプリ外のページにリダイレクトし、実際に404を返す。

どちらも同じように動作し、同じ結果(これらのURLはインデックスから削除される)になるので、実装が最も簡単なものを選んでください。