Openverse Audio Catalog Passes 800,000 Files, Audio Support Now Out of Beta

Openverse, formerly known as Creative Commons Search before it joined the WordPress project, has passed an important milestone with its support for audio files. The catalog has now indexed more than 800,000 audio files and its development team has taken audio support out of beta.

Openverse visitors can now confidently search for and explore audio files for use in their videos, podcasts, or other creative projects, all available for free use under Creative Commons licenses. It is an incredible resource that is expanding and improving every day. Users can search on any device, but I found that Openverse audio searches and files are surprisingly easy to navigate on mobile.

Search results can be filtered by permitted use, license, audio category, extension, duration, and source. Previewing works well and each file has attribution information readily available to copy. Clicking on “Get this audio” will take the visitor to the file on the external collection’s website where it can be downloaded.

Deeper integration with WordPress core is on the roadmap for Openverse files. It would also be interesting to see WordPress’ core Audio block integrate access to Openverse, in addition to pulling files from URL or the media library, the same way the Image block allows users to browse Openverse.

Gutenberg contributors are currently exploring how they can add basic Openverse integration to the inserter. Matias Ventura, lead architect of Gutenberg, has proposed adding a Media tab to the existing tabs for Blocks, Patterns, and Reusable blocks, which allow dragging and dropping content into the canvas. This would offer more convenient access to the media library while building pages.

“The inserter panel should support the ability to drag media from the inserter into the canvas, including dragging into block placeholders to quickly update patterns and such with your own content,” Ventura said. “The Media tab would allow users to choose between categorized assets from the media library, and from Openverse.”

Gutenberg engineer Nik Tsekouras created a PR with a prototype, basically a proof-of-concept, to explore how this might be implemented.

Development is still in the exploration and early stages, but this looks like a promising new integration that would make it easy for WordPress users to tap into Openverse’s catalog of 600 million free creative works.

Crawl rate changes

We were recently hit hard by the latest core algorithm update. Since then, we turned off our AMP pages and our crawl rate, which had been rather consistent for the past many months, has been steadily climbing.

Can we draw any conclusions? Is a climbing crawl rate a positive signal that googlebot sees a lot to EAT and therefore is more ambitious about crawling us?

WordPress Themes Directory Adds Style Variation Previews

WordPress.org theme previews just got a major improvement this week with the addition of Style Variation previews. The previews now appear on block themes that include style variations.

Themes that have more variations than what fits in the space beneath the preview pane will display all variations in a carousel with little arrows to navigate to the next ones. Here’s an example with the Pixl theme from Automattic that contains seven brightly colored variations:

It’s also possible to see a selected style variation loaded into the theme preview now. Clicking the ‘Preview’ button will allow users to scroll and explore the theme with their selected style variation applied.

“These style variations, designed by theme authors and packaged in block themes, help users have a diverse set of approaches to their site design allowing them to find one that aligns with their goals,” Automattic-sponsored Meta team contributor Steve Dufresne said. “This feature helps to highlight the flexibility of modern WordPress themes and it’s time to have it baked into the theme directory experience.”

The new style variation previews are fetched from the themes’ /styles/{variation_name}.json files, so theme authors do not have to do anything to make the previews work. They will automatically display for any theme that includes style variations.

Meta team contributors are also working on adding the ability to filter the directory for themes with style variations. Dufresne proposed creating a new style-variations theme tag as the simplest route towards implementing this.

“Doing so will allow the active filtering of these themes without needing to make many if any code changes,” he said in the ticket‘s description.

“A longer-term solution should look at exposing these features visibly somehow without needing to find the obscured filters that we currently have. This feature should be judged equally with others and therefore, this type of implementation should be better debated and falls out of the scope of this ticket and the immediate need to see themes with style variations.”

This is a good observation, as not all WordPress users hunting for themes will know that a tag exists in the Feature Filter. That list is already quite lengthy and not the best user experience for discovering themes with specific features, especially if users don’t understand what the terms mean. Theme authors will want to watch this ticket. If the shorter term solution of creating a new style-variations tag is committed, they will need to update their themes with the tag to be included in the filtering.

Fancy Image Decorations: Masks and Advanced Hover Effects

Welcome to Part 2 of this three-part series! We are still decorating images without any extra elements and pseudo-elements. I hope you already took the time to digest Part 1 because we will continue working with a lot of gradients to create awesome visual effects. We are also going to introduce the CSS mask property for more complex decorations and hover effects.

Fancy Image Decorations series

  • Single Element Magic
  • Masks and Advanced Hover Effects (you are here!)
  • Outlines and Complex Animations (coming October 28 )

Let’s turn to the first example we’re working on together…

The Postage Stamp

Believe or not, all it takes to make postage stamp CSS effect is two gradients and a filter:

img {
  --r: 10px; /* control the radius of the circles */
  padding: calc(2 * var(--r));
  filter: grayscale(.4);
  background: 
    radial-gradient(var(--r),#0000 98%,#fff) round
      calc(-1.5 * var(--r)) calc(-1.5 * var(--r)) / calc(3 * var(--r)) calc(3 * var(--r)),
    linear-gradient(#fff 0 0) no-repeat
      50% / calc(100% - 3 * var(--r)) calc(100% - 3 * var(--r));
}

As we saw in the previous article, the first step is to make space around the image with padding so we can draw a background gradient and see it there. Then we use a combination of radial-gradient() and linear-gradient() to cut those circles around the image.

Here is a step-by-step illustration that shows how the gradients are configured:

Note the use of the round value in the second step. It’s very important for the trick as it ensures the size of the gradient is adjusted to be perfectly aligned on all the sides, no matter what the image width or height is.

From the specification: The image is repeated as often as will fit within the background positioning area. If it doesn’t fit a whole number of times, it is rescaled so that it does.

The Rounded Frame

Let’s look at another image decoration that uses circles…

This example also uses a radial-gradient(), but this time I have created circles around the image instead of the cut-out effect. Notice that I am also using the round value again. The trickiest part here is the transparent gap between the frame and the image, which is where I reach for the CSS mask property:

img {
  --s: 20px; /* size of the frame */
  --g: 10px; /* the gap */
  --c: #FA6900; 

  padding: calc(var(--g) + var(--s));
  background: 
    radial-gradient(farthest-side, var(--c) 97%, #0000) 
      0 0 / calc(2 * var(--s)) calc(2 * var(--s)) round;
  mask:
    conic-gradient(from 90deg at calc(2 * var(--s)) calc(2 * var(--s)), #0000 25%, #000 0)
      calc(-1 * var(--s)) calc(-1 * var(--s)),
    linear-gradient(#000 0 0) content-box;
}

Masking allows us to show the area of the image — thanks to the linear-gradient() in there — as well as 20px around each side of it — thanks to the conic-gradient(). The 20px is nothing but the variable --s that defines the size of the frame. In other words, we need to hide the gap.

Here’s what I mean:

The linear gradient is the blue part of the background while the conic gradient is the red part of the background. That transparent part between both gradients is what we cut from our element to create the illusion of an inner transparent border.

The Inner Transparent Border

For this one, we are not going to create a frame but rather try something different. We are going to create a transparent inner border inside our image. Probably not that useful in a real-world scenario, but it’s good practice with CSS masks.

Similar to the previous example, we are going to rely on two gradients: a linear-gradient() for the inner part, and a conic-gradient() for the outer part. We’ll leave a space between them to create the transparent border effect.

img {
  --b: 5px;  /* the border thickness */
  --d: 20px; /* the distance from the edge */

  --_g: calc(100% - 2 * (var(--d) + var(--b)));
  mask:
    conic-gradient(from 90deg at var(--d) var(--d), #0000 25%, #000 0)
      0 0 / calc(100% - var(--d)) calc(100% - var(--d)),
    linear-gradient(#000 0 0) 50% / var(--_g) var(--_g) no-repeat;
}
Detailing the parts of the image that correspond to CSS variables.

You may have noticed that the conic gradient of this example has a different syntax from the previous example. Both are supposed to create the same shape, so why are they different? It’s because we can reach the same result using different syntaxes. This may look confusing at first, but it’s a good feature. You are not obliged to find the solution to achieve a particular shape. You only need to find one solution that works for you out of the many possibilities out there.

Here are four ways to create the outer square using gradients:

There are even more ways to pull this off, but you get the point.

There is no Best™ approach. Personally, I try to find the one with the smallest and most optimized code. For me, any solution that requires fewer gradients, fewer calculations, and fewer repeated values is the most suitable. Sometimes I choose a more verbose syntax because it gives me more flexibility to change variables and modify things. It comes with experience and practice. The more you play with gradients, the more you know what syntax to use and when.

Let’s get back to our inner transparent border and dig into the hover effect. In case you didn’t notice, there is a cool hover effect that moves that transparent border using a font-size trick. The idea is to define the --d variable with a value of 1em. This variables controls the distance of the border from the edge. We can transform like this:

--_d: calc(var(--d) + var(--s) * 1em)

…giving us the following updated CSS:

img {
  --b: 5px;  /* the border thickness */
  --d: 20px; /* the distance from the edge */
  --o: 15px; /* the offset on hover */
  --s: 1;    /* the direction of the hover effect (+1 or -1)*/

  --_d: calc(var(--d) + var(--s) * 1em);
  --_g: calc(100% - 2 * (var(--_d) + var(--b)));
  mask:
    conic-gradient(from 90deg at var(--_d) var(--_d), #0000 25%, #000 0)
     0 0 / calc(100% - var(--_d)) calc(100% - var(--_d)),
    linear-gradient(#000 0 0) 50% / var(--_g) var(--_g) no-repeat;
  font-size: 0;
  transition: .35s;
}
img:hover {
  font-size: var(--o);
}

The font-size is initially equal to 0 ,so 1em is also equal to 0 and --_d is be equal to --d. On hover, though, the font-size is equal to a value defined by an --o variable that sets the border’s offset. This, in turn, updates the --_d variable, moving the border by the offset. Then I add another variable, --s, to control the sign that decides whether the border moves to the inside or the outside.

The font-size trick is really useful if we want to animate properties that are otherwise unanimatable. Custom properties defined with @property can solve this but support for it is still lacking at the time I’m writing this.

The Frame Reveal

We made the following reveal animation in the first part of this series:

We can take the same idea, but instead of a border with a solid color we will use a gradient like this:

If you compare both codes you will notice the following changes:

  1. I used the same gradient configuration from the first example inside the mask property. I simply moved the gradients from the background property to the mask property.
  2. I added a repeating-linear-gradient() to create the gradient border.

That’s it! I re-used most of the same code we already saw — with super small tweaks — and got another cool image decoration with a hover effect.

/* Solid color border */

img {
  --c: #8A9B0F; /* the border color */
  --b: 10px;   /* the border thickness*/
  --g: 5px;  /* the gap on hover */

  padding: calc(var(--g) + var(--b));
  --_g: #0000 25%, var(--c) 0;
  background: 
    conic-gradient(from 180deg at top var(--b) right var(--b), var(--_g))
     var(--_i, 200%) 0 / 200% var(--_i, var(--b)) no-repeat,
    conic-gradient(at bottom var(--b) left  var(--b), var(--_g))
     0 var(--_i, 200%) / var(--_i, var(--b)) 200% no-repeat;
  transition: .3s, background-position .3s .3s;
  cursor: pointer;
}
img:hover {
  --_i: 100%;
  transition: .3s, background-size .3s .3s;
}
/* Gradient color border */

img {
  --b: 10px; /* the border thickness*/
  --g: 5px;  /* the gap on hover */
  background: repeating-linear-gradient(135deg, #F8CA00 0 10px, #E97F02 0 20px, #BD1550 0 30px);

  padding: calc(var(--g) + var(--b));
  --_g: #0000 25%, #000 0;
  mask: 
    conic-gradient(from 180deg at top var(--b) right var(--b), var(--_g))
     var(--_i, 200%) 0 / 200% var(--_i, var(--b)) no-repeat,
    conic-gradient(at bottom var(--b) left  var(--b), var(--_g))
     0 var(--_i, 200%) / var(--_i, var(--b)) 200% no-repeat,
    linear-gradient(#000 0 0) content-box;
  transition: .3s, mask-position .3s .3s;
  cursor: pointer;
}
img:hover {
  --_i: 100%;
  transition: .3s, mask-size .3s .3s;
}

Let’s try another frame animation. This one is a bit tricky as it has a three-step animation:

The first step of the animation is to make the bottom edge bigger. For this, we adjust the background-size of a linear-gradient():

You are probably wondering why I am also adding the top edge. We need it for the third step. I always try to optimize the code I write, so I am using one gradient to cover both the top and bottom sides, but the top one is hidden and revealed later with a mask.

For the second step, we add a second gradient to show the left and right edges. But this time, we do it using background-position:

We can stop here as we already have a nice effect with two gradients but we are here to push the limits so let’s add a touch of mask to achieve the third step.

The trick is to make the top edge hidden until we show the bottom and the sides and then we update the mask-size (or mask-position) to show the top part. As I said previously, we can find a lot of gradient configurations to achieve the same effect.

Here is an illustration of the gradients I will be using:

I am using two conic gradients having a width equal to 200%. Both gradients cover the area leaving only the top part uncovered (that part will be invisible later). On hover, I slide both gradients to cover that part.

Here is a better illustration of one of the gradients to give you a better idea of what’s happening:

Now we put this inside the mask property and we are done! Here is the full code:

img {
  --b: 6px;  /* the border thickness*/
  --g: 10px; /* the gap */
  --c: #0E8D94;

  padding: calc(var(--b) + var(--g));
  --_l: var(--c) var(--b), #0000 0 calc(100% - var(--b)), var(--c) 0;
  background:
    linear-gradient(var(--_l)) 50%/calc(100% - var(--_i,80%)) 100% no-repeat,
    linear-gradient(90deg, var(--_l)) 50% var(--_i,-100%)/100% 200% no-repeat;  
  mask:
    conic-gradient(at 50% var(--b),#0000 25%, #000 0) calc(50% + var(--_i, 50%)) / 200%,
    conic-gradient(at 50% var(--b),#000 75%, #0000 0) calc(50% - var(--_i, 50%)) / 200%;
  transition: 
    .3s calc(.6s - var(--_t,.6s)) mask-position, 
    .3s .3s background-position,
    .3s var(--_t,.6s) background-size,
    .4s transform;
  cursor: pointer;
}
img:hover {
  --_i: 0%;
  --_t: 0s;
  transform: scale(1.2);
}

I have also introduced some variables to optimize the code, but you should be used to this right now.

What about a four-step animation? Yes, it’s possible!

No explanation for this because it’s your homework! Take all that you have learned in this article to dissect the code and try to articulate what it’s doing. The logic is similar to all the previous examples. The key is to isolate each gradient to understand each step of the animation. I kept the code un-optimized to make things a little easier to read. I do have an optimized version if you are interested, but you can also try to optimize the code yourself and compare it with my version for additional practice.

Wrapping up

That’s it for Part 2 of this three-part series on creative image decorations using only the <img> element. We now have a good handle on how gradients and masks can be combined to create awesome visual effects, and even animations — without reaching for extra elements or pseudo-elements. Yes, a single <img> tag is enough!

We have one more article in this series to go. Until then, here is a bonus demo with a cool hover effect where I use mask to assemble a broken image.

Fancy Image Decorations series

  • Single Element Magic
  • Masks and Advanced Hover Effects (you are here!)
  • Outlines and Complex Animations (coming October 28 )

Fancy Image Decorations: Masks and Advanced Hover Effects originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.

Futuristic CSS

I run the yearly State of CSS survey, asking developers about the CSS features and tools they use or want to learn. The survey is actually open right now, so go take it!

The goal of the survey is to help anticipate future CSS trends, and the data is also used by browser vendors to inform their roadmap.

This year, Lea Verou pitched in as lead survey designer to help select which CSS features to include. But even though we added many new and upcoming features (some of which, like CSS nesting, aren’t even supported yet), some features were so far off, far-fetched, and futuristic (or just plain made-up!) that we couldn’t in good conscience include them in the survey.

But it’s fun to speculate. So today, let’s take a look at some CSS features that might one day make their way to the browser… or not!

CSS Toggles

The CSS checkbox hack has been around for over ten years, and it still remains the only way to achieve any kind of “toggle effect” in pure CSS (I actually used it myself recently for the language switcher on this page).

But what if we had actual toggles, though? What if you could handle tabs, accordions, and more, all without writing a single line of JavaScript code?

That’s exactly what Tab Atkins and Miriam Suzanne’s CSS Toggles proposal wants to introduce. The proposal is quite complex, and the number of details and edge cases involved makes it clear that this will be far from trivial for browser vendors to implement. But hey, one can dream, and in fact, an experimental implementation recently appeared in Chrome Canary!

CSS Switch Function

A major trend in recent years — not only in CSS but in society at large — has been recognizing that we’ve often done a poor job of serving the needs of a diverse population. In terms of web development, this translates into building websites that can adapt not only to different devices and contexts but also to different temporary or permanent disabilities such as color blindness or motion sickness.

The result is that we often need to target these different conditions in our code and react to them, and this is where Miriam Suzanne’s switch proposal comes in:

.foo {
  display: grid;
  grid-template-columns: switch(
    auto /
     (available-inline-size > 1000px) 1fr 2fr 1fr 2fr /
     (available-inline-size > 500px) auto 1fr /
   );
}

While the initial proposal focuses on testing available-inline-size as a way to set up grid layouts, one can imagine the same switch syntax being used for many other scenarios as well, as a complement to media and container queries.

Intrinsic Typography

Intrinsic typography is a technique coined by Scott Kellum, who developed the type-setting tool Typetura. In a nutshell, it means that instead of giving the text a specific size, you let it set its own size based on the dimensions of the element containing it:

Instead of sizing and spacing text for each component at every breakpoint, the text is given instructions to respond to the areas it is placed in. As a result, intrinsic typography enables designs to be far more flexible, adapting to the area in which it is placed, with far less code.

This goes beyond what the already quite useful Utopia Type Scale Calculator can offer, as it only adapts based on viewport dimensions — not container dimensions.

The only problem with Typetura is that it currently requires a JavaScript library to work. As is often the case, though, one can imagine that if this approach proves popular, it’ll make its way to native CSS sooner or later.

We can already achieve a lot of this today (or pretty soon, at least) with container query units, which lets you reference a container’s size when defining units for anything inside it.

Sibling Functions

It’s common in Sass to write loops when you want to style a large number of items based on their position in the DOM. For example, to progressively indent each successive item in a list, you could do the following:

@for $i from 1 through 10 {
  ul:nth-child(#{$i}) {
    padding-left: #{$i * 5px}
  }
}

This would then generate the equivalent of 10 CSS declarations. The obvious downside here is that you end up with ten lines of code! Also, what if your list has more than ten elements?

An elegant solution currently in the works is the sibling-count() and sibling-index() functions. Using sibling-index(), the previous example would become:

ul > li {
  padding-left: calc(sibling-index() * 5px); 
}

It’s an elegant solution to a common need!

CSS Patterns

A long, long time ago, I made a little tool called Patternify that would let you draw patterns and export them to base64 code to be dropped inline in your CSS code. My concept was to let you use patterns inside CSS but with CSS Doodle. Yuan Chuan had the opposite idea: what if you used CSS to create the patterns?

Now pure-CSS pattern-making has been around for a while (and recently got more elaborate with the introduction of conic gradients), but Yuan Chuan definitely introduced some key new concepts, starting with the ability to randomize patterns or easily specify a grid.

Obviously, CSS Doodle is probably far more intricate than a native pattern API would ever need to be, but it’s still fun to imagine what we could do with just a few more pattern-focused properties. The @image proposal might be a step in that direction, as it gives you tools to define or modify images right inside your CSS code.

Native HTML/CSS Charts

Now we’re really getting into wild speculation. In fact, as far as I know, no one else has ever submitted a proposal or even blogged about this. But as someone who spends a lot of their time working on data visualizations, I think native HTML/CSS charts would be amazing!

Now, most charts you’ll come across on the web will be rendered using SVG or sometimes Canvas. In fact, this is the approach we use for the surveys through the DataViz library Nivo.

The big problem with this, though, is that neither SVG nor Canvas are really responsive. You can scale them down proportionally, but you can’t have the same fine-grained control that something like CSS Grid offers.

That’s why some have tried to lay out charts using pure HTML and CSS, like charting library Charts.css.

The problem here becomes that once you go past simple blocky bar charts, you need to use a lot of hacks and complex CSS code to achieve what you want. It can work, and libraries like Charts.css do help a lot, but it’s not easy by any means.

That’s why I think having native chart elements in the browser could be amazing. Maybe something like:

<linechart>
  <series id=”series_a”>
    <point x=”0” y=”2”/>
    <point x=”1” y=”4”/>
    <point x=”2” y=”6”/>
  </series>
  <series id=”series_b”>
    <point x=”0” y=”6”/>
    <point x=”1” y=”4”/>
    <point x=”2” y=”2”/>
  </series>
</linechart>

You would then be able to control the chart’s spacing, layout, colors, and so on by using good old CSS — including media and container queries, to make your charts look good in every situation.

Of course, this is something that’s already possible through web components, and many are experimenting in this direction. But you can’t beat the simplicity of pure HTML/CSS.

And Also…

Here are a couple more quick ones just to keep you on your toes:

Container Style Queries

You might already know that container queries let you define an element’s style based on the width or height of its containing element. Container style queries let you do the same, but based on that container’s — you guessed it — style, and there’s actually already an experimental implementation for it in Chrome Canary.

As Geoff Graham points out, this could take the form of something like:

.posts {
  container-name: posts;
}

@container posts (background-color: #f8a100) {
  /* Change styles when `posts` container has an orange background */
  .post {
    color: #fff;
  }
}

This is a bit like :has(), if :has() lets you select based on styles and not just DOM properties and attributes, which, now that I think about it, might be another cool feature too!

Random Numbers

People have tried to simulate a random number generator in CSS for a long time (using the “Cicada Principle” technique and other hacks), but having true built-in randomness would be great.

A CSS random number generator would be useful not just for pattern-making but for any time you need to make a design feel a little more organic. There is a fairly recent proposal that suggests a syntax for this, so it’ll be interesting to see if we ever get CSS randomness!

Grid Coordinates Selector

What if you could target grid items based on their position in a grid or flexbox layout, either by styling a specific row or column or even by targeting a specific item via its x and y coordinates?

It might seem like a niche use case at first, but as we use Grid and Subgrid more and more, we might also need new ways of targeting specific grid items.

Better Form Styling

Styling form inputs has traditionally been such a pain that many UI libraries decide to abstract away the native form input completely and recreate it from scratch using a bunch of divs. As you might imagine, while this might result in nicer-looking forms, it usually comes at the cost of accessibility.

And while things have been getting better, there’s certainly still a lot we could improve when it comes to forming input styling and styling native widgets in general. The new <selectmenu> element proposal is already a great start in that direction.

Animating To Auto

We’ve all run into this: you want to animate an element’s height from 0 to, well, however big it needs to be to show its contents, and that’s when you realize CSS doesn’t let you animate or transition to auto.

There are workarounds, but it would still be nice to have this fixed at the browser level. For this to happen, we’ll also need to be able to use auto inside calc, for example calc(auto / 2 + 200px / 2).

Predicting The Future

Now let’s be real for a second: the chances of any of these features being implemented (let alone supported in all major browsers) are slim, at least if we’re looking at the next couple of years.

But then again, people thought the same about :has() or native CSS nesting, and it does look like we’re well on our way to being able to use those two — and many more — in our code sooner than later.

So let’s touch base again five years from now and see how wrong I was. Until then, I’ll keep charting the course of CSS through our yearly surveys. And I hope you’ll help us by taking this year’s survey!

Thanks to Lea Verou and Bramus Van Damme for their help with this article.

Advancements in Cloud-Native and Kubernetes Observability

This is an article from DZone's 2022 Kubernetes in the Enterprise Trend Report.

For more:


Read the Report

In today's world, it's more important than ever to have visibility into your system's performance and health. Modern applications rely on complex microservices architectures and cloud-native technologies, like Kubernetes. Observability helps us understand not just application behavior, but also infrastructure configuration changes and dependencies, as they happen in real-time. 

60+ Internet Usage Statistics and Latest Trends for 2022

Are you curious about internet usage statistics?

When you learn how people around the world use the internet, it can help you understand what your business’s online presence should look like and how users will interact with your website.

In this article, we’ll share the latest internet usage statistics and trends that all business owners and marketers should know.

Internet Usage Statistics and Trends

Key Internet Statistics and Trends (2022)

We’ve split up these internet statistics into several different categories. You can use the table of contents below to jump to the internet stats you’re most interested in.

General Internet Usage Statistics

General Internet Usage Statistics
  • As of April 2022, there were five billion internet users worldwide, which is 63% of the global population. 
  • China, India, and the United States rank ahead of all other countries in terms of internet users. As of February 2022, China had more than a billion internet users, and India had approximately 658 million online users.
  • The global internet penetration rate is 62.5%. 
  • Northern Europe ranks first with a 98% internet penetration rate among the population. 
  • The countries with the highest internet penetration rate worldwide were the UAE, Denmark, and Ireland. 
  • From the year 2000 to 2022, the usage of the internet increased by 1,355%.
  • The Middle East has seen a 6,141% growth in internet usage since 2000. 
  • There are still over 2.7 billion people in the world with no internet access.
  • The most popular language on the internet is English. 25.9% of the internet is in English, 19.4% is in Chinese, and 8% is in Spanish.
  • 32% of internet users worldwide are 25 to 34 years old.

Internet usage increased by a whopping 1,355% from the year 2000 to 2022. Now, there are 5 billion internet users worldwide, which is 63% of the global population.

With so many internet users on the planet today, it’s important that every business has a website. Otherwise, you’re missing out on a ton of people who could discover you online.

If you haven’t created a website yet, simply follow our tutorial on how to make a WordPress website for step by step instructions. Or, you can read this guide on how to start an online store.

Web Search Statistics

Web Search Statistics
  • The Chrome web browser is used by 65.52% of internet users worldwide. Chrome is followed by Safari, which is used by 18.78% of internet users in the world. Microsoft Edge is the 3rd most popular browser at 4.3%, and Firefox is 4th with 3.16%. 
  • The three most popular websites on the internet are Google.com, YouTube.com, and Tmall.com, which is a Chinese online retail platform. 
  • The most popular web search engine is Google, with 92.7% of the market share. Google is followed by Bing, which has only 2.8% of the market share. 
  • The most searched words on Google USA in 2022 were weather, Facebook, and YouTube. Other search words in the top 10 were Amazon, NBA, Gmail, NFL, and Google Translate. 
  • The Google Search Index contains hundreds of billions of pages that add up to over 100,000,000 gigabytes in size. 
  • Almost 30% of global web traffic is generated via online search usage. 
  • There are approximately 106,083 Google searches made every 1 second. 
  • According to a Moz survey, 84% of respondents use Google 3 times a day or more. 

Search engines like Google play an important role in how users find and navigate to different websites. This is proven by the fact that 30% of global web traffic is generated via an online search.

In order for your website to be discovered by users in search engine results, it needs to be properly optimized for SEO.

Search engine optimization might seem complicated, especially for beginners, but it doesn’t have to be. See this guide on WordPress SEO to get actionable tips for improving your SEO and increasing organic traffic.

You can also follow this tutorial on how to set up All in One SEO for WordPress.

All in One SEO, the best WordPress SEO plugin, will help you set up the proper SEO foundations for your site in minutes. Plus, the SEO audit feature will analyze your entire website to detect any critical errors that could be harming your rankings. Then, provide you with easy recommendations for improvement.

Mobile Internet Usage Statistics

Mobile Internet Usage Statistics
  • Over 90% of the global internet population uses a mobile device to go online. 
  • In 2021, internet users worldwide spent over 54.7% of their time browsing the internet via mobile phones. This is an increase of 5% compared to 2020, when global internet users spent almost 51% of their online time accessing the internet via mobile devices. 
  • Mobile internet traffic accounts for almost 55% of total web traffic. In mobile-first markets such as Asia and Africa, mobile connections account for an even larger share of webpage views. 
  • Mobile ownership and internet usage are forecast to keep growing in the future. This is largely due to mobile technologies becoming more affordable and readily available.
  • Samsung has 28.76% of the mobile vendor market share worldwide. Apple is in a close second with 27.83% of the worldwide market. 
  • In 2021, the number of cities with access to 5G reached 1.662 worldwide, which is an increase of more than 20% over the course of the year. 
  • The top three countries with the most extensive 5G in 2022 were China, South Korea, and the United States. 
  • TikTok was the most downloaded app globally in 2021, with 656 million downloads. 

In the not-so-distant past, you could only access the internet from a desktop computer. But now, it’s clear to see from these statistics that people are loving being able to access the internet on the go.

Over 90% of the global internet population uses a mobile device to go online, and mobile internet traffic accounts for almost 55% of total web traffic.

Because of this, it’s important that your website looks great and is equally functional on mobile phones and tablets as it is on desktops.

See our recommendations for the best responsive WordPress themes. These themes will automatically adjust to the users’ screen size so you can provide the best experience for mobile users.

Website and Domain Statistics 

Website and Domain Statistics
  • There are over 1.5 billion websites on the internet today. But, less than 200 million are active. 
  • There are currently 370.7 million registered domain names in the world. 
  • China has the highest number of registered domains, with over 8.8 million domain names accounting for 33.80% of the global share. 
  • The US has only 3.6 million domains registered, which amounts to 14.04% of the global share.
  • The most common domain name extensions are .com, .net, .org, .co, .us. 
  • More than 43% of all websites are using WordPress as their content management system. 
  • WordPress holds nearly 65% of the CMS market share. 
  • 38% of the top 10,000 websites are powered by WordPress.
  • Every day, more than 1000 new WordPress sites join the top 10 million websites tracked by W3Techs.com.

It’s easier than ever to create a website on the world wide web today. That might be why there are over 1.5 billion websites on the internet. But, less than 200 million of those are active.

If you have an inactive website, to get it up and running, all you need is web hosting and a domain name.

To find the right options for your needs, you can check out our recommendations for the best web hosting services and the best domain name registrars on the market.

At WPBeginner, we always recommend choosing Bluehost. It’s one of the most reliable hosting companies in the world, and they’re officially by WordPress, the best website builder software. Plus, WPBeginner users can get a free domain name, free SSL certificate, and a discount on web hosting!

Online Shopping Statistics 

Online Shopping Statistics
  • In the United States alone, we’re expecting to have 300 million online shoppers in 2023. That’s 91% of the country’s current population. 
  • The countries with the leading average eCommerce revenue per shoppers are: USA ($1,804), UK ($1,629), and Sweden ($1,446). 
  • 72% of online shoppers are women, while 68% are men.
  • Millennials aged 25-34 are the largest group of online shoppers in the US. 
  • 59% of shoppers say they do research online before they buy in order to make the best possible choice.
  • 74% of in-store shoppers searched online before going to the physical location. They said they searched for information like the closest store near them, in-stock items, hours, directions, and contact information. 
  • 67% of users admit to window shopping for fun on their smartphones.
  • 77% of these digital window shoppers make impulse purchases. If they don’t purchase right away, 70% of them will come back and make a purchase from their device within the first hour of seeing the product.

In 2023, there’s expected to be 300 million online shoppers in the United States alone. That’s 91% of the country’s current population!

But, even with so many online shoppers, it can be hard to generate traffic and sales for your online store because there’s so much competition.

Since 59% of shoppers say they do research online before buying something, it’s vital that your eCommerce website shows up in search engine results if you want to compete with the big guys. You can read our ultimate WooCommerce SEO guide for easy tips.

You can also check out our list of the best WooCommerce plugins for your store. These plugins can help you reduce cart abandonment, create custom checkout pages, boost affiliate sales, and much more.

Social Media and Email Usage Statistics

Social Media and Email Usage Statistics
  • Of the five billion internet users worldwide, 4.65 billion, or over 93%, are social media users. 
  • Over 230 billion tweets were tweeted on Twitter so far this year. 
  • Nearly 27 billion photos have been uploaded on Instagram this year. 
  • Over 2 trillion videos have been viewed on YouTube so far in 2022. 
  • There are over 4.1 billion email accounts registered by internet users worldwide, that’s 107 million more than in 2019. This number is expected to grow by over 4.3 billion by the end of 2023.
  • Nearly 75 trillion emails have been sent so far in 2022. 
  • 61% of consumers prefer to be contacted by brands through email. 
  • 99% of email users check their email every day, with some checking as much as 20 times a day. 
  • 58% of users check their email before they check out social media or the news.
  • 40% of people 18 years old and under will always open an email on their mobile device first.

Social media and email are some of the most popular activities online, according to these internet statistics: There are 4.65 billion social media users worldwide and 4.1 billion registered email accounts globally.

Instead of waiting for your target audience to visit your website, you should be reaching out to them on social media platforms and via email. This will make it easier to drive traffic to your site and increase sales.

You can check out our social media cheat sheet for tips on how to set up your social media profiles correctly.

Then, follow this step by step tutorial on how to create an email newsletter.

Internet of Things (IoT) Statistics 

Internet of Things IoT Statistics
  • The estimated number of IoT devices will jump to 125 billion by 2030.
  • By 2022, the smart home (IoT) market is projected to grow to $53.45 billion.
  • In 2021, about 41.9% of US households owned a smart home device. This is predicted to increase to 48.4% by 2025.
  • Globally, an estimated 127 new devices connect to the Internet every second.
  • The wearable devices market will be worth $1.1 billion by 2022.
  • Approximately 70% of new vehicles worldwide will be internet-connected by 2023.
  • There will be more than 3 internet-connected devices for every human on the planet by 2023.

The Internet of Things, or IoT, refers to the many physical objects that have been embedded with sensors and software and are now connected to the internet.

According to these internet statistics, there will be more than 3 internet-connected devices for every human on the planet by 2023 and the estimated number of IoT devices will jump to 125 billion by 2030.

So, expect to see more smart refrigerators, locks, doorbells, watches, vehicles, and many other devices, in the near future.

List of Sources

Statista, OptinMonster, BroadbandSearch, Nameboy, InternetWorldStats, Internet Live Stats, StatCounter, Radicati, Amazon, SimilarWeb, Google, Mobile Magazine, Business of Apps, IHS Markit, McKinsey, Moz, WPBeginner, eMarketer, Cisco

That’s a wrap. We hope these internet usage statistics will provide you with valuable insights for growing your online business. You might also want to check out our ultimate list of blogging statistics, or see our roundup of web design industry stats and trends.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

The post 60+ Internet Usage Statistics and Latest Trends for 2022 first appeared on WPBeginner.