Client stories: Red Car Analytics

Tending to a neglected Wordpress site

Tags: Client stories


For the first time, I have the opportunity to share some of the work I’m doing through Matthew Cardarelli Solutions. The fine folks over at Red Car Analytics granted me permission to share some details from a project I recently completed for them.

The situation

Red Car Analytics is, according to their website, “…a building energy consulting firm focused on building optimization.” The Red Car website was built in-house by a tech-savvy team member several years ago. That teammate has since left the company. Other team members were pitching in where they could, but a dearth of both time and web development experience caused the site to decay. New content was missing, plugins stopped updating (or updated and caused problems), and page layouts lacked consistency. They needed someone to update the site with their latest achievements and portfolio pieces, improve the general layout and design consistency of the site, and perform some back-end maintenance on their plugins and extensions to improve site stability and performance.

The pitch

Before this project, I had never worked on a Wordpress site. That said, I know how to learn fast on the job while avoiding the kind of “teachable moments” that could cause my client harm. I also highly value transparency. So, rather than trying to conceal my lack of subject matter expertise during my bid and proposal, I told the truth. In my initial pitch, I explained that I see this project as an excellent learning opportunity for myself, and that I would discount my fee for the project in exchange for a chance to develop some new skills. In my proposal, I broke down the potential risks, and the ways I would mitigate them. Finally, I ensured that the contract included a reasonable early termination policy in case either of us decided this wasn’t the right fit.

I felt comfortable admitting my own limitations because I had confidence in my versatility and judgment, and also because my business strategy relies on converting one-off projects into long-term clients. Transparency is essential to my way of doing business.

I must applaud my point of contact at Red Car for doing some heavy lifting during the proposal stage. They provided their own detailed scope of work document without me even asking, which is not something I ever expect, but something I most certainly appreciate. I synthesized the work they needed done, did preliminary research on Wordpress to valiate the plausability of my approach, and padded my time estimates to account for the high degree of unknown. The time padding was communicated up-front to Red Car.

With business negotiations concluded, it was time for the real work to begin.

Accessing the site

I needed access to a few accounts: The Wordpress admin panel, the web host’s admin panel, and the virtual web server. I could have asked Red Car to hand over their own account credentials for each system, but that approach has major problems. First of all, I’m asking them to place a massive amount of trust in me, a relatively unfamiliar third-party, not to abuse my unrestricted access out of negligence or malice. Second, access to unnecessary authorizations, such as billing information, means a wider potential “blast radius” for any mistake I might make.

My Red Car point of contact already knew how to add new contributor accounts to the Wordpress Admin, but when we got to the web host, they wanted to share the owner’s account credentials. I stopped them and tried to walk them through adding a new account, but the web host (who I will not mention for the sake of client confidentiality) did not make this easy. In an effort to respect their time, I offered a compromise: they would share the owner credentials, I would create a new limited account for myself, and then they would reset the owner’s account password.

This worked out great. After some documentation digging, I was able to grant myself minimal necessary access to the system. After doing so, I sent over documentation to the client explaining what authorizations I had granted my new user, where they could find this information in the admin panel, and most importantly, how to revoke my access at any time.

This demonstrates two of my core values, transparency and security, working together to build client trust. I want my clients to remain in control of their own data and infrastructure. On top of that, I want to ensure that when I do make a mistake, or if my account is ever compromised, the impact is limited.

Safety first!

My next question was, “do you have a backup of your site?” The answer was no, so I created one for them.

Backups are critical for any website. They are especially important for content management systems like Wordpress where post and page content lives in a database rather than a version-controlled filesystem. Fortunately for me, backing up a Wordpress site is actually quite easy. There are only two major steps to the process:

  1. Archive the static site files into a zip file.
  2. Dump the database to a backup file.

Most web hosts offer graphical interfaces that make this simple. I, being a bit old-school, opted to access the web server over SSH, run my backup commands there, and then copy the files onto my local machine over SFTP.

I made a point of sharing the backup files with Red Car. This seemingly insignificant step reflects another one of my core values: portability. As an end user and consumer, I despise vendor lock-in. For this reason, I don’t want my clients to feel stuck or punished if they decide to hire a different developer in the future.

The first obstacle

With the site safely backed up, I was eager to start editing content. Immediately, I ran into trouble. I couldn’t even open pages for editing without hitting generic error codes.

Fortunately for me, my client point-of-contact (POC) forwarded me an automated email from the Wordpress server notifying them of the errors. The email contained a link that opened the Wordpress Admin panel in Recovery Mode , a feature I didn’t know existed. This helped me diagnose the root cause: an out-of-date plugin. Digging through the plugin’s changelog, I noticed the errors I had seen were marked as fixed in a later version. A quick update did the trick! Now I could actually start editing pages and posts on the site.

Project highlights

The actual content work for this project touched every section of the site. Many of the updates involved simply inserting or updating text and images, which aren’t the kinds of changes that make for good blog post content. Instead of listing everything I did, Here are two highlights of high-impact work.

Improving the layout of project profiles

Red Car has an impressive portfolio of past projects that they are eager to show off on their website. Unfortunately, they lacked a consistent layout for these projects, so information ended up all over the place. When I added some of their newer projects to the site, I invested some time into finding a basic layout that would present information to users in a more organized fashion, and could be re-used for future projects. Below you can see an example of the differences:

The text and images of the old project profile are scattered underneath the featured image. The new project profile page presents key bullet points neatly to the right of the featured image.
Examples of an old project profile (left or top), and a new one (right or bottom).

Red Car was pleased with this improvement. They actually asked if I could go back and update all of the old projects to match the new layout in a future project.

Paring down plugins

Wordpress plugins are incredibly versatile and powerful, but they also come with hidden costs. Enabling a bunch of resource-intensive plugins can slow a site down and take up valuable storage space. Even worse, out-of-date plugins can cause site errors or expose security flaws. Typically, the best policy is to only keep plugins your site actively depends on.

At the start of the project, Red Car had around a dozen plugins installed, some enabled, some disabled. By the end, I was able to reduce this number down to four, without breaking any features or losing any data. This was possible due to a careful procedure I followed for each plugin:

  1. Review the plugin’s documentation to understand what it does and how it works.
  2. Audit the site to identify any and all potential pages, posts, or other features that may depend on the plugin.
  3. Decide whether the plugin is truly essential to the site.
  4. If not, remove all dependencies on the plugin. For example, re-build pages so that they no longer rely on the plugin’s features.
  5. If the plugin is enabled, disable it.
  6. Test the website to confirm that there are no errors or defects resulting from disabling the plugin.
  7. Delete the disabled plugin.
  8. If the plugin really was necessary and I deleted it, restore it from the backup archive.

I included a list of all deleted and updated plugins to Red Car in one of my work reports, so that they could reference it if they ever wanted to re-install one.

Area of improvement: Wordpress development knowledge

It’s important to recognize not just success, but also opportunities to improve in future projects. During this project, I learned the basics of Wordpress. However, I was clearly hamstrung during certain tasks by my lack of developer experience with the platform. My unfamiliarity with the architecture and source code meant I couldn’t overcome certain limitations, such as the lack of layout options offered by the active theme. One of my goals over the next month is to become more familiar with the Wordpress internals so I can better serve clients on this popular platform.

Final takeaway

This project proves I can offer value-adding services to clients even when I’m unfamiliar with the platform and technologies they are using. I’m grateful for the opportunity to work with businesses like Red Car who are doing great work in the world, and I’m excited to find new clients who share my core values.

Need help with your website? Contact me today so we can schedule your free consultation.


Have questions or comments about this blog post? You can share your thoughts with me via email at blog@matthewcardarelli.com , or you can join the conversation on LinkedIn .