SerhiiNadolskyi
Hire me

ExpertSure & Ecopreneurist · GB · 2023–now

ExpertSure & Ecopreneurist: WordPress sites, plugins and a store

Since 2023 I've been the developer of a UK publisher's comparison sites: merged installs, custom plugins, fixes and a domain store.

Together
3years

Since September 2023, directly with the owner, across his comparison and guide sites.

Projects
13projects

Two consolidations, four custom plugins, a domain store, static sites, fixes and a server setup.

Consolidation
17installs unified

Five Ecopreneurist installs under one theme, and twelve ExpertSure installs made to work as one site.

ExpertSure and Ecopreneurist belong to a small UK network of comparison and guide sites, run by one owner with freelancers. Ecopreneurist publishes eco-home and energy guides and earns from quote requests. ExpertSure compares business services.

Oliver hired me on Upwork in September 2023 and has come back with every new site and every problem since. So far that’s thirteen projects: two large consolidations, four custom plugins, a WooCommerce domain store, static sites, fixes and a server setup. Before each task I write back how I understood it and ask if that’s right.

Projects

  1. 2023

    Author and reviewer schema plugin for Yoast SEO

    A plugin for «Written by / Reviewed by / Updated on» bylines that adds the authors and reviewers to the structured data Yoast SEO prints, reusable on any of the owner’s sites.

    The old page-builder byline couldn’t be reused, so I wrote the plugin from scratch on a test copy. A post can have several authors and reviewers, each with several profile links, and two shortcodes place the byline and the short bio in any template. When the live site showed reviewer errors, I traced them to settings: pages typed as a plain web page, and an empty organisation in Yoast.

    The plugin ran on the live Ecopreneurist site and passed the schema.org validator and Google’s rich results test.

    Stack: WordPress, PHP, ACF, Yoast SEO, Schema.org

  2. 2023–2024

    Lightweight post grid plugin in place of two heavy ones

    Two post-grid plugins loaded their scripts and styles on every page and slowed the guide sites down. I replaced them with one light plugin in PHP and CSS.

    A native editor block would have needed JavaScript. I went with a shortcode: one PHP file, with options for count, order, category, posts or pages, picked items and exclusions. The grid drops to two columns on tablets and one on phones. The whole card is clickable, and the title stays the real link for search engines. Colours, fonts and spacing are CSS variables, so the owner restyles it himself.

    I checked it on all five installs, and the owner removed both old plugins. In 2024 it went to ExpertSure too, and its cards run on Ecopreneurist’s solar pages.

    Stack: WordPress, PHP, CSS

  3. 2023–2024

    Custom Gutenberg block plugin in React

    Editors built compare boxes and info panels by hand, and their design drifted across five installs. I made them a custom Gutenberg block plugin in React.

    I offered three options: custom blocks, a Classic Editor extension or shortcodes. The owner chose blocks, since those sections already used the block editor. In one plugin I built the compare block and six info panels from PSDs, such as takeaways and pros and cons: five fixed templates and one flexible panel for exceptions.

    A year later the block editor on an ExpertSure section kept crashing. I rebuilt the plugin on a restored copy, the owner tested it and the editor held up. Later I added a second compare block from a new design.

    The plugin ran on all five Ecopreneurist installs and on ExpertSure, and its compare boxes are on Ecopreneurist’s guide pages today.

    Stack: WordPress, Gutenberg, React, JavaScript, PHP

  4. 2023–2024

    Merging five WordPress installs into one site (Ecopreneurist)

    After four sections moved over from a sister site, ecopreneurist.com ran on five WordPress installs. I brought them together into one site, for a publisher with ten years of posts that lives on search traffic.

    • I put all five installs under one child theme, one menu and one set of templates, on a local copy and a staging server first. The main install went live by a written plan the owner approved step by step: no URL changes, no deleted pages.
    • Where a plugin would add weight or change URLs, I wrote theme code instead: a mega menu that opens on click, breadcrumbs with schema.org markup, date shortcodes for titles, and one shared file for the press logos in place of seven copies.
    • I checked the plugins on the live main install one at a time and listed the ones that needed the owner’s decision.
    • I fixed the solar calculator and the lead forms, and wrote redirect rules from the sister site’s old folders.
    • On staging I merged the sister site’s blog and checked the post counts author by author. Some posts seemed to be missing, and the check showed why: a duplicate author.
    • Then a speed pass on all five installs: system fonts, deferred scripts, and the tag manager and the cookie banner moved into the theme.

    The unified site went live on 6 October 2023 with one look, working lead forms and a working solar calculator. After the speed pass the owner told me the section installs ran fast.

    Stack: WordPress, PHP, JavaScript, CSS, ACF, Yoast SEO

  5. 2023–2025

    Front-end features and a live VAT calculator on a static site

    For the publisher’s VAT calculator site, plain HTML and JavaScript with no CMS, I built an accounting software comparison the owner could edit himself and a calculator that answers as you type.

    • The comparison came from a PSD: three product cards and a filter by business size that reordered them without a reload, in a layout that worked down to small phones.
    • Each card lived in its own small PHP file and the banner styles in CSS variables, so the owner could change texts, order and placement without touching markup.
    • Before launch I moved the offers section to load by script, so search engines don’t read the offers as page text.
    • In 2024 I added two ad blocks and renamed a class that ad blockers were hiding.
    • In 2025 I reworked the calculator into a one-page tool that recalculates as you type and keeps the chosen mode.

    Each stage was signed off.

    Stack: HTML, CSS, JavaScript, PHP

  6. 2024

    Landing page rebuilt from PSD, with a Safari fix

    The quote landing page on a payroll comparison site, rebuilt to the owner’s new PSD design.

    I checked the target layout against the PSD first, then rebuilt the static page with a full-width banner, a partner’s form widget and a footer menu. Safari on an iPhone drew part of it wrong. I reproduced it on the phone, fixed it in a new build, and the owner confirmed the live page.

    Stack: HTML, CSS

  7. 2024

    Static marketing site for an agency for accountants

    An eleven-page static marketing site for the owner’s new content agency for accountants.

    We weighed a static site against WordPress for later editing and agreed on static. I built it from reusable blocks: one header and footer, sections with their own backgrounds, pricing cards with monthly and yearly prices, and FAQ and pricing accordions in plain HTML and CSS, with no JavaScript. The build tools turned out too heavy for the owner to edit, so I delivered it again as plain files with one shared stylesheet.

    Stack: HTML, CSS, Sass

  8. 2024

    Server setup for an email verification script

    A licensed email verification script was to become the base of a new service, and the server for it arrived with no usable system.

    Over SSH I reinstalled Ubuntu and installed a hosting panel, following the script author’s guide. A domain mix-up left traces in the panel’s settings, so I reinstalled the panel cleanly. I wrote the full DNS record set for the registrar (address, mail, SPF, DKIM and DMARC), created four mailboxes and the database, and installed the script. The server’s address turned out to be on two blocklists with no matching reverse record, and I flagged it for the owner to raise with his host.

    The server and the script ran, and the owner confirmed each step. A week later I installed the script’s next version.

    Stack: Linux, Ubuntu, DNS, MySQL

  9. 2024

    Embedding a Next.js form in a WordPress page

    A Next.js quote form, built by other developers on its own domain, sat in a WordPress page in a fixed box with its own scrollbar. I made it show at its real height.

    A fixed height couldn’t work, because the box has to follow every step of the form. So I wrote a spec: the form reports its size on load, on resize and on every step, and the page checks the sender and sets the height. I built a working example on a copy of the site, then added the size reporting to the React form in one commit.

    Then the Submit button looked dead. The form’s own domain check was dropping its messages. When the fix went live, I moved only the changed lines, after the owner’s backup, with a list of files and lines so any step could be undone.

    The form went live in December 2024 at its real height, and the owner has since added it to a second quote page himself.

    Stack: WordPress, PHP, Next.js, React, TypeScript, JavaScript

  10. 2024

    PHP 8.2 recovery and one look for 12 WordPress installs (ExpertSure)

    The host moved ExpertSure’s twelve WordPress installs to PHP 8.2. Visitors saw raw page-builder code, and the owner couldn’t get into the admin.

    I traced it to old code in the theme, in Yoast Premium and in an outdated page builder, and with the host’s cache bypassed I got the admin and the pages back. The page builder needed a licensed update, so I set out the options and the owner decided.

    Then I aligned all twelve installs from one checklist to match Ecopreneurist: the same layout and mega menu, one logo linking home, a cookie banner and the owner’s own plugins. On the ten section installs I updated WordPress, themes and plugins, and on the main install I listed the unused plugins for him. A month later the Yoast panel came up empty. I reproduced it on a restored copy and fixed it by moving from Yoast Premium to the base plugin.

    The site came back, and the twelve installs looked and worked as one site. The owner signed off each stage.

    Stack: WordPress, PHP, WPBakery, Yoast SEO

  11. 2025

    WordPress support and how-to videos for a property site

    The owner of a property listing site wanted to change banners, a header button and search options himself, so I showed him how.

    For each question I recorded a short how-to video: the banner template in the child theme, hiding the submit button, one default banner with an override per page, the size of the phone number. One question turned out to be about search itself: a property type shows up in search only once a listing uses it. I also wrote a redirect rule from non-www to www and put back the CSS rule for an active menu item that had disappeared.

    Stack: WordPress, CSS

  12. 2025

    WooCommerce store with buy-or-lease subscriptions (Nameica)

    A WooCommerce store for a portfolio of about 1,300 premium domains, each sold outright or leased for 12 months and then owned, paid by Stripe or Escrow.com.

    Before building I confirmed the business model in writing, and because of the Stripe and Escrow.com requirement we chose WooCommerce over Shopify.

    • I built the front end from PSD on a child theme: home, category and tag pages, and a domain page whose purchase block stays in view. Later came a new domain page layout.
    • Buy-or-lease runs on WooCommerce Subscriptions. The stock option switcher worked only on the product page, so I wrote one for the cart.
    • My Domain Importer plugin takes a CSV file and logos and gives back ready products with lease plans, categories and tags. It catches duplicates in the database and in the file, and shows a preview first.
    • Popularity sorting uses real clicks inside the site, and the mega menus fill themselves with the top 50 categories and tags.
    • I left third-party plugins unmodified, so updates wipe nothing. The checkout and the Escrow.com integration came from other developers.

    In June 2025 the owner called the shop ready and ran the final import of his portfolio with my importer. nameica.com runs the header and the purchase layout I built.

    Stack: WordPress, WooCommerce, PHP, JavaScript, Elementor

  13. 2026

    Mobile menu fixes on a solar energy site

    The menu on the owner’s solar energy site wouldn’t open properly on phones, and I fixed every issue he reported.

    Since the site keeps its admin behind an IP allow-list, I set up my access through it first. Then I brought the burger and close buttons to one height, so the menu no longer jumps, made the white-on-white links and the submenu arrows visible again, and put back the missing author photo. I checked every fix at phone width, and the owner confirmed it worked.

    Stack: WordPress, Elementor

Really great developer, can handle any task we give him. Nice eye for detail, we use Serhii for all our development work for ecoprenurist and expertsure
Oliver Smith, ExpertS · 5.0 on Upwork →

Nash Radway · RS · 2019

Making an e-book sales page readable on phones

On a one-page e-book sales page the text was tiny on phones and the page scrolled sideways. I fixed both on top of another freelancer's half-done responsive attempt.

Contact

Have something similar?

Use the form or message me on LinkedIn.

Already working with me on Upwork? Write there.