Sitecore][IP Geolocation][Redirect] Sitecore GEO IPリダイレクトする際にGooglebotを除外する
概要:
以前、Sitecore IPジオロケーションサービスを使って、国別にユーザを自動的にリダイレクトするに関する
メモ書きを書きました。しかし、Googleのサーチエンジンで用いる検索可能なインデックスを作成するために
ウェブ上からドキュメントを収集するGoogleBotを場合を想定していなかった。
今回、簡単にGoogleBotを場外し、また、検証用に使用したツールをメモ書きとしてします。
コードを更新
これは意外と簡単、GoogleBotのようなCrawling Botsを場外するコードを追加します。
private bool IsCrawlingBots() { var returnVal = false; var CrawlingBots = SandboxSettings.CrawlingBotsExclusions.ToLower().Split(',').ToList(); if (HttpContext.Current != null && HttpContext.Current.Request != null && HttpContext.Current.Request.UserAgent != null) { var uaStr = HttpContext.Current.Request.UserAgent.ToLower(); returnVal = CrawlingBots.Exists(x => uaStr.Contains(x)); } return returnVal; }
その後、リダイレクトする前に確認をする。
if (Tracker.Current.Interaction.GeoData.Country != "US" && !IsUserPreferUsSite() && !IsCrawlByBots())
設定にて除外が必要とするBotを設定。
<setting name="CrawlingBotsExclusions" value="googlebot,bingbot,yandexbot,ahrefsbot,msnbot,linkedinbot,exabot,compspybot,yesupbot,paperlibot,tweetmemebot,semrushbot,gigabot,voilabot,adsbot-google,botlink,alkalinebot,araybot,undripbot,borg-bot,boxseabot,yodaobot,admedia bot,ezooms.bot,confuzzledbot,coolbot,internet cruiser robot,yolinkbot,diibot,musobot,dragonbot,elfinbot,wikiobot,twitterbot,contextad bot,hambot,iajabot,news bot","irobot,socialradarbot,ko_yappo_robot,skimbot,psbot,rixbot,seznambot,careerbot,simbot,solbot,mail.ru_bot,spiderbot,blekkobot,bitlybot,techbot,void-bot,vwbot_k,diffbot,friendfeedbot,archive.org_bot,woriobot,crystalsemanticsbot,wepbot,spbot,tweetedtimes bot,mj12bot,who.is bot,psbot,robot,jbot,bbot,bot" />
動作確認
まず、以前のメモ書きにて使用していたツールを使用し、リダイレクをします。
下記のChromeのプラグインUser-Agent Switcherをインストールします。
Chromeのプラグインをインストールされたら、UserAgentをGooglebotへ切り替えすればいい。
正しい動作はGooglebotへ切り替えた際にリダイレクトがされない。