Back to Top

14 Essential Features for Taking Payments on Your Website

There are a lot of things I used to buy in person that I now buy online. I wouldn’t call myself lazy, but it’s just so much easier to carry a box of paper towels from my doorstep into my apartment than it is to carry it down the street from my local grocery store.

And I’m not alone. Whether it’s because of the larger selection, better pricing, convenience, or something else, a lot more people are buying stuff online nowadays instead of in person. Despite the growing number of online shoppers, people are still wary of the setbacks of paying for stuff online. In particular, people still get nervous about giving their personal and credit card information to online retailers.

If you’re an ecommerce business, a big part of attracting and delighting your customers will be providing them with a stable, reliable, secure, and smooth online shopping experience. That starts with creating your payment gateway.

How to Create a Payment Gateway

A payment gateway is a technological front-end component of payment processing that bridges the gap between your business’s financials and the customer’s financials during a transaction. To get an understanding of what I mean, it helps to know how payment processing works.

On one hand, the customer’s financial institution must approve or deny the purchase. On the other, your payment service provider (PSP) and merchant account need this data to process the transaction and receive payment. Coordinating these moving parts is your payment gateway.

Here’s how to set it up.

1. Open a merchant account.

A merchant account is a type of business account that accepts payments of multiple types, including credit cards. Funds from online purchases land in your merchant account after they’ve been processed, and you’ll then be able to transfer them into your business banking account.

In order to create a payment gateway, it helps to already have a merchant account set up as it will be the final destination for funds from successful transactions.

2. Choose a payment service provider (PSP).

While the gateway acts as the front-end of payment processing for a transaction (i.e. the interface that customers directly interact with), the payment service provider facilitates the transaction on the back-end, passing financial data across all the moving parts. In order to create a payment gateway for your customers to interact with, you must first set up a PSP to hook it up to.

3. Decide whether you want to build or buy your payment gateway.

You have the option to build a payment gateway yourself (custom) or partner with a provider to get one “out of the box.”

Custom builds may be able to suit a wider range of your unique needs and save on transaction fees. However, it may be costly to develop and maintain.

An “out of the box” payment gateway is quicker to set up, but you’ll want to ensure that it comes with all of the features that you need. Some may even come with PSP functionality, which saves you time during the setup.

Top gateway providers in the industry include Authorize.Net, Stripe, and PayPal.

If you plan to take payments on your website, then be sure you’re checking everything off from the list below.

Essential Features for Taking Payments on Your Website

1. Multiple Login Options

While it’s more convenient for your marketing to require shoppers to create an account before placing an order, it doesn’t always benefit your customers. You might lose people along the way if you don’t give them the option to check out as a guest. Remember: You can always ask them to create an account once they’ve bought from you and feel a little closer to your brand.

example login and guest checkout

Image Credit: VWO

You should also think about offering shoppers the option of logging in with one of their social media profiles, like Facebook or Twitter. This can reduce registration friction because it makes the login process a lot faster. Make sure you add that you’ll never post without the customer’s permission, if applicable.

The caveat of allowing a social login? It’s the one connection shoppers will have to log in — and if anything changes about that connection (the terms of service for the social network change or they delete their account on the network), their ability to log into your site will change, too. So if you’re allowing people to authenticate with social logins, figure out other ways ask for more contact information.

2. Authentication/Login Layers

Customers who do have an account with you want to know that their information is safe — even if they forget their login information. To give them peace of mind, be sure to require several verification layers before you restore their login information. For example, if a customer forgets her password, your site could require various security questions before sending an email to a pre-determined email address.

3. PCI Compliance

The PCI Security Standards Council (PCI SSC) defines a series of specific Data Security Standards (DSS) that are relevant to all merchants, regardless of revenue and credit card transaction volumes.

If you host and manage your own ecommerce platform, it’s your responsibility to ensure PCI compliance at the required compliance level, which is based on credit or debit card transaction volume over a 12-month period. Most SaaS shopping carts will have PCI compliance built in.

4. Integrated Payment Processor

While you can get away with payment processors like PayPal, Stripe, Google Pay, and Amazon Pay if you have a very small website and a low number of transactions, it’s much better to integrate a payment process directly into your website.

With some processors, online shoppers get redirected off your website to a pay site that doesn’t look like yours — which disrupts their experience, visually disconnects them from your brand, and can be confusing or nerve-racking and prompt them to abandon their cart.

An integrated payment solution that processes your customers’ information on your own server allows for more flexibility and customization. Plus, it’s a much smoother experience for your customers.

An integrated payment page will require an SSL certificate to ensure a secure connection. Which brings me to my next point…

5. SSL Certificate

Every ecommerce website needs an SSL certificate to protect customers’ personal and credit card information. SSL is the standard security technology that makes sure all data passed between a web server and a browser remain private.

Without it, hackers can steal your customers’ information — and online shoppers won’t feel safe submitting their information on your website. Online shoppers will be able to tell your website’s secure when they see an “https://” at the beginning of your URL, as opposed to just “http://”.

Read our article to learn how to get an SSL certificate on your website.

6. Credit Card Logos and Security Seals

Speaking of keeping online shoppers at ease, you might want to add credit card logos and security seals to your website to reassure shoppers that your site is a secure, trusted place to do business. Make them visible at least in the shopping cart and checkout phases of your site, or even try integrating them into the footer of your website.

7. Checkout Buttons

The less time customers have to spend looking for an option to check out, the sooner they’ll take action and buy. We recommend putting checkout calls-to-action — in a color that really stands out — at the top and bottom of your web pages.

Check out this checkout button example from ModCloth (no pun intended):

checkout button example from modcloth

Want a little button design help? Click here to see get free call-to-action templates.

8. Visual Checkout Process

If you need to spread the checkout process across multiple pages, give shoppers a visual indicator of how far they’ve progressed and how long they have left to go. Again, ModCloth does this particularly well:

visual checkout process example from modcloth

9. Return & Refund Policy

Shoppers don’t get to physically look at or feel a product before they purchase it online, which can make some people nervous and disincentivize them to buy. To help mitigate this, make your return and refund policy readily available. Consider making it part of the checkout process and even putting it in the footer of your website.

Be sure your policy is succinct, informative, engaging, and easy to understand. Say whether the customer will get a refund or an in-store credit, stipulate a timeframe for returns, define the condition you expect the product to be in, and disclose any fees up-front — like who will cover the cost of shipping.

10. Clear Path to Your Contact Information

Online shoppers want to know they can easily reach your company for support — especially if they’re first-time customers. If you don’t give them a clear path to your contact information, they may either hesitate to buy from you, or they may not get the support they need to complete a transaction.

Include contact information like a phone number (with availability hours), email address, street address, and social media accounts. Preferably, list this information as text (not as an image) so it’ll get picked up by search engines in local searches. Some retailers also like to offer live chat options — just be sure that you’ve integrated it with your customer records so you can build smarter marketing campaigns in the future.

11. Detailed Confirmation Page Before Checkout

Before allowing online shoppers to check out, you’ll want to take them to a detailed confirmation page before finishing the transaction. This page should let them review their cart, give them the option to change the quantity or remove items, include a final price (including tax and shipping), and indicate when the items will be shipped.

12. Optimized Checkout Page Design

The best checkout pages are functional, secure, attractive, and easy to use and navigate. The last thing you need is someone with purchasing intent getting cold feet at the last moment simply because they can’t use your system or don’t have faith in it.

13. Mobile Payments

Buyers don’t just buy on desktop. They also buy on mobile, so your payment gateway must be responsible and easy to navigate for mobile users too. If your have a mobile app, you may also need additional functionality to process payments on iOS and Android.

14. Confirmation Email

Finally, you’ll want to create a confirmation email that includes the order number, the product, payment, and shipping information, and your return and refund policy — just in case. If possible, use a real “from” email address (instead of that can be answered by a member of your customer support staff. You’ll also want to make the order confirmation page easy to print. This is the time when you can offer guest customers the option to sign up for an account, too.

Setting up your ecommerce business is exciting, even if all the details can be a little overwhelming. With a little bit of planning, you’ll be well on your way to processing ecommerce transactions left and right.

Editor’s note: This post was originally published in September 2015 and has been updated for comprehensiveness.

Reblogged 40 minutes ago from

A Plain-English Guide to Market Research

In some circles, market research is a catch-all term for asking the industry what it wants. “Do we know what the demand is for this product? Who’s even looking for our services? Let me do some market research to find out,” someone might say.

But what does that actually mean?

Here’s a simple definition of market research that encompasses all the possible goals of this practice, in fewer than 100 words:

Market research can answer various questions about the state of an industry, but it’s hardly a crystal ball that marketers can rely on for insights on their customers. Market researchers investigate several areas of the market, and it can take weeks or even months to paint an accurate picture of the business landscape.

However, researching just one of those areas can make you more intuitive to who your buyers are and how to deliver value that no other business is offering them right now.

Certainly you can make sound judgment calls based on your experience in the industry and your existing customers. However, keep in mind that market research offers benefits beyond those strategies. There are two things to consider: 

  1. Your competitors also have experienced individuals in the industry and a customer base. It’s very possible that your immediate resources are, in many ways, equal to those of your competition’s immediate resources. Seeking a larger sample size for answers can provide a better edge. 
  2. Your customers don’t represent the attitudes of an entire market. They represent the attitudes of the part of the market that is already drawn to your brand. 

Here are some examples of insights you can gain from market research:

  • Consumer attitudes about a particular topic, pain, product, or brand
  • Whether there’s demand for the business initiatives you’re investing in
  • Where to advertise or sell to (geographically or online)
  • Unaddressed or underserved customer needs that can be flipped into selling opportunity
  • Attitudes about pricing for a particular product or service

Getting answers to these questions based on real data can help you make sound business decisions and minimize risk.

Types of Market Research

To give you an idea of how extensive market research can get, consider that it can either be qualitative or quantitative in nature — depending on the studies you conduct and what you’re trying to learn about your industry. Qualitative research is concerned with public opinion, and explores how the market feels about the products currently available in that market. Quantitative research is concerned with data, and looks for relevant trends in the information that’s gathered from public records.

Let’s talk about four different types of market research studies you can conduct, a potential goal of each one, and how these studies help you better understand your market.


Qualitative information

Interviews are the personal, one-on-one conversations you can have with the buyers in your industry. You can conduct interviews in person or over the phone.

Your interviewees can answer questions about themselves to help you design your buyer personas. These buyer personas describe your ideal customer’s age, family size, budget, job title, the challenges they face at work, and similar aspects of their lifestyle. Having this buyer profile in hand can shape your entire marketing strategy, from the features you add to your product to the content you publish on your website.

Focus Groups

Qualitative information

Focus groups are similar to interviews, but in this case, you’re assembling a large group of people for one shared interview. A focus group consists of people who have at least one element of your buyer persona in common — age or job title, for instance.

This type of market research can give you ideas for product differentiation, or the qualities of your product that make it unique in the marketplace. Consider asking your focus group questions about (and showing them examples of) your services, and ultimately use the group’s feedback to make these services better.


Quantitative information

Surveys are a form of quantitative research, and you can distribute them over the phone, via email, or through an online survey. A survey could cater to people who’ve downloaded content from your website or interacted with a member of your business.

Enough completed surveys can help you determine your customer satisfaction level. This denotes how happy your customers are with what you’re selling them. You might include questions like, “How well did we solve your problem?” and “Would you recommend our product to a friend?”

Secondary Data

Quantitative information

The interviews, focus groups, and surveys are all sources of primary data. Secondary data, on the other hand, is the public information — online and offline — that characterizes your industry. This includes competitor websites, social media business pages, trade magazines, market reports, and even census data published by the government.

If you examine enough secondary data, you can learn how much brand awareness you have in the marketplace compared to the companies that provide the same product or service as you.

The market research you perform doesn’t have to include every source of information described above. What data you collect will depend on the needs of your business and what you might be most interested in at the moment. 

Editor’s note: This post was originally published in July 2018 and has been updated for comprehensiveness.

Reblogged 41 minutes ago from

Rethinking your strategic planning for 2021

How to change your approach to strategic planning in this fast-moving business environment.

Please visit Marketing Land for the full article.

Reblogged 7 hours ago from

What is broken that a CDP will fix?

What functionality would a CDP replace in your marketing stack?

Please visit Marketing Land for the full article.

Reblogged 7 hours ago from

How We Improved SmashingMag Performance

Every web performance story is similar, isn’t it? It always starts with the long-awaited website overhaul. A day when a project, fully polished and carefully optimized, gets launched, ranking high and soaring above performance scores in Lighthouse and WebPageTest. There is a celebration and a wholehearted sense of accomplishment prevailing in the air — beautifully reflected in retweets and comments and newsletters and Slack threads.

Yet as time passes by, the excitement slowly fades away, and urgent adjustments, much-needed features, and new business requirements creep in. And suddenly, before you know it, the code base gets a little bit overweight and fragmented, third-party scripts have to load just a little bit earlier, and shiny new dynamic content finds its way into the DOM through the backdoors of fourth-party scripts and their uninvited guests.

We’ve been there at Smashing as well. Not many people know it but we are a very small team of around 12 people, many of whom are working part-time and most of whom are usually wearing many different hats on a given day. While performance has been our goal for almost a decade now, we never really had a dedicated performance team.

After the latest redesign in late 2017, it was Ilya Pukhalski on the JavaScript side of things (part-time), Michael Riethmueller on the CSS side of things (a few hours a week), and yours truly, playing mind games with critical CSS and trying to juggle a few too many things.

As it happened, we lost track of performance in the busyness of day-to-day routine. We were designing and building things, setting up new products, refactoring the components, and publishing articles. So by late 2020, things got a bit out of control, with yellowish-red Lighthouse scores slowly showing up across the board. We had to fix that.

That’s Where We Were

Some of you might know that we are running on JAMStack, with all articles and pages stored as Markdown files, Sass files compiled into CSS, JavaScript split into chunks with Webpack and Hugo building out static pages that we then serve directly from an Edge CDN. Back in 2017 we built the entire site with Preact, but then have moved to React in 2019 — and use it along with a few APIs for search, comments, authentication and checkout.

The entire site is built with progressive enhancement in mind, meaning that you, dear reader, can read every Smashing article in its entirety without the need to boot the application at all. It’s not very surprising either — in the end, a published article doesn’t change much over the years, while dynamic pieces such as Membership authentication and checkout need the application to run.

The entire build for deploying around 2500 articles live takes around 6 mins at the moment. The build process on its own has become quite a beast over time as well, with critical CSS injects, Webpack’s code splitting, dynamic inserts of advertising and feature panels, RSS (re)generation, and eventual A/B testing on the edge.

In early 2020, we’ve started with the big refactoring of the CSS layout components. We never used CSS-in-JS or styled-components, but instead a good ol’ component-based system of Sass-modules which would be compiled into CSS. Back in 2017, the entire layout was built with Flexbox and rebuilt with CSS Grid and CSS Custom Properties in mid-2019. However, some pages needed special treatment due to new advertising spots and new product panels. So while the layout was working, it wasn’t working very well, and it was quite difficult to maintain.

Additionally, the header with the main navigation had to change to accommodate for more items that we wanted to display dynamically. Plus, we wanted to refactor some frequently used components used across the site, and the CSS used there needed some revision as well — the newsletter box being the most notable culprit. We started off by refactoring some components with utility-first CSS but we never got to the point that it was used consistently across the entire site.

The larger issue was the large JavaScript bundle that — not very surprisingly — was blocking the main-thread for hundreds of milliseconds. A big JavaScript bundle might seem out of place on a magazine that merely publishes articles, but actually, there is plenty of scripting happening behind the scenes.

We have various states of components for authenticated and unauthenticated customers. Once you are signed in, we want to show all products in the final price, and as you add a book to the cart, we want to keep a cart accessible with a tap on a button — no matter what page you are on. Advertising needs to come in quickly without causing disruptive layout shifts, and the same goes for the native product panels that highlight our products. Plus a service worker that caches all static assets and serves them for repeat views, along with cached versions of articles that a reader has already visited.

So all of this scripting had to happen at some point, and it was draining on the reading experience even although the script was coming in quite late. Frankly, we were painstakingly working on the site and new components without keeping a close eye on performance (and we had a few other things to keep in mind for 2020). The turning point came unexpectedly. Harry Roberts ran his (excellent) Web Performance Masterclass as an online workshop with us, and throughout the entire workshop, he was using Smashing as an example by highlighting issues that we had and suggesting solutions to those issues alongside useful tools and guidelines.

Throughout the workshop, I was diligently taking notes and revisiting the codebase. At the time of the workshop, our Lighthouse scores were 60–68 on the homepage, and around 40-60 on article pages — and obviously worse on mobile. Once the workshop was over, we got to work.

Identifying The Bottlenecks

We often tend to rely on particular scores to get an understanding of how well we perform, yet too often single scores don’t provide a full picture. As David East eloquently noted in his article, web performance isn’t a single value; it’s a distribution. Even if a web experience is heavily and thoroughly an optimized all-around performance, it can’t be just fast. It might be fast to some visitors, but ultimately it will also be slower (or slow) to some others.

The reasons for it are numerous, but the most important one is a huge difference in network conditions and device hardware across the world. More often than not we can’t really influence those things, so we have to ensure that our experience accommodates them instead.

In essence, our job then is to increase the proportion of snappy experiences and decrease the proportion of sluggish experiences. But for that, we need to get a proper picture of what the distribution actually is. Now, analytics tools and performance monitoring tools will provide this data when needed, but we looked specifically into CrUX, Chrome User Experience Report. CrUX generates an overview of performance distributions over time, with traffic collected from Chrome users. Much of this data related to Core Web Vitals which Google has announced back in 2020, and which also contribute to and are exposed in Lighthouse.

We noticed that across the board, our performance regressed dramatically throughout the year, with particular drops around August and September. Once we saw these charts, we could look back into some of the PRs we’ve pushed live back then to study what has actually happened.

It didn’t take a while to figure out that just around these times we launched a new navigation bar live. That navigation bar — used on all pages — relied on JavaScript to display navigation items in a menu on tap or on click, but the JavaScript bit of it was actually bundled within the app.js bundle. To improve Time To Interactive, we decided to extract the navigation script from the bundle and serve it inline.

Around the same time we switched from an (outdated) manually created critical CSS file to an automated system that was generating critical CSS for every template — homepage, article, product page, event, job board, and so on — and inline critical CSS during the build time. Yet we didn’t really realize how much heavier the automatically generated critical CSS was. We had to explore it in more detail.

And also around the same time, we were adjusting the web font loading, trying to push web fonts more aggressively with resource hints such as preload. This seems to be backlashing with our performance efforts though, as web fonts were delaying rendering of the content, being overprioritized next to the full CSS file.

Now, one of the common reasons for regression is the heavy cost of JavaScript, so we also looked into Webpack Bundle Analyzer and Simon Hearne’s request map to get a visual picture of our JavaScript dependencies. It looked quite healthy at the start.

A few requests were coming to the CDN, a cookie consent service Cookiebot, Google Analytics, plus our internal services for serving product panels and custom advertising. It didn’t appear like there were many bottlenecks — until we looked a bit more closely.

In performance work, it’s common to look at the performance of some critical pages — most likely the homepage and most likely a few article/product pages. However, while there is only one homepage, there might be plenty of various product pages, so we need to pick ones that are representative of our audience.

In fact, as we’re publishing quite a few code-heavy and design-heavy articles on SmashingMag, over the years we’ve accumulated literally thousands of articles that contained heavy GIFs, syntax-highlighted code snippets, CodePen embeds, video/audio embeds, and nested threads of never-ending comments.

When brought together, many of them were causing nothing short of an explosion in DOM size along with excessive main thread work — slowing down the experience on thousands of pages. Not to mention that with advertising in place, some DOM elements were injected late in the page’s lifecycle causing a cascade of style recalculations and repaints — also expensive tasks that can produce long tasks.

All of this wasn’t showing up in the map we generated for a quite lightweight article page in the chart above. So we picked the heaviest pages we had — the almighty homepage, the longest one, the one with many video embeds, and the one with many CodePen embeds — and decided to optimize them as much as we could. After all, if they are fast, then pages with a single CodePen embed should be faster, too.

With these pages in mind, the map looked a little bit differently. Note the huge thick line heading to the Vimeo player and Vimeo CDN, with 78 requests coming from a Smashing article.

To study the impact on the main thread, we took a deep-dive into the Performance panel in DevTools. More specifically, we were looking for tasks that last longer than 50ms (highlighted with a red rectangle in the right upper corner) and tasks that contain Recalculation styles (purple bar). The first would indicate expensive JavaScript execution, while the latter would expose style invalidations caused by dynamic injections of content in the DOM and suboptimal CSS. This gave us some actionable pointers of where to start. For example, we quickly discovered that our web font loading had a significant repaint cost, while JavaScript chunks were still heavy enough to block the main thread.

As a baseline, we looked very closely at Core Web Vitals, trying to ensure that we are scoring well across all of them. We chose to focus specifically on slow mobile devices — with slow 3G, 400ms RTT and 400kbps transfer speed, just to be on the pessimistic side of things. It’s not surprising then that Lighthouse wasn’t very happy with our site either, providing fully solid red scores for the heaviest articles, and tirelessly complaining about unused JavaScript, CSS, offscreen images and their sizes.

Once we had some data in front of us, we could focus on optimizing the three heaviest article pages, with a focus on critical (and non-critical) CSS, JavaScript bundle, long tasks, web font loading, layout shifts and third-party-embeds. Later we’d also revise the codebase to remove legacy code and use new modern browser features. It seemed like a lot of work ahead of was, and indeed we were quite busy for the months to come.

Improving The Order Of Assets In The <head>

Ironically, the very first thing we looked into wasn’t even closely related to all the tasks we’ve identified above. In the performance workshop, Harry spent a considerable amount of time explaining the order of assets in the <head> of each page, making a point that to deliver critical content quickly means being very strategic and attentive about how assets are ordered in the source code.

Now it shouldn’t come as a big revelation that critical CSS is beneficial for web performance. However, it did come as a bit of a surprise how much difference the order of all the other assets — resource hints, web font preloading, synchronous and asynchronous scripts, full CSS and metadata — has.

We’ve turned up the entire <head> upside down, placing critical CSS before all asynchronous scripts and all preloaded assets such as fonts, images etc. We’ve broken down the assets that we’ll be preconnecting to or preloading by template and file type, so that critical images, syntax highlighting and video embeds will be requested early only for a certain type of articles and pages.

In general, we’ve carefully orchestrated the order in the <head>, reduced the number of preloaded assets that were competing for bandwidth, and focused on getting critical CSS right. If you’d like to dive deeper into some of the critical considerations with the <head> order, Harry highlights them in the article on CSS and Network Performance. This change alone brought us around 3–4 Lighthouse score points across the board.

Moving From Automated Critical CSS Back To Manual Critical CSS

Moving the <head> tags around was a simple part of the story though. A more difficult one was the generation and management of critical CSS files. Back in 2017, we manually handcrafted critical CSS for every template, by collecting all of the styles required to render the first 1000 pixels in height across all screen widths. This of course was a cumbersome and slightly uninspiring task, not to mention maintenance issues for taming a whole family of critical CSS files and a full CSS file.

So we looked into options on automating this process as a part of the build routine. There wasn’t really a shortage of tools available, so we’ve tested a few and decided to run a few tests. We’ve managed to set them up and running quite quickly. The output seemed to be good enough for an automated process, so after a few configuration tweaks, we plugged it in and pushed it to production. That happened around July–August last year, which is nicely visualized in the spike and performance drop in the CrUX data above. We kept going back and forth with the configuration, often having troubles with simple things like adding in particular styles or removing others. E.g. cookie consent prompt styles that aren’t really included on a page unless the cookie script has initialized.

In October, we’ve introduced some major layout changes to the site, and when looking into the critical CSS, we’ve run into exactly the same issues yet again — the generated outcome was quite verbose, and wasn’t quite what we wanted. So as an experiment in late October, we all bundled our strengths to revisit our critical CSS approach and study how much smaller a handcrafted critical CSS would be. We took a deep breath and spent days around the code coverage tool on key pages. We grouped CSS rules manually and removed duplicates and legacy code in both places — the critical CSS and the main CSS. It was a much-needed cleanup indeed, as many styles that were written back in 2017–2018 have become obsolete over the years.

As a result, we ended up with three handcrafted critical CSS files, and with three more files that are currently work in progress:

The files are inlined in the head of each template, and at the moment they are duplicated in the monolithic CSS bundle that contains everything ever used (or not really used anymore) on the site. At the moment, we are looking into breaking down the full CSS bundle into a few CSS packages, so a reader of the magazine wouldn’t download styles from the job board or book pages, but then when reaching those pages would get a quick render with critical CSS and get the rest of the CSS for that page asynchronously — only on that page.

Admittedly, handcrafted critical CSS files weren’t much smaller in size: we’ve reduced the size of critical CSS files by around 14%. However, they included everything we needed in the right order from top to finish without duplicates and overriding styles. This seemed to be a step in the right direction, and it gave us a Lighthouse boost of another 3–4 points. We were making progress.

Changing The Web Font Loading

With font-display at our fingertips, font loading seems to be a problem in the past. Unfortunately, it isn’t quite right in our case. You, dear readers, seem to visit a number of articles on Smashing Magazine. You also frequently return back to the site to read a yet another article — perhaps a few hours or days later, or perhaps a week later. One of the issues that we had with font-display used across the site was that for readers who moved between articles a lot, we noticed plenty of flashes between the fallback font and the web font (which shouldn’t normally happen as fonts would be properly cached).

That didn’t feel like a decent user experience, so we looked into options. On Smashing, we are using two main typefaces — Mija for headings and Elena for body copy. Mija comes in two weights (Regular and Bold), while Elena is coming in three weights (Regular, Italic, Bold). We dropped Elena’s Bold Italic years ago during the redesign just because we used it on just a few pages. We subset the other fonts by removing unused characters and Unicode ranges.

Our articles are mostly set in text, so we’ve discovered that most of the time on the site the Largest Contentful Paint is either the first paragraph of text in an article or the photo of the author. That means that we need to take extra care of ensuring that the first paragraph appears quickly in a fallback font, while gracefully changing over to the web font with minimal reflows.

Take a close look at the initial loading experience of the front page (slowed down three times):

The first one was occurring due to expensive layout recalculations caused by the change of the fonts (from fallback font to web font), causing over 290ms of extra work (on a fast laptop and a fast connection). By removing stage one from the font loading alone, we were able to gain around 80ms back. It wasn’t good enough though because were way beyond the 50ms budget. So we started digging deeper.

The main reason why recalculations happened was merely because of the huge differences between fallback fonts and web fonts. By matching the line-height and sizes for fallback fonts and web fonts, we were able to avoid many situations when a line of text would wrap on a new line in the fallback font, but then get slightly smaller and fit on the previous line, causing major change in the geometry of the entire page, and consequently massive layout shifts. We’ve played with letter-spacing and word-spacing as well, but it didn’t produce good results.

With these changes, we were able to cut another 50-80ms, but we weren’t able to reduce it below 120ms without displaying the content in a fallback font and display the content in the web font afterwards. Obviously, it should massively affect only first time visitors as consequent page views would be rendered with the fonts retrieved directly from the service worker’s cache, without costly reflows due to the font switch.

By the way, it’s quite important to notice that in our case, we noticed that most Long Tasks weren’t caused by massive JavaScript, but instead by Layout Recalculations and parsing of the CSS, which meant that we needed to do a bit of CSS cleaning, especially watching out for situations when styles are overwritten. In some way, it was good news because we didn’t have to deal with complex JavaScript issues that much. However, it turned out not to be straightforward as we are still cleaning up the CSS this very day. We were able to remove two Long Tasks for good, but we still have a few outstanding ones and quite a way to go. Fortunately, most of the time we aren’t way above the magical 50ms threshold.

The much bigger issue was the JavaScript bundle we were serving, occupying the main thread for a whopping 580ms. Most of this time was spent in booting up app.js which contains React, Redux, Lodash, and a Webpack module loader. The only way to improve performance with this massive beast was to break it down into smaller pieces. So we looked into doing just that.

With Webpack, we’ve split up the monolithic bundle into smaller chunks with code-splitting, about 30Kb per chunk. We did some package.json cleansing and version upgrade for all production dependencies, adjusted the browserlistrc setup to address the two latest browser versions, upgraded to Webpack and Babel to the latest versions, moved to Terser for minification, and used ES2017 (+ browserlistrc) as a target for script compilation.

We also used BabelEsmPlugin to generate modern versions of existing dependencies. Finally, we’ve added prefetch links to the header for all necessary script chunks and refactored the service worker, migrating to Workbox with Webpack (workbox-webpack-plugin).

Remember when we switched to the new navigation back in mid-2020, just to see a huge performance penalty as a result? The reason for it was quite simple. While in the past the navigation was just static plain HTML and a bit of CSS, with the new navigation, we needed a bit of JavaScript to act on opening and closing of the menu on mobile and on desktop. That was causing rage clicks when you would click on the navigation menu and nothing would happen, and of course, had a penalty cost in Time-To-Interactive scores in Lighthouse.

We removed the script from the bundle and extracted it as a separate script. Additionally, we did the same thing for other standalone scripts that were used rarely — for syntax highlighting, tables, video embeds and code embeds — and removed them from the main bundle; instead, we granularly load them only when needed.

However, what we didn’t notice for months was that although we removed the navigation script from the bundle, it was loading after the entire app.js bundle was evaluated, which wasn’t really helping Time-To-Interactive (see image above). We fixed it by preloading nav.js and deferring it to execute in the order of appearance in the DOM, and managed to save another 100ms with that operation alone. By the end, with everything in place we were able to bring the task to around 220ms.

We managed to get some improvement in place, but still have quite a way to go, with further React and Webpack optimizations on our to-do list. At the moment we still have three major Long Tasks — font switch (120ms), app.js execution (220ms) and style recalculations due to the size of full CSS (140ms). For us, it means cleaning up and breaking up the monolithic CSS next.

It’s worth mentioning that these results are really the best-scenario-results. On a given article page we might have a large number of code embeds and video embeds, along with other third-party scripts and customer’s browser extensions that would require a separate conversation.

Dealing With 3rd-Parties

Fortunately, our third-party scripts footprint (and the impact of their friends’ fourth-party-scripts) wasn’t huge from the start. But when these third-party scripts accumulated, they would drive performance down significantly. This goes especially for video embedding scripts, but also syntax highlighting, advertising scripts, promo panels scripts and any external iframe embeds.

Obviously, we defer all of these scripts to start loading after the DOMContentLoaded event, but once they finally come on stage, they cause quite a bit of work on the main thread. This shows up especially on article pages, which are obviously the vast majority of content on the site.

The first thing we did was allocating proper space to all assets that are being injected into the DOM after the initial page render. It meant width and height for all advertising images and the styling of code snippets. We found out that because all the scripts were deferred, new styles were invalidating existing styles, causing massive layout shifts for every code snippet that was displayed. We fixed that by adding the necessary styles to the critical CSS on the article pages.

We’ve re-established a strategy for optimizing images (preferably AVIF or WebP — still work in progress though). All images below the 1000px height threshold are natively lazy-loaded (with <img loading=lazy>), while the ones on the top are prioritized (<img loading=eager>). The same goes for all third-party embeds.

We replaced some dynamic parts with their static counterparts — e.g. while a note about an article saved for offline reading was appearing dynamically after the article was added to the service worker’s cache, now it appears statically as we are, well, a bit optimistic and expect it to be happening in all modern browsers.

As of the moment of writing, we’re preparing facades for code embeds and video embeds as well. Plus, all images that are offscreen will get decoding=async attribute, so the browser has a free reign over when and how it loads images offscreen, asynchronously and in parallel.

To ensure that our images always include width and height attributes, we’ve also modified Harry Roberts’ snippet and Tim Kadlec’s diagnostics CSS to highlight whenever an image isn’t served properly. It’s used in development and editing but obviously not in production.

One technique that we used frequently to track what exactly is happening as the page is being loaded, was slow-motion loading.

First, we’ve added a simple line of code to the diagnostics CSS, which provides a noticeable outline for all elements on the page.

* {
  outline: 3px solid red

Then we record a video of the page loaded on a slow and fast connection. Then we rewatch the video by slowing down the playback and moving back and forward to identify where massive layout shifts happen.

Here’s the recording of a page being loaded on a fast connection:

The reason for the poor score on mobile is clearly poor Time to Interactive and poor Total Blocking time due to the booting of the app and the size of the full CSS file. So there is still some work to be done there.

As for the next steps, we are currently looking into further reducing the size of the CSS, and specifically break it down into modules, similarly to JavaScript, loading some parts of the CSS (e.g. checkout or job board or books/eBooks) only when needed.

We also explore options of further bundling experimentation on mobile to reduce the performance impact of the app.js although it seems to be non-trivial at the moment. Finally, we’ll be looking into alternatives to our cookie prompt solution, rebuilding our containers with CSS clamp(), replacing the padding-bottom ratio technique with aspect-ratio and looking into serving as many images as possible in AVIF.

That’s It, Folks!

Hopefully, this little case-study will be useful to you, and perhaps there are one or two techniques that you might be able to apply to your project right away. In the end, performance is all about a sum of all the fine little details, that, when added up, make or break your customer’s experience.

While we are very committed to getting better at performance, we also work on improving accessibility and the content of the site. So if you spot anything that’s not quite right or anything that we could do to further improve Smashing Magazine, please let us know in the comments to this article.

Finally, if you’d like to stay updated on articles like this one, please subscribe to our email newsletter for friendly web tips, goodies, tools and articles, and a seasonal selection of Smashing cats.

Reblogged 14 hours ago from

When To Say No To Freelance Projects

A lot of feel-good life advice encourages us to say yes to new things whenever we can. This philosophy of openness can sound pretty enticing when you’re a freelancer or consultant just beginning to stand tall on your own — or riding a high of a string of good projects.

And it’s true that saying yes can help you grow! Saying yes to new clients, projects, and partners helps you make connections, build your portfolio, and evolve professionally. Saying yes can also lead to paying jobs, which lead to even more paying jobs.

But saying no — at the right times — can be just as critical to the success of our self-employment. Building up the ability and skill to say no is part of a career evolution and, in my opinion, one of the ultimate goals for successful freelancing.

It’s not always easy to decline work, though. We can feel reluctant to turn things down because we want to make clients happy. We also need to feel secure with our income and prospects, and saying no can certainly feel risky when we want to be sure our bills will get paid.

In this article, I’ll share with you what I’ve learned about the importance of recognizing when it’s better to say no to a freelance opportunity. It can feel scary to pass work to someone else, but it will be okay and you will garner a solid sense of self-understanding in the process. The information in this article is mostly about saying no to new projects, but can also apply to saying no when a current client asks for more work than you’ve already agreed to do.

The Importance Of Saying No

Saying yes often leads to surprising, exciting outcomes, but so does saying no.

Before we get deeper into details of when and how to say no to freelance opportunities, think about how this kind of selectivity may impact your wellbeing. Imagine only working on things you love? Committing to lackluster projects or unpleasant clients means you might find yourself unavailable when a perfect project shows up in your inbox. When you say no to projects that just aren’t right, you save time and headspace for things that you will want to say yes to.

Saying no also helps you avoid or recover from burnout. Most freelancers will experience burnout at times. Burnout happens when we work too hard and run out of steam — often because a client is bad for us, or because we take on too much, or both. Taking breaks and being deliberate about taking time off (meaning, saying no sometimes) is a valuable pursuit for your personal wellbeing, not to mention your long-term professional output. It’s okay to say no to something when you don’t have the passion or energy for it. Be kind to yourself.

How To Decide Whether To Take On A Project

Is The Project A Match For Your Expertise?

One of the first things to think about when considering a freelance opportunity is whether it’s a good match for your skills and your level of experience.

I’m a UX consultant and I like doing a lot of different things, but my core expertise is user research. If a potential project is not an exact fit for my skills, or if it’s not something I enjoy, I will typically decline. For example, if somebody asks me to do an accessibility review for their website, I know there are a lot of skilled freelancers who can do a much quicker job with it than I would. I might refer somebody if I know they are interested.

Similarly, an ideal project should match your level of experience. If the work is too far below your experience level, it might be boring and likely not pay enough. If it’s too far above, you might find yourself too stressed out and in over your head. For me, if a company is looking for a UX freelancer to “make wireframes” without digging into research or design strategy, I know that’s probably a job for somebody more junior or with different interests.

Think of it this way. If you say yes to a request that isn’t a good match, you may feel resentful about it. You might spend too much time on it. You might even deliver results that aren’t great. So although saying yes can be a strategy for developing skills or learning new things, it only works if the project is in line with your goals and doesn’t stretch too far beyond what you know you can do well. Otherwise, it might be a bad experience for you (and maybe the client, too).

Is The Budget Enough?

If a project doesn’t pay enough, ask for more or say no. Simple!

Well, okay, I know it’s not that simple. Sometimes we need the money. But it becomes easier to say no to low-paying jobs when you 1.) are knowledgeable about your worth and 2.) have a financial cushion. Either of these things may take time, but the goal is to say no to projects that are below a minimum amount that you will consider. Along those lines, you don’t want to devalue your worth by saying yes to too many out-of-scope extras.

Pricing is its own beast that I won’t get into here, but once you know your worth, stand strongly with it! Over time, the prices you charge can increase with your value, and eventually, you may pass work down to more junior freelancers. Also, remember that you are a professional who represents your industry, and when freelancers continuously say yes to very low prices for our services, it can impact everyone else in that specialty by devaluing our skills or expertise overall.

So, don’t make it a habit to accept projects that pay below your value unless you are purposely working pro bono for a good cause. Of course, again, sometimes we might need to take on low-paying work just to “keep the lights on” with our business, and that’s okay. Having a financial cushion eventually helps us say no to these gigs and hold out for better-paying opportunities. For me, it helps to keep my living expenses low so I feel more confident letting work opportunities pass by.

Does The Project Fit Your Schedule?

When your schedule is busy, it’s easy to decline an unwanted project. But what if you aren’t currently busy with work? Consider your pipeline, upcoming schedule, and financial cushion to decide whether a mediocre project is worth doing. If you have plenty of time, it might make sense to say yes to something even if it’s not a great fit.

And alternatively, what if the project is something you actually really want to do, but time is tight? Think carefully about your current commitments and deadlines and whether a new project is doable. If not, you may need to regretfully decline or ask for an alternative timeline. Saying yes to a project you don’t actually have time or energy to do well — as much as you may wish you did — is unfortunately a recipe for late nights or disappointed clients. And remember, having the time and energy to say yes to good projects is another reason to say no to bad projects!

Sometimes whether a project fits in your schedule depends on whether you can work something out with the client. A clear project scope (knowing specifically when you are needed, and for what) will help you plan your time and make decisions about taking on new things. When it comes to scope, also consider whether the client’s proposed timeline is too short for the amount of work required — this is super common, and it’s okay to offer to do the same project on a longer timeline, or a smaller version of the project within the proposed timeline, so that it becomes more manageable to fit into your schedule.

The reality of freelancing is that it’s often a guessing game when it comes to pipelines, scheduling, and balancing your workload. But if you know a project doesn’t fit into your schedule, make sure you say no quickly. You can always let the requester know when you expect that your schedule will free up, and maybe another project will work out later.

Does The Opportunity Align With Your Values?

In addition to the expertise needed, budget offered, and time required, check in on whether the project is in line with your values and goals. Think about your gut feelings here. What are some industries or companies you want to avoid? What kind of projects make you happy? Turn those gut feelings into a concrete list.

Here are a few factors to think about:

  • Does this project help move you toward a bigger goal?
  • Do you find the project personally interesting?
  • Do you believe your work on the project will help people in a meaningful way, or do some kind of social or environmental good?
  • Is this project supporting an industry or company that you consider unethical? (Kelly Small talks about seeking ethical work and saying no to unethical work in their book The Conscious Creative!)
  • Do you prefer working with startups or established companies?
  • Do you prefer working in small teams or big ones?
  • Do you prefer remote or in-person work?
  • Do you prefer subcontracting with other agencies or do you prefer direct clients?
  • Have you worked with this client before and what was that like?
  • Will having a good relationship with this client potentially lead to other good work?
  • Does it seem like the client will respect you?

You can create a personalized checklist or rating sheet to help you identify whether a project is worth doing. Burnout happens a lot quicker when our work is emotionally taxing, so take into account your personal values and preferences when deciding whether to say yes or no to opportunities. After all, working for yourself ideally means you get to call the shots.

Decline Assertively (But Kindly)

When you’ve decided a “no thank you” is in order, it’s important to be clear that you are declining while still keeping the mood light and productive (unless they have egregiously offended you, I suppose).

First, I recommend expressing gratitude for the opportunity. Thank the requester for thinking of you, going through the interview process with you, or whatever they have done. It takes time and effort on their end to hire freelancers or consultants.

Second is the important part: saying no. Be clear that you are declining. You can briefly explain why if you’d like, but you don’t have to explain your reasoning if you don’t want to. Just respond in a timely way so the client can move on.

If you worry about offending someone, please don’t! Be assertive so that when you say no, the answer is firm. If you think about the three main communication styles — assertive, passive, and aggressive — the idea is to be clear (assertive) while avoiding coming across as too passive or aggressive.

Most people will respect a clear and honest answer. I’ve only once had someone respond rudely to an email in which I politely declined to meet, but that aggressive response cemented that I likely saved myself a lot of aggravation by not working with them.

Third, once you’ve said no, you might offer some next steps or alternatives if you think it’s appropriate. If you are open to discussing future work, let them know. Be clear about the conditions under which you might be more likely to say yes — such as after a certain date, or if they have a need for a different area of your expertise.

You also might suggest other freelancers if you know anyone who may like to take on the project, or who might be a better fit than you are. If you don’t have specific names to offer, you can suggest resources to find freelancers, like listings for professional organization members. You might also offer to share the opportunity with other freelancers in your network, such as on social media or in Slack groups.

Here’s an example of how an email declining a project opportunity might look:

Hi [name],

Thank you so much for thinking of me for [project description]. This project does not seem to be a great match for [my experience level / my current interests / my schedule / etc.] so I am declining, but I can [share it on LinkedIn / connect you with another freelancer I trust / etc.], if you’d like.

Also, if you have future opportunities for [something else you’d like to do / something after a certain date / etc.], I’d love to hear about it. Keep in touch!


Saying no is a skill. Saying yes to the wrong freelance opportunities can lead you toward misery and burnout, and we could all probably improve how mindful we are about our work, partners, and clients.

Remember, if you’re not sure whether to accept a project, think through:

  • General Fit
    Is the project a match for your skills and your level of expertise?
  • Budget
    Would you be selling yourself or your field short by taking on the project for a low price?
  • Timeline
    Would the project conflict with your existing commitments? Is the client wanting too much in too short a timeframe?
  • Values
    How good would you feel about this project? Is it in line with your values, goals, and preferences?

Consider everything together. A low-paying job might still be a good fit if it’s for a good cause, or if it gets you critical experience to move toward a bigger goal. Consider making your own personalized checklist or rating sheet to help you rate past, present, and future projects and get a better understanding of which opportunities should be left on the table.

Reblogged 14 hours ago from

Four marketing strategies to increase app store downloads and engagement

30-second summary:

  • App marketing is intensely competitive. There are limited channels to market your app but millions of apps to compete with. It’s important to maximize every opportunity.
  • Like SEO, App Store Optimization involves keyword research and optimization. App developers have limited space for their keywords and much competition to face. Hence, precision is highly necessary.
  • App ads on Facebook are unlike other types of ads. You need Facebook SDK, in addition to the ads manager, to properly track app downloads and engagement.
  • Rewards should turn your app users into customers. When done right, incentives can generate social proof and viral loops.
  • There is ASO but there’s also app SEO. Content formats such as blogs, podcasts, and newsletters can make your app website/landing page gain higher rankings on search engines.

Your app is competing for visibility with 1.82 million other apps if it’s on Apple’s App Store, or 2.7 million apps if it’s on Google’s Play Store. That’s tremendous competition. 

Marketing your app almost seems a lost cause. But while making your app stand out is indeed a daunting undertaking, it is possible, as long as you apply the right strategies. 

Effective app marketing involves identifying key types of channels for discovery and engagement (app stores, social media, search engines, and in the app itself) and targeting your audience. 

1. App store optimization/landing page optimization 

Newcomers make up only 8% of apps listed on the App and Play store top charts, going by Adjust’s App Trends 2020 Report. Considering that the app store is your app’s main chance, by far, at organic discovery, it need not be said that your App Store Optimization (ASO) must be on point. 

ASO is to apps what SEO is to websites. And both have their similarities, especially in the on-page/off-page strategy dichotomy. And like SEO, ASO begins with improving visibility. 

The first tip to achieve this is to use an attractive name and logo. Those two are the first things users see when they find your app. But before then, you have to make sure people can find it, right? And not just anyone – the right people, your target audience. 

When optimizing your app store listing, what factors must you consider, keeping in mind that app indexing differs between stores?

  • App Name/Title: feature relevant keywords to enable the app store algorithm to properly identify and categorize your app. You have 50 characters for this on Play Store while Apple’s App Store also includes a subtitle, for keywords that don’t fit the main title.
  • Apple, unlike Google, allows developers to input specific keywords in a private field on its App Store. For Google, you have a short description field (80 characters) and a long description page (4000 characters) which are both public. 
  • Include keywords that are relevant to your app and which accurately describe its features, functionalities, and benefits.

That is as much as you can influence your app’s rankings. Other factors, beyond your direct influence, include reviews and ratings, download and uninstall rates, app updates, etc. 

2. Facebook ads strategy 

ASO has its place and you can’t rely on app stores entirely for app discovery. Not if you’re not a big-name brand. Your marketing strategy should tilt more towards the paid, discussed below. As Christian Eckhardt of Customlytics says,

“The likelihood of a user going to a store to browse or discover new apps has declined significantly, compared to the early days of the stores.”

By creating a page on Facebook for your app, you can run ads with custom call-to-actions to gain publicity for your app and increase downloads. Facebook Ad Manager allows you to set an objective for your app: whether you are targeting app installs or app engagement (traffic). Facebook Ads offer a competitive ROI with an average cost-per-install rate of $1.8, compared to Twitter’s $2.53 and Instagram’s $2.23. 

CPI using Facebook ads

To run ads for your Facebook app,

  • First, set up Facebook SDK. This is necessary to optimize your app for mobile ads, though you can still run ads for unregistered apps using the app store URL. 
  • Continue setup in the Ads Manager, where you select your target audience, budget, bid, creative format, and other options. 

  • Finally, continually measure your ad performance, track engagement data, and gain analytics insights using Facebook SDK and within the Ad manager.

Measuring ad performance that adds to your app store downloads

3. Use a rewards system 

This is a strategy that helps you to convert your app users into marketers. Of course, this assumes that you have an app that delivers value to its users. The next step would be to incentivize app engagement. 

In-app rewards that can facilitate engagement include unlockable customization options, discounts, push notifications, in-app currency (points, coins, etc.), vouchers, and other freebies Many apps (especially games) already feature these. But here, motivation is important. What kind of behavior does/should the reward system encourage?

  1. Retention 
  2. Publicity
  3. Reviews

Beyond app retention, your in-app incentives should encourage actions that publicize your app. For instance, you can offer a discount or some other benefit to people who share the app or refer users (using referral codes). We know this works since old research by Google showed that people find new apps through friends and family than by any other means. Likewise, incentivize app users to rate and write reviews of your app on the store. Apart from promoting the goodwill of an app, positive reviews drive up app store optimization rankings, increasing the visibility of your app.

But app retention is important too. Only 32% of users would return to an app at least eleven times, a six-point reduction from last year’s rate. And app stores consider high uninstall rates as signs of a low-quality app. Such an app would get lower rankings and may even be removed from the store eventually. Incentives keep people using the app and create viral loops.

4. Content marketing strategy 

Search engines are a great place to gain publicity for your app. Think about it. Someone hears how great your app is and immediately searches the name, only to find scanty or no relevant results at all. You need a creative and consistent content marketing strategy to convert search engine users. 

You can use a blog to highlight the benefits of your app, inform users of updates, and teach them how to maximize the features of the app. If businesses that blog gain 126% more leads than those that don’t, why not apps? The popular investing app Robinhood’s marketing strategy features a blog where they teach people the basics of investing and finance.

Using content marketing to make your app more visible and valuable in the audience's eyes

But there is more to blogging than just posting articles. You need to research keywords to find the ones that will help you convert the most. That’s what enables search engines to effectively rank your blog posts. 

In addition, content marketing is not limited to blogging. You may also take advantage of newsletters, podcasts, and YouTube videos, as Robinhood does. Called ‘Robinhood Snacks’, it delivers a daily newsletter with financial news to subscribers (irrespective of whether they use the app or not) and breaks down business stories via podcasts as well. 

Content marketing is broader though. You also need backlinks to rank. And that means getting your app featured on ‘top apps’ listings, external reviews, guest article mentions, all of which should contain backlinks to your landing page. Of course, it need not be mentioned anymore that you need a highly-engaging landing page with a clear call-to-action that takes visitors to the app’s store page.

A simple content marketing checklist for app optimization will look like the following:

  • Research ideas that are related to your app and relevant to your audience. 
  • Craft topics from these ideas and develop engaging content around them. 
  • Use mediums that your audience uses the most. For instance, podcasts are a great idea if you are targeting millennials. 
  • Feel free to repurpose content. Your blog post can be repurposed into a YouTube video. You can transcribe a podcast interview and convert it into an article, etc. 
  • Always include a call-to-action 


If you implement the strategies discussed above, you can rest assured of steady app growth. However, the most important factor is that the app is indeed valuable. The best apps are those that advertise themselves. But virality does not happen overnight. Its the result of the consistent application of the right strategies.

Guy Sheetrit is the CEO of Over The Top SEO, an award-winning marketing agency that provides customized SEO marketing solutions for ecommerce, local, and Fortune 500 companies. He can be found on Twitter @guysheetrit.

The post Four marketing strategies to increase app store downloads and engagement appeared first on Search Engine Watch.

Reblogged 21 hours ago from

13 Creative Ideas for Your Next Facebook Live Event, from HubSpot's Social Media Campaign Manager

In 2016, Facebook released Live video on their platform. As we came into a new decade, it seemed the initial live streaming frenzy on Facebook had calmed down. But today, remote work and digital events are the norm.

The effect: Live video is having its moment in the spotlight again.

In fact, Facebook says the number of people in the U.S. watching live streams has increased by 50% since the beginning of 2020. This leaves many marketers again asking: Should I go live?

The answer will depend on your brand, goals, and resources. But for many marketers, streaming a Facebook Live is at the top of their to-do list. For starters, video consumption isn’t slowing down. By 2022, online videos will make up more than 82% of all consumer internet traffic.

Live videos specifically are attention-grabbing — especially when the audience gets a push notification.

Plus, live videos present a unique opportunity to build trust with interactive, two-way conversations.

The immediate, authentic, and interactive experience of a livestream is a no-brainer for some marketers. But it’s important to note that not every tactic is right for every brand. Going live can be intimidating. And there are nuances that dissuade many marketers from taking the plunge. Some reasons a brand may choose not to go live: time, talent, content strategy, resources, and more.

Debating whether Facebook Live fits into your strategy? Consider these questions: Why are you creating Facebook Live? Do you have resources? Do you have the time? Does your target audience consume Facebook Live? Can you repurpose the live video content elsewhere?

You don’t have to use Facebook Live to be successful. But it’s worth exploring, especially now that live streaming is booming. Need some encouragement to take the plunge? Live streams are simple to set up. All you need to “go Live” is a smartphone and some creative ideas.

That’s where we come in — here, let’s explore creative Facebook Live ideas, as well as best practices to take your Live strategy to the next level.

1. Teach a class.

Once of the most valuable things you can do for your audience on social media is teach them how to do something. Free, live educational programming is a great way to position your brand as a thought leader. It also gives your audience a more robust understanding of your product and or services.

For instance, at HubSpot we often post educational content on our Facebook page, like the example below:

By going live, you’re adding an extra level of authenticity and connection. For instance, you might tell readers they can send along questions in real time, and they can watch their questions get answered on-the-fly. The live Q&A format might also help readers feel more engaged than they would with a pre-recorded video.

Additionally, you can save and upload your Live videos for viewers to consume after-the-fact. This enables you to reach a larger audience than you could just through live.

2. Make an announcement or share breaking news.

Unless they choose the “Follow” setting, fans of your Facebook page don’t see everything you post. However, the default setting for users is to receive a notification when someone they know or a page they follow goes live. With this in mind, Facebook Live is an ideal channel for those important updates that you want the majority of your followers to know about.

Here are some great examples of announcements you can make:

  • Breaking news in your industry and your company’s stance on it
  • New product launches or enhanced features (more on this later)
  • Changes in your organization’s leadership
  • An office move to a new location or renovations to your space

3. Raise money for a cause.

More than ever, consumers want to buy from companies with values. Use a live stream to support your values and raise awareness for the things your care most about.

During the live stream, explain the cause, why it’s important, and how the audience can help. You can even pin a comment to direct your audience to the right place to provide support. Additionally, some qualified Facebook pages will be able to add a Donate button to their live videos on mobile.

4. Host a weekly roundtable.

Take time to talk about topics your audience cares about with a weekly roundtable. Some of the most popular roundtables on Facebook now include Red Table Talk, STEVE on Watch, and more.

During a roundtable livestream the participants could field audience questions, give perspective on industry news, or entertain the audience. Of course, a live roundtable style will take more set-up than others. But, like a TV show, it can become content your audience tunes in for weekly.

5. Take them behind the scenes with a tour or process-style workshop.

Give your audience an exclusive look at what happens behind-the-scenes of your product. Your audience will have a deeper connection to a product or service if they know the process.

Think about what you can share that would be interesting or compelling for your audience to know. This tactic is especially great for brands who pride themselves on transparency.

For instance, take a look at this Dunkin’ Behind-the-Scenes Live video, in which you’ll see a “First store of the future concept”:

The Live video gives viewers the opportunity to deepen their connection to the brand, particularly since the video isn’t especially “polished”, instead showcasing a more authentic side to Dunkin’.

6. Hang out live in a Facebook Group.

There are over 10M+ groups on Facebook, with 1.4B people using them every month. Consider going live in a group for an exclusive chat with your community. Groups are often smaller and more niche than company pages, so it’s likely the audience is more invested in a topic.

Consider keeping this style of live video very casual. For instance, you could set a discussion topic each week for the audience to ask questions around. Or, ask your group want they want to talk about and program around their interests.

7. Do an AMA with a company expert.

Access to experts in-person is difficult — even before physical distancing. Host an AMA and give your audience access to your businesses’ most knowledgeable employees.

During the live stream, the expert can answer questions on the fly — or consider fielding questions from other social channels and promote a loose agenda.

8. Do a consulting session live.

Service-based industries, particularly ones with a coaching or consulting element, can use Facebook Live as an opportunity to show off skills in real time. This can often be even more interesting than an AMA since you’re able to go beyond high-level strategy and into the gritty details. 

If you have a prospect who is interested in taking the first step with you, ask for their permission to be featured live. You’ll increase your chances of them saying yes by providing an incentive (whether that’s making the session free when you normally charge for it or some other kind of bonus).

The goal of the live consultation will be to solve one of their pains or problems in front of an audience so that each viewer imagines themselves in the prospect’s shoes. Ideally, they’d be thinking, “That person could be me. I wonder what would be said in a consultation/coaching session about my business/situation.”

9. Showcase current inventory and sell to a live audience.

If you’re a product-based business with visually interesting merchandise, you might consider showcasing your existing inventory with a live video and allowing customers to comment when they see something they want to buy.

It’s best to use this type of content sparingly, though, because you don’t want to always come across as overly salesy on social media since most people aren’t logging on with purchasing intent. However, once in a while and with a lot of engagement, this kind of post can prompt curiosity and generate revenue.

10. Host an exclusive product launch or post-launch education session.

Want to make a splash with your next product launch? Consider launching it on Facebook Live. This tactic gives your audience incentive to tune in.

Alternatively, you might consider launching your product across all channels and provide a supplementary live stream. Then, during the live stream you can give the audience a first look at the product in action.

11. Host a contest.

Everyone likes a chance to win something, right? Incentivize your audience to get involved by promoting the contest ahead of time and putting up a prize that excites them.

Some examples of Facebook Live contests include:

  • Trivia
  • Spin to Win
  • Pick a Number
  • Lottery

Those are all great examples, but don’t be afraid to get creative, either. Any kind of carnival-style test of skill could work for your audience to (virtually) “step right up.”

12. Play a game.

One of the key ways to succeed on social media is to humanize your brand. And what better way to do that than share content of you playing a game? Challenge one of your employees to a Jenga match or game of Taboo. Recording it live is a way of including your audience in on the shenanigans you get up to (and, in effect, the human elements of your brand).

13. Have a little fun.

Speaking of humanizing your brand, you don’t have to play a game or run a contest. There are other types of content you can share that shows your fun and playful side:

  • Doing a dance
  • Highlighting “a day in the life” (or rather maybe just a few minutes in the life)
  • Recording an experiment
  • Tapping into acting skills to convey a message or make a point
  • Lip syncing

Just let loose and be authentic. Your audience will love the chance to get to know you. For more inspiration, take a look at The Best Facebook Live Videos We’ve Ever Seen.

Best Practices for Facebook Live

Once you have your ideas set, there are best practices to keep in mind. Below are some tips for before, during, and after you go live.

Before Going Live

Before your live stream, encourage your audience to tune-in. Do this by notifying them via social media posts and Stories.

In your promotional content, source questions from audience members. This will help guarantee the content you produce is relevant and timely. Next, grab a tripod or prop up your phone in a stabilized place. Check your Internet connection and get ready to start the show.

Pro-tip: Write a compelling description of your live video beforehand. That way there are no spelling or grammar errors.

During Your Live Stream

At the start of your live stream, be sure to build-in time to allow your audience to tune in. If filming on a phone, get the best picture possible and lock the focus and exposure.

Some live stream concepts require the talent to move further away from the phone. In that case, consider purchasing a wireless microphone that plugs into your phone.

Once you’re live, make it conversational and encourage your audience to participate. You can respond to and or pin fan comments. Get more exposure by sharing the live stream in groups or Pages you manage.

Additionally, although your audience isn’t there in person, try to make direct eye contact. Look at the lens and connect with the camera. When it comes to using music in a live stream you need to have the rights to it. Using commercial music without rights can be grounds for removal of your live stream. Try using music from the Sound Collection within Facebook’s Creator Studio.

Facebook recommends going live for at least 15 minutes or longer. But remember, the time limit for a session using the Facebook mobile app is four hours.

After the Live Stream

After the live stream is complete, save the live video to your camera roll. There will be a prompt once it ends. A great way to repurpose this content is to share it in your Feed, Stories, and even on IGTV. Repurposing a live video into supplementary social content can be even more rewarding.

So why go live on Facebook? It’s a unique content opportunity to help build brand awareness. The real-time, two-way conversations that happen on live also help build relationships.

There are so many options for live streaming so get creative! And don’t forget, you can repurpose live videos across social channels. Adding value for your fans and followers in real time has never been easier.

Editor’s note: This post was originally published in May 2020 and has been updated for comprehensiveness.

Reblogged 1 day ago from

The 6 Best Thank You Page Examples of 2021

… Not exactly the message you want your customers inferring from your website’s Thank You Pages, is it?

Thank You pages are effective opportunities to demonstrate appreciation towards your leads, prospects, and customers for taking a desired action — and even potentially convert users or increase sales through additional CTAs. 

Here, we’ll explore six different purposes of a Thank You page, along with six stunning examples of Thank You pages to inspire your own designs in 2021 and beyond. 

Let’s dive in. 

What is a Thank You page?

Your customers and leads see your Thank You Page immediately after completing a form or making a purchase on your web page. It acts similarly to a confirmation email — except viewers don’t have to choose to open it. 

Think of a Thank You page as both the last step in your conversion process and the first step for customer retention. 

The Thank You Page presents a prime opportunity to turn a lead into a customer — or a customer into a brand advocate. The best way to do this? Make the next step(s) in the buyer or user journey:

  • … Obvious and clear
  • … Immediate
  • And exciting or desirable.

What is the benefit of a Thank You page?

Think of it this way: you may never have an easier, more natural opportunity to give a customer something that pleasantly surprises them and precisely fits what they want. 

How do you know what your customer wants? They just told you exactly what they want, by following a call-to-action on your site.

After someone follows the CTA on a landing page, take them to step two in their journey before they click away. Show customers you’re ready to deliver value time and time again.

For instance, if a customer makes a purchase on your site, use the Thank You page as an opportunity to add value through additional resources or content — which will build trust and delight customers. 

Alternatively, you might use a form Thank You page as an opportunity to provide leads with next steps. If the lead downloaded a Social Media Calendar ebook, the Thank You page can list out alternative social media resources you’d like to provide. 

To see this in-action, let’s explore Thank You page examples, next. 

Thank You Page Examples

1. Purpose: Contact Form Completion

Confirm to your customer that they completed their intended action successfully – and remind them what you will (and won’t) do with their information. Build trust and let them know you’re on their side. 

Let consumers know you’re interested in delivering value … and won’t be emailing them just for the sake of it.

This is your best chance to convince consumers your brand is different, and it comes long before they run across one of your messages in their inbox.

Best Contact Form Thank You Page

Axis Social tells a big, layered story on their Thank You page for new contact form sign-ups. Thanks to careful layout and crisp design, they manage to push their primary CTA while also reinforcing social validation and trusted partners.

2. Purpose: Downloadable

You likely have an ebook or other lead generation downloadable send automatically via email. However, it’s still best to offer a download link to the originally-requested item right on your Thank You Page, as well. 

This can keep your customer engaged on your site and increase the likelihood they’ll open and engage with your materials right away. 

Best Thank You Page for Downloadables

The Content Marketing Institute incorporates both native download links and curated suggestions for additional on-site content into their Thank You Pages. (It’s almost like they do this kind of thing for a living …)

Content Marketing Institute's Thank You page

3. Purpose: Purchase Confirmation Pages

The post-sale confirmation page is an often-missed opportunity to surface similar, related, or complementary products. 

To increase effectiveness, you’ll want to customize these recommendations with an aligning offer — such as a coupon, rewards program, etc. 

If customers can create an account with your site, but also have the option of checking out as a guest, the confirmation page is also a great opportunity to prompt a free account creation. 

Best Purchase Thank You Page

Few companies can even begin to approach the level of customer data that Amazon collects, stores, and leverages across their businesses. This quality of information – and the company’s essentially limitless supply of items and store listings – makes the purchase confirmation page incredibly effective (and, as a consumer, quite difficult to resist).

amazon thank you page

4. Purpose: Appointments and Reservations

When you’ve got someone newly signed up for an appointment, the Thank You Page provides a ready-made opportunity to expand or extend the conversation with them. Encouraging viewers to follow or engage with your organization on social is a natural next step.

Best Thank You Page for an Appointment or Booking

OpenTable incentivizes users to download the app once they’ve made an appointment so they can track and modify changes from within the app itself. The Thank You page also includes helpful notes about what to know before arriving at the restaurant. 

opentable's thank you page

5. Purpose: Account Creation Thank You Pages

This is a prime opportunity to usher your lead seamlessly into your onboarding or account setup process. 

You’ll want to make it so easy they don’t even think about clicking away. 

You know how hard you had to work to get them to this point in the first place. Why not capitalize at the start by moving them a step or two along in your retention lifecycle journey?

Best Account Creation Thank You Page

Backlinko goes above and beyond in laying out the next steps for their leads. They’ve infused their page’s messaging with urgency, but also friendliness and approachability. 

Backlinko's thank you page

6. Purpose: Donation Thank You Pages

A donor isn’t ‘buying’ a product in the same way most other customers are, but they’re undoubtedly looking for some element of reassurance, affirmation, appreciation, or — at the very least — some confirmation that their contribution is making a positive impact and being well spent. 

For nonprofits, political campaigns, and other donor-soliciting sites, use the Thank You Page to provide a window into each donation’s impact, right from the start.

Additionally, it never hurts if you can anticipate and answer questions about your efficacy before they’re even asked. 

Best Donor Thank You Page

Save the Chimps nails the impact of storytelling on their donor Thank You page, putting the chimps — the organization’s beneficiaries — front-and-center. 

save the chimp's thank you page

Reblogged 1 day ago from

The greatest hits: Repurposing your best content for social media

In today’s crowded social media landscape, social marketers know how challenging it can be to get their brand’s content to rise above the noise. Throw in the fact that many social media algorithms prioritize relevance over chronological order and social teams find themselves posting all kinds of content to see what sticks and what doesn’t.

But trying to identify relevant content for multiple social networks all the time is exhausting. And, frankly, some days you just don’t have the time to create fresh social content from scratch.

When it comes to social content creation, it pays to “work smarter, not harder.” Instead of constantly coming up with new ideas, social marketers should look at what they already have and repurpose their top-performing blog posts, videos, reports, white papers and more.

In this article, we’ll discuss how to repurpose content for any social media platform and how to make your content work for you, instead of the other way around.

Why it pays to repurpose content

Besides the obvious allure of recycling (less work, more time saved), there are a number of strategic benefits to repurposing your content for social media including:

  • Reinforcing your brand’s messaging
  • Giving content an SEO boost
  • Reaching audiences who missed a piece of content on its first round of promotion

For example, The Sprout Social IndexTM is our annual data report that speaks to the entire marketing industry. But we also include data points that are specific to certain industries and can be used to capture the attention of niche audiences. With this in mind, we created an entirely new article inspired by data from the Index and dove deeper into those industry insights. At the end of the article, we included a CTA driving readers to download the Index report to learn how to put those insights into action.

What to consider when repurposing content for social media

Before you dive into recycling your content, you should know that not all content lends itself to this particular art form. Put your best foot forward, as the saying goes: Prioritize content that performs well and will meet your needs and goals. Having a goal in mind makes it easier to determine which metrics you’ll use to evaluate what content to include in your curation strategy. Goals can include:

  • Raising brand awareness in a certain industry
  • Driving organic traffic back to your website
  • Supporting leads or trials

Next, ask if the content you want to repurpose is evergreen or time-constrained. An article that performs well year-round may be easier to repurpose right now, while event-specific or seasonal content may need to be carefully scheduled before posting.

Repurposing content for social media also means you need to consider where it will be posted. The right channel makes all the difference—how you tell the story is equally as valuable as the story itself. Consider which of your networks are most active, how your audience uses each of them and what format you’ll be able to repurpose content into. A three minute video based on an eBook may work well for YouTube, but is likely too long for Twitter. And as always, know your audience. Think about what your audience on each network expects to see from you.

How to repurpose high-performing content into a social media post

After compiling a list of your best pieces, it’s time to repurpose your content for social media! Here are some ideas to help kickstart your creativity and turn any piece of content into an engaging post for your networks:

Post Twitter threads.

WordPress now has a feature that automatically publishes blog posts simultaneously as Twitter threads with just two extra clicks. Talk about two-for-one content! You don’t need WordPress to repurpose posts this way, of course. A little copy-paste work (and some copyediting) makes this option accessible to any social media manager.

Cross-post your livestream.

Extend the life of your livestream event by saving and uploading videos to YouTube, sharing snippets to Twitter, or trimming clips for an Instagram post. Screenshots and quotes can be used for non-video posts to capture your audience’s attention or to tease what’s to come in the future. The possibilities for repurposing livestreams are endless.

Make it a GIF.

Have a video clip or animation that brings a smile? Turn it into a GIF! Plenty of free tools exist to do this, and GIFs make for fun, eye-catching posts that can be used to promote a piece of content. To help drive new readers to an interview with Philz Coffee, we turned a portion of the video interview into a GIF to accompany a pull quote on Twitter.

Ask a question.

The same questions used to spark comments at the ends of videos and blog posts can be repurposed on other platforms. LinkedIn Q&As and Facebook and Twitter Polls all create opportunities to engage your audience with existing content or to tease a new report that’s on the way.

Provide an answer.

Search your Facebook and LinkedIn communities for questions you can answer with an existing article. By repurposing content and/or linking to it in your response to queries, you build relationships and increase the chances of being found by others asking the same question.

Rework written content for Instagram.

Even written content can find a home on a visual platform like Instagram. But don’t just copy and paste a paragraph as your Instagram post; consider pulling out salient data points or quotes to build a social narrative around. We noticed a Sprout article on social media managers’ mental health was attracting a lot of pageviews and was well-received by our community. We turned it into an Instagram carousel with tips on how managers can broach the subject of burnout with their direct reports.

Turn a webinar into a video.

Can that educational blog post be reformatted into a LinkedIn live or a YouTube video? Repurposing written content into something your audience can watch and listen to isn’t just easy, it’s also likely to reel in followers who prefer webinar formats over long-form reading. Following the launch of the Index, we turned the report into a webinar where we dug into the key findings with a panel of social media experts.

Smart content repurposing generates exponential returns

If you already have high-performing content, it’s time to leverage it across channels. With a little creative reformatting and thoughtful placement, social media marketers can make the most of all their brand’s greatest content and reduce the workload of content generation. It’s a win-win!

Wondering how you’ll keep track of all the posting you’re about to do? Check out our advice on how to create a social media calendar that works.

This post The greatest hits: Repurposing your best content for social media originally appeared on Sprout Social.

Reblogged 1 day ago from