2008-10-22 116 views
1

我有一个页面通过AJAX动态加载一段内容。我担心这意味着内容不会被搜索引擎找到。如何让搜索引擎找到我的AJAX内容

为了向您展示我的意思,该网站为http://www.gold09.net,动态内容为/speakers.php - 通常没有人会访问第二个链接,它只是加载到第一页。

我知道我可以通过使用sitemap.xml来告诉抓取工具读取speakers.php,但是我会得到指向显示在搜索结果中的speakers.php的链接。

我想最终的解决方案是,如果有人请求/speakers.php它将它们重定向到主页面,而它允许抓取工具读取数据。

有什么建议吗?

+0

我不知道(从未测试过),但是当您使用sitemap.xml将抓取工具引导到您的页面并使用robots.txt来阻止它显示时会发生什么? – 2008-10-22 06:57:51

+0

robots.txt不会阻止它显示:它会阻止搜索引擎抓取它。 – nickf 2008-10-22 09:05:51

回答

0

更新:我做了什么是这样的:

创建了另一个页面,名为viewSpeakers.php,其中只包含speakers.php文件,并在其周围标准页眉和页脚。这意味着如果有人前往该网站,那么他们会看到一个模糊的页面。该页面的唯一链接位于index.php页面(通过javascript立即删除)和我的sitemap.xml中。

这样做的效果是搜索引擎抓取工具和禁用javascript的用户可以查看有关扬声器信息的链接。启用了JavaScript的人可以获得在同一索引页面上动态加载的AJAXy数据的好处,而且他们从不需要知道viewSpeakers.php页面。

我可以预见的唯一缺点是有人可能通过搜索列表来到viewSpeakers.php页面,然后无法找到从index.php返回到该页面的链接。没有太多的问题...

这是作为回答添加的,而不是编辑问题,因为这是解决此问题的一种方法。我仍然有兴趣知道是否有比这更好的方法。

3

使指向您想要索引的页面的链接对内容具有真实的HREF,但使用javascript来拦截事件并“返回false”;最后。

+0

唯一的问题是链接也是通过JavaScript动态添加的。 – nickf 2008-10-22 09:14:43

0

由于nelson laquet说你需要提供return:false;你有你的每个页面上的锚而不省略它们的href值[因为这是为屏幕阅读器像谷歌真正重要]

还会如果你使用重写方法会掩盖这很酷:
在你的服务器端代码的,只有你的JavaScript代码提供了使用参数,如例如地址是

index.php?ajaxpageneeded=page1 

...

<body onload="ajaxloaderscript(<?=page1?>);" > 
相关问题