比如, 一个做音乐的网站肯定不希望搜索引擎收录它的存档月份, 因为没有人会通过这个来搜索进来. 这我们就可以用 JavaScript 输出这部分内容.
本人正在使用的 iNove 和我发布的最大区别是在 SEO 上, 你可以查看一下页面代码, 我的侧边栏很多内容都是 JavaScript 输出的. 因为侧边栏一般起到导航作用, 但它杂乱, 不能指明中心内容, 这就是为什么将 Google Adsense 放侧边栏经常会显示 "性病广告".
那怎么用 JavaScript 输出内容呢? 下面我们以本人侧边栏的 WP-RecentComments widget 为例说明一下:
一般输出方法:
<!-- recent comments -->
<?php if( function_exists('wp_recentcomments') ) : ?>
<div class="widget">
<h3>Recent Comments</h3>
<ul>
<?php wp_recentcomments('limit=10&length=17&post=false&smilies=true'); ?>
</ul>
</div>
<?php endif; ?>
JavaScript 输出方法:
<!-- recent comments -->
<?php
// 插件被激活才进行以下操作
if( function_exists('wp_recentcomments') ) {
// 逐行粘合 HTML 代码
$html = '<div class="widget">'
. '<h3>Recent Comments</h3>'
. '<ul>';
$html .= wp_recentcomments('limit=10&length=17&post=false&smilies=true', false);
$html .= '</ul>'
. '</div>';
// 转义处理
$html = str_replace('"', '\"', $html);
$html = str_replace("'", "\'", $html);
// 将 HTML 做成 JavaScript 输出代码
$out = '<script type="text/javascript">' . "\n"
. '//<![CDATA[' . "\n" // 符合 XHTML 的注释开始
. 'document.write("' . $html . '");' . "\n"
. '//]]>' . "\n" // 符合 XHTML 的注释结束
. '</script>';
// 输出页面代码
print($out);
}
?>
代码中已经有所注释, 其实很简单. 另外, 本人强烈建议将 Recent Comments, Archives, Meta 和广告都做成 JavaScript 输出.
一些朋友应该看出来了, 其实本人的博客 SEO 程度并不高, 但一些事是非做不可的, 比如部分内容用 JavaScript 输出, 加上 nofollow 等等.
这么做有没有后遗症? 是有的. 如果某人的浏览器不支持 JavaScript, 那么他将看不到这部分内容. 所以该法可用, 好用, 但请慎用.