SEO和ajax加载的内容链接
我需要一些帮助,以更好地理解阿贾克斯加载内容的SEO。
这里的背景:
我有一个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是搜索引擎优化友好的“独自”和工作没有JavaScript)
然而,通过使用这样的Ajax,动态PHP页面,它仍然是SEO友好? 我知道阿贾克斯很难被抓取。 使用ajax内容获得好的(不是最好的,正确的)SEO的最佳方式是什么?
关于链接的结构,我不完全了解谷歌机器人会抓取什么。 因为href="12"
,所以动态href="/single.php?blog_no=12"
。 在网络浏览器中:
website.com/single.php?blog_no=12
和website.com/12
只加载我的single.php页面 website.com/#!12
使用从website.com/single.php?blog_no=12
加载的容器加载我的index.php页面 当然,我只希望谷歌抓取hashbang url ...
(编辑:如果我打开链接在一个新的选项卡右键单击,它加载single.php(我不想),这似乎是一个正常的行为,但...我想要阻止它)
对不起,我的英文,我是法文。
从SEO的角度来看,动态加载的内容通常很难获得。 您的描述有点令人困惑,但我想我有一个你正在寻找的东西的想法。
首先,Google主要通过两种方式查找您网站上的网页:
rel="nofollow"
无论如何,除非您明确告诉Google存在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),你应该nofollow这些链接或设置回退页面
没关系......这是最后一件事。 你应该进一步与你的htaccess重写,使你的URL完全清理查询字符串。 例如,对于SEO和用户, website.com/single/blog/12
优于website.com/single.php?blog_no=12
。