SEO和ajax加载的内容链接

时间:2013-05-19 22:59:38

标签: php ajax dynamic 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是SEO友好的“独自”并且无需javascript工作)

然而,通过使用这样的ajax,使用动态的php页面,它仍然是SEO友好的吗? 我知道ajax很难被抓取。使用ajax内容获得优质(不是最好的,正确的)SEO的最佳方法是什么?

关于链接的结构,我不完全了解google bot会抓取什么。 由于href="12",所以动态href="/single.php?blog_no=12"。 在网络浏览器中:

  • website.com/single.php?blog_no=12website.com/12仅加载我的single.php页面
  • website.com/#!12使用从website.com/single.php?blog_no=12
  • 加载的容器加载我的index.php页面

当然我只想让google抓住hashbang url ...

(编辑:如果我在右键单击的新标签中打开链接,它会加载single.php(我不想要)。这似乎是一种正常的行为,但是...我想阻止它)

对不起我的英语,我是法国人。

1 个答案:

答案 0 :(得分:1)

从SEO角度来看,动态加载的内容通常很难实现。你的描述有点令人困惑,但我想我已经知道你在寻找什么。

首先,Google主要通过两种方式找到您网站上的网页:

  • 站点地图(Google喜欢XML站点地图) - 一个告诉Google您网站上每个页面都要编入索引的文件
  • 链接 - 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