Seo Parity Audit

Find out how to analyse different versions of your website and correct any Seo bugs

Comparative Seo Audit

Through this tutorial, we are going to look at the “Seo Parity Audit” using Screaming Frog, an analysis that is many times underestimated but can uncover numerous critical issues that hinder proper organic indexing on the Search Engine.

Through this analysis you will be able to assess whether there are differences in which website is served in different scenarios during the Crawler’s raids.

The most interesting cases for performing the “Seo Parity Audit” are as follows:

  • Mobile Site vs Desktop Site.
  • Javascript vs. raw HTML.
  • Live site Vs Staging site (critical during migration).

With the use of the Seo Spider you will be able to isolate any On-page SEO elements that vary between versions and that could impact crawling and consequently the indexing phase and Ranking assigned by the Search Engine.

Common elements to consider in this process include:

  • Page structuring;
  • HTTP response code;
  • Page title;
  • Headings;
  • Canonicals;
  • Hreflangs;
  • Structured Data;
  • etc.

Javascript Parity Audit

The first step in performing a Parity Audit on a Web site with JS resources is to configure the “Javascript Rendering” scanning mode.

The first step in performing a Parity Audit on a Web site with JS resources is to configure the “Javascript Rendering” scanning mode.

Config > Spider > JS Rendering

Through enabling Javascript scanning, the Seo Spider scans and serves both static and rendered HTML after Javascript execution. In the Configuration Tab in addition to choosing “Javascript rendering” I recommend that you set as “Viewport” the option “Googlebot Mobile Smartphone” given the orientation of the Search Engine towards “Mobile First Indexing“.

Once you have defined the crawl mode you will need to enable the resources to be examined by enabling them from the Spider configuration menu > Crawl.
Remember that if some resources are in a subdomain or in a different “root domain” you must also select the option “Check external links” otherwise the Seo Spider will not go to use those elements in rendering.

With that completed as well, all you have to do is start the crawl; the Seo Spider will scan the website and offer you page rendering using the “headless Chrome” mode.

When the scan is finished, you can consult the 12 filters available to you on the “Javascript” tab and begin to evaluate whether there are any differences between raw and rendered HTML. Using the filters you will be able to find out which pages have Javascript content, whether there are differences in meta tags, canonicals or other On-page elements such as titles, headings or others that are updated only after Javascript is executed.

In a simple and intuitive way you can visualize pages with JS content and especially which of these elements are present only after the content is rendered.

Once you find differences you will simply consult the bottom window of Screaming Frog and select the “View Source” tab, choose “Visible content” as the filter, and preview the two versions by enabling the “view differences” option.

In this context, the “Parity Audit” is very useful to find out if there are any links present only in the rendered HTLM that might never be discovered by the Search Engine Bot and therefore not indexable and followable.

To find out which links are present only after the JS runs click on the “Outlinks” tab and set “Rendered HTML” links as a filter. For more in-depth analysis you can choose to export them via the “Bulk Export” menu item.

Bulk export > Javascript > Contains Javascript Links

In addition to link analysis, you can evaluate a whole range of elements that vary after the JS script is executed according to your project needs.

Javascript Tab Filters

The filters provided by Screaming Frog are an indispensable support to better manage your Parity Audit:

Contains JavaScript Links: the filter displays pages that contain hyperlinks that are discovered in the rendered HTML only after JavaScript is executed. These hyperlinks are not in raw HTML. It is a good idea to consider including important server-side links in static HTML.
Contains JavaScript Content: shows all pages that contain body text only in the HTML rendered after JavaScript is executed. Google is able to render pages and see only client-side content, consider including important server-side content in the raw HTML.
Noindex Only in Original HTML: all pages that contain a noindex tag in static HTML but not in rendered HTML. When Googlebot encounters a noindex tag, it skips rendering and executing JavaScript. Since Googlebot skips executing JavaScript, using JavaScript to remove the ‘noindex’ in the rendered HTML will not work.
Nofollow Only in Original HTML: identifies pages that contain a nofollow attribute in static HTML, and not in rendered HTML. This means that any hyperlinks in the raw HTML before JavaScript is executed will not be followed. Remove ‘nofollow’ if links should be followed, scanned, and indexed.
Canonical Only in Rendered HTML: returns all pages that contain a canonical only tag in the rendered HTML after JavaScript execution. I recommend that you include a canonical link in the static HTML (or HTTP header) to ensure that Google can see it and avoid relying only on the canonical in the rendered HTML.
– Canonical Mismatch:identifies pages that contain a different canonical link in static HTML than in rendered HTML after JavaScript execution. This condition can cause mixed signals and can lead to undesirable behavior by the Search Engine.
– Page Title Only in Rendered HTML: returns pages that contain a page title only in the rendered HTML after JavaScript is executed. This means that a Search Engine must render the page to see them. Consider including the important server-side content in the raw HTML.
Page Title Updated by JavaScript: identifies pages that have page titles modified by JavaScript. This means that the page title in static HTML is different from the page title in rendered HTML. Consider including important server-side content in static HTML.
Meta Description Only in Rendered HTML: returns pages that contain a meta description only in the rendered HTML after JavaScript execution.
Meta Description Updated by JavaScript: all pages that have meta descriptions that are modified by JavaScript. This means that the meta description in static HTML is different from the meta description in rendered HTML.
H1 Only in Rendered HTML: pages that contain an h1 only in the rendered HTML after JavaScript execution. This means that a Search Engine must render the page to consider the heading. Consider including server-side headings in static HTML.
– H1 Updated by JavaScript
: pages that have h1s modified by JavaScript. This means that the h1 in the raw HTML is different from the h1 in the rendered HTML.

Mobile vs. Desktop

The Search Engine with its “Mobile First Indexing” orientation has unequivocally defined the importance of “mobile” in terms of organic positioning, and the Parity Audit between the two versions Mobile vs. Desktop is an essential activity in the optimization phase of a website.

To perform the Parity Audit you will need to perform three separate actions:

  1. Scanning the website with the user agent “GoogleBot for Smartphone”.
  2. Crawl with user agent “GoogleBot” (or other Bot for desktop versions).
  3. Use the “Compare” crawl mode to compare the two previous crawls.

Remember that for this scenario, Screaming Frog’s data storage mode must be set to ” Storage Mode.”

User Agent GoogleBot
for smartphone

Scan your website using the “Googlebot for smartphones” user agent. If the website includes JS content or dependencies you must enable “Javascript Rendering Mode” as the scanning mode.

User Agent GoogleBot

Go back into configurations and switch the User-Agent to Googlebot or other desktop user-agent and start your second scan with Screaming Frog.

Mobile vs. Desktop Comparison

Having obtained the two separate scans all you have to do is compare them using the new “Compare” mode.

Now click on the gear icon at the top of the screen or on “Configuration > Compare.” This way you will be able to configure the Change Detection feature, which allows you to identify whether there are differences on specific elements such as page titles, meta descriptions, headers, number of words, internal links, structured data, and more.

To include all analysis items, you will simply need to enable the “Select All” option found at the top of the configuration window.

If the website is responsive and serves different content between mobile and desktop but keeps the same URLs you can proceed with comparison crawling otherwise you will also need to set up URL Mapping. In the same window as before click on the corresponding tab and unify the subdomains through the RegEX syntax.

Now all you have to do is click “ok” and “Compare” to begin the analysis process.

Read here for more information about Screaming Frog’s URL Mapping and Change Detection.

When the analysis is complete all you have to do is view the data through the “Change Detection tabs” found in the sidebar of the Seo Spider.

Ideally the content should be identical but there may be some inconsistencies between mobile and desktop and you can discover them from the main screen through the 4 new filters introduced with version 16.3 of Screaming Frog.

  1. Added: identifies all URLs that are present in both scans but have modified elements that are included in some “Current” crawl filter. For example, a URL had a “meta_title” in the previous version while in the current version this element is missing. In this case this indication will be present in the “Missing” filter of the “Meta Title” element.
  2. New: includes all new URLs that were not present in the previous scan but are
    included in the current scan.
  3. Removed: URLs present in both scans but with elements present in the filter of the previous scan, but not in the filter of the current scan.
    Taking the “Meta Title” example above, this filter identifies all URLs that do not
    presented the title of the page and were included in the “Missing” filter, but in the current scan
    are no longer present in the filter because they are optimized.
  4. Missing: URLs present in the previous crawl but not detected in the “Current” crawl

Scroll down to the Change Detection Tab and you have a very useful “Summary” that allows you to have an immediate eye on all the changes detected.

By clicking on the filters you can discover the Urls affected by the different changes that have occurred.
Below is an example of how you change the “Page title” of pages.

Here is an example of how the scan depth changes between the two versions.

With these controls you will be able to avoid substantial differences between versions that could inhibit or make website ranking problematic.

Staging vs. Live Sites

The last but not least comparison includes the analysis of staged versus Live sites. This scenario is very sensitive and should always be taken into great consideration during migration phases.

The Parity Audit process follows the same steps as the Mobile vs. Desktop comparison always including the “URL Mapping” step to equalize the URLs of the published version and the one still in production.

Seo Spider Tab