Blog

Email Types & How to Actually Get Your Email Delivered

Maybe it’s happened to you, one day your email is working fine and the next it’s not. You didn’t do anything, so how did your website suddenly go from reliably sending email to not. I’m regularly asked this question. Trust me, I’d love to wave a magic wand and get rid of all your email woes. Unfortunately, I can’t. The issue is that for your emails to get delivered they have to interact with literally hundreds of servers and thousands of filters. And to add more complexity, these filters change literally every day. This is why things can suddenly stop working. They suddenly stop working because the filters changed. Prefer to watch this article as a video? I’ve got you covered: Why is it so hard to get email past filters? Because of spammers. Every year spammers get better at getting through spam filters, so the spam filters, in turn, get tougher for everyone to get through. This is why approaches that worked in the past to deliver email suddenly stop working. The top spam filters are updated constantly and are personalized to each account based on that account’s behaviors. This is why you may reach some people at a domain but not others. Personal email providers like @gmail, @yahoo, @aol, etc all make it much harder to get past their filters. Additionally, the owners of these personal accounts are usually clueless about how filters work. How does email get from sender to recipient? Let’s talk about the journey of a typical email (simplified some): An email is created and sent (by a person, by an app, by a website, etc). The email looks on the internet look for the recipient’s server. It hopefully finds the recipient server and delivers the email to there. The recipient server is a lot

Read More

7 Reasons Why You Can’t Get a Good Google PageSpeed Score

You’ve all heard that Google factors their PageSpeed score algorithm into rankings. But, you just haven’t been able to score well on it. So what are the reasons that you score poorly, and what can you do about it? 1. You don’t understand what Google wants you to do Google gives you a bunch of recommendations. But, if you aren’t well versed in techie speak, they are basically a foreign language. Let’s start with the headings: Possible Optimizations – this is where Google says you could, in theory, improve. Possibly. Optimizations Found – this is what you’ve already done right and Google is happy with. Good job! Here are a sample site’s PageSpeed results. You’ll see these two sections. Possible optimizations are on top with a list of 4 items. Optimizations found is lower on the page with the details hidden. Since you don’t need to improve items that are already optimized, those results are hidden. The last item on the page is the Download optimized image, JavaScript, and CSS resources for this page. That gives you the ability to download already optimized files. On the possible optimizations, if you click on Show how to fix, then it will expand and show you the details of the complaints. Below you can see that the images loaded from external twitter feed could be compressed. If you’re on WordPress and you’d like your PageSpeed & YSlow results explained to you with actionable things you can do, you can Get a WordPress Speed Audit. 2. Your images are huge Images are the most common reason for low PageSpeed scores. On most sites images account for more than 50% of the downloaded content, so you can get some really big wins by optimizing your images. As a general rule: most images on your website should

Read More

WordPress vs Squarespace: Is Open or Closed Source Better for You?

There are a lot of WordPress vs Squarespace articles out there, but they strongly leaning towards one or the other. While I am a WordPress developer and love WordPress, it’s not right for everyone. And I’d rather not take on a client than have a client have a bad match for their needs. So I’ve written up this comparison which goes into a lot of detail showing the two platforms side by side. This chart is broken down into sections because there are a LOT of things to compare.

How to Select the Right Managed WordPress Hosting Company for You

There are a lot of companies out there offering managed WordPress hosting now, but the question is, who’s the right company for your needs? I’ve been working with WPEngine, Flywheel, GoDaddy, and Kinsta managed WP hosting for a few years now, so here’s my analysis of the companies and why they would or wouldn’t be a good choice for you. All of these companies have multiple levels of plans, so I’ve selected the plans most useful for a typical small business website. Disclaimer: The below opinions are our own, you should always consider multiple sources when choosing a provider.

WooCommerce Code Snippets

This post with WooCommerce code snippets is mostly for myself, but I also answer questions at the WooCommerce Community Boards periodically, and this list of snippets can be useful for answering those questions. /** * Remove WooCommerce Updater Notice */ remove_action(‘admin_notices’, ‘woothemes_updater_notice’); /** * Code to fix HTTP Error on uploads */ add_filter( ‘wp_image_editors’, ‘change_graphic_lib’ ); function change_graphic_lib($array) { return array( ‘WP_Image_Editor_GD’, ‘WP_Image_Editor_Imagick’ ); } /************* DECLARE WOOCOMMERCE SUPPORT ***************/ add_action( ‘after_setup_theme’, ‘woocommerce_support’ ); function woocommerce_support() { add_theme_support( ‘woocommerce’ ); } /*** * Add notice to WooCommerce pages */ function my_update_notice() { echo ‘<div class=”update-nag notice”>’; echo ‘<p>’; _e( ‘In order for Room View to work properly with your artwork, you must enter your artwork size as HEIGHT by WIDTH. For example if you have a painting that is 20cm tall and 40cm wide, you would select your size as 020 x 40 cm’, ‘anphira’ ); echo ‘</p>’; echo ‘</div>’; } add_action( ‘admin_notices’, ‘my_update_notice’ ); /*********************************** * Require image to publish product ***********************************/ function on_all_status_transitions( $new_status, $old_status, $post ) { /* If new status is draft and post type is product, then set original to manage stock & qty to 1 */ if ( $new_status == ‘draft’ && !empty($post->ID) && in_array( $post->post_type, array( ‘product’) ) ) { $post = wc_get_product( $post->ID ); if($post->get_type() == ‘variable’) { $variations = $post->get_available_variations(); foreach ($variations as $variation) { if( ( ! isset( $variation->manage_stock ) || ($variation->manage_stock == ‘no’ ) ) && ($variation[‘attributes’][‘attribute_pa_type-slug’] == ‘original’) ) { add_post_meta( $variation->id, ‘_stock’, 1, true ); update_post_meta( $variation[‘variation_id’], ‘_stock’, ‘1’); update_post_meta( $variation[‘variation_id’], ‘_stock_status’, ‘instock’); update_post_meta( $variation[‘variation_id’], ‘_manage_stock’, ‘yes’); } } } } /* If new status is publish and post type is product, then require featured image */ elseif ( $new_status == ‘publish’ && !empty($post->ID) && in_array( $post->post_type, array( ‘product’) ) ) { if( ! has_post_thumbnail($post) ) {

Read More