管理外のWebサイトをGoogleの検索結果に載せたい
やりたいこと
自分が完全な管理を持っていないWebサービスの自分の記事などをGoogleにインデックス化してもらいたい。
どういう意味かというと、以下のようなWebサービス。
上記のサービスで以下のようなことが可能。
自分の動画を投稿できるとか、
自分のリポジトリを公開できるとか、
自分の書いた内容を投稿できる
だが、好きにHTMLを書き換えたり、サイトマップを設置したりすることは出来ない。
実際にやったこと
実際の結果
以下は実際の結果。作成が16時間前のものだが、タイトルを検索して
Googleでヒットしている。
Twitterなどの他のサービスでこのURLを流したりはしていない。
何もしなければ、
Cosenseは1ヶ月前のページのタイトル検索しても
Googleでヒットしないので16時間前というのはすごく早い(実際は執筆時のスクショなので、本当は数時間だった)。
ここで目的ではないこと
多少の注意点。
インデックス化は
SEO対策の一環ではあるが、
短い検索キーワードで上位にするなどは目指していない目的は単純に、検索すればヒットする(インデックス化)状態にすること。つまり、タイトルを検索してヒットすれば成功。
なぜ検索結果に載せたいか?
せっかくのオープンなので、検索して全くヒットしないのは情報が埋もれてしまって残念だから。
知りたくて検索した人も、もしかするとそのページで知りたいことが知れるかもしれない
つまり、みんなハッピーなはず。
ざっくりと手順
どういうサーバーとか構成でやったかについて。今回は
Cosenseでの話。だが、任意のWebサイトで利用可能なはずである。
(下記出てくる nwtgck
は自分のIDなどと考えれば良い)
以下の構成のサーバーを作って、上手くいった。
ルーティングができて、レスポンスを動的に生成できるWebサーバーを用意する
サブドメインを使っても大丈夫なはず
https://nwtgck.org/scrapbox/ページタイトル
を https://scrapbox.io/nwtgck/ページタイトルに
リダイレクトする。
(sitemap.xmlと言いつつ、今はRSSの形式...)
詳細な手順とか補足とか
nwtgck.orgは2日前にとったばかり新しいドメイン
使い込んだドメインでなくても上記の画像のように効果があった。
おそらくHerokuを使っても上記と同じことが満たせるので、無料で出来るはず。
「ルーティングができて、レスポンスを動的に生成できるWebサーバー」とは
各種言語のの標準のWebサーバーライブラリ(
Node.jsとか)があればOK
ts// Scrapbox redirect rule
app.get(/\/scrapbox\/(.+)/, (req, res) => {
logger.info('on /scrapbox req.params', req.params);
// Get Scrapbox title
const title: string = req.params[0];
// Redirect to Scrapbox
res.redirect(301, `https://scrapbox.io/nwtgck/${encodeURIComponent(title)}`);
});
定期的にScrapboxのAPIを叩いて、RSSを更新している。
すでに登録済みだが、もう一度サイトマップを送信すれば良かった。アクセスログで
Googlebotがまたsitemap.xmlをGETして、新しいページだけ
GooglebotがGETしたのが確認できた。
Googleから見てこの手法が良いのか?について。Googleから見れば「もともとnwtgck.orgで書いてた内容がscrapbox.ioに移動したんだな」のようになるはずなので、問題ないと思っている。(時間的には逆だが)
参考にした情報
そのあと、
/shokai/shokai.orgからfeedのリダイレクトを読んだ。これから最終的にこの着想になった。「
橋本商会」さんはブログ時代から検索してよく出てきてお世話になっていて、そこからの301のリダイレクトをしているということとで元々強い
SEOサイトのfeedがScrapboxに置き換わることで、数時間で検索できるようになっているのではないかと思った(単なる推測)。
sitemap.xmlをリダイレクトするだけのものも試したが、
Google Searc Consoleに送信すると、外部リンクのscrapbox.ioに向かっているためエラーしてしまった。そのため、このような手法になっている。