Category Archives: Meetup Slides

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.

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]

June 2016: Git Version Control for the Complete N00b

Adam LaBarge from Hyperarts introduced us to Git and GitHub: installing Git on Windows and Mac, cross-platform GUI clients for Git, repositories like GitHub, GitLab, and BitBucket, deploying from Git to WP Engine, and other useful tools for developers.

Notes from Adam’s Git Presentation

Git was invented by Linus Torvalds.

What’s different about Git? It takes snapshots of your data as your file changes. Git manages the version you see when you open the file.

Everything is local: all the changes and history are on your machine, so you can work without a network connection. If a teammate’s repo is destroyed, you’ll still have everything.

Git is an “add-only” program–it ‘s very hard to get it to delete anything.

WordPress updates are a key reason to use Git. You don’t want to overwrite working code.

You only want working code on stage and master.

Git is amazing for managing your team code efforts…though it IS possible to overwrite your co-workers’ code, so you have to do it right.

You will thank yourself for having a Git workflow and sticking to it.


Git is basically a command-line app. There is a terrible default GUI, and some other GUIs, but some things HAVE to be done on the command line.

There are install packages for Linux, Mac, and Windows. Be aware that you need to specify that you’re using Git for Windows when searching for help for Windows machines.


If you don’t want to use the command line, you can use something like SourceTree or GitHub Desktop.

The GitHub app gives you a good introduction, but it has some drawbacks, especially if you’re dealing with a huge number of files.


Repositories are a place to save your code but they also offer additional services.

You can belong to multiple repositories on GitHub, BitBucket, etc. You can scan your code for PHP errors in the process of pushing it to your repository.

Git by itself is just versioning, not user management. For user management you need a Git server, either one you create yourself or a hosted server like GitHub.



Fetch gets code from a remote repo, but without merging it into your local repo.

Branches: there should be at minimum master (production), stage (for the staging server, to test), and whatever working branches you want. When you’ve finished testing, merge locally, then push to repo.

Git does not have a pre-defined workflow, so you have to create one for yourself and your team. Don’t MAKE changes on the stage or master branch. Make them in a branch and merge.

SourceTree will let you know if someone else has made changes that you need to pull down. (A pull notification means there’s something you need to pull down.) Ideally, you won’t have two people working on the same branch at the same time, but let’s face it, it will happen. If you’re both working on the same branch and you get a pull notification, stop what you’re doing, merge your changes, fork the staging branch, pull down the changes. Merge his changes to your branch, and if they work, back to stage.

“If you’re not sure what’s going on, make a fork of what you’re working on.”

You can force push your changes and re-set the repository.

Whether you create a readme file and a .gitignore file on GitHub depends on whether you’ve already got them on your local.


WP Engine Git Deploy only goes one way, so you really want EVERYTHING in your local Git repo. (Or, well, the repo where you’re keeping stuff, which could be on GitHub or wherever.)

SiteGround’s Git Tutorials

It’s easier to use the HTTPS version than the SSH, because with SSH you have to generate keys. Alas, both WP Engine and SiteGround require SSH keys. There seems to be an assumption you’re going to be working from GitHub so you can generate keys there.

If your code is already on a host, you can push the code from your host to GitHub and then pull it to your local install. (Assuming you have SSH access, of course.)


Don’t be scared to delete Git and start again.

Revert is a pain. Switching branches is easier.

If you don’t commit a change, there won’t be any record of it, so if you want it saved for posterity, commit it!

Before you do anything else, “git status” to find out where you are and what’s pending

The head is the last point of the current branch.

If you find a conflict, humans have to intervene: contact your colleague and decide whose version to use. You have to tell Git you resolved the conflict by re-adding the files.

April 2016 – WordPress and Business Intelligence Presentation

Thanks to everyone who attended this past Sunday in our new meetup location. Here’s my presentation on Business Intelligence and WordPress, which I’ve uploaded to SlideShare.

Sallie’s Notes on Anca’s Business Intelligence Presentation

Definition of Business Intelligence: The tools and techniques to acquire data and transform into meaningful and useful information.

Some questions that business intelligence is designed to answer:

  • Who are my best customers?
  • How much money have I made this year?
  • What will it take to fulfill an order or provide a service? (COGS and overhead)
  • How effective are our marketing campaigns?
  • How well are our systems working?

The answers to these questions help you determine which products to keep, whether to add or reduce staff, whether to enter or exit a market, which marketing campaign to undertake

So where does WordPress fit in?

You can use WordPress to manage your organization and centralize forms, content, commerce, appointments/events, services, social conversation, contracts and payments, account management.

Tech Liminal uses a lot of services, and they’re planning to narrow that down. Getting rid of EventBrite, for instance. Every system creates friction in your business. Make a mind map of these for yourself so you can figure out which ones you don’t need.

“We never use our Google Sites ‘Intranet’: it’s a pain.”

Beware of VC-funded startups that are not yet profitable: they may go away and take your data with them. (Lisa LaMagna had this experience with Zirtual.)

Business Intelligence Reports and WordPress

AMR Users plugin will tell you anything at all about your site’s users. It’s very fast to query because it caches tables.

WooCommerce reporting will show you how much you’ve made, and you can export it, but it’s incomplete. There’s always more that you want. There are several reporting extensions for WooCommerce to expand what you get in the basic package.

One of WP’s strengths is the small number of database tables. In terms of what you want to report on, it’s posts, post meta, users, user meta, terms, term meta.

The meta tables help keep the main tables simple. Writing SQL queries goes well when you have a moderate number of users and meta records. But meta tables can really blow up.

If you write plugins, remember that storing data in an array makes it harder to query.

When you get hundreds of thousands of users, your queries start to time out because there is SO MUCH META. For a while you can just increase your hosting, but eventually you have to find another solution.

Creating intermediary tables to make reporting more efficient. It takes about 10 seconds to generate this table for 290,000 users on the Social Media Week site. Intermediary tables do not mess with the original data.

For displaying these tables, Anca uses jQuery Tables.

Understand your metrics: what are you trying to measure? You can’t measure everything.

Business Intelligence Takeaways

  • Learn where the data is.
  • Learn a little SQL.
  • Make your report actionable.
  • Leverage third-party services.

Business Intelligence Tools

Domo business cloud lets you aggregate your data and report on it. (It’s a data warehouse, a term Anca hasn’t used for a long time..)

Google Sheets (or Excel) for viewing all that table output and creating graphs. Sonja says that the number one business intelligence tool is Excel.

If you start using Salesforce, you will need to learn how to use SQL queries.

Points to Remember

  • The thing about data is that your brain will impose patterns where they don’t exist.
  • In order to turn data into information, you have to understand it.
  • Test your assumptions. Figure out ways to validate what you think you’re seeing.
  • You can’t just install a tool–if you don’t understand what you’re doing, they won’t be helpful.
  • If you do nothing else, download and install AMR Users (assuming your site has more than 2 users)

Where to Learn More

There are online courses and books about becoming a data scientist.  For example: