All posts by Sallie Goetsch

Why Growing Your WordPress Business Is Like Flossing Your Teeth (Feb 2017 Slides)

Presentation Summary

Everyone wants to know the secret to growing their business. The secret is that there is no secret. The same tried and true principles and practices are the best ways to grow almost any business. This certainly holds true for small agencies and freelance contractors.

I’ll share my experiences growing a freelance web design and development business. Everything from how I got plugged into a well connected network to why my customers pass my name around like mashed potatoes on Thanksgiving.

There will not be anything revolutionary or mind blowing in this presentation. It’s just the stuff you know you need to do but don’t – just like flossing your teeth.

About the Speaker

Shannon DunnShannon Dunn is a freelance designer / developer. He calls himself a Swiss Army knife for marketing directors. Shannon has owned and run a collection of businesses that are strangely diverse: mobile events outfit, window and housecleaning service, silkscreening company, WordPress theme shop, and utility knife to marketing folk. Shannon has imposed himself upon the local WordPress community as the lead organizer of WPSFO and if you haven’t had enough of him yet, you will by the end of this presentation.


Download the PDF file .

Sallie’s Notes

Making people feel like they had a great experience is more important than being good at your job.

Learn which weaknesses you need to improve–and which ones you’re not likely to improve.

“Find someone who’s doing what you want to do and learn from them.” –Shane Perlman

“Learn from the mistakes of others. You can never live long enough to make them all yourself.” –Groucho Marx

Really Dead Simple (but Critical) Things

  • Be really good at what you do. Shannon is a good designer and developer, but he’s REALLY GOOD at treating his client well.
  • Listen. Control the urge to jump in and share your own experiences.
  • Be a trusted source.
  • Be kind and enthusiastic.

Your Best New Customer Is Your Old Customer

They already trust you. They already give you money. You’re more likely to get money from your existing customers than from people who don’t know you at all. It’s easy to neglect existing customers, but it’s stupid.

Are you doing EVERYTHING THAT YOU CAN for your existing customers? (Examples: maintenance, annual site reviews, SEO, marketing, training, documentation, content…) Find ways to say “I can do that.”

Find out what’s important to your customers, and find a way to help them with that. Always couch what you’re offering to do in the context of what’s important to the client.

Proceed with caution. Avoid things that are really not your strength. Instead, find a partner to refer that work to, and focus on adding services in your strength.

Don’t chase inefficient money at the expense of more efficient money.

Cultivate a Network

Don’t go to networking events. Everyone else in the room is selling. Instead, start with your existing customers. Join communities, such as Meetups. Speak. Contribute. Get involved with your local Chamber of Commerce and meet other local businesses.

Social media can be useful, but in-person connections are likely to be more valuable for you. Two geographically-based online networks to check out are NextDoor (no posting of promotional items, but people sometimes ask for recommendations) and Townsquared (meant for local businesses to promote themselves).

Anca says: if you don’t want to do content marketing because you don’t like to write blog posts, answering questions on public forums can serve the same purpose.

Find your network stars. Some people will send you TONS of business. These people are well-connected and you’ll see that. You’ll identify them in part because of the quality of the referrals they send. Spoil these people. Shower them with tokens of appreciation.

The opposite of a network star is a network dud. Identify the people who give you consistently bad referrals, ask for a lot without giving much, etc.

When you introduce two other people, you score a point with both. Be a connector.

Be Ready to Show Off

You don’t just want to show what you’ve done, but also what you’re like to work with. State your value. Contextualize your work. Make sure you explain how what you did helped your client.

Even if you have a portfolio site, it doesn’t hurt to create a printable one-sheet handout. Your network superstars may want to share it with others.

When to Do Free Work

Doing free work can be a useful means of marketing, especially when you are starting out. A few guidelines to keep pro-bono work from being a burden:

  • Don’t overcommit yourself. Free projects should be easy to build.
  • Make sure the client knows the value of what you’re doing.
  • Never do free work for a client that has a budget.
  • Beware of promises of future paid work. They don’t always pan out.

How to Fire a Client

Sometimes, even when you’re doing your best, a client relationship goes sour–or a client wasn’t a good fit in the first place. If you need to fire a client, get straight to the point and don’t let fear of hurting someone’s feelings stop you. The client almost certainly already knows the relationship isn’t working.

Say something like: “After mm/dd/yyyy, I will no longer be able to provide services for you. I appreciate the work that we’ve done. I will help you transition to a new team.” Once you both know it’s going to end, your relationship will improve.

Feb 2017 Q & A: Directories, Security, Languages, and Genesis

There were lots of question at the February 2017 East Bay WordPress meetup. Here they are with their answers.

What’s the Best Directory Structure for WordPress?

If you are planning to have multiple WordPress installs on your hosting account, or to install both WordPress and other apps on a single domain, it’s a good idea to put WordPress in its own directory.

There are also other occasions when you might want to create a separate directory or subdomain. (WordCamps move the previous year’s WordCamp info onto a subdomain so that the main domain always shows the current year’s information.)

And then there’s the question of whether to use a subdomain or subfolder structure for WordPress Multisite.

The WordPress Codex is the best place to start:

Note that we will be having a meetup about WordPress Multisite in May.

What are Some Best Practices for WordPress Security?

There are many posts about this (most of them covering the same points), but again, it’s helpful to start with the WordPress Codex article “Hardening WordPress.”

Among the most fundamental suggestions are

  • Keep WordPress, plugins, and themes updated
  • Use a good username (not “admin”!) and password
  • Don’t re-use passwords across multiple sites
  • Don’t use an admin account to publish content
  • Make sure your user id is not “1”
  • Use an antivirus on your computer to prevent infections spreading to your website.

It’s easy to start using strong passwords by installing a password management app. LastPass is free for 1 device and $12/year to install on all devices. It generates and stores strong passwords and syncs them between your phone(s) and computer(s).

What’s the Best Tool for Publishing a Site in Multiple Languages?

You (or your clients) may have a multi-lingual readership, and sometimes an on-the-fly mechanical translator like GTranslate doesn’t cut it. The most-established (though by no means easiest) plugin is WPML, which Sonja London recommends. Polylang and Weglot are two others.

Note that if one of these plugins doesn’t work with your theme, the problem might be the theme.

Those plugins address the front end of the site (what visitors see). The Polyglots team is in charge of translating the WordPress admin and settings pages for themes and plugins. Plugin and theme authors are encouraged to make their extensions translation-ready. There’s an Admin Language Per User plugin so each author on your site can interact with WordPress in his or her own language.

Where Can I Find a Good Genesis Starter Theme?

If you use (or want to start using) the Genesis Theme Framework, sign up for the GenesisWP Slack team, where you’ll find a large and helpful group of Genesis developers.

StudioPress provides a free Genesis Sample child theme, but it’s not everyone’s ideal starting point. Tonya Mork over at Know the Code will teach you how to build your own Genesis Starter Theme.

Here are a few other options:

2017 Meetup Topics Poll

I need to know not just what you want to learn at this year’s meetups, but when, so I’ve listed a choice of topics for each open date in the calendar. The scheduling still depends on when a presenter is available, so there may be some reshuffling.

The proposed presentations are outlined in a little more detail on our site:

The poll is closed. Meetups for 2017 have been scheduled.

1/15/17: Is Your (Client’s) Website Ready for 2017?

Google is laying down the law again. Are you (and your clients) ready for 2017’s requirements regarding SSL (HTTPS), popups, and Google AMP? It’s really all about mobile-friendliness. This is a search ranking trend that’s been going on even since before “Mobile-geddon” in 2015.

Pizza Sponsor: Lisa LaMagna

Thanks to Lisa LaMagna for providing the pizza!

Site Demo: MK Design

Merel Kennedy demonstrated the use of the WP Image Zoooom PRO plugin on her MK Design portfolio site.

Site Demo: Private Lender Link

Rocky Butani demonstrated the FacetWP advanced filtering plugin on his Private Lender Link website.

Main Presentation: Is Your (Client’s) Website Ready for 2017?

This presentation covers three things you and your clients need to think about in 2017, in order of universality and importance.


Google is pushing us all toward the use of HTTPS (the secure version of HTTP) by shaming sites that are not secure. But Google isn’t the only one. You need HTTPS in order to use the new, faster, HTTP/2 protocol. WordPress will start making some features available only to sites that use HTTPS, and will only include hosting companies that offer free SSL certificates among their recommended hosts. PayPal now requires HTTPS for anyone using its IPN.

The three types of SSL certificates are DV (Domain Verification), OV (Organization Verification) and EV (Extended Verification). Most people only need DV certificates. (The free certificates offered by Cloudflare and Let’s Encrypt are DV certificates.) If you need to demonstrate that you are a legitimate business, you might need an OV certificate. If yours is a site that might be spoofed for a phishing attack (such as a financial institution or auction site), you’ll need to pay the extra money for the EV certificate.

The good news is that many hosts already make it easy to get a free SSL certificate, and even if yours doesn’t, you can get free HTTPS through Cloudflare. The presentation walks through setting up HTTPS on SiteGround, WP Engine, Pressable, and BlueHost, followed by the basics of setting up SSL with a free Cloudflare account.

After you set up HTTPS, remember to update your Google Analytics and Google Search Console. Otherwise you’ll be wondering what happened to all your traffic.


Mobile Search Penalty for “Intrusive Interstitials”

This only applies to mobile: we’re going to keep seeing obnoxious intersitials on our desktops/laptops.

Your email signup form and other offers for your own products are included.

The “interstitial” doesn’t have to be an actual popup: anything that covers the first screen visitors land on from a mobile search link counts.

Legally required popups (such as for age-restricted sites or the European Cookie Law) will not be penalized. Small ads, inline ads, and exit-intent popups are acceptable.

To avoid penalties, make sure that:

  1. Popups are desktop only by Default
  2. You Use Device Specific Display Rules
  3. Floating Bars are Mobile Optimized
  4. You Use Smart Display Rule Triggers


Google AMP and Mobile Performance

There seem to be as many drawbacks as advantages to Google AMP (Accelerated Mobile Pages). If you are a news organization syndicating articles, it might be a good idea. But it’s not the only way to ensure a good mobile user experience, and AMP pages don’t include your branding or calls to action.


October Slides: High-Performance WordPress Websites with Sonja London

Presentation Summary

Speed matters. No one wants to wait around for your site to load, especially on a phone. And WordPress isn’t known for being fast: one of the key selling points of WordPress managed hosting is the server-side caching.

Sonja London has been doing performance tuning since before WordPress was invented. She explains how to determine what’s slowing your site down and what to do about it. Don’t settle for the generic suggestions provided by Google PageSpeed Insights: following them may make no difference at all if your real problem lies somewhere else.

Presentation Slides

Download the PDF file .

Sallie’s Notes

Remember to ask

  • How fast does it need to be?
  • Are you being paid to speed it up?

What Is Performance?

Performance is not speed, but speed is a component of performance. You want your page to load in under 2 seconds. Or at least most of your pages.

Throughput is the number of transactions per second that an application can handle. Throughput can assassinate speed.

Using tests as metrics vs. what the client experiences (what if they have an iPhone 3?)

Latency is (usually) defined the time between making a request and beginning to see a result. (Start of page load.) If a site is slow everywhere for everyone, it’s probably the site. But if the site is slow only for people in a certain area, it’s probably something to do with their connection. Latency is usually beyond your control as a developer.

A HILARIOUS slide of a test where the site is rated F but loads in 1.2 seconds.

What are you testing? Where does the test bot live? Some of the criteria used by GTmetrix et al. are not very logical. Sonja says that Google Pagespeed Insights may be a better tool for beginners

Use PingPlotter for measuring latency and also packet loss.

Deliver only what you need, where you need it, when you need it, from where it should be. And make your clients do it, too.


The most important things for your host: location, location, location (well, for their data centers, anyway)

Server configuration: memory, SSD, CPU speed/cores

Who is really hosting? Do they have their own data centers, or do they buy rack space from somewhere?

That’s not necessarily bad, but you want to be sure that the actual servers are good.

Plugin performance: the simple thing is to test speed first, install, test after.

Use SEO Framework instead of Yoast. (I’ll have to look at it.)

If you have to use a page builder, read Pippin Williamson’s review.

The Database

There are multiple MySQL engines. Find out what your host uses. Some are better than others for transactions. You can have more than one kind of engine in a database (by table). If you write a plugin that creates a table, you can specify the engine. And most hosts let you choose between a couple of different ones within phpMyAdmin. Some hosts also let you choose in cPanel.

The most common are MyISAM and InnoDB. InnoDB is better for transactions and low-level locking.

If you need something temporary, you can just do it in memory.

Federated tables don’t exist in your system. They are somewhere else. This is a bit above my head, but it’s a way to share data.

Plugins and your Database

Watch out for WordFence: not only does it create too many tables, but it uses camel case for table names. Capitals are not allowed in databases on Windows. It throws errors with things like duplicated. Just keep all your table names lower case.

Some plugins have too much logging, and people forget to turn it off when they go to production. Always turn off logging if you want performance.

LOOK AT YOUR DATABASE. Find out what tables are in there. Beware of duplicates caused by migrations.

Know when to use an abstraction layer. (WP’s functions.) Most of the time you SHOULD use WP’s functions. Use dbDelta ( to create tables.

Use Query Monitor to keep track of your queries.

Plan for the future.

For really high-end sites, consider HyperDB, which distributes your database to help with heavy transaction processing. (Hmm…meetup about HyperDB? Meetup about the GPL?)

Maintain your database. Clear out things like autosaves and revisions, transients, users who are no longer active, etc.

Test your database performance periodically. Just because it was good two years ago, doesn’t mean it’s good now. If your page speed is good, the DB is probably okay, but look at queries, the size of the DB, etc.


What the cache does is store things as HTML instead of going to the database every time.

Opcode (like APC) is for PHP

Memcached is for SQL

CDNs serve your site from multiple data centers, close to the people visiting. (Which reminds me…) Depending on your problems, a traditional CDN may not help.

Turn on browser caching via .htaccess.


Compress All the Things. Bake it into your development process. PrePros GUI for automation (instead of Gulp, if you don’t like the command line)

Choose your image format based on the type of image it is. Consider SVG for your logo.

You can also enable GZIP compression via .htaccess. Vary accept encoding. (Google that. It’s for compatibility with CDNs.) You can use it for the basics (text, html, CSS, JS, etc.), or you can apply it to All the Things

Operating System & Web Server

Linux and Apache are the most common, but Nginx is becoming increasingly popular. Sometimes they get combined in a reverse proxy. Nginx is faster.


  •  and Uptime Robot are good tools to use. They can monitor from multiple locations at different times. Note that if you are on shared hosting and you monitor really often, the host might object.
  • GTmetrix, ySlow, Google PageSpeed Insights, Pingdom
  • Query Monitor and Debug Bar plugins for your dev server. (Take off production server)
  • PingPlotter
  • .htaccess Guide

Send your questions to [email protected]