An Update for Better Click To Tweet Power Users.

I love the smell of freshly baked plugin updates.
I love the smell of freshly baked plugin updates.
Recently my most popular WordPress plugin got a sweet little update for which the changelog simply says

“added the ability to specify a custom URL as a shortcode parameter.”

Allow me to expound on that.

This change to the plugin is HUGE for power users, because now you can put any link you’d like in a proposed tweet.

Every other similar plugin gives you the ability to link back to the post you are on (and only to that post). Now with Better Click To Tweet you can add a link to anywhere in a tweet for users to click and share!

So, if for example I want to promote (and provide a way for my readers to promote) my favorite YouTube comedy duo, now I can make a box that looks like this:

Easily some of the most ridiculous stuff you'll see on the 'net. Share on X

…and gone is the link back to the post you are currently reading!

The shortcode I used to created that box looks like this:

[bctt tweet="Easily some of the most ridiculous stuff you'll see on the 'net." url="http://rhettandlink.com"]

Easy-peasy! A few things to note:

  • URLs with non-ascii characters (éåø and the like) are not currently supported. This is a limitation of PHP, and something I’m working to fix in a future release. For now, you can shorten those urls using bit.ly and that’ll solve the problem.
  • You must include the http:// or https:// at the beginning of the url parameter.
  • If your URL has the & symbol in it, it’ll confuse Twitter, and things will go badly. To avoid this issue, manually shorten your custom URLs that have that symbol in them using a service like bit.ly before inserting it in the shortcode.

Happy blogging. Don’t be scared to donate if my plugin has helped make your life easier. That’s how you keep good freelance developers in business.

My Dad the Scarecrow. A Fight Worth Winning Against Critters.

That's not exactly how he looks. His hat's different, maybe.  Creative Commons Image Attribution
That’s not exactly how he looks. His hat’s different, maybe.
Creative Commons Image Attribution
In the spring every year, my dad becomes a full-time scarecrow. At daybreak during gardening season he assumes his position in a strategically located chair in the yard, fending off wildlife that would render his garden a 24-hour furry buffet.

He takes a book, a cup of coffee (with water bottle chaser for once it gets warmer), and sits guard over his domain.

Even with such vigilance, last year the deer began winning. He’d wake up early, and get out to see tracks and nibbles alerting him to their wiles.

Not to be outsmarted (he has a distinct prefrontal cortex advantage over the deer in that area), he purchased and installed a motion sensor sprinkler system that stands guard in his absence.

As a sidenote, it never gets old sending my 4- and 6-year-old into the garden without reminding them that the sprinkler is on.

See, even the best attention is not critter-proof when it comes to gardens. It’s a full-time job.

The same goes for your WordPress install. You might as well plan on having “critters.” Malicious code, hackers, and spammers. They are coming. What are you going to do to ward them off? A solid maintenance plan is critical. Keeping your site up to date is a digital sprinkler spraying would-be buffet visitors.

Contact me today to get started.

If you need me, I’ll be eating some of the corn, field peas, and fried okra from my dad’s garden.

You should be paying $100 per hour for WordPress maintenance.

With a range of services from $5 a month up to $300, where is the sensible guide to how much you should pay for WordPress maintenance?

Get more developer for your money. Original Image Creative Commons Attribution
Get more developer for your money. Original Image Creative Commons Attribution
It depends on what level of service you want. Here’s the simple method to calculate (roughly) how much value you’re getting.

A good WordPress developer* charges at least $100 per hour for their services. Anyone charging less than that either doesn’t take themselves seriously or is just a hobbyist coder, doing this for fun.

For a good developer, routine maintenance will take 15 or 20 minutes per week on most WordPress installs. To estimate on the higher end, that puts us at just over an hour per month, on average, for weekly maintenance.

Those of you who are good at math have already beat me to my punchline (three paragraphs from now): $133 per month. Stick with me, though. There are some ways to bring that cost down without hiring a lesser developer. In fact, your functional cost goes UP as you higher lower end developers.

Most simple sites don’t need plugins to be updated weekly, for starters. Barring major security patches (which good developers will know about because they are plugged into the WordPress community and hear about them hours after they are released. Put a checkmark in the “worth hiring a better developer” column) the average site will be fine with monthly software updates or even quarterly updates. A good developer will be able to tell you in 5 minutes how often your site needs maintenance, based on your size, frequency of posting, and subject matter.

A good developer needs to prepare for the worst case, with regard to those security patches mentioned above. If she is managing 15 sites with maintenance, updating an emergency security bug can take hours, if all of the sites are running the offending plugin or theme. So that cost is going to be baked into her monthly fees.

There are some great systems out there to help developers to manage multiple sites, but even with the best systems, they’ve still got to manually check to make sure updates don’t break things. That’s a non-scalable moment of developer attention, per site. In the world of open source software, security issues and bugs are inevitable.

So, here’s a relatively basic monthly price breakdown:

  • Weekly maintenance: $100-$150 per site
  • Monthly maintenance: $25-$30 per site
  • Quarterly maintenance: $7-$15 per site

So, if you want top-tier maintenance for your WordPress website, expect to pay about $150 per month. That gets you a little over an hour of focused attention from a top-notch developer.

Lesser developers take longer to do tasks, and make more mistakes. That’s not a slam, that’s how we learn. But know that if you are not paying in the $100 per hour range (based on how long I’ve said it takes to update most installs–if your situation is more complex, use the appropriate multiplier), no matter if you are paying a big company or a solo developer, you are probably not dealing with a top-shelf developer.

Some things scale so that costs are covered (like invoicing, administrative work, etc.) As the developers scale the business, the costs (not the taxes, to be sure) can spead over multiple clients, and bring down overall expenses.

The one thing that doesn’t scale in the whole operation is the focused attention of a top-notch developer. And it still takes time to maintain your site.

Focused attention of a top notch developer *never* scales. Pay what it's worth. Share on X

If you don’t need an hour per month of that focused attention (and you probably don’t), scale your price accordingly.

Also, note that the best developers are not going to tell you how many hours a task takes them. They charge per project, or per task, which is fair, because penalizing for efficiency is twisted.

Paying for maintenance is well worth your time. Paying for subpar maintenance is OK, just be aware of what you are paying for.

I’d welcome feedback here: is there something I’m missing? That’s why comments are enabled!

*My working definition of “good” goes beyond someone who can install plugins and themes, and tweak some CSS/HTML. If your developer can’t at least understand PHP and JavaScript, they are still a hobbyist. Pros can (and should) charge at least $100/hr.

Shut Your Pie-Hole, Imposter Syndrome.

You’ll never graduate to fixing problems if you don’t first understand the system. That’s how the pros became pros.

I was having trouble with my website the other day. It was an issue unlike any I’d ever seen. My mind started to fill with all those familiar thoughts:

Welcome to my internal debate.
Welcome to my internal debate.
  • Real developers don’t have these types of issues.”
  • “Maybe I should stick to guitar, or retail sales.”
  • “I’m too dumb to figure these things out”

I pushed back with a bit of truth: I am a real developer, and the way all of those other developers got to where they are today is by not giving up when they mysteriously borked a table in their database. I can figure this out. Today’s as good of a day as any to learn something new.

Web development (and I assume this applies across most of software development) is as “simple” as understanding how the pieces fit together, and isolating problems by tracing through the connections.

Just like a good auto mechanic can explain everything that happens between gas pedal and tire to make a car accelerate when you push the pedal, the best developers out there have at least a rudimentary understanding of everything that happens from browser to server and back to make your web site look the way it does.

If you are a WordPress developer, that includes steps like how WordPress interacts with the database, and how to isolate issues to specific database tables and indexes.

This week in my never-ending journey to be the best web developer I know, I learned that the wp_options table contains an index named wp_user_roles that, if messed up (in my case, prefixed incorrectly by a naughty backup plugin’s importer script which shall not be named), makes even the most admin of admins appear to the server to be just an average joe with a subscription.

As Yoda might say “Locked out of my website I was.”

Hours of wanting to punt my laptop through my office window later, I stand before you a man with a far more rich understanding of not just the truths in that above paragraph, but also of WP-CLI, MySQL, databases, and WordPress in general.

Take that, internal monologue. I am a real developer.

Logged back into my website I am.

Operation Over The River UPDATE April 2015.

How do you motivate your 6- and 4-year old to be more active? I chose to ride my bike with them across the state.

One set of Grandparents down, one to go!
One set of Grandparents down, one to go!

I promised to pop back in with updates, and I’m happy to report that as of Easter Sunday (just a bit over 7 months after we started), we made it the 101 miles to my parents’ house, and fittingly were able to do it at my parents’ house!

Note another flawless use of “Ka-chow!” by Benjamin, and Theo’s race pose.

Now, to keep track of the 185-ish miles left to go to make it to the other set of grandparents!

I love being a homeschool dad.