Lionel Pairuna

Technical SEO,
fixed in the code.

You don't hand my findings to a dev team and wait a quarter. I read the codebase, find the cause, ship the fix, and verify it against production — mostly in PHP.

Specimen — a deleted product, still 200, still crawlable
HTTP/1.1 200 OK

<!doctype html>
<html lang="es">
<head></head>      ← empty
<body>         nav · footer · styles — all present

not rendered:
  <title>
  <meta name="description">
  <link rel="canonical">
Found in a Search Console report that wouldn't stop growing. One of three write-ups below.

What I take on

  • Indexation & crawl control Search Console filling up with URLs you never meant to publish, and the code path that's letting them through.
  • Redirects & canonical logic Redirect chains, wrong canonicals, parameters that fork one page into fifty.
  • Structured data Schema that validates today and doesn't quietly break at the next template change.
  • Core Web Vitals Measured in the field (CrUX), not just the lab. The fix is usually in the code, not the config.
  • Migrations Replatforming or restructuring without dropping the rankings you already have.

Selected work

array_merge()  ·  hundreds of URLs

Ghost pages served with no canonical

A deleted record still returned a full 200 with an empty <head>. One truthiness bug, seven controllers, eleven redirects.

if (!$meta_tags) { redirect(); }   ← never fires
read the write-up

one hard-coded literal  ·  ~128 pages

Site-wide noindex was impossible

<meta robots> was hard-coded to all on every page. No code path could say noindex — not even for tag pages with zero articles.

<meta name="robots" content="all">   ← fixed literal, no branch
read the write-up

isset()  ·  every page, ×3 languages

A falsy trap on every <title>

isset($prms['home']) is true even when home is false. A location suffix rendered on 100% of pages, in all three languages.

if (isset($prms['home'])) { … }   ← true when home === false
read the write-up

How I work

Async, in writing
Issues, pull requests, written walkthroughs. It leaves a clean trail and works in any timezone.
Engagement
Contract or per-project. USD.
Hours
Based in Argentina (UTC−3); overlap with the US workday and UK afternoons.
Rates
On request — tell me what's stuck and I'll scope it.

Stack

Engineering

PHP · MySQL · a custom MVC framework (15+ yrs in production) · JavaScript · HTML/CSS · Apache / nginx · Git

Technical SEO

Search Console · JSON-LD / structured data · Core Web Vitals & Lighthouse · log-file analysis · Screaming Frog · redirect & canonical audits · XML sitemaps

PHP is home. I'm comfortable reading and shipping in whatever the codebase already is.

Background

Lionel Pairuna

15+ years in PHP — application code, databases, and a custom MVC framework I still run in production. The last few years I've spent most of my time where backend engineering and technical SEO meet: the bugs that never throw an error but quietly cost a site its rankings.

The write-ups above are from a production site I maintain. The full Search Console before-and-after is available on request.

Contact

Email is the fastest way to reach me. Tell me what's stuck — a Search Console screenshot or a single URL is enough to start.

lionel@lionelpairuna.dev