我正在尝试编写一个seo友好的ajax组合。我的目标是为用户提供javascript效果,为没有js的机器人/用户提供普通的html。
文件:
这个想法:
用户访问index.php并点击“关于我” - >加载动画出现 - > aboutme.php加载了ajax - > history.pushstate将url重写为aboutme.php。
- >当用户在fb / twitter / g +上共享当前网站网址时,机器人将获得正确的标题,正文等,因为它是没有任何javascript的普通html页面。
但我的问题是:如果其他用户打开该页面,他们会直接看到内容。但我想首先向他们展示加载动画,直到数据加载了ajax(类似于点击链接)。
我怎样才能实现这样的方法?非常感谢你!
答案 0 :(得分:0)
最好的方法是创建一个javascript文件。将链接标记写入“head”部分。这将使javascript文件在内容之前下载。 Javascript显示动画,但同时浏览器将下载已在后台播放的内容。在“文档就绪”事件中,停止动画。
这将让机器人直接访问内容。因为javascript对他们不起作用。
答案 1 :(得分:0)
要使您的ajax内容可抓取,请参阅https://developers.google.com/webmasters/ajax-crawling/,Bing也支持此功能。或者使用HTML5 pushState,请参阅http://www.seomoz.org/blog/create-crawlable-link-friendly-ajax-websites-using-pushstate,https://github.com/blog/760-the-tree-slider等。
答案 2 :(得分:0)
我一直认为这比其价值(通常)更省力,但要回答你的问题:
index.php,aboutme.php,contect.php应该提供完整的HTML。
某些链接应该有js事件处理程序拦截点击,而不是加载aboutme.php
,他们在后台加载aboutme-content-only.php
。然后更新dom并推送状态等......
这样,对于那些第一次访问的用户,以及浏览器不支持推送状态或javascript的用户,网站很容易降级。
答案 3 :(得分:-1)
我认为这根本不是问题,像往常一样保持链接的href,然后使用JavaScript或jQuery更改单击链接的默认行为以使用ajax加载链接的内容。