Server-Side Rendering vs Client-Side Rendering – How does it impact SEO
It can be tempting for a web designer to include many cool elements on a website like fancy slideshows, or “lazy-loading”
some elements as the user scrolls down the page, but this client-side rendering is really impacting
SEO in a negative way. It used to be that Google, and other search engines, had no way to know which
elements on a website were visible or invisible. This understanding led to widespread exploitation
as keywords were stuffed into invisible (to human) elements, or into text having a color that matched
the background on which it was placed, thus driving SEO rankings up significantly. As more entrepreneurs
learned of such exploits, the number of SEO-specific firms grew significantly, as did the number
of SPAM messages we would receive about the subject. This all changed with the Google algorithm Panda.
One of the biggest problems with WordPress is that when you activate more than about 25-plugins,
performance takes a hit and it usually requires hiring an extra person to fill the roll of server
administrator who is skilled in increasing performance not on the application layer where the problem
resides, but on the server or even routing layer. As your new professional server admin (~$100,000/year)
now decides to add a load balancer ($20/month; Linode), increase the number of back-end PHP server
nodes (between $5 and $80/server/month; Linode), and breaks the database off onto its own server
(between $60 and $960/server/month; Linode), the real cost of using the open-source WordPress platform
as a multi-tool comes into view.
Panda was able to determine which elements of a page were visible, invisible, had text that matched
the color of the background, and more. Overnight, pages that once sat happily perched atop that otherwise
elusive first place on Google search rankings were now nowhere to be found in the entire Google index.
Panda was the start of a larger effort to weed out what Google considered “Blackhat” SEO tactics,
and it worked to a large extent. Thus, even as Google can now parse JavaScript and be able to render
a page as a user might see it, hidden elements are still considered suspect, and that includes your
fancy hero slideshow. There are two cases, in particular, that are considerably negative to SEO when
rendering the page client-side:
You deliver all HTML required to render the page, yet hide that content until it is ready to
display;
You “lazy-load” content via AJAX or similar scheme as the user scrolls down the page.
In the first case, you may have a homepage containing a hero slideshow. Each hero slide may have
its own H1 and H2 tags. However, as Google renders the page, only one of those slides is going to
show up and the additional H1 and H2 tags will become suspect. For the second case, Google is likely
not seeing that additional content at all as there is no evidence to suggest that it will follow
AJAX calls to gain the additional content. Google can’t grade what it can’t see, so it doesn’t matter
how relevant that extra content may be, it will likely not be included in the Google-rendered page.
So, what’s the best way to display content?
Render everything server-side, and don’t hide elements of any content, if you can help it.
Rather than a hero slideshow, have a static hero with a single H1 and H2 tag.
Move any content you once thought was slideshow-worthy to small sections under the hero.
Use H3, or higher, tags, as the title of these sections and provide a link to the relevant sub-page
of the website within that section.
For mobile, rather than collapse these sections into a slideshow, make the sections fall
one over the other so that all sections are displayed on mobile devices.
Finally, don’t wait for a user-generated event in order to render SEO-important elements
of the site. And while it is common to lazy-load images, images have been shown to have significant
SEO value as Google can parse both text and barcodes within images, in addition to being able to
determine what might be in the picture. Thus, rather than lazy-loading these images, optimize their
size and quality for delivery over the web.
With just these few tips you can turn your SEO score to the positive.