Ajax驱动的网站和谷歌搜索引擎优化

时间:2013-03-21 17:18:39

标签: ajax seo sitemap bots

我的问题是Google没有为我的网站编制索引,而且该网站启动并运行已有5周。

并不是它不会将我的内部网页编入索引,而是它不会将网站编入索引

在Google上输入“xyz”作为搜索关键字时,我的网站“ww.xyz.com”就完全被忽略了。

网站是ajax驱动的,这是我的配置:

我在服务器根文件夹中有一个robot.txt:

User-agent: *
Disallow: /admin/
Sitemap: http://www.xyz.com/sitemap.xml

我在服务器根文件夹中有一个sitemap.xml:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="..." xmlns:xsi="..." xsi:schemaLocation="...">
    <url><loc>http://www.xyz.com/</loc></url>
    <url><loc>http://www.xyz.com/index.php?action=link1</loc></url>
    <url><loc>http://www.xyz.com/index.php?action=link2</loc></url>
</urlset>

索引页面如下所示:

<!doctype html>
<html lang="fr">

    <head>

        <title>xyz</title>

        <meta http-equiv= "content-type"      content="text/html;charset=utf-8">
        <meta http-equiv= "Content-Language"  content="fr" >
        <meta name      = "fragment"          content="!">
        <meta name      = "google"            content="notranslate">
        <meta name      = "robots"            content="index,follow"> 
        <meta name      = "Description"       content="...">
        <meta name      = "Keywords"          content="...">

    </head>

    <body>

        <ul id="menu>
            <li id="mylink1">
                <a href="index.php?action=link1">Link 1</a>
            </li>

            <li id="mylink2">
                <a href="index.php?action=link2">Link 2</a>
            </li>
        </ul>

        <div id="content">
            <?php include('ajax.php');?>
        </div>

    </body>

</html>

“ajax.php”文件如下所示:

<script type="text/javascript">
    $('#link1').click(function(e) 
    {   
        e.preventDefault(); 

        $.ajax({
            type:"POST",
            url:"includes/page1.php,
            data:"action=link1",
            complete:function(data){$('#content').html(data.responseText);}
        }); 

    $('#link2').click(function(e) 
    {   
        e.preventDefault(); 

        $.ajax({
            type:"POST",
            url:"includes/page2.php,
            data:"action=link2",
            complete:function(data){$('#content').html(data.responseText);}
        }); 
    });
</script>

我们假设我们的目标是“includes / page1.php”,这里是page1.php内容:

<?php
if($_POST['action']=='link1')
{
    //show the content
    ...
}
?>

正如您所看到的,“index.php”上的href url没有用,因为它们被javascript中的“e.preventDefault();”停用。

这是“$('#link1')。click(function(e){..})”完成所有工作。

由于#content是通过使用“$('#content')动态传递的.html(data.responseText);”,我相信存在一个DOM问题,使得谷歌机器人无法抓取这个网站。

我阅读了这个谷歌帮助页面,其中描述了如何使ajax驱动的网站谷歌友好:

https://developers.google.com/webmasters/ajax-crawling/docs/getting-started

问题是他们似乎解释了如何使用谷歌机器人可以抓取的哈希来制作网址,但是我的网站不使用链接中的哈希值,所以我真的不知道应该做些什么来让我的网站被谷歌索引。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

您有两种选择:

  1. 重做您的网站以使用Google Crawlable Ajax Standard。但是that's a bad idea

  2. 使您的网站不需要JavaScript。这是一个好主意,因为它使您的网站可供搜索引擎和人类访问。请记住,并非每个人都启用了JavaScript。这称为Progressive Enhancement