Php 为Google检索快照HTML

Php 为Google检索快照HTML,php,ajax,wordpress,seo,Php,Ajax,Wordpress,Seo,因此,我使用AJAX调用一个服务器文件,该文件使用WordPress填充页面内容并返回。我可以使用它来填充字段。现在我感到困惑的是,我该如何创建快照,以及除了#之外,我该如何让谷歌知道我正在创建快照我为什么要这样做?逃逸的片段对我来说有点不清楚,希望我能得到更详细的解释。有没有人有类似于我所做的指导您完成此过程的教程 David谷歌的爬虫程序通常不会运行你的JavaScript。他们点击你的页面,刮去你的HTML,然后继续前进。这比加载页面及其所有资源、运行JavaScript、猜测加载完成的时

因此,我使用
AJAX
调用一个服务器文件,该文件使用WordPress填充
页面
内容并返回。我可以使用它来填充字段。现在我感到困惑的是,我该如何创建快照,以及除了
#之外,我该如何让谷歌知道我正在创建快照我为什么要这样做?逃逸的片段对我来说有点不清楚,希望我能得到更详细的解释。有没有人有类似于我所做的指导您完成此过程的教程


David

谷歌的爬虫程序通常不会运行你的JavaScript。他们点击你的页面,刮去你的HTML,然后继续前进。这比加载页面及其所有资源、运行JavaScript、猜测加载完成的时间,然后从DOM中删除数据要高效得多

如果您的站点使用AJAX在页面中填充内容,这对Google和其他人来说是个问题。你的页面实际上是空的。。。任何内容无效。。。处于HTML状态。它需要您的JavaScript来填充它。由于爬虫程序不运行您的JavaScript,因此您的页面对爬虫程序没有多大用处

如今,有很多网站融合了基于web的应用程序和内容驱动的网站。这些站点(像您的站点)需要运行客户端代码来获取内容。谷歌没有足够的资源在他们遇到的每一个网站上都这样做,但他们确实提供了一个选择。这就是问题所在

谷歌给了你一个机会,让你为他们抓取完整完成的DOM。他们把运行JavaScript的CPU和内存负担又推到了你身上。你可以通过使用
#的链接向谷歌表明这是受鼓励的。谷歌看到了这一点,知道他们可以请求相同的页面,但在
#之后转换所有内容(未发送到服务器)到
?\u转义\u片段\u=
并向服务器发出请求。此时,您的服务器应该在JavaScript运行之后生成完整完成的DOM的快照

好消息是,这些天来,你不必在适当的地方破解很多代码。我已经用PhantomJS编写了一个服务器来实现这一点。(我正试图获得打开源代码的许可,但这是一个法律问题,对不起!)基本上,PhantomJS是一个完整的webkit web浏览器,但它没有GUI运行。您可以运行所有JavaScript,然后在准备就绪时将HTML从页面中删除,并将该版本发送到Google。这不需要您做任何特殊的事情,只需要在快照服务器上使用
\u escaped\u fragment\u
修复点请求的路由

您可以在大约20行代码中完成此操作。PhantomJS甚至内置了一个迷你web服务器,但他们建议不要将其用于生产代码


我希望这有助于澄清一些困惑

布拉德:这确实有用。在创建代码以确保google运行并返回HTML快照方面,您是否有任何有用的资源?在这种情况下,你建议我做什么?让这个谷歌搜索引擎优化(google seo)兼容是否值得考虑,还是转向更传统的方式更好?我真的不想这么做,因为我知道我有足够的技能和知识来轻松创造这个。这只是一个理解的问题,我需要做什么,使这项工作和谷歌。我的具体情况有点不清楚。还要注意的是,我正在使用AJAX调用服务器,而不是使用alink来更改URL,我刚刚意识到这可能是一个问题。我的意思是。当他们单击事件开始时,它不是一个
a href
而是一个
div
,它包含一个页面代码以及我的JQuery函数通过
AJAX
拾取并发送的div。这就引出了另一个问题,我可能必须确保我使用的是
#带有链接,我将无法依赖
window.location.hash='#!键页面='+键页面+'让它与谷歌一起工作?谷歌不会运行并返回任何东西。运行页面并将DOM快照返回给Google是服务器的责任。如果您使用带有
#的链接
,这向谷歌表明他们应该使用
\u转义\u片段
。从这里开始,您只需要在服务器上设置路由,以查找
\u转义\u片段
来利用您的服务器。我给你的建议是使用最适合你的网站。如果AJAX是功能的核心,请使用shapshot服务器。如果你能以一种传统的方式修改你的页面,那将是最好的。是的,为了让谷歌了解这些链接,你需要链接到锚定片段,而不是简单地用JavaScript更改它们。你在服务器端有任何源文件或有用的文档吗
PHP
是我正在使用的。这就是我要做的,AJAX将函数归档到一个
PHP
文件中,该文件通过其函数
get\u page\u by\u title
检索
page,该函数存储在一个响应变量中,然后我使用
Json\u encode()
将其回显以供检索。在本节中,我将如何使用
\u转义\u片段
检索该数据并将其返回给Google?这是我想澄清的主要部分。就像我说的,如果你有任何东西是真正基于解释的,并且给出了很好的例子