jQuery+ AJAX +帮助隐藏此内容



首先:我希望下面的问题不是太笼统。

我有一个小问题,我想不出一个好的解决方案,我希望这里有人能帮助我。

这是我的情况:

我使用AJAX来动态加载页面。我的主要站点是index.php,一旦我点击导航链接,AJAX脚本就会用新内容替换index.php的内容,并向URL添加一个散列标签。例如:

我点击about.php的链接,脚本将#about.php添加到URL中,并将about.php的内容加载到index.php中。但是,有一个小问题,我想解决:

假设我们从直接导航到index.php#about.php开始-这意味着index.php的内容在2,3秒内可见,然后被about.php的内容所取代。我想要避免

我想出了一些主意,但它们都不是很好:

1)隐藏内容->然后在AJAX完成时进行AJAX调用->再次显示内容

缺点:内容在一秒钟内仍然可见

2)用CSS隐藏内容并在AJAX调用后显示

缺点:这将工作完美,但用户没有Javascript(和GoogleBot)将只看到一个空页面。

3)使用一个空的index.php,并将其内容放在main.php中,并在页面加载时通过AJAX自动加载main.php

缺点:也可以工作,但是,没有JS和GoogleBot的用户在访问index.php时只会看到一个空页面


这就是我所能想到的,所有三个解决方案都不好,因为我担心当我有一个空的index.php时,SEO值会急剧下降(我可以接受没有JS的用户什么也看不见)。

注。我在某个地方读到,当你有display:none在外部css文件,并阻止它与robots.txt, GoogleBot不知道的区别,但我担心这可能不是情况?有人有经验吗?

编辑:我想我的整个问题归结为:

你认为用CSS隐藏index.php的全部内容(然后用JS显示它),将是一个巨大的不去搜索引擎优化,或者它会与GoogleBot(毕竟内容仍然在源代码中,但对用户不可见)?

如果您使用查询字符串而不是散列,则可以让index.php在服务器级加载正确的内容。

像history.js这样的插件可以帮助你将url推送到浏览器,这样你仍然可以获得ajax浏览。

哇,从哪里开始…首先,页面"blink"我将它称为2-3秒,但它完全取决于用户的计算机,它执行javascript的速度有多快,以及AJAX调用返回的速度有多快,所以你可能有更大的延迟。

第二,我不会担心Googlebot看到任何ajax内容。虽然googlebot确实试图摆弄一些javascript,但它不会像普通浏览器那样进行ajax调用。如果Googlebot看到你的Ajax加载数据,我会非常惊讶。

Googlebot做了一个了不起的工作,弄清楚什么内容是通过html/css传递给用户,当他们访问你的页面。它还可以确定是否显示了某些内容,并且可以很好地确定该内容是填充物还是真正重要的内容。

你担心没有javascript的人会看到,当整个导航你的网站是基于javascript。这似乎无法调和。

你有可用的PHP。我的建议是放弃AJAX,用PHP来完成。在PHP中,您可以像在AJAX中一样轻松地编写相同的行为。

SEO指出:如果你正在寻找可靠的SEO结果,我建议使静态(非javascript版本)页面尽可能SEO友好。我喜欢"摘唾手可得的果实",比如确保页面只有一个H1,并且它有最重要的关键字。seomoz是我找到的搜索引擎优化信息最好的网站之一

最新更新