React JS - Google 爬虫无法抓取页面
React JS - Google crawlers not able to crawl the pages
为了 SEO 目的,我可以使内置 React JS 的 Web 应用程序为 Google 爬虫工作的最佳方法是什么。我希望整个页面都能抓取。
基本上问题是因为它是在客户端呈现的,爬虫除了根目录之外看不到任何东西div。
应用程序托管在 S3 Bucket 上并作为使用云端的服务器。我已阅读有关 Lambda@Edge 的信息,但不确定是否可行。
求助!
如何解决这个问题在很大程度上取决于您的要求和细节。如果您的页面不经常更改,您可以自动创建它的静态版本并将其托管在 S3 上。
Lambda@Edge 可以检查用户代理,如果它检测到机器人,则将请求重定向到页面的静态版本。其他请求和以前一样处理。
创建此类静态页面的一个选项是使用 Puppeteer。您可以将 Puppeteer 与 AWS Lambda 结合使用。因此,您可以构建一个获取 URL 的 Lambda 函数,然后将 HTML 放入 S3 存储桶中。然后,您编写一个 Step Function,为您的所有页面执行此操作,每天通过 EventBridge 等触发。
另一种选择是在部署新版本的项目后调用 Step Function 等。
有很多选项可以解决这个问题。但是所有这些选项都可能涉及某种爬虫程序,该爬虫程序会将页面“呈现”为静态 HTML 文件。
为了 SEO 目的,我可以使内置 React JS 的 Web 应用程序为 Google 爬虫工作的最佳方法是什么。我希望整个页面都能抓取。
基本上问题是因为它是在客户端呈现的,爬虫除了根目录之外看不到任何东西div。
应用程序托管在 S3 Bucket 上并作为使用云端的服务器。我已阅读有关 Lambda@Edge 的信息,但不确定是否可行。
求助!
如何解决这个问题在很大程度上取决于您的要求和细节。如果您的页面不经常更改,您可以自动创建它的静态版本并将其托管在 S3 上。
Lambda@Edge 可以检查用户代理,如果它检测到机器人,则将请求重定向到页面的静态版本。其他请求和以前一样处理。
创建此类静态页面的一个选项是使用 Puppeteer。您可以将 Puppeteer 与 AWS Lambda 结合使用。因此,您可以构建一个获取 URL 的 Lambda 函数,然后将 HTML 放入 S3 存储桶中。然后,您编写一个 Step Function,为您的所有页面执行此操作,每天通过 EventBridge 等触发。
另一种选择是在部署新版本的项目后调用 Step Function 等。
有很多选项可以解决这个问题。但是所有这些选项都可能涉及某种爬虫程序,该爬虫程序会将页面“呈现”为静态 HTML 文件。