Optimize Multiple MySQL Databases and Tables Automatically

Wrench and Screwdriver on Keyboard

I’ve always been diligent about optimizing my clients’ MySQL database tables on a regular basis to reduce storage space and improve input/output efficiency. When I first started out, MyISAM was the database storage engine standard for MySQL, and  I used to do the table optimization manually, then phpMyAdmin came along and I began using its user interface, but that quickly became impractical as my client base grew. Some of my clients have multiple databases and each of those had multiple tables. I needed an automated solution. I came up with one using a combination of cron and PHP that has worked well for me for years. I had a client ask about the script I use, and I’ve decided to share it here.

Continue reading “Optimize Multiple MySQL Databases and Tables Automatically”

Make Contact Form 7 DMARC-Compliant

Postage Stamps

In April of this year, Yahoo changed its Domain-based Message Authentication, Reporting and Conformance (DMARC) authentication policy. Suddenly, when a user submitted an email using Contact Form 7–and some other WordPress contact form plugins’ forms–using a Yahoo email address, the messages were permanently rejected by some web hosts.

Yahoo is simply trying to reduce the amount of fraudulent emails by rejecting emails using Yahoo email addresses sent from non-Yahoo servers, but It was a really unpleasant surprise for a lot of web developers. Yahoo’s change means legitimate emails sent by users with Yahoo addresses using Contact Form 7 are getting rejected. Other email providers are going to follow Yahoo in using more-strict authentication rules, so even if you don’t care about email from Yahoo users, it’s worth becoming DMARC-compliant. Fortunately, Contact Form 71 comes with a means for making form submissions DMARC-compliant.All you need to do to be DMARC-compliant is to use an email address from your own domain for the “from” address of your Contact Form 7 forms. To make replying to the form-submitted emails a one-click process, you need to set the “reply-to” header in the email to the user’s real email address. Here’s how:

Continue reading “Make Contact Form 7 DMARC-Compliant”

Changing the WordPress Editor Font Size

Magnifying Glass

TinyMCE is the platform-independent, Javascript-based HTML WYSIWYG editor incorporated into WordPress. On its own, TinyMCE uses a  relatively small font size  for the main pane of the editor in WordPress.

Many of WordPress’ default themes come with a style sheet called editor-style.css that overrides the built-in style sheet for TinyMCE, making the font a bit larger and more legible in WordPress. Unfortunately, a number of themes don’t override any of the default TinyMCE styles. I’ve had quite a few clients complain about difficulty reading the default TinyMCE font in WordPress after the theme they selected was installed.

Of course, you could just quickly edit the TinyMCE style sheet and change the font size; however, future WordPress updates might overwrite the change. Fortunately, there are a couple of simple workarounds that will allow you to not only alter the font-size, but also make other styling changes to the editor that won’t be overwritten.

Continue reading “Changing the WordPress Editor Font Size”

Safely Deleting WordPress Post Revisions

Safely Delete WordPress Post Revisions

In a previous post on optimizing WordPress, I suggested configuring WordPress so that revisions are not saved, and to delete old revisions to make the wp_posts table smaller and faster to query, but I didn’t mention how to do it. That’s because there is a little more to deleting old revisions than many posts on the web, and some plugins designed to delete revisions, would have you believe.

Several months ago, in his WordPress.org post “Deleting Post Revisions: do NOT use the a,b,c JOIN code you see everywhere,” kitchin, and the discussion that follows, provides an excellent description of the problems one may encounter when attempting to clean out old post revisions.  As you will find if you read that post, there is an easy way to safely remove old post revisions. You can even optimize your database tables while you’re at it.

Continue reading “Safely Deleting WordPress Post Revisions”

WP Super Cache Versus W3 Total Cache

I have been dealing with a WordPress site that was consuming a lot of resources on the server on which it is installed. In the course of discussing the problems I was seeing with the web host’s support team, the support representative suggested that I try W3 Total Cache instead of WP Super Cache to see if it improved the site’s loading time and reduced the resource usage for the site.

I have used W3 Total Cache in the past, and what I remember most about it was that I had one text widget which simply would not update on the front end until I deactivated the plugin and activated it once more, but I had already done everything I could think of to optimize this problem site, so I was game. And he got me thinking, which of these caching plugins really works the best?

First, I ran GoDaddy’s P3 (Plugin Performance Profiler) on the site several times to obtain a baseline measure of its performance with WP Super Cache installed and configured as I have described in a previous post on optimizing WordPress. WP Super Cache was set up to use mod_rewrite.

Continue reading “WP Super Cache Versus W3 Total Cache”