⬆️ Winners in nomination Search Innovation
Google Partner

SEO for a SPA on Angular for the USA

Reviewer: Oleg Gavrilyuk
Head of Optimizers
There are no ratings yet
SEO for a SPA on Angular for the USA


Aquatica is a company manufacturing bathtubs, washbasins, faucets, and shower systems in the premium segment. The primary market is the U.S., although the online store is presented on many markets and different domains across Europe.

Our goal

Improvement of site ranking and increase in targeted organic traffic in priority directions of the online store:

  • Bathroom sinks
  • Outdoor hot tubs
  • Freestanding Tubs

Source data and project features

  • Website: Aquatica online store (products of other brands are not presented on the website)
  • Region: USA (geo with the highest competition in this niche)
  • Search engine: Google
  • Language: English
  • Website platform: SPA-website (JS-framework — AngularJS)

Target audience

Users aged 25 years and older, with an above-average income, working in banking and IT, who are interested in trends and technology (thus they are attracted to the features and materials offered by the company).

What is the SPA website?

SPA-website (Single Page Application) is a website where content is dynamically generated without reloading the pages. Such websites are written in JavaScript, in particular, the Aquatica store is written in AngularJS.

It is important to know that SEO promotion of SPA- and ordinary websites are fundamentally different things since the approaches to internal optimization are radically different.

Google, like any other search engine, is terrible at processing JavaScript. The content a user can see in their browser is very different from what Google can see.

In this screenshot you can see which search engines can process JS:

But in practice, the situation is much worse even for Google, as it is using outdated rendering tools based on Chrome 41.

How can you “befriend” SPA with SEO

Since the client’s website is written entirely in JavaScript, this means that Google cannot see the content (menus, products, texts, re-linking) without additional actions.

For Google to properly index the web pages, the server should not send it JS code of the page, but rather an HTML copy of the page that has already been processed.

What the JS code of the page looks like:

<html lang=”en“><head>   <title>Luxury Outdoor Hot Tubs</title>   <meta name=”fragment content=”!“></head><body>  

 <script type=”text/javascript 


Как выглядит HTML-копия страницы:

<html lang=”en“><head>   <title>Luxury Outdoor Hot Tubs</title>   <meta name=”keywords content=”Outdoor Hot Tubs“>  

 <meta name=”description content=”ᐈ Luxury 【Hot Tubs / Outdoor Spas】 for sale in the ⭐ Aquatica ⭐ Online Store ✅ The best prices ✅ Made in EU ✅ Only the best materials ✅ Up to 25 year warranty“>  

 <meta name=”“>  

 <link rel=”canonical href=”https://www.aquaticausa.com/“>   

<link href=”/favicon.ico

 <meta name=”robots content=”index, follow“>  

 <link rel=”stylesheet type=”text/css 

media=”screen href=”/style.css“></head><body> 

  <div>Контент страницы</div></body></html>

As you can see from the code, the differences are fundamental. HTML copies of the page on the website were implemented using rendering SSR technology. The task of the SEO specialist was to check the implementation of SSR and make sure that:

  • website is sending an HTML copy to Google, not JS;
  • the user receives JS, not HTML copy;
  • content in the HTML copy is not different from the content that user can see in any browser when JS has been processed.
  • all content blocks on pages are correctly processed by Google;
  • there is a micro-parsing in the HTML copy

Competitor analysis

Search results and their logic (“intent”) in the U.S. are very different from what we are used to in Ukraine. Information sites with selections are ranked even for queries with commercial content.

For instance, the query “Buy Outdoor Hot Tub” — with the user’s explicit desire to buy a product — information article with a selection of products is ranked in the top 10 (https://www.silive.com/homegarden/2022/07/these-are-the-best-outdoor-hot-tubs-to-buy-for-the-right-price.html), which is completely irrational, considering that in other countries such queries are ranked only by the categories of online stores where the products are presented.

With this in mind, our specialists came up with the conclusion that we have to compete not only with online stores but with information sites as well.

Aquaticausa.com competitors comparison chart:

Website Domain Rating Referring domains (Ahrefs) Referring pages (Ahrefs) keyword phrases (Ahrefs) Traffic (Ahrefs)
















































By the way, aquaticausa.com is a relatively small site, with a small number of items in many subcategories and filters. However, we have to compete with the websites with the min. DR value of 72+. These are million-dollar websites, and some of them are well-known to many users who are not even familiar with the U.S. market.

Work process

The process of working on the website promotion can be divided into several parts

Technical audit and checking SSR functioning

The purpose of the technical audit is to detect errors and make sure that website meets the technical specifications provided by Google. Our audit included 43 items, and 20 of them required fixing errors.

As for checking the proper functioning of SSR, the major problem was the absence of a linking block in the HTML copy of pages and Google failed to correctly index some of the products.

Program implementation Inspection result Priority Contractor
1. IP website analysis ОК low software engineer
2. Checking the website for viruses, malicious scripts, and blacklisting ОК high software engineer
3. Domain history analysis on WhoIs and web.archive ОК high software engineer
4. Checking for the elements that may negatively impact user’s interaction with the website ОК low software engineer
5. Checking for availability and correctness of forming SEO-Friendly URLs (CNC) ОК high software engineer
6. Checking for the gluing of mirrors and complete duplications correct high software engineer
7. Checking for a complete duplication of content correct high software engineer
8. Checking for technical pages, pages with duplicate content, or with no content in the index ОК high software engineer
9. Checking for correctness of the server’s responses to the page request correct high software engineer
10. Checking the page code for HTML and CSS errors correct medium software engineer
11. Checking for availability and errors in SSL certificate correct high software engineer
12. Checking for hidden or spam links to external resources ОК high software engineer
13. Checking for the correctness of robots.txt file set up ОК high software engineer/content manager
14. Connect GWT and Yandex Webmaster ОК high software engineer
15. Connect GA ОК high optimizer
17. Check Sitemap.xml correct medium software engineer
18. Checking for CSS and JS availability ОК medium software engineer
19. Checking microformats correct high software engineer
20. Checking social media buttons ОК low software engineer
21. Checking website loading speed correct high software engineer
22. Checking for the availability and optimization of multilingualism correct medium software engineer
23. Checking for mobile version of the website ОК medium software engineer
24. Checking for the website customization on other devices correct medium software engineer
25. Checking for the correct output of the text content correct high software engineer
26. Tracking Stat.Aweb content in the SEO-monitor correct low software engineer
27. Checking for the elements (commercial factors) on the pages required for ranking in this topic correct high software engineer
28. Checking for the partial content duplication correct medium software engineer
29. Eliminate the removal of irrelevant and out-of-stock items ОК high software engineer
30. Checking for reviews indexing on the website ОК medium software engineer
31. Is the content visible with JavaScript turned off (Checking SSR) correct medium software engineer


Content Inspection result Priority Contractor
32. Checking for affiliates ОК high
33. Checking the location settings in GWT ОК high optimizer
34. Checking for the correctness of forming meta tags correct high content manager or software engineer
35. Checking for availability and uniqueness of the web content ОК high content manager
36. Checking for availability of landing pages for semantic core ОК low content manager
37. Checking for the text content optimization ОК medium software engineer
38. Checking for availability of content formatting ОК medium software engineer


Structure and re-linking Inspection result Priority Contractor
39. Checking for availability of “bread crumbs” menu correct high software engineer
40. Checking for re-linking on the website ОК low software engineer
41. Checking for indexable, optimized filter pages correct high software engineer
42. Checking for the broken links on the website correct medium software engineer
43. Usability correct medium software engineer


Website audit based on the Instructions for Google Assessors

Online stores are related to YMYL (Your Money or Your Life) topics – such websites should have a high E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) scores.

Our experts studied the Guidelines for Google Assessors in detail, creating the checklist for checking the websites on YMYL topic. Here is a brief checklist of what had to be implemented in order to increase E-E-A-T scores:

  • Make a video about the materials used in production
  • Create “About us” page
  • Create “Our Awards” page
  • Create “Our Production” page
  • Create “Portfolio” page
  • Create an author page for the blog
  • Add author to all blog pages
  • Add infographics to the category, subcategory, and filter pages
  • Elaborate on SERMs

Collecting semantic core and drafting ToR for texts

Our team studied priority directions and competitors in detail. In addition to collecting a semantic core on the high-priority category pages, we gradually started to work out the filter pages, since the competition is a way lower on such pages, and given the level of competitor websites, the chances of being ranked in the top are much higher.

Examples of the filters we have created:

  • commercial bathroom sinks
  • design bathroom sinks
  • modern vessel sink
  • luxury bathroom sinks
  • custom bathroom sink
  • decorative bathroom sink
  • unique bathroom sinks
  • luxury hot tubs
  • modern hot tub
  • infinity edge hot tubs
  • 30-inch vessel sink (and other dimensions)
  • large hot tub
  • and many other pages

We drafted ToR for all pages, and our copywriters wrote the texts based on them.

External optimization

During the initial stage of external optimization, we rejected all low-quality donors using Google Disavow Tool. Following that, we performed re-audit of the current link profile every 4-6 months, rejecting low-quality links that have appeared.

For instance, the website was spammed with the links from suspicious blogspot.com subdomains back in April 2021. There were a lot of domains, and if such links were not rejected in time, you could get a drop in rankings and traffic.

We used a variety of methods to build up quality link mass — from unconventional and cheap (yet high-quality) to expensive ones:

  • outreach
  • purchasing through link exchanges
  • registration on trust directories and platforms
  • registration on review sites
  • crowd marketing

Results on the project

Despite an extremely competitive niche and complex geo, we managed to achieve good results in many directions and pages:

Modern bathroom sink

Design bathroom sinks

Modern vessel sink

Luxury bathroom sinks

Custom bathroom sink

Decorative bathroom sink

Outdoor hot tubs

Unique bathroom sinks

Luxury hot tubs

Modern hot tub

30 inch vessel sink


Traffic dynamics

While working on the project, we encountered many issues and factors which made it difficult to move forward:

  • SPA-website
  • SSR
  • technical errors and revisions
  • extreme competition
  • the most competitive geo in the niche

Nevertheless, our team managed to perform well and show some positive dynamics in the project.

Project participants

Project Managers: Kateryna Tymoshenko, Oleksandra Nesina

Optimizer: Yurii Oshchapovskyi

Linker: Yevhen Fedchenko

Do something to stop this war! Russians are killing our children and civilians!