Hire me

Everything on this weblog is also something I do for clients. I have done SEO since 1998 and kept a weblog since 1999, and today I do the work with Claude Code, GitHub, and the connections on the Connections page. On Upwork I am Top Rated with a 100% Job Success Score, 127 jobs, and 4,089 hours as of October 2026.

What I can do for you

Technical SEO. Audits, indexing repair, JavaScript SEO, site speed, migrations, schema, internal linking, and Search Console cleanup, with the cause, the evidence, and a ranked list of fixes. The full menu is on my consulting site.

AI search visibility. Whether ChatGPT, Claude, Perplexity, and Google's AI answers name and cite you, and what to change so they do. My own sites, including this one, are the test bed: AI search service.

Sites built the way this one is. Fast static websites on GitHub Pages that you own outright, with the SEO, structured data, accessibility, and feeds built in. That includes a website for your podcast, with a page per episode, like mine, and static sites for books, services, and launches.

Fact-checked writing. Articles in your voice, every claim checked against its source before it goes up: fact-checked articles.

Local search. Google Business Profile work and local SEO, from listings to the site behind them: local SEO.

How to hire me

On Upwork. Most clients hire me through my Upwork profile, which handles the contract, the time tracking, and payment protection for both of us. My current rate is there.

Directly. Email cja@well.com with your site and what's wrong, and I will reply with a written scope. Or book 30 minutes on my calendar.

Through my firm. Larger engagements can go through Gerris Corp.

How I work

I keep every engagement in writing, I quote before I start, and I make the changes I have access to myself. I sell expertise and hands-on work; rankings and AI answers belong to the platforms, so I promise the work and the evidence, and I report honestly on what the platforms do. Client work that shows up on this weblog is always anonymized.