For performance reasons: have different pages for search engines and users

For performance reasons: have different pages for search engines and users - Google Search Console is a free application that allows you to identify, troubleshoot, and resolve any issues that Google may encounter as it crawls and attempts to index your website in search results. If you’re not the most technical person in the world, some of the errors you’re likely to encounter there may leave you scratching your head. We wanted to make it a bit easier, so we put together this handy set of tips about seo, google-search, googlebot, performance to guide you along the way. Read the discuss below, we share some tips to fix the issue about For performance reasons: have different pages for search engines and users.Problem :


I have a SEO question for single page applications.



We're working on a SPA (not yet public) that displays tables of numeric data to users.
The data volume is large, number aggregations are costly and consistent state must be kept under a high number of concurrent users. All of these cause high strain on the servers.



Since this is an AJAX application, for crawlers we serve HTML content following recommended practices (like e.g. ?_escaped_fragment_=...).



The application is optimized for usage patterns that a human user would generate, but a crawler indexing the entire site would cause a spike.



The application's architecture allows us to scale both vertically and horizontally but that means more money spent on hardware. A cheaper solution would be to serve the search engines the HTML content with random data in it, instead of the real numbers that are costly to generate.



Everything will be the same as what a user would see in the browser but with random numbers. Search engine wouldn't make sense of the numbers anyway so there is no point in loading the servers to build them.



As I said, my question is SEO related. We're not trying to do SEO optimizations or tricking search engines, we just want to lower the load on the server. But we're worried this would impact the ranking of the application? So would it?


Solution :

In my opinion, you shouldn’t serve different content for users and search engines; it’s called cloaking and as you most probably know, it’s a bad SEO practice. And even if you don’t want to manipulate search engines results, I think Google bots couldn’t make any difference; as you know, they’re only bots.



When you say search engines wouldn’t care about fake data in the tables, you’re actually wrong. The search engines bots want the same data than users. Indeed, they need the same data to permit to users to find again a result in the SERPs.



Actually, I think you found the solution even if this is expensive. Except the fact to optimize your architecture site, I don’t see how you could optimize the performance of the site (and thus SEO).



Since this is an AJAX application anyway, write the data into the pages separately from your escaped fragments. Users would generate two AJAX requests:




  1. GET /fragment?id=12345 that would contain the text and HTML for the screen with a placeholder for the data

  2. GET /data?id=12345 that would be the actual data to write into the screen (maybe the data would be in JSON format).



You could the have a robots.txt like:



Disallow: /data


So that users could get the data, but search engine bots wouldn't access it. Search engine bots would still be able to get the text and other information from the /fragment URL using the normal ?_escaped_fragment_= crawling method.


If the issue about seo, google-search, googlebot, performance is resolved, there’s a good chance that your content will get indexed and you’ll start to show up in Google search results. This means a greater chance to drive organic search traffic to your site.

Comments

Popular posts from this blog

Years after news site changed name, Google is appending the old name to search titles and news stories

Load Wikipedia sourced biographies via Ajax or render it with the rest of the page as part of the initial request?

SEO: change site address from http://www. to https://