Freelance Linux VPS administrator and technical SEO engineer

I keep Linux servers fast, patched and online, so search engines can crawl your site properly.

I'm Mohamed Fahid. Day to day I run a production VPS that hosts around 490 websites: updates, security, outages and search performance. I do the same work for businesses remotely, and I write up everything I change.

Mohamed Fahid
Mohamed Fahid Independent freelancer · Works remotely, worldwide Replies within one business day
Works with

Ubuntu, Debian, AlmaLinux · Nginx, Apache, OpenLiteSpeed · PHP-FPM · MySQL, MariaDB · Cloudflare · Let's Encrypt · WordPress · Google Search Console, Bing Webmaster Tools

Services

Three services. Each invoice names one of them, so you always know what you paid for.

Linux VPS Maintenance & System Updates

Regular upkeep so your server stays secure, current and predictable.

On invoices as VPS Technical Maintenance & Server Updates

  • OS security patches, package upgrades and dependency management on Debian, Ubuntu and AlmaLinux
  • Web server configuration and hardening: Nginx, Apache, OpenLiteSpeed and PHP-FPM pools
  • Fixing CPU spikes, memory leaks, swap pressure and slow disk I/O
  • Checking backups, log rotation and monitoring alerts
  • A monthly report of what changed and why

VPS Troubleshooting & Emergency Recovery

When the site is down or slow, I find the cause and fix it.

On invoices as VPS Troubleshooting & Emergency Recovery

  • 502 Bad Gateway, 504 Gateway Timeout and 500 Internal Server Error
  • MySQL and MariaDB slow queries and crash recovery
  • SSL certificates, firewall rules (UFW, iptables) and Cloudflare DNS
  • Recovering sites after a failed or half-finished update
  • A written report of the root cause and how to stop it happening again

Technical SEO & Infrastructure Optimization

The server side of SEO: speed, crawling and indexing.

On invoices as Search Engine Infrastructure Optimization

  • Reducing Time To First Byte with FastCGI and edge caching
  • Reading server access logs to see how Googlebot actually crawls your site
  • Fixing crawl and indexing problems caused by slow responses, rate limits or wrong HTTP headers
  • Canonicals, redirects, robots.txt, XML sitemaps and structured data
  • Core Web Vitals checks with before and after measurements

Recent work

Real incidents, written up the way I report them to clients. Client names are left out.

Multi-site WordPress server · Outage

259 sites back online after a half-finished core update

An automatic update on one site took down 259 other sites on the same server at once. They all started returning HTTP 500.

Cause. The WordPress core folders were shared between sites through hardlinks. The update rewrote the shared files for every site, but added its new files to only one of them.

Fix. I wrote a repair script that rebuilt the core files across all sites and brought every site back. I then switched off automatic updates and replaced them with a checked, manual update process. A script re-checks that policy on every site every five minutes.

Excerpt from the incident notes
27 Sep  HTTP 500 on 259 sites, same server
        cause: in-place core update on 1 site,
        shared hardlinked files half replaced
        repair_core.py  → 259/259 restored
        AUTOMATIC_UPDATER_DISABLED on all sites
        baseline re-checked every 5 min

High-traffic WordPress VPS · Downtime

Ending 504 timeouts under peak traffic

Traffic peaks caused 504 errors and Google started dropping pages. PHP-FPM ran out of workers because pm.max_children was set too low and slow requests held workers open.

I resized the PHP-FPM pools to the server's memory, added request timeouts and put Nginx FastCGI microcaching in front. Time To First Byte fell by 70%, the 504s stopped, and the dropped pages were indexed again.

Server with about 500 sites · Security

Hardening a busy production server

Bots hitting login and cron URLs were using up PHP workers, and 3600-second timeouts let stuck requests pile up.

Nginx now blocks those paths before PHP runs. I replaced WP-Cron with one batched system cron, cut FastCGI timeouts from 3600 to 90 seconds, enabled HTTP/2 and hardened SSH. A script applies the same setup to every new site.

Content website · Technical SEO

Recovering pages Google had stopped crawling

Pages were falling out of Google's index although the content had not changed.

I analysed more than 200,000 access-log lines, confirmed real Googlebot visits by reverse DNS, and found crawl budget going to parameter URLs and intermittent 5xx errors. Robots rules, canonicals, redirects and fixed upstream errors brought the pages back.

How pricing works

I don't sell fixed packages. Servers and sites are different, so every job is quoted from your requirements and the time it will take.

  1. Tell me what you need

    Send your server details (OS, web server, control panel if any) and describe the problem or the goal.

  2. Free assessment

    If needed, I look at the server with read-only access first. Nothing is changed at this stage.

  3. Written quote

    You get the scope, the estimated hours and the price in writing. Work starts only after you approve it.

  4. Work, report, invoice

    I take a backup before changing anything, then send a report of what I did. The invoice refers to the approved quote.

Ongoing maintenance
Monthly fee agreed in the quote, billed at the start of each month.
Fixes and emergencies
Billed for the hours actually worked, within the agreed estimate.
Projects and audits
Fixed price per quote, normally 50% before and 50% on delivery.

Questions

How do you access my server?

With my own SSH key on a separate sudo user that you can remove at any time. I never ask for root passwords over chat. Credentials are stored encrypted and deleted when the work ends.

What is not included?

Hosting fees, software licences, content writing, link building and building new website features. I can recommend someone or quote separately.

How are invoices written?

Each line names one of the three services above and refers to the approved quote, the month of maintenance or the hours worked. A report or change log comes with every invoice.

Can I get a refund?

Yes for work that hasn't started and for unused prepaid hours. Work already delivered can't be returned, so it isn't refunded. See the refund and cancellation policy.

When are you available?

Mostly European business hours (CET). Maintenance clients can reach me for emergencies outside those hours.

Business information

For clients' accounts teams and payment providers.

Provider
Mohamed Fahid, independent freelancer
Location
Your City, Country · serving clients worldwide
What is sold
Business-to-business technical services: remote server administration and technical SEO consulting. No physical goods and no shipping.
How it is delivered
Remotely over SSH. Delivery is documented by written reports, change logs and email history, available on request.
What an invoice covers
One of the three services above, tied to an approved quote, a maintenance month or logged hours.
Policies
Terms of service · Refunds and cancellation · Privacy

Request a quote

Tell me your server OS, your web stack and what's going wrong or what you want improved. I'll reply within one business day with questions or a quote.

hello@mohamedfahid.com