私はajaxの重いアプリケーションをより検索エンジンに優しいものにすることについて読んでいます: https ://developers.google.com/webmasters/ajax-crawling/docs/getting-started
私が最近提供したソリューションの1つは、クロスドメインのJavaScriptウィジェットに大きく依存しています。このソリューションを統合するWebサイトでは、WebサイトにJavaScriptが含まれます。例えば:
<script type="text/javascript">
var _lw = _lw || {};
_lw._setAccount = ' 00000000-0000-0000-0000-000000000000' ;
_lw._widgetType = '_widgetName';
_lw._options = {};
(function() {
var scriptsrc = document.createElement('script');
scriptsrc.type = 'text/javascript';
scriptsrc.async = true;
scriptsrc.src = 'http://hostname/Application/js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(scriptsrc, s);
})();
</script>]
<div id="widget-container"></div>
このリクエストは、ウィジェットが使用する関連するアプリケーションURLとともにjQueryラッパーをdomに追加します。このJavaScriptのソースは、関連するコンテンツを出力するasp.netmvcコンテンツの結果であることに注意してください。
[HttpGet]
[ActionName("js")]
public ContentResult RenderJavascript()
{
// java script urls & jquery wrapper are output
}
必要なURLが利用可能になったので、追加されたばかりのjQueryラッパーが起動し、アカウント情報、ウィジェットタイプ、および関連するオプションを使用してサーバーへのリクエストを開始します。ASP.net MVC
は単にコンテンツジェネレータとして機能しJSONP
、生成されたコンテンツがサイトのコンテンツコンテナに追加された結果を返します。
function loadWidget() {
var jsonpUrl = _opts._widgetUrl + _lw._setAccount;
jQuery.getJSON(jsonpUrl, _lw._options, function (data) {
jQuery('#widget-container').html(data.html);
});
}
このプロセスをより検索エンジンに適したものにすることについて読むほど、どこから始めればよいのか途方に暮れています。必要なHTMLスナップショットを生成するのは簡単ですが、リンクをクロールする必要があることをGoogleにどのように示しますか?
やや有望と思われるもう1つのオプションは、ハッシュフラグメントなしでページを処理する方法に関するセクションでした。これは、javascriptウィジェットを利用するメタタグを追加することで実現されます。
<meta name="fragment" content="!">
ただし、現在の問題は、これがクロスドメインリクエストであり、どこにもリードしないという事実にあります。