Skip to content

The Pros and Cons of Single Page Websites

Single page websites have become increasingly more popular in recent years. But, what are they, and are they good for SEO?

What Is a Single-Page Website?

A single-page website is slightly different than a one-page website. One-page websites are literally one-page; there are no navigational links to give you the illusion that the page is changing.


A single-page website is a type of single-page application (SPA) that dynamically displays content from the server in response to user interaction versus loading the page as a whole.


Users click on navigation links to jump (or scroll) to destinations further down the page. This interaction gives the impression that the page is changing; however, there is no page refresh.


The benefits of a single-page website

Enhanced mobile experience

One of the major advantages of the single-page design is that the sites typically convert much easier to mobile, and users find them simple to navigate.

Targeted User Experience

Single-page websites are great for targeting a specific audience and providing them with a certain type of user experience – making it easier to control their behaviour on your website

Load times

Single-page sites load much faster than multi-page sites, which is a huge bonus for most users who don’t have the patience to wait longer than a few seconds for a site to load. Plus loading another “page” doesn’t require all the resources to reloaded.

The disadvantages of single-page websites

Limited keyword targeting

Single-page sites are generally supposed to be designed around one main concept, which limits your ability to rank for a wide variety of keywords.

Thin content

Another downfall to single-page sites is that their content is generally not as specific as what publishes on multi-page sites.

You don’t have the luxury of devoting a separate page for each topic you want to cover

As Flexbox is quite a broad property with an extensive amount of properties, I will be simplifying the concepts explained and provide a very brief explanation of what its capabilities are.

Flexbox is a relatively new feature added to CSS that allows developers to layout and position their content in a much more intuitive, efficient, and accurate manner. It also allows developers to create responsive web pages much more easily giving them complete control over how elements will react at certain screen sizes.

Flexbox is a one-dimensional layout that allows items to be arranged in rows or columns on a Main Axis and a Cross Axis. We make use of Flexbox by create what are called ‘Flex containers’ which will give us complete control over the ‘Child’ elements within the ‘Parent’ Flex container. This allows us to control the amount of space each ‘Child’ will occupy within the container either in a row layout or a column layout. For example, we can state that we want the container to have a row layout with the following arrangement: Half/one quarter/one quarter. Flexbox will automatically calculate how much space each child element will occupy in relation to the size of the screen the page has been loaded on without us having to manually calculate and hard-code these percentage values into our main stylesheet.

As stated before, Flexbox makes use of a Main axis and a Cross axis, and while in its standard layout these represent an X and a Y axis respectively, they are not always fixed. We can make use of properties such as ‘Flex Direction’ which allows us to change the direction of our axes to a column layout which in-turn changes the direction of our Main and Cross axes.

Flexbox also allows us to position items along these axes whether as a group or individually using properties such as ‘Justify Content’ or ‘Align Items’ where the former is along the Main axis and the latter along the Cross axis.

Lastly, Flexbox allows us to set ‘Flex Grow’ and ‘Flex Shrink’ properties that give us greater control over the sizing and position of elements as our screen size begins to change. Again, this is all calculated by Flexbox and only requires us to set the priority of sizing for each element in relation to one another. For example, if we set an element to have a ‘Flex-Grow’ of ‘1’, and the other elements within container to ‘2’, we have effectively given the first element priority to grow double the size of the other elements inside the container and the size of the other elements will automatically be calculated by Flexbox to take up the remaining space within the container with a ratio of 2:1:1 or Half/Quarter/Quarter.

As stated above, this is a brief overview of Flexbox and it’s feature set but it has been one of the most invaluable additions to CSS and Frontend development as a whole.