我需要一些帮助来更好地理解SEO与ajax加载的内容。
上下文:
我有一个single.php,其中内容是动态生成的(php和xml数据库),为每个单一的帖子。
我通过ajax在index.php页面中加载了这个single.php的容器。下面是工作脚本:
$.ajaxSetup({cache:false});
$(".phplink").click(function(){
var post_link = $(this).attr("href");
window.location.hash = "!"+ post_link ;
$("#ajaxify_container").html("loading...");
$("#ajaxify_container").load('single.php?blog_no='+post_link+' #container');
return false;
});
$(window).hashchange( function(){
var hash = window.location.hash;
var hash = location.hash.replace("#!","");
if(hash != '') {
var post_link = hash;
$("#ajaxify_container").html("loading...");
$("#ajaxify_container").load('single.php?blog_no='+post_link+' #container');
}
else {
$.get(hash, function (data) {
$("#ajaxify_container").html('');
});
}
});
$(window).hashchange();
index.php中的链接示例(当我点击url website.com/#!12中的链接时):
<a class="phplink" href="12">Post 12</a>
在我的。htaccess文件中,我添加了这几行来重写url:
Options +FollowSymLinks
RewriteEngine on
RewriteRule /([0-9]+)$ /single.php?blog_no=$1
一切正常…(顺便说一下,我的single.php是SEO友好的"单独"和工作没有javascript)
然而,通过使用ajax这样,与动态php页面,它仍然是SEO友好?我知道ajax很难被抓取。什么是最好的方式有一个好的(不是最好的,正确的)SEO与ajax内容?
关于链接的结构,我不完全理解google bot会抓取什么。因为href="12"
,所以动态的href="/single.php?blog_no=12"
。在web浏览器中:
-
website.com/single.php?blog_no=12
和website.com/12
只加载我的一个。php页面 -
website.com/#!12
加载我的index.php页面的容器从website.com/single.php?blog_no=12
当然我只希望google抓取hashbang url…
(编辑:如果我在一个新的选项卡中打开链接,右键单击,它会加载single.php(我不想要)。这似乎是正常的行为,但是……我想阻止它)
对不起,我是法国人。
从SEO的角度来看,动态加载的内容通常很难正确获取。你的描述让我有点困惑,但我想我知道你们在找什么。
首先,谷歌主要通过两种方式找到你网站上的页面:
- 一个站点地图(谷歌喜欢XML站点地图)-一个文件,告诉谷歌在你的网站上的每个页面索引
- 链接-谷歌将遵循它试图索引的页面上的任何内部链接,除非它们被标记为
rel="nofollow"
- 也有链接和其他一些东西,但为了这个解释的目的…
website.com/single.php?blog_no=12
的存在,否则它将很难找到它。说实话,我不确定谷歌会如何处理像href="12"
这样的东西,它可能会试图跟随website.com/12
的链接,这可能会影响你的排名,如果没有的话。因此,最后,您可能希望将rel="nofollow"
添加到AJAX触发器链接中。
处理AJAX和动态加载内容的一个好方法是确保回退到位,例如,如果你有像href="single/12
这样的设置来加载一些内容与AJAX,你也应该有一个不使用JS/AJAX的回退页面。这确保了搜索引擎机器人和没有Javascript的用户都可以看到这些内容,否则这些内容在其他地方是看不到的。
最后一个小提示,如果你测试你的链接像http://www.dnsqueries.com/en/googlebot_simulator.php和他们出现错误,或空白页面(搜索引擎机器人不使用javascript),你应该不关注这些链接,或设置回退页面
别介意……这是最后一件事。您应该进一步对htaccess进行重写,以使您的url完全清除查询字符串。例如,对于SEO和用户来说,website.com/single/blog/12
都比website.com/single.php?blog_no=12
好。