我需要一些帮助来更好地理解带有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是SEO友好的“独自”并且无需javascript工作)
然而,通过使用这样的ajax,使用动态的php页面,它仍然是SEO友好的吗? 我知道ajax很难被抓取。使用ajax内容获得优质(不是最好的,正确的)SEO的最佳方法是什么?
关于链接的结构,我不完全了解google bot会抓取什么。
由于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
当然我只想让google抓住hashbang url ...
(编辑:如果我在右键单击的新标签中打开链接,它会加载single.php(我不想要)。这似乎是一种正常的行为,但是...我想阻止它)
对不起我的英语,我是法国人。
答案 0 :(得分:1)
从SEO角度来看,动态加载的内容通常很难实现。你的描述有点令人困惑,但我想我已经知道你在寻找什么。
首先,Google主要通过两种方式找到您网站上的网页:
rel="nofollow"
无论如何,除非您明确告诉Google website.com/single.php?blog_no=12
存在,否则很难找到它。说实话,我不确定Google会如何处理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
。