Mastering technical SEO for React Single-Page Applications

Marcin Szuster
Mar 06, 2024
Marcin Szuster during React Wrocław Meetup with his presentation on technical seo for SPA
Technical SEO is a broadly discussed topic; however, its significance only increases due to the challenges posed by SPA applications. Despite their numerous advantages, they also come with a set of SEO hurdles. This primarily stems from their utilization of JavaScript for dynamic content rendering, which can impede search engines from effectively indexing them.
While SPA apps offer users a seamless and rapid browsing experience, their impact on SEO cannot be overlooked. Issues encompass the absence of distinct URLs for individual views, a lack of unique page titles and descriptions, and the delay in rendering content.

Introduction

As developers, our responsibility lies in harmonizing the technical facets of SEO with the end-user experience. This equilibrium can be achieved by employing strategies like server-side rendering, adopting URLs to represent views, incorporating unique titles and descriptions, and optimizing overall page performance.
Let's cover the basics first. If you're a bit more advanced, feel free to start with the link building part. Otherwise, I encourage you to grasp some beginner SEO knowledge or refresh it.

SEO basics

SEO stands for search engine optimization. In short, it's a process and set of practices aimed at improving a website's visibility and ranking on search engines like Google, Bing, and others. The ultimate goal of SEO is to increase organic traffic to a website by making it more accessible and attractive to search engines and users.
SEO strategy involves optimizing various aspects of a website. The goal? Let’s make it easier for search engines to find relevant pages and match them with users’ specific search queries.
By aligning a website's structure, content, and other elements with the preferences of search engine algorithms, SEO aims to secure higher positions in search engine results pages (SERPs). This, in turn, increases the chances of users finding and clicking on the website's link when searching for information or products.
SEO has a few subtypes:
💡 On-page SEO optimization refers to website-specific activities directly impacting its use, accessibility, and user appeal. This includes keyword research and creating high-quality content to improve overall SEO performance. Its purpose is to assure search engines that the content addresses relevant queries.
💡 Off-page SEO optimization refers to actions taken outside your website that impact its search ranking. These actions are typically based on backlinks (links from other domains that lead to your website). When high-ranking websites link to your website, it lends credibility and increases its reputation.
💡 Technical SEO enhances your site's search engine ranking through code and server optimization. This process assists search engine robots called crawlers in indexing and positioning the website more effectively.
All types mentioned above must be employed in a cohesive SEO strategy. It's very much a collaborative effort between developers, UX/UI designers, marketers, and content writers.
However, even the best SEO efforts and practices may not yield immediate results.

How do search engines index and process SPA?

To accomplish SEO optimization for SPA applications, you need to understand how search engines undertake indexing and processing of these intricate applications. Although search engines, such as Googlebot, have the capacity to execute JavaScript rendering and index dynamic content, you may also face some challenges in the process.
How do search engines process and index these applications? The process is divided into two stages: downloading and rendering.
During the downloading stage, the search engine extracts links from the page's source code but doesn't execute JavaScript or render dynamic content. The rendering stage involves running the JavaScript and displaying the dynamic content.
The search engine evaluates the page's content quality, quantity, and relevance to user queries. Different search engines have varying processes and timings for rendering pages. Googlebot can render JavaScript and index dynamic content on SPAs, albeit with possible delays or incomplete results. Other search engines like Bing or Yandex may face more difficulty in rendering JavaScript and indexing dynamic content on SPAs.
So, let's make work a little bit easier for all these guys, shall we? Here are some of my best practices.

Proper link-building and management

Efficiently organized URLs help Google discover and retrieve your site's pages. However, you may face challenges with URL structuring. I'll show you how to crack them.

Duplicate content

Challenge
Duplicate content emerges when identical content is accessible through various URLs. This occurrence burdens the web server and impedes site indexing. Google may retrieve the same content multiple times, affecting both search engine rankings and appearance. Consequently, Google designates a canonical (or main) URL to mitigate this issue.
Solution
To address duplicate content, limiting the number of alternative URLs directing to the same content is vital. Furthermore, I recommend employing the <link rel="canonical"> tag to indicate the preferred URL.

Infinite pages

Challenge
Infinite pages occur when URLs encompass dynamically changing values, such as time signatures or session IDs. This dynamic nature may lead Google to perceive the site as having infinite pages. This perception elongates the process of discovering valuable content within your site.
Solution
To avoid this challenge, I advise you to steer clear of temporary parameters in URLs. Opt instead for employing long-term, persistent URLs for enhanced efficiency.

Unclear URL structure

Challenge
Unclear URL structure transpires when URLs lack descriptive elements or employ unreadable query parameters. This ambiguity impedes Google's ability to discern a page's content and its interconnectedness with other site pages. Moreover, it affects user-friendliness and the overall appeal of the website.
Solution
To counter this, I'd advise using descriptive terms within URL paths and query parameters. Also, adhere to the convention of utilizing "?key=value" instead of "?value" for improved clarity.

Mismanagement of product variants

Challenge
This issue arises in the context of product variants, such as items available in multiple sizes or colors, each possessing distinct URLs. Such an arrangement can lead to challenges while displaying results featuring extended product offerings or services like Google Shopping.
Solution
To tackle this, it's advisable to designate a canonical product URL among the variant URLs. Additionally, utilizing a path segment or query parameter to differentiate variants can aid in effective management.

Canonical URLs

The canonical URL tag serves the purpose of designating the preferred URL for a specific page in cases where multiple versions of the same content exist.
For example, if a page showcases a catalog of salons that can be filtered or sorted using diverse criteria, distinct combinations of filters and sorting may generate various URLs with appended parameters. Despite these variations, the fundamental content of the page remains constant.
In such scenarios, the rel=canonical tag emerges as a valuable tool, signifying to search engines which URL variant should take precedence and be considered for ranking purposes.
These URLs essentially lead to identical content pages, differing only in their granularity of detail. Without employing the rel=canonical tag, search engines might treat these URLs as distinct pages featuring duplicate content, potentially compromising the overall page ranking.

How does canonical URL solve this issue?

Hence, we can use the rel=canonical tag within the HTML code to address this. This tag directs search engines to the preferred URL variant devoid of any parameters. Coming back to our example, it can look like this:
<link rel="canonical" href="https://booksalon.fi/results/wroclaw/massages" />
The directive conveys to search engines that this specific URL variant should be prioritized for indexing and presentation within search results. Meanwhile, alternative URL versions are relegated to secondary status and are excluded from ranking considerations.
This mitigates challenges related to duplicate content and, as a result, enhances the SEO performance of the page.
In essence, using the rel=canonical tag offers a straightforward and potent mechanism for optimizing the SEO of React pages. Implementing this tag involves its inclusion within the HTML code of any page where multiple URL versions containing identical content are present.
Additionally, incorporating JavaScript libraries or server-side coding can automate the generation and inclusion of this tag across multiple pages. It's also mindful to exercise caution in deploying parameters within URLs, as excessive use can impede page readability and effective indexation.

A real-life canonical URL example

I'd like to give you a real-life example of how technical SEO optimization can be applied to booksalon - you can view it as a search engine for beauty salons.
With booksalon, you can easily filter and sort your search results based on various parameters like category, service, and location. Let's say you're searching for a women's hair salon in Helsinki that offers haircuts. What should the URL for such a query look like?
Here are a few potential options (try to guess which one is the most preferable):
A. https://booksalon.pl/salons?category=hairdresser&service=women-haircut&location=warsaw
B. https://booksalon.pl/salons/hairdresser/women-haircut/warsaw
C. https://booksalon.pl/salons?c=1&s=2&l=3
D. https://booksalon.pl/salons/1/2/3
To answer that ever-so-important question, let's check if they meet the following criteria:
✅ Avoid duplication of content
✅ Avoid an infinite number of pages
✅ Use a clear URL structure
✅ Properly manage product variants
Answer A:
Yup, that's an educated guess! When creating URLs, it's best to use query parameters with clear keys and descriptive values. This helps both Google and users understand what the page is about.
However, if the order of the parameters is inconsistent or some are optional, it can result in duplicate content. To avoid this, you can use the <link rel="canonical"> tag or set a preferred parameter order in Google Search Console.
Answer B:
Good job, my young Padawan! The second option involves using path segments with descriptive values, which helps both Google and users understand the page's content more easily. This approach eliminates the issue of duplicate content because the order of the segments is predetermined, and there are no optional segments. Additionally, users may consider it the friendliest among the options.
However, it can result in an endless number of pages if there are no limits on the number of segments or if specific segments can have random values. To avoid this, it is best to refrain from using path segments for temporary or irrelevant content parameters.
Answer C or D
Thanks for trying, but sadly, I wouldn't recommend any of those options. Using query parameters or path segments with numeric values can make identifying the page's content challenging for both Google and users. This approach may also lead to issues with duplicate content and an endless number of pages if there are no specific limits or orders on the values' range and number. In terms of technical SEO optimization, these options are the least favorable.

Pagination

Pagination is a technique that involves dividing the results list into smaller sections. This allows users to easily navigate between them using links such as 'previous', 'next', or page numbers. By implementing pagination, we can enhance the user experience on our website by reducing page load times and the amount of data transferred.
However, there are potential drawbacks to pagination as well, as it may make it harder for Google's robots to find and index all our content.
These are indeed some useful best practices for optimizing pagination for SEO. By implementing them, you can optimize pagination for both search engines and user experience, ensuring that your content is accessible, discoverable, and loads quickly for both users and search engine bots.

Use <a href> links

Using standard HTML anchor tags <a href> for your pagination links is a good practice. This allows search engine bots like Googlebot to easily follow and index individual pagination pages. Avoid using buttons or JavaScript to update content on the current page since Googlebot may struggle to navigate JavaScript-heavy content.

Link to the first page

Include a link to the first page of the collection from all pagination pages. This helps Google understand the starting point of the content collection and indicates it as a potential landing page. It can also improve user experience by providing an easy way to return to the beginning of the content.

Use unique canonical URLs

Each pagination page should have its own canonical URL. Avoid using the first pagination page as the canonical URL for the entire collection. Why is this important? Canonical tags help search engines understand the preferred version of a page when there are duplicate or similar content pages.
Avoid URL fragment identifiers
Do not use URL fragment identifiers (the text after the # in the URL) to denote page numbers in the collection. Google tends to ignore fragment identifiers when crawling and indexing. Instead, rely on query parameters or clean URL structures for pagination, such as /page/2 or ?page=2.

Consider resource preloading

Resource preloading techniques like preload, preconnect, and prefetch can improve the user experience by optimizing the loading of subsequent pages. These techniques help to fetch resources in advance, reducing latency when a user navigates to the next page.
While these optimizations primarily target user experience, faster page loading can indirectly benefit SEO by improving user engagement and reducing bounce rates.
Preload – use preload to schedule critical resources (e.g., CSS or JavaScript) for early loading in the page lifecycle. This ensures that these resources are downloaded and cached with higher priority, potentially speeding up subsequent page loads.
Prefetch – use prefetch to indicate resources that the user might need on the next page. This can help browsers fetch these resources in advance, making the transition to the next page smoother for users.
Preconnect – use preconnect to establish a connection to a specific origin (e.g., a CDN or external domain) preemptively. This can speed up future loads from that origin by reducing the time needed for DNS resolution, TCP handshake, and TLS negotiation.

No index, no follow


Want to improve your site's performance in search results? Focus on managing how search engines discover, store, and present information from your website. Two key directives for achieving this control are the noindex and nofollow directives.
These directives empower you to fine-tune your site's visibility in search engines and address issues like duplicate content, low-quality pages, or unwanted access to specific content.

No index directive

The no index directive is a powerful tool that dictates how search engines handle individual pages on your website. It serves the purpose of instructing search engines not to index and display a particular page in their search results.
Here's a closer look at two things that require your special attention.
Value assessment - the noindex directive should be reserved for pages that offer minimal to no value to users and, consequently, should not be featured in search results. Examples of such pages include duplicates, thin or subpar content, and pages designed exclusively for internal purposes, like pagination.
Deindexing process - to effectively remove a page from search engine results after it has already been indexed, follow these steps:
✅ Implement the noindex directive on the page, typically by including a meta tag or using HTTP headers.
✅ Request the search engine to re-crawl and re-index the page, a task easily accomplished through platforms like Google Search Console.
✅ Verify the page's removal from search results by utilizing the site:site_address search operator.
✅ Be diligent in checking for any conflicting directives in your robots.txt file, as search engines cannot interpret the noindex directive if they are disallowed from accessing the page. If such conflicts exist, remove the disallow directive for the specific page in question and prompt the search engine to index it again.

No follow directive

The nofollow directive operates at a different level, primarily affecting the flow of PageRank or link equity through specific links on your web pages. It communicates to search engines “not to follow” links, ensuring that linked URLs do not contribute to ranking signals.
You can use these directives to control how search engines index your pages and follow your links. This can ultimately enhance your website's performance in search results.
Link-level application
The nofollow directive is typically applied at the link level using the rel attribute within HTML <a> tags. It signifies to search engines that the linked URL should not be followed, and any link equity or ranking signals should not be passed along. This is particularly useful when you want to control the influence of specific links.
Selective usage
I generally recommended using the nofollow attribute sparingly, primarily for individual links you wish to disassociate from ranking signals. Blanket page-level nofollow directives are less common and are usually employed when you lack control over user-generated content on a page.
Evolving in treatment by Google
In the past, Google did not pass PageRank through nofollow links. However, in 2019, Google announced changes that treat nofollow links as "hints" for a better understanding of the web's structure. Nonetheless, nofollow links still do not pass PageRank in the traditional sense.

Optimizing images

One effective technique I'd like to highlight is the implementation of lazy loading for images. What is it, I hear you ask? Essentially, lazy loading delays the loading of images on a webpage until they become visible to the user on their screen. This approach minimizes unnecessary strain on the server and browser, reducing data transfer and enhancing user experience.
Sidenote: lazy loading is particularly beneficial for websites containing many images, such as platforms like Pinterest or online photo galleries.
To incorporate lazy loading into your website, there are several avenues you can explore:
Lazy loading stands as a straightforward yet impactful method for enhancing both website performance and SEO. To quantify the potential benefits, you can employ Google's Lighthouse tool, which reveals the estimated time and data transfer savings achievable through lazy loading.

Image file format

Another technique worth discussing is the selection of the appropriate image file format. Each format, including PNG, JPEG, GIF, SVG, WebP, and AVIF, has distinct advantages and disadvantages.
For instance, PNG offers high quality with lossless compression but yields large file sizes. At the same time, JPEG permits customization of quality levels and file sizes at the cost of sharpness and color fidelity. The choice of format should be aligned with the image's type and purpose — PNG for vector graphics, JPEG for photos, and WebP or AVIF for modern browsers.
The chosen file format significantly influences image quality, size, page load speed, and SEO. Some formats excel in compression and require less disk space. Compatibility with users' browsers and devices also varies across formats. Thus, you may benefit from identifying the most suitable formats for your website. From then on, maintain consistency in their usage.

Progressive JPEG

Moving on, let's explore the utilization of progressive JPEG and emerging file formats. Progressive JPEGs load ranges from low to high quality, enabling users to perceive the entire image more swiftly, even before achieving full clarity. Modern formats like WebP and AVIF offer superior compression, quality, and smaller file sizes than JPEG. However, browser support varies, necessitating fallback strategies for older browsers.
Adopting progressive JPEG and embracing new formats augments image quality, loading speed, user experience, and SEO. These actions also lead to savings in server space and data transfer. I recommend experimenting with these techniques on your website to witness the discernible impact.

Compression

Lastly, employing image compression and optimization tools constitutes another valuable approach. Numerous online and offline tools allow you to diminish image file sizes with minimal or no loss of quality. Notable options include TinyPNG, Squoosh, ImageOptim, and Photoshop. Additionally, cloud services like Cloudinary and ImageKit automatically adapt images to meet the requirements of users' browsers and devices.

Lazy loading details for images in SPA React applications

Lazy loading for images and graphics within SPA React applications functions similarly to standard HTML pages. You can incorporate the loading="lazy" attribute within <img> or <iframe> elements to instruct the browser to defer loading until they become visible on the screen. It's important to note that not all browsers universally support this approach, necessitating supplementary tools or libraries.
One effective option is the IntersectionObserver API, which detects when an element intersects with another visible area. In React applications, you can create a custom component that utilizes IntersectionObserver to change image sources as they come into view dynamically.
Alternatively, you can opt for existing solutions such as react-lazy-load-image-component, which offers components (LazyLoadImage and LazyLoadComponent) and a higher-order component (HOC) called trackWindowScroll. These components simplify the implementation of lazy loading for images and other elements within React applications. The library also supports transition effects like blur, grayscale, or opacity changes.

Enhancing web content visibility with metadata formats

Metadata formats like Schema Markups and Open Graph enhance content visibility across search engines and social platforms.

Schema Markups

Schema Markups and structured data standardize and format data on web pages, making it easier for search engines to understand and interpret content. This additional context can improve visibility in search results. Popular formats for structured data include JSON-LD, which is recommended by Google, and Microdata.
Schema markups use a standardized vocabulary to provide context and describe web content. Implementing these markups initiated by the Schema.org consortium can boost visibility in search results, especially for niche queries.
For instance, JSON-LD can detail organizations, products, and blog posts to users in a machine-readable yet invisible format, enhancing search results with more prosperous and detailed information. While not direct ranking factors, structured data, and schema markups indirectly enhance the web visibility and efficacy in search results.

Open Graph

The Open Graph protocol, developed by Facebook, standardizes web page metadata to represent content across social platforms. Open Graph metadata determines how shared pages appear on platforms like Twitter, Facebook, and LinkedIn, specifying elements like title, description, and image to create enticing previews.
To add Open Graph metadata, tags are placed within the HTML document's <head> section, with each <meta> tag specifying Open Graph properties and values, e.g., <meta property="og:title" content="Example Title" />.
Essential properties include:
💡 og:title,
💡 og:type,
💡 og:image,
💡 and og:url,
which are unique for each page. Additional optional properties like og:description, og:locale, and og:site_name further describe and present the page.
Platforms may have Open Graph extensions, like Twitter's twitter:card, to customize appearance and behavior in their ecosystem. Debugging tools from these platforms ensure metadata correctness and appearance across channels.
By using schema markups and Open Graph metadata creatively, you can significantly improve their content's search engine and social media visibility, driving engagement and traffic.

Files for robots

Harnessing Robots.txt for SEO

The robots.txt file is a text file that guides search engine bots on what parts of a site they can or cannot access. Placed in the root directory of a domain, it effectively allows or disallows access to specific URLs, directories, or files.
Importance of Robots.txt for SEO
robots.txt plays a vital role in SEO strategy by controlling search engine visibility of website sections:
✅ It can prevent indexing irrelevant, duplicated, or sensitive content, such as login pages, admin panels, shopping carts, and privacy policies.
✅ Optimizes the crawl budget to ensure search engines focus on scanning the most important and updated pages, enhancing indexing speed and site ranking.
Directs bots to the sitemap.xml location, facilitating the discovery of all subpages along with their update frequency, priority, and last modification dates.

Creating and testing Robots.txt

The file consists of several key elements:
💡 User-agent argets instructions to specific bots (e.g., * for all bots or Googlebot for Google's bot).
💡 Allow [ermits scanning of a URL or URL segment; use $ for URL end or * for any character sequence.
💡 Disallow prevents scanning of a URL or URL segment; special characters are the same as in Allow.
💡 Sitemap – points to the sitemap.xml file location.
robots.txt is not just a directive but an essential tool for enhancing site SEO by managing bot activity efficiently. It ensures that only valuable content in your SPA is indexed, optimizing site visibility and user response to the most significant pages.

Effective sitemaps

Sitemaps are a fundamental SEO tool that outlines available pages on a site to search engines, including details on the latest modifications and content update frequency. Supporting formats like XML, RSS, Atom, or text, sitemaps can also detail multimedia or different language versions of pages.
For creation, I'd recommend using these guidelines:
Though not a guarantee for indexing, sitemaps make it easier for search engines to crawl a site, potentially boosting its visibility. The XML sitemap includes elements like <loc> for complete URLs, <lastmod> for modification dates, <changefreq> for update frequency, and <priority> for page importance, alongside possibilities for incorporating multimedia and multi-language details.
If you use sitemaps smartly, you can aid search engines' crawling and indexing while improving site navigation and user accessibility.

Pre-rendering in the context of SEO

Pre-rendering involves generating static HTML files from our React pages during the application build process before any user requests. As a result, users who visit our site immediately receive the ready HTML code for display and interaction without executing additional JavaScript code on the client's device. This significantly improves the loading speed and performance of our application.
So, how do we apply pre-rendering in our React applications? There are various methods and tools available to enable this. One method is to use frameworks and libraries that offer built-in functionality for generating static pages, such as Gatsby, Next.js, or Hugo.
These frameworks simplify the implementation and development of applications using pre-rendering. Using one of these frameworks automatically generates static HTML files for each application page during the build process. You can then quickly deploy these files to any hosting server.
This pre-rendering method should be your first choice, as it gives us full control over whether a page is pre-rendered or not, and it does not rely on any external service.

Alternative methods

Another pre-rendering method involves using online services such as pre-render.io or Netlify Pre-rendering. These services aim to provide pre-rendering functionality for applications and tools that do not have built-in pre-rendering capabilities.
For instance, if we use something like Create React App (CRA), which generates single-page applications (SPAs), these services allow us to transform our client-side rendered application into a pre-rendered one, which will be displayed for search engines.
This type of pre-rendering is not as convenient or flexible as using one of the frameworks or SSG tools mentioned in the previous section, but it is a valid option if we cannot use one. For example, if we are locked into using CRA and cannot move away from it, utilizing one of these services can help us achieve the benefits of pre-rendering.
Another facet of pre-rendering exists through Google Chrome's built-in functionality. This feature predicts and pre-renders pages in the background as users navigate or search, aiming to enhance the browsing experience. However, unlike the manual pre-rendering methods discussed earlier, this process is primarily out of developers' control. It relies on Chrome's internal heuristics, such as the user's settings and device capabilities, to decide whether to pre-render a page.
Developers can suggest pages for pre-rendering using the Speculation Rules API, but Chrome may not necessarily act on these suggestions. While passive and unpredictable, this method underscores the growing recognition of pre-rendering's value in web technology.

SEO monitoring and analysis for SPAs

In essence, SEO monitoring and analysis significantly contribute to technical SEO optimization. Through Google Search Console, PageSpeed Insights, and Lighthouse, we can assess our website's performance and its impact on Google search visibility.
Performance optimization extends beyond speed to encompass user experience quality. While a single miraculous solution for enhanced rankings doesn't exist, any qualitative enhancement yields positive outcomes.

Google Search Console

One invaluable tool for aiding SEO optimization is Google Search Console. This free tool empowers us to gauge our website's performance in Google Search, offering insights to enhance both visibility and traffic.
However, you will need initial ownership verification of the website to use it. This can be accomplished through various methods, such as adding an HTML file to the server or inserting a meta tag within the source code. After successful verification, access to comprehensive information provided by the Search Console becomes available.
Search Console facilitates the monitoring and analysis of several SEO aspects, including:
Index coverage - it reveals which pages from our site have been indexed or attempted for indexing by Google. That helps identify any errors or warnings on our pages that might hinder proper indexation.
Mobile adaptation - the report checks whether our site is effectively optimized for display on mobile devices. It identifies issues that could potentially impact user experience on smartphones or tablets.
Sitemaps - sitemap, an XML file listing all pages along with their relevance and update frequency, aids in monitoring associated information. To expedite Google's site discovery process, we can submit a sitemap via Search Console.
Search performance - this report displays the volume of traffic originating from Google Search. Insights are presented through various breakdowns like query, page, and country, showcasing trends in impressions, clicks, and other metrics.

PageSpeed Insight and Lighthouse

To analyze our website's performance on both mobile and desktop devices, you can use a tool called PageSpeed Insights. It's an extension for your browser.
This tool measures not only loading speed but also factors like user experience quality, visual stability, interface responsiveness, and time to interactivity. It provides us with a percentage score for each device, along with a list of optimization opportunities we can use to improve our score.
The score is calculated from laboratory data (simulated visits using Lighthouse) and user data (from Chrome browsers of your site visitors). While a higher score is generally better, there is no universal value that guarantees an improved position. What's important is to outperform the competition and meet basic web metrics.

What are the differences between PageSpeed Insights and Lighthouse?

Are you curious about the differences between PageSpeed Insights and Lighthouse? It's a great question! Both tools are designed to improve website performance, but Lighthouse offers more detailed information and flexibility. It can audit an entire website, while PageSpeed Insights focuses on a single page. Lighthouse also evaluates other factors like accessibility and SEO best practices.
One of the main differences between Lighthouse and PageSpeed Insights is that Lighthouse provides extensive information about each aspect it measures. For instance, Lighthouse indicates if an image is optimized and specifies how much smaller the optimized version should be.
As I previously mentioned, PageSpeed Insights uses lab and user data to support the analysis. The user data is derived from the public Chrome User Experience Report dataset, comprising qualitative user experience dimensions, such as device type and connections. On the other hand, Lighthouse only uses lab data without real-world examples to correlate the results.
Both tools have their pros and cons, but when used together, they can provide a comprehensive analysis of our site. PageSpeed Insights can help us assess the performance of our site and compare it to user data on our site and in the industry. Lighthouse, on the other hand, can assist us in examining other aspects of our site and identifying more optimization opportunities.

Google Tag Manager

Google Tag Manager (GTM) is a free and powerful tool designed to manage various tags on websites or in applications. Tags are snippets of code that send or receive data from external tools such as analytical systems, remarketing platforms, or testing tools. They can also detect how users interact with page elements, like buttons, forms, videos, or downloads.

How does Google Tag Manager work?

GTM allows for the management of tags without the need to modify website code directly. It utilizes three main components: Tags, Triggers, and Variables.
💡 Tags are the snippets of code you wish to activate on the site.
💡 Triggers are the rules that determine when a tag should activate based on events occurring on the site.
💡 Variables are pieces of information that help define trigger conditions or tag values.
All these components are stored within a container, which serves as the central unit of a GTM account. Implementing GTM on a site requires adding the container code to the website's template files once. Then, the GTM interface facilitates creating and managing tags, triggers, and variables without needing to touch the site's code again.

How does Google Tag Manager aid SEO optimization?

GTM supports SEO optimization by allowing the tracking and measurement of various SEO metrics such as pageviews, bounce rates, time on site, scroll depth, conversions, etc. Beyond basic metrics tracking, GTM provides more advanced SEO capabilities:
Implementation of structured data – GTM enables the easy implementation of structured data on a site using custom HTML tags and JSON-LD code. This is crucial for helping search engines understand the content of your pages and improving visibility in search results.
Adding canonical tags and hreflang tags – with GTM, SEO practitioners can add canonical links, hreflang, meta, or other SEO-related tags to pages through custom HTML tags. This ensures correct indexing and minimizes duplicate content issues.
Content and layout testing – GTM integrates smoothly with tools for A/B testing and Google Optimize, allowing for testing different content versions or page layouts. This can help identify the most SEO-friendly and user-friendly page designs.
Debugging and validation of tags – GTM offers a preview and debugging mode and the Tag Assistant tool, making debugging and validating the used tags easier. Ensuring tags work correctly is vital for accurate data collection, which informs SEO strategy.
Google Tag Manager simplifies the management of website tags and plays a critical role in SEO optimization. It enables precise tracking, implements structured data, adds essential SEO tags, conducts A/B tests, and provides robust debugging tools.

Conclusion

Thank you for your attention and interest in technical SEO optimization. Throughout this article, I highlighted the significance of SEO for SPA applications and the various benefits and challenges that come with it, including loading speed, indexing, and rendering. I also shared different solutions and practices to enhance search engine visibility and positioning for SPAs. This topic is vast, and there's still plenty more to explore and experiment with.
Once again, I appreciate your time and wish you the best of luck with your SEO projects!
category

Marcin Szuster

Full Stack Developer at Vazco