DEV Community

Cover image for Getting Started with React-Helmet: A Beginner's Guide
Niraj Narkhede
Niraj Narkhede

Posted on • Updated on

Getting Started with React-Helmet: A Beginner's Guide

Are you ready to take your React projects to the next level? Look no further than React-Helmet! In this beginner's guide, we'll walk you through everything you need to know to get started with this powerful tool for managing your document head in React applications. Get ready to boost your SEO, improve performance, and enhance user experience with React-Helmet - let's dive in!

Introduction to React-Helmet

React-Helmet is a popular open-source library for managing the document head of a React application. It allows developers to dynamically control the metadata and other tags in the HTML document head, making it easier to manage SEO and social media sharing for their website or web application.

One of the main advantages of using React-Helmet is that it enables developers to specify these important tags directly in their JavaScript code, instead of having to manually add them in the HTML file. This makes it more convenient and efficient when dealing with multiple pages or dynamic content on a single page.

Additionally, React-Helmet comes with built-in support for server-side rendering (SSR), which means that search engines will be able to crawl and index your website properly. This is crucial for improving your website's visibility and ranking on search engine result pages.

How Does React-Helmet Work?

React-Helmet works by providing a <Helmet> component that can be imported from the react-helmet package. This component wraps around all of your app's components and allows you to add specific meta tags, title, scripts, stylesheets or any other tag needed in the <head> section of your HTML document.

To use React-Helmet, you need to install it as a dependency using npm or yarn. Once installed, you can import it into your project's main App.js file (or any other relevant component) using

import { Helmet } from 'react-helmet'
Enter fullscreen mode Exit fullscreen mode

Then simply wrap your desired elements inside the component and specify the necessary attributes such as title, description, keywords etc.

Why Use React-Helmet?

As mentioned earlier, one of the main benefits of using React-Helmet is its ability to help with SEO optimization. By adding appropriate metadata tags like title and description for each page dynamically through JavaScript code,you can improve your website's search engine ranking by providing relevant information about your content.

Another advantage of using React-Helmet is that it allows for easier social media sharing. By specifying the correct tags, you can control how your website appears when shared on platforms like Facebook or Twitter. This can help improve the overall user experience and drive more traffic to your website.

Installation and Setup

Before we dive into the world of React-Helmet, it is important to understand how to install and set it up in your project. In this section, we will discuss all the necessary steps required to get React-Helmet up and running.

1. Installing React-Helmet:

The first step towards using React-Helmet is installing it in your project. There are two ways of doing this - using NPM or Yarn. If you are not familiar with these package managers, here's a quick guide on how to use them.

For NPM users:
Open your terminal and navigate to the root folder of your project. Then run the following command:

npm install react-helmet
Enter fullscreen mode Exit fullscreen mode

For Yarn users:
Open your terminal and navigate to the root folder of your project. Then run the following command:

yarn add react-helmet
Enter fullscreen mode Exit fullscreen mode

2. Importing React-Helmet:

Once you have successfully installed React-Helmet, the next step is to import it into your project. To do this, simply add the following line at the top of your component file where you want to use Helmet.

import { Helmet } from 'react-helmet';
Enter fullscreen mode Exit fullscreen mode

3. Setting Up Basic Metadata:

Now that you have imported Helmet into your component file, you can start using its features. The most basic usage of Helmet is for setting up metadata such as title, description, keywords etc.

To do this, wrap all the desired meta tags inside <Helmet> tags with appropriate attributes like name or property based on what you want to set.

Example:

<Helmet>
  <title>Welcome to my website</title>
  <meta name="description" content="A website about coding tutorials"/>
  <meta name="keywords" content="coding,tutorials,javascript"/>
</Helmet>
Enter fullscreen mode Exit fullscreen mode

4. Using Parameters in Metadata:

One great feature of React-Helmet is that it allows us to use parameters while setting up metadata. This is especially useful when you want to dynamically change the content of your metadata based on user input or data fetched from an API.

Example:

<Helmet>
  <title>{`Welcome ${username}!`}</title>
  <meta name="description" content={`A website about coding tutorials by ${author}`}/>
</Helmet>
Enter fullscreen mode Exit fullscreen mode

5. Adding Custom Scripts:

Apart from setting up metadata, Helmet also allows us to add custom scripts to our page. For example, if you want to add a Google Analytics tracking code or any other external script that needs to be included in your HTML head, you can do so using React-Helmet.

Example:

<Helmet>
  <script src='https://www.google-analytics.com/analytics.js' async/>
</Helmet>
Enter fullscreen mode Exit fullscreen mode

Congratulations! You have now successfully installed and set up React-Helmet in your project. In the next section, we will discuss some advanced features and best practices for using React-Helmet.

Link Tags for CSS and Favicon

One of the key features of React-Helmet is its ability to dynamically add link tags for CSS and favicon to your HTML document. This not only allows you to keep your CSS and favicon files separate, but also gives you more control over their implementation.

In order to add a link tag for CSS using React-Helmet, we first need to import the necessary components from the library. This includes the <Helmet> component and its nested <link> component. We can then use these components in our JSX code as follows:

<Helmet>
  <link rel="stylesheet" type="text/css" href="[path/to/your/css/file]" />
</Helmet>
Enter fullscreen mode Exit fullscreen mode

The rel attribute specifies the relationship between the current document and the linked file, in this case it is stylesheet indicating that this is a style sheet being linked. The type attribute specifies the type of file being linked, in this case it is text/css. We provide the path to our CSS file in the href attribute.

It's worth noting that if you have multiple stylesheets or want to add media queries to your link tag, you can do so by separating them with commas within the href value.

Similarly, we can also use React-Helmet to add a link tag for a favicon. A favicon is an icon associated with a particular website that appears next to its name in a browser tab or bookmark list. To add a favicon using React-Helmet, we can use the following code:

<Helmet>
  <link rel="icon" type="image/png" href="[path/to/your/favicon]" sizes="16x16"/>
</Helmet>
Enter fullscreen mode Exit fullscreen mode

The rel attribute here specifies that this is an icon being linked while the type attribute indicates that it's an image file in PNG format. The href attribute contains the path to our favicon file and the sizes attribute specifies the size of the icon in pixels.

One of the advantages of using React-Helmet for link tags is that it allows us to easily add these tags to specific pages instead of having them on every page. This can be achieved by placing the <Helmet> component within the JSX code of that particular page.

React-Helmet's ability to dynamically add link tags for CSS and favicon makes it a powerful tool for managing your website's styling. Not only does it offer more control over how these files are linked, but it also allows us to easily add them to specific pages as needed. With this feature, we can keep our code organized and improve overall performance and user experience.

Script Tags for External Scripts

In addition to adding meta tags and title tags, React-Helmet also allows you to easily add external scripts to your web page. These external scripts can be used for various purposes, such as tracking analytics or integrating with third-party libraries.

To add an external script using React-Helmet, we first need to identify the script that we want to include. This could be a JavaScript file hosted on a CDN (Content Delivery Network) or a custom script created by us. Once we have identified the script, we can use the <script> tag provided by React-Helmet to add it to our page.

Let's take a look at an example of how we can add Google Analytics tracking code using React-Helmet:

  1. First, make sure that you have created a Google Analytics account and obtained your unique tracking ID.

  2. Next, go to the <head> section of your HTML document where you are using React-Helmet.

  3. Then, use the <script> tag provided by React-Helmet and specify the src attribute as the URL for Google Analytics tracking code:

<script src="https://www.googletagmanager.com/gtag/js?id=YOUR_TRACKING_ID"></script>
Enter fullscreen mode Exit fullscreen mode
  1. Use another <script> tag inside which you call Google's gtag function with your tracking ID:
<script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', 'YOUR_TRACKING_ID');</script>
Enter fullscreen mode Exit fullscreen mode

It is important to note that when adding external scripts using React-Helmet, they will be added just before any other scripts in your <head> section. This ensures that all dependencies are loaded before executing these scripts.

Other Useful Props

In addition to the basic props discussed in the previous section, React-Helmet also offers some other useful props that can enhance the functionality and performance of your website. These additional props allow you to further customize and optimize your website's metadata, making it more search engine friendly and user-friendly.

1. Default Attributes:

The default attributes prop allows you to add global attributes to all of your helmet tags. This is useful for adding common attributes such as lang or charset to all of your pages without having to individually specify them for each tag. To use this prop, simply pass an object with the desired attributes as a value for the defaultAttributes prop.

2. Link Tags:

React-Helmet also allows you to add link tags through its linkTags prop. Link tags are used to define relationships between your website's current page and external resources such as stylesheets, fonts, icons, etc. This can improve site performance by allowing browsers to preload these resources before they are needed on a specific page. To use this prop, simply pass an array of objects containing the necessary link tag information (href, rel, type) as values for the linkTags prop.

3. Meta Tags:

Another important aspect of optimizing your website is through meta tags. These tags provide information about your web page such as title, description, keywords, etc., which help search engines index and rank your site correctly. React-Helmet makes it easy to add these meta tags through its metaTags prop. Similar to linkTags, this prop takes an array of objects containing key-value pairs for each meta tag that you want to include on your page.

4. Script Tags:

If you need to include external scripts on specific pages of your website (such as tracking codes or analytics), React-Helmet's scriptTags prop has got you covered. This allows you to dynamically add script tags based on certain conditions or events without having them hard-coded into your HTML. Simply pass an array of objects containing the necessary script tag information (src, type, async) as values for the scriptTags prop.

5. Title Template:

The titleTemplate prop allows you to specify a pattern for your page titles. This is useful when you have a consistent format for all of your page titles but need to dynamically add in different content based on each page's purpose or context. To use this prop, simply include %s within your desired title format and it will be replaced with the value passed into the title tag.

By utilizing these additional props provided by React-Helmet, you can further optimize and customize your website's metadata to improve its search engine ranking and user experience. Experiment with these props and see how they can enhance the performance of your website!

In conclusion, the text serves as a beginner's guide to using React-Helmet, providing a helpful starting point for those looking to enhance their React applications with SEO-friendly metadata.

Top comments (3)

Collapse
 
michaeltharrington profile image
Michael Tharrington

Nice guide, Niraj!

Collapse
 
nnnirajn profile image
Niraj Narkhede

Thank You !

Collapse
 
document-translate profile image
Document Translate

Awesome post