Real Client Invoice Breakdown

Last updated on July 3rd, 2026 at 04:37 pm

See exactly how I structure project costs. A real invoice example showing what clients actually pay for professional WordPress and SEO work.

This document offers a rare behind-the-scenes look at an actual invoice I sent to a client. A big thanks to Rabin for letting me showcase this.

You can view the entire invoice at the bottom of this post, but I’ve also included the text version below with details as to why I did what I did.

Pages to Noindex for Better SEO

It’s a good idea to noindex pages that don’t bring in leads or web revenue.

Added noindex tag to /covid19 and /disclaimers

Other pages to consider adding noindex tag to include Terms of Service, Website Accessibility, and Privacy Policy.

Fixed 20 broken internal links (false positives)

Instead of just saying I fixed 20 links, I mention here that they were false positives so the client knows that no edits were actually made.

Merging 100s of URLs

These tasks were part of a URL consolidation campaign where the overall goal was to improve crawl budget by removing pages, posts, articles etc. that earn little to no traffic.

  • created list of all city-specific URLs
  • went through remaining ~240 pages to determine next steps for consolidation
  • removed another ~30 under-performing URLs

Streamlining Plugins for Better Performance

Fewer plugins = fewer problems.

Deactivated/removed plugin Image optimization service by Optimole

If I find a plugin that is not being used, I’ll deactivate and remove it. But only after confirming it is not necessary by asking the client, or figuring it out on my own.

Boosting Website Speed with PHP Updates

Updating the PHP can improve website speeds up to 5x!

Tested updating PHP from 7.4 to 8.2 but no good due to many missing elements

Not all sites work on the newest PHP, however, so sometimes I’ll have to revert it back if anything breaks.

Modifying/optimizing many of the most popular plugins in WordPress

  • enabled Table of Contents to display open automatically
  • optimized crawl settings via plugin Yoast SEO

Created ~43 redirects

These were added server-side within the .htaccess file. I’ll utilize a redirection plugin only if required but server-side is more reliable.

Using Google Search Console to Remove URLs

Knowing how to work with Google Search Console is crucial.

Started validation request within GSC re: ~132k 404s

Here I am telling Google that a large number of URLs should be removed from its search results.

Scanned site with Screaming Frog looking for schema to remove

I even mention specific tools I work with on certain tasks. This helps with keeping data accurate in case another scan was done with a different tool.

Enhancing Local Rankings with Schema

Schema is such a valuable knowledgebase.

Creating and adding local business schema to city-specific landing pages

  • created product/review schema for all 8 locations, then added to each landing page, also verified each URL via Google’s Schema Markup Validator

Pay attention to both the frontend and backend

While working on this site I learned that 1 plugin can control/break the entire site! It even brought back pages and other content I had removed previously. So here I am making sure the schema I added 3 days before was not removed by the plugin.

  • confirmed product/review schema is still present on all 8 location pages

Troubleshooting how/why hacked URLs are still being crawled

This site was compromised a few months prior with thousands of spam URLs being added to Google’s index. But Google is still crawling them, so I let the client know to pay attention to this.

Optimizing Google Business Profiles for Local SEO

Google Business Profiles are very important for local SEO.

Confirming details before updating GBPs

  • sent Rabin list of location details to ensure accuracy before updating GBPs

Tracking Plugins for Security and Clarity

Keeping track of plugins installed is critical for website security.

Transparency is paramount

I also provide a link to the developer’s page so the client (and their internal team) knows what it does.

Keeping track of account access is important for accountability

  • gained access to accounts for CallRail and Google Analytics
  • request management permissions for GBPs Oakland, and San Francisco
  • received access to GBPs for Oakland, San Francisco, and Redwood City (but this RC is a duplicate so will need to re-request access)
  • request management permissions for GBPs San Jose, Sacramento, Pleasanton, Burlingame, and San Rafael

Creating a Centralized Asset Sheet for Clients

I built an online asset sheet for the client.

Agencies love being organized

This is just a Google doc with login credentials to all their online accounts. This simple action allows the client to know exactly what accounts they own and where. Agencies love these because it’s rare that a client has all their logins in one place!

  • started online assets sheet

 

invoice example with notes
invoice example with notes

 

Published by

JL Faverio

JL Faverio is a Technical SEO Consultant specializing in WordPress, technical SEO, and website maintenance. I help businesses and agencies fix technical SEO issues, maintain WordPress websites, improve site speed, and solve problems that other developers can't. With years of experience managing hundreds of WordPress websites, I focus on practical solutions that improve search visibility and long-term website health.