The author’s views are entirely their own (excluding the unlikely event of hypnosis) and may not always reflect the views of Moz.
Let’s dive in.
Delayed rendering & indexing
Incomplete indexing of content
Missing or incomplete file downloads
“But Google says they can index rendered content”
“Googlebot and its Web Rendering Service (WRS) component continuously analyze and identify resources that don’t contribute to essential page content and may not fetch such resources.”
Would you like to leave it up to Google’s rendering engine to decide your “essential page content”? No, thank you.
In your Google Search Console index coverage reports, these pages are likely getting stuck in either the “Discovered — currently not indexed” or “Crawled — currently not indexed” buckets.
Here are the tools you’ll need to follow along:
Step 1: Mimic how searchbots crawl your website using Screaming Frog
In Screaming Frog, navigate to Configuration > Crawl Config and mirror my setup:
Finally, go to User-Agent and select “Googlebot (Smartphone).”
You’re ready to start crawling.
Navigate to Mode > Spider, enter your website’s home page URL and click “Start.”
Once your crawl is complete, navigate to Crawl Analysis > Start. Screaming Frog will analyze the URLs it was able to crawl against the URLs in your XML sitemap. We’re interested in seeing if our crawl couldn’t pick up URLs we’d like search engines to index.
If Screaming Frog could fully crawl your indexable content with this configuration, that’s great. But you’re not out of the woods yet. Internal linking problems or not, you need to determine which SEO-critical elements are absent from your raw HTML.
Step 2: Compare your initial, or raw, HTML against your rendered HTML
Compare your HTML word count vs. your rendered word count using Screaming Frog
Place Screaming Frog in “List” mode and enter a few important URLs across your website’s essential page templates.
Audit key pages using the View Rendered Source extension in Chrome
This is one of my favorite and most-used SEO Chrome extensions. You can quickly compare a page’s raw HTML versus its rendered HTML. I use CMD + F (CTRL + F for PCs) to search for essential SEO elements to confirm if they’re present in the raw HTML.
Here are the elements that I always check to see if they’re present in the raw HTML:
Page titles & meta descriptions
Step 3: Conduct live testing to confirm your findings
I’ll walk you through two quick methods below:
Using Google Search Console’s URL Inspection tool
Spot-checking Google’s index with the “site:” search operator.
Both are handy for gathering screenshots to strengthen your audit findings.
Test using Google Search Console’s URL Inspection tool
If you can’t access the site’s Google Search Console profile, use Google’s Rich Results Test tool.
Conduct spot-checks in Google using the “site:” search operator
site:www.example.com/page-url/ “String of JS-rendered text from the page”
In the example below, I wanted to check if an e-commerce site’s product reviews were getting indexed. Turns out, Google isn’t picking up this rich user-generated content.
The feasibility of these solutions depends on your website’s tech stack. Hence, laying out a good/better/best approach is important.
Ideal solution: Make critical content available in the raw HTML
As SEOs, we can sleep soundly at night knowing that our website’s internal links, page headings, body copy, and more are available to Google in our raw HTML. Searchbots can crawl and index our critical content efficiently without risking errors or delays associated with Google’s rendering service.
Ensure you highlight to developers the critical SEO elements currently absent from the raw HTML and explore the feasibility of making those updates.
Next best solution: Implement a server-side rendering (SSR) solution
Before we go into this solution, let’s understand server-side rendering (SSR) vs. client-side rendering (CSR):
Server-Side Rendering: The initial page load delivers all content to the browser via HTML.
I regularly use this analogy from Onely to explain the difference: “CSR is like a cooking recipe. Google gets the cake recipe that needs to be baked and collected. SSR – Google gets the cake ready to consume. No need for baking.”
So, the essential question for our devs is, “Could we lean on SSR instead of CSR to deliver content during the initial page load?”
Last-ditch solution: Implement dynamic rendering
Dynamic rendering is a hybrid solution where your users experience your website’s client-side rendering while search engine bots are served a separate, static HTML version.
Getting buy-in is the most critical step
Wouldn’t it be great if developers dropped everything whenever you came forward with an SEO issue to fix? Unfortunately, the world doesn’t revolve around SEO priorities. But you can rally resources to your side if you present a compelling case.
Connect SEO to organizational priorities
Forecast the performance impact: Implementing your fixes comes with a cost, so mitigate those concerns by showing business gains.
Make it easy for developers to implement your recommendations
While SEOs and developers benefit from working together, you must pull your weight. Do the upfront legwork so it’s easy for your engineering team to take your recommendations to the finish line.
Present solutions instead of pointing out issues. You’ll encounter less friction if you come to the table ready to converse rather than deliver a mandate.
Provide clear technical requirements, screenshots, and links to relevant documentation. If possible, refer to examples from similar websites or competitors with similar tech stacks.
Final thoughts: Make it easy for Google to rank you