web-dev-qa-db-ja.com

カスタムドメインを取得した後、SEOのherokuサブドメインをどうしますか?

私は数か月間ウェブサイトに取り組んでおり、SEOを改善してから視聴者を獲得し始めましたが、.heroku.comドメインからしかアクセスできませんでした。私はそれがnamecheapで.comドメインを購入する時だと思いました。それはサイトをより合法的に見せ、より多くのクリックにつながるかもしれないからです。

セットアップが完了し、私のサイトは両方ともexample.comとexample.herokuapp.comにあります。最初は、Googleのすべての検索結果が.herokuapp.comサイトにつながっており、気になる多くのクエリの最初のページにいました。しかし今、私のページはどこにも見当たりません。これは、グーグルがこれを重複したコンテンツと見なし、それを厳しく罰するためだと考えています。

基本的に、Googleのすべてのリンクを通常の.comサイトに導き、herokuapp.comサイトにアクセスできないようにするか、すべての検索エンジンから完全に非表示にしないようにします。私はいくつかの可能な解決策に出くわしましたが、私のサイトはすでに400ページ以上で構成されているため、それらのどれも非常にクリーンまたは実用的ではありません。 ( 検索結果でHerokuアプリドメインを削除する方法

これについて最善の方法は何でしょうか?

3
Gitschi

@Stephen Ostermillerの素晴らしいアドバイスのおかげでようやく機能しました。

バックエンドがExpressのNode.jsで実行されている場合、次のソリューションが機能します。まず、必要なすべてのページの301リダイレクトを作成します。例としてaboutページのコードを次に示します。

/// About Page //// 
router.get("/about", function(req, res){
    const Host = req.hostname;
    const url = req.url;
    if(Host === "example.herokuapp.com"){
        res.redirect(301, "http://www.example.com" + url);
    } else{
        res.render("about");
    }
});

また、データベース内でクエリを完了して変数を渡す必要があるgetリクエストに対しても簡単に実装できます。

/// Kanji Index Route///
router.get("/", function(req, res){
    /// Get all kanjis from db///
    Kanji.find({}, function(err, allKanjis){
        if(err){
            console.log(err);
        } else {
            const Host = req.hostname;
            const url = req.url;

            if(Host === "example.herokuapp.com"){
                res.redirect(301, "http://www.example.com" + url);
            } else{
                res.render("main/kanjis", {kanjis : allKanjis});
            }
        }
    });
});

req.urlはパスの最後の部分のみを取得するようです。そのため、リダイレクトのルートを入力するときはそのことを忘れないでください。

301リダイレクトをすべて設定した後、 Google Change of Address Tool の使用方法に関するガイドに従ってください。

Googleの更新にはしばらく時間がかかるため、まだ結果を確認できません。しかし、これで問題は解決すると思います。

1
Gitschi