Opens in a new tab
Applications open: one Louisiana nonprofit or small business gets a free website + a year of SEO. Closes Nov 15.
Apply or nominate →

Live Audit #1: Xennex.app, an Indie Software Studio, With Baabs

by Ioana Sima

October 13, 2026

Live AuditSeries · No. 01

Foreword

A foreword from WTF SEO. Most audits get delivered as a PDF and nobody outside the project ever sees how the thinking happened. For this series we asked working SEOs to run a real audit and think out loud while they do it: what they’re looking at, what they’re looking for, and how they decide what matters. A different auditor each time, a different style each time.

First up is Ioana Sima, who goes by Baabs, auditing xennex.app, an indie software studio here in New Orleans. She had 12 hours and no access to analytics. Everything below is hers.


Live Audit · No. 01v1.14, shipped September 2026

xennex.app

An indie software studio, audited by Ioana S. for SEO, UX, and messaging.

Build
Next.js on Vercel, 61 URLs, one owner
Scope
Crawl, structured data, backlinks, SERPs, UX
Not in scope
Search Console, GA4, server logs (no access)
Budget
12 hours. Time log at the end.

Where the 12 hours went

  1. 1hBrowsing as a client
  2. 2hCrawls, DevTools
  3. 1hBacklinks, Archive
  4. 30mSERPs
  5. 1hStructured data
  6. 5 to 6hWriting, rechecking claims

Every section below carries one of five tags

  • [shipped]Already right.
  • [issue]Needs fixing.
  • [roadmap]What I’d do first.
  • [note]Checked, kept for context.
  • [open]Checked, not resolved.

What works

  • A fast, server-rendered site that every crawler, AI bots included, can read
  • A blog written from real experience, in a real voice
  • An estimate calculator that qualifies buyers before they call

What needs fixing

  • Nothing tells machines who XenneX is or who writes the blog
  • 38 blog posts, each connected to the site by a single link
  • Calculator terms and a few small inconsistencies a buyer might notice

What to do first

  • Quick wins for trust and conversion
  • Make Buddy and the studio recognizable
  • Turn the portfolio into case studies that convert

Not in SEO? Read Step 1 for the walk-through, jump to Step 3 for what to do about it, and come back for Step 2 if you’re curious how the checks work.

End of forewordAudit startEverything from here is Ioana Sima’s audit, in her words. 12 hours, no analytics access.

Whenever I start an SEO audit, the first thing I do is use the site the way a potential client would. I navigate as many pages as I can on both mobile and desktop, fill out forms, click the interactive bits, and write down what I like and don’t from a UX perspective. This is also when I check the robots.txt, XML sitemap, llms.txt (if any), and information architecture. The technical crawl runs in the background while I navigate.

Before I look at anything technical, I try to understand three things, because they decide what “good” means for the website:

  1. [Q1 · purpose]

    What is the purpose of the audit, and of any SEO work that would follow it?

  2. [Q2 · capacity]

    What is realistically possible for the owner to do? In this case, a one-man team working nights and weekends.

  3. [Q3 · philosophy]

    What is the philosophy behind the product and the business?

For me UX > SEO, always. Any SEO choice should support the main goal and the owner’s budget and time. I would not expect a small studio to gain hundreds of links or fix thousands of image alt texts, so everything below is prioritized by impact. One spoiler before the critique starts: one person built this site at night and got the fundamentals right, the blog has a real voice, and the estimate calculator is a smart idea. Most of what follows is about getting the site to show the quality of the work behind it.

Step 1

First impressions

The stack and the history [note]

[note]

A well-built modern studio site

Nothing unusual at first glance. A quick look at BuiltWith confirms the core stack: Next.js on Vercel, a modern setup geared toward speed and static delivery. BuiltWith also surfaces security headers and email-related DNS records, which offer a few clues about how the site is configured and maintained.

The older technologies are also visible (WordPress with the Twenty Seventeen theme), and a quick Archive.org check confirms the old layout of the site, a very simple default WP template. The current version is a clear upgrade.

Archive.org capture of the earlier XenneX LLC WordPress site
What you’re looking atA snapshot of xennex.app in 2025.
What I’m looking forHints about the old structure of the website, information that changed, and why.

The visuals [note]

[note]

Imagery doesn’t match the positioning yet

The images seem a mix of stock and AI-generation, and while that’s not a problem in itself, the imagery doesn’t yet match the premium positioning. Noting it down, since the ICP description leans towards premium customers who are explicitly not shopping on price.

There is also a lack of consistency between image types, especially comparing the service pages to the blog. For the builds being showcased, it would look better and more credible if at least the logo or pieces of actual software were shown.

It’s easy to understand what’s being offered. Two things stood out:

[issue]

/work and /products overlap heavily

Products is a subset of Work (same product cards and archive). /products is only linked from the footer, /work from the top navigation. I would consolidate these onto one page, especially considering that /services also exists.

[issue]

Privacy policies in the header navigation

I understand why the privacy policies sit on the xennex.app domain (app store requirements, the LLC as the data controller, API/OAuth verification, and the fact that some products don’t have full websites) and there is a mild SEO side-effect in keeping them there. However, eight privacy policies as a top-level dropdown is unusual. A visitor evaluating the studio for services doesn’t need them in the main navigation. Keep the pages and move them to the footer.

Homepage and About pages [issue]

[issue]

It speaks to a different reader than the one he wants

The language of the homepage is fine. Five consumer apps and a download count tell a COO that he can ship. What she wants to know is whether he has built for a company like hers, and whether he’s set up to support her build for the long haul. The client work and the ownership promise answer both, but they sit below the products.

Homepages are the hardest pages to get right, and this one deserves a proper messaging breakdown, not two paragraphs in a technical audit. I’ll resist. The short version is in Step 3.

[note]

A question buyers will ask: capacity

On the About page, the owner says he runs XenneX by night and weekend, and the newest blog post talks about trying to hire and going back to being a solo operator. The site proposes $15K-$75K projects to companies of 50-500 employees, and a buyer at that budget will naturally wonder about capacity. I’d answer it directly on the site: how many projects run at once, what the timeline looks like, and what happens if he’s unavailable. Being a solo senior operator is a selling point for this ICP, as long as the site says how it works.

The Work page [issue]

This page acts like a portfolio, which is great. Let’s explore it:

[shipped]

The owned products show range

Consumer apps, a deal aggregator, a stock-alert service.

[issue]

Built for others (client work)

They look good overall. Two of them, the Buddy Delaune site and Nion Lights (which he co-owns), would fit better in the owned section, so this list is purely client work. Martin Construction, Mindful Solutions NOLA, and Davadi are the three pieces of work that match the ICP most closely, and right now they sit below the consumer apps. I’d move them up.

[issue]

The Archive of retired products

It offers very little information. It would be more useful to be able to explore a page explaining what these products were and why they were retired. A blog post explains this in part, but my recommendation would be to restructure this section.

[issue]

Product cards and client projects link off-site

I don’t recommend this, even though it feels natural, because people will leave the site without having a chance to convert. I would also create dedicated showcase pages for each project, with explanations of how they were built, unique CTAs, then link out.

[issue] 003High impact / UX / Messaging

The portfolio sends buyers off-site

/work, product and client cards

What I found
Every card links off-site, the three client projects that match the ICP sit below the consumer apps, and the Archive is cards without a story yet.
Why it matters
The strongest evidence on the site leaves the visitor on another domain before they can convert.
What I’d do
Case-study pages for Martin Construction, Mindful Solutions NOLA and Davadi (decision, constraints, what was built, what happened), link out from there, and merge /work with /products.
Owner
XenneX, with client permission for the case studies.

Small inconsistencies a buyer might notice [issue]

[issue]

All quick fixes

  • Game Night appears on /work as “Built & owned by XenneX” and again further down on the same page as “Built for others.”
  • The hero says “consumer apps with hundreds of thousands of downloads,” while the portfolio as shown has one app at 100K+. I’d either tighten the wording to match or name the apps behind the number.
  • The website service page estimate starts at $1.5K, while his ideal-client brief sets the floor at $3K. I’d bring the page in line with the clients he wants.
  • The Website service’s FAQ “Will the site rank on Google or show up in AI overviews?” answers Yes. Nobody can fully control rankings, so I’d rephrase this around what he does control: the work done right and reported on honestly. That answer also tends to attract the right kind of client, rather than price shoppers.
/services/website, FAQ: “Will the site rank on Google or show up in AI overviews?”
Yes.
An answer he controls: the work done right, and reported on honestly.
[issue] 004High impact / Messaging

The offer and the ICP don’t quite line up

/services/website, calculator floor and FAQ

What I found
The calculator starts at $1.5K while his ideal-client brief sets a $3K floor, and the Website FAQ answers “Will the site rank on Google?” with Yes.
Why it matters
Both can draw in buyers outside his ideal-client profile: price shoppers and people expecting a ranking guarantee.
What I’d do
Raise the floor to $3K and rewrite the FAQ answer around what he can commit to: work done right and reported on honestly.
Owner
Business decision. Implementation takes minutes.

The blog [issue]

[issue]

The images

The first thing I notice is the images. Considering all the articles are written in the owner’s own voice, I would have loved to see something more real or at least a consistent style. A good example of what works is “The year I stopped patching and started rebuilding.”

A XenneX blog post with a custom illustration of code peeling away from a page
What you’re looking atThe featured image of a blog post.
What I’m looking forWhether the imagery feels like it belongs to this owner and this studio, or to a stock library.
[shipped]

The voice, and what only he could write

Overall the tone of the blog is good, and it has “information gain” elements (things you can only learn from someone who did the work). It’s clearly written from experience, but there is a missed opportunity. In the ICP document, the owner mentions: “You get senior-level thinking on architecture and a single person who speaks both business and engineering. That combination is harder to find than people think, especially at a boutique price point.” That is rare, and the blog is the place to prove it: more in-depth, honest, specific pieces about exactly those decisions.

[issue]

Topics for the buyer he wants to reach

I also think some of the articles are written more for fellow builders than for the buyer he wants to reach. Some of them are good indie-hacker content, but a $30M-revenue COO evaluating a $50K build wants to know how to scope a build, what “you own the code” actually means in a contract, how to make a build-vs-buy decision, why cheap freelancer work fails, etc.

[issue]

No byline, and the CTA points home

The posts have no author or byline connecting the “I” to Buddy Delaune, and the CTA at the bottom of each post links to the homepage rather than to /contact or /estimate. For a site whose realistic play is personal brand and E-E-A-T (Google’s shorthand for experience, expertise, authority and trust, which increasingly ties to a named person), the missing byline is the bigger issue.

In my opinion, the ICP for this service doesn’t use regular conversion paths. They read thought-leadership pieces and follow specialists on platforms like LinkedIn and X. More on this in Step 3.

[issue] 002High impact / Messaging / SEO

No author on the blog posts

/blog, every post, plus the missing schema

What I found
Every post is written as “I” with no byline, and there is no Person or Organization schema tying the writing to Buddy Delaune or XenneX.
Why it matters
The realistic strategy is personal brand. Right now the reader and the crawler have a hard time connecting the writing to the person selling the service.
What I’d do
A visible byline linking to About, Person and Organization schema with linked @ids and sameAs, and BlogPosting with author on every post.
Owner
XenneX. Website work only, no business decision needed.

The estimate calculator (CRO) [issue]

[shipped]

A calculator that qualifies buyers

I like this calculator. It’s easy to see roughly what a project would cost without reaching out, and it’s also a good way for the owner to disqualify clients who aren’t willing to pay. What I’m looking for: can a buyer tell what they’re actually committing to, whether the questions change with the service, or whether every path asks the same things. There are some issues with it though.

[issue] 001High impact / Messaging / UX

Pricing calculator ambiguity

/estimate, one-time vs annual comparison screen

What I found
The one-time and annual options don’t say whether the scope is the same, what the monthly fee covers after month 12, or how “own it outright” differs from “code is yours.”
Why it matters
A prospective client may misunderstand the financial commitment or lose confidence in the offer.
What I’d do
Clarify the pricing model, ownership, minimum term, included support, and cancellation conditions, at the point where the comparison appears.
Owner
XenneX, as a business decision first. Website implementation afterward.
[note]

The detail behind that ticket

For example, website / standard / needs design / flexible calculation says $8K-$24K one-time and $299-$659/mo. The cheapest one-time version is less expensive than the most expensive monthly option over a year. My first thought is: what happens in month 13? Why the price difference? Is it about who owns the code (the calculator labels one option ‘Full source code, own it outright’ and the other ‘Code is yours’, which sound like the same thing) or how long it takes to develop? I would either want answers to these questions, or clearer explanations of minimum term, total commitment, included work, cancellation, ownership, and post-launch costs at the point where the comparison appears.

The pricing article describes ongoing support as a retainer separate from the build contract. That makes it particularly important to say whether the calculator’s monthly figure is support, a financed build, or something else. I doubt any of this is intentional; it just isn’t spelled out yet. These are suggestions and ultimately depend on the owner. A premium client might prefer to discuss these details in a call, and that’s a legitimate choice.

[issue]

Two smaller calculator notes

  • The one-time / monthly / show-me-both toggle only highlights one column. I’d remove it unless the choice is sent along with the contact form.
  • On the advisory path, the steps are nearly identical to other paths. The advisory should have its own qualifying questions, and each service type might benefit from unique qualifying questions.

Step 2

Digging deeper (the SEO side)

Technical SEO should make the website easier to crawl, understand, and trust. It should not become a project that distracts from improving the offer, proof, and conversion experience.

Based on all the info collected so far, my hunch is that the site is still a work in progress and is written for brand, not search demand. Whether that’s a problem or a direction depends on the owner.

The website says “AI search-ready websites built to rank in Google, AI overviews, and beyond.” That’s a fun invitation: a potential customer may well check xennex.app against its own pitch, so I did the same: structured data, semantic headings, robots.txt, sitemap, speed, and so on. Here’s what I found.

What’s already right [shipped]

  • Every page is server-rendered: the full content is in the HTML, not assembled by JavaScript afterwards
  • The XML sitemap matches the crawl. 61 pages in, 61 pages out
  • Robots.txt is open, and an AI crawler (I crawled as ClaudeBot) gets the same page as a browser
  • The on-page images are already served as WebP through Next’s image component (20-50KB each)
  • Mobile performance is excellent on lab tests
  • The fonts are self-hosted and preloaded
  • GA4 is installed and loaded in a way that doesn’t slow the page
  • The navigation dropdowns are real HTML (details/summary) so the links exist for crawlers and humans
  • Vercel Analytics is installed next to GA4

One person built this at night, on a modern stack, and got the fundamentals right. Everything else in this section is polish and positioning.

[shipped] 000SEO / AEO

Readable by anything that asks

sitewide, crawl, robots.txt, sitemap, rendering

What I found
Every page is server-rendered, robots.txt is open, crawls identifying as ClaudeBot and ChatGPT-User get the same HTML a browser does, and the sitemap matches the crawl: 61 in, 61 out.
Why it matters
Googlebot and AI crawlers read exactly what a human reads, with no JavaScript to run and nothing to guess at. For a site that sells AI-search-ready builds, this is a great display of skill.

Crawl and indexability [issue]

For the technical side I almost always start with Google Search Console as my source of truth and correlate it with Screaming Frog (a desktop crawler that visits every page like Google would and reports what it finds). I don’t have access to GSC here, so the crawl carries most of my decisions. Overall, there are no huge issues, only some things to note.

How I crawled it

I ran two crawls, each answering a different question:

  • A standard crawl with JavaScript on, using Screaming Frog’s own user agent. Baseline. Every URL came back 200, one 404 aside.
  • A JavaScript-off crawl identifying as ClaudeBot, pulling structured data and rich-result validation. This tells me what an AI crawler sees without running any scripts and whether the page’s meaning lives in the HTML.
[note]

61 pages, 38 of them blog posts

The XML sitemap contains exactly these 61 URLs.

[issue]

One 404 page

/blog/a-decade-of-side-projects sits three clicks deep with a single inlink from one blog post. Fix the link or redirect it to the twelve-years retrospective.

[issue]

www and non-www handling

All URL variants (www, non-www, etc.) end up on https://xennex.app, which is what matters. The www redirect is a 307 (a temporary redirect and Vercel’s default). I’d switch it to 308 to consolidate permanently.

www.xennex.app → xennex.app
307 Temporary Redirect
308 Permanent Redirect
Screaming Frog crawl of xennex.app with the crawl depth chart
What you’re looking atScreaming Frog crawl showing all the HTML pages identified.
What I’m looking forAny significant issues with the website structure, information architecture, crawl depth, or JS rendering of pages.
[issue]

Canonicals are missing on every page

Even self-referencing ones. A canonical is a tag that tells Google which URL is the official one when several could serve the same content. On a 61-page site with no URL parameters this isn’t a huge issue, but I recommend adding self-referencing canonicals.

[issue]

Titles and descriptions

26 of the 38 blog titles run past 60 characters, partly because every title carries the brand name, a suffix that Google often truncates anyway. 31 meta descriptions exceed 160 characters. Meta descriptions do not affect rankings, but persuasive ones can increase CTR. Both minor issues.

[issue]

Headings

The hierarchy is mostly right, but on /work it’s inconsistent within the same page: product cards use H3 under the section H2, client-work cards use H2 for each project name, and the archive goes back to H3. On the semantic side, the headings are written for humans, which I like, but the H1s on the homepage (Software, shipped) and contact page (Let’s build something) don’t say a lot about what the studio does or where.

AI crawlers and agentic browsing [shipped]

[shipped]

Open to every bot

Robots.txt allows all user agents (User-Agent: *, Allow: /) and points to the sitemap. The ClaudeBot-identified crawl returned 200 on every page with the same content a normal browser sees.

[note]

No llms.txt, which is fine

llms.txt can be useful but it’s not a recognized web standard for AI citations, although Chrome’s Lighthouse tool now checks for it.

[issue]

The writing is connected only through navigation

The crawl makes the internal linking issue concrete. The core pages (services, about, work, contact, estimate) each get about 60 internal links, because they’re in the header and footer of every page.

However, each of the 38 blog posts has exactly one contextual inlink, from the blog index. Almost no posts link to another post, service page, or client project. So the site’s best asset, the writing, is connected to the rest of the site only through navigation and never contextually.

Internal links pointing at each page

Each core page (services, about, work, contact, estimate)~60
Each of the 38 blog posts1

Performance and tracking [note]

I also spend time in Chrome DevTools while working through the pages, looking at:

[note]

Lighthouse on 5 to 10 pages

Different layouts, including throttled to slow 4G. CrUX (Google’s real-user speed data) has nothing at this traffic level, so I’d recheck once real-user data exists.

[note]

Network tab

GA4 is installed. I can’t see whether the calculator or contact form send events, so I’d ask for GA4 access before drawing any conclusions about conversion tracking.

[issue]

The 404 template

It’s Next’s unstyled default. I would recommend a styled 404 page.

Structured data [issue]

Structured data (schema, usually as JSON-LD in the page) is a machine-readable label that says “this is an organization, this is a person, this is an article by that person.” It should reinforce what the visible site already shows; it helps machines understand who’s who, but it doesn’t force them to believe it.

What the validators said

Screaming Frog’s rich-result validation flagged /products with 9 errors and 5 warnings. Google’s own Rich Results Test is gentler and reports five valid SoftwareApplication items with optional fields missing (offers and aggregateRating). Both are right in their own way: the markup is valid, but it won’t produce a rich result because Google requires an offer (a price).

Structured data validation output for the /products page
What you’re looking atStructured data information for /products in Screaming Frog.
What I’m looking forWhether the markup validates and the claims are true.

Two things in the markup I’d fix regardless:

[issue]

Game Night’s reviewCount

The aggregateRating uses reviewCount: 100000. That’s the download count, not the number of reviews. An easy slip to make, but worth correcting, since Google takes inaccurate ratings markup seriously.

[issue]

Dealery and Redinfinite are categorised as MobileApplication

They are web apps (PWAs).

/products, JSON-LD
“reviewCount”: 100000
“reviewCount”: [the real number of reviews]
“@type”: “MobileApplication” // Dealery, Redinfinite
“@type”: “WebApplication”
[issue]

Nothing says who XenneX is, or who writes the blog

The bigger point is what is missing. Over 80% of pages have no structured data. The only other structured data on the site is FAQPage on the six service pages. There is nothing that tells a search engine or an AI crawler who XenneX is, who Buddy Delaune is, or who writes on the blog.

[roadmap]

Organization and Person, linked to each other

Organization and Person, declared once with stable @ids (a fixed identifier each piece of markup can point to) and linked to each other (founder, worksFor), with sameAs listing the other places each of them exists online: buddycdelaune.com, LinkedIn, GitHub, the Apple App Store developer page (for Buddy), and the Clutch profile (for the company).

[roadmap]

BlogPosting on every post

BlogPosting with the author pointing at that Person. I would also pair this with a visible byline.

[roadmap]

Service on each service page

Service with the provider pointing at the Organization. Useful for describing the service to machines; but don’t expect it to move rankings.

[note]

FAQPage can stay

With the caveat that it no longer produces visible rich results for commercial sites.

founderworksForproviderauthor sameAs: ClutchsameAs: buddycdelaune.com,LinkedIn, GitHub, App Store OrganizationPersonServiceBlogPosting XenneX, @id #orgBuddy Delaune, @id #buddy6 service pages38 posts

The @id linking is the infrastructure that creates one entity graph instead of six slightly different descriptions of the same studio.

Social sharing previews [issue]

[issue]

Shared links render as a gray box

The homepage and service pages do not have og:image (the preview picture social platforms pull when a link is shared) and use the small “summary” Twitter card, and the About page’s og:url points to the homepage. Sharing the homepage and About page on social media would render them as a gray box. Blog posts are set up almost correctly, except for the images that use the .PNG (non-compressed version of the image) in the incorrect ratio.

A social share preview tool showing xennex.app with no preview image
What you’re looking atSample rendering of the OG tags using opengraph.xyz.
What I’m looking forConfirmation that the OG meta properties are rendering according to what is declared in code.

Organic visibility [note]

[note]

Too little data to act on

Third-party tools show very little organic visibility. Without Search Console and analytics access, I cannot establish the actual volume, channel mix, or commercial value of that traffic. A quick Ahrefs check estimates almost 0 organic traffic, 2 keywords, and a DR of 35.

Normally I would check at least 2 more traffic sources (GSC, GA, etc.) but since they are not available I also look at SimilarWeb. 1,700 monthly visitors. SimilarWeb cannot make accurate traffic estimations at lower volume, so I’m not drawing conclusions from it.

Branded SERP [note]

[note]

Sharing a name

I also check the SERPs for “xennex” and other brand queries to see who we’re going up against. Volume is too low for tool data, so I queried manually (VPN + incognito).

xennex.xyz is the number one result. Very similar name and niche. I couldn’t find any connection between xennex.xyz and xennex.app, so I will assume they are real competitors with high overlap. Not great from a brand perspective, but xennex.xyz has a modest link profile, and it expired while I was writing this, so it should drop out of the results on its own. xennex.app usually comes in second or third, with another app called Xennex showing up in the top three.

Google results for the query xennex
What you’re looking atSERPs for “xennex.”
What I’m looking forHow competitors are displaying and the audited site’s own favicon, title, meta description, and overall visibility vs competitors.

Local search [note]

A small disclaimer: I can’t pull SERPs specifically for New Orleans, so this was done through Ahrefs US data plus incognito Google searches on a general US IP.

Google local pack for software development company New Orleans
What you’re looking atThe local pack for “software development company New Orleans.”
What I’m looking forWhether the site shows up at all, and who it’s competing against if it does.
[shipped]

In the local pack

There is a Google Business Profile with one review and it shows up in the local pack, which is great. There is also a Clutch profile, but with no reviews. Beyond the pack, local volume for these queries is very low and software development isn’t location bound.

The rest of the SERP is ads from large competitors, review aggregators (Clutch, The Manifest), and established local agencies with dozens of reviews, plus a layer of offshore agencies running templated “New Orleans” pages.

[roadmap]

Two low-effort actions

Fill out the Google Business Profile properly (including a phone number), and get a handful of real client reviews.

Ahrefs chart of new and lost referring domains over the past year
What you’re looking atNew and lost domains in Ahrefs.
What I’m looking forWhen the links arrived and whether the pattern looks earned or dumped.

DR (domain rating) is solid for a studio site of this size, but it’s also the metric I distrust most, so I took a closer look at where it comes from:

[shipped]

The good links

Many of his own products and properties (including vitalinksoftware.com) and app directories like Indus Appstore and mobbo link back to xennex.app.

[note]

The spam is not his doing

About 90% of the backlink profile is marked as spam by Ahrefs. I checked, and it is. To be clear, none of this is the owner’s doing. Every domain collects this kind of junk unsolicited, and nothing here suggests links were bought or built on purpose.

Where the DR jump came from

DR plateaued 8-16 prior to 2026 and jumped to 40 in May 2026, and has since slipped back to 35 as those links decay. The jump to 40 seems consistent with a wave of do-follow links from domain-list farms and PBN seller pages: auto-generated pages that link to thousands of domains at once, xennex.app and xen-nex.com among them. Ahrefs counts every do-follow referring domain, so a few hundred of these are enough to move DR even though each individual link is worth close to nothing.

Ahrefs top anchors report showing templated spam anchor text
What you’re looking atA slice of the backlink anchor profile in Ahrefs. The “testimonial” text is fabricated by the linking network.
What I’m looking forThe anchor text pattern, the follow/no-follow flag, and whether the linking pages have any traffic (most don’t).
[note]

The fabricated testimonials

Alongside these, roughly 300 .store and .shop domains from the SEO Express network carry fake testimonials naming xennex.app. They’re not endorsements of XenneX. They appear to exist for that network’s own benefit, not his.

[open]

xen-nex.com

It looks like a brand-variant domain registered in September 2024 that forwarded to xennex.app until recently; Archive.org shows the redirect, Ahrefs still records it, but today the domain doesn’t resolve at all, so the forward has dropped.

Redirect chain from xen-nex.com to xennex.app
What you’re looking atA close-up on a backlink going through a redirect chain before it reaches xennex.app.
What I’m looking forWhether this pattern is consistent across multiple backlinks, whether the redirect chain can be resolved, and whether the links coming through it are worth anything.
[note]

I would not disavow

Despite the spam links, I would not create a disavow file (formally telling Google to ignore links). Google is very good at discounting these types of links on its own, and they are already decaying. I would, however, keep an eye on the do-follow farm volume.

Step 3

What I’d actually prioritize

At this point I have enough information to stop expanding the checklist and start making some decisions. I would not treat every issue equally. My working assumption is that the website should help the right potential client understand the offer, evaluate the studio’s expertise, and make an informed inquiry.

Ranking for ‘custom software development company’ and similar terms isn’t where I’d start. Some keywords are too difficult. Others look easy, but the traffic isn’t there.

Ahrefs keyword list for software development terms with difficulty, volume and traffic potential
What you’re looking atVolume and difficulty for some of the commercial terms a software studio would want.
What I’m looking forKeyword difficulty (anything over 40 requires real work) and, if KD is lower, the gap between SV (search volume) and TP (traffic potential).

“Custom software development services,” per month

People searching7,200
Visits the top result gets. The gap is ads, the map pack, Clutch-style listings, etc.40

They ask a peer, get a name, and look it up.

Bold claim time: his ICP doesn’t search that way. The site’s job isn’t to rank for generic commercial queries. It’s to survive the look-up. Every recommendation below is judged on that.

  1. Quick wins for trust and conversion

    • Raise the calculator and Website service page floor to $3K
    • Clarify calculator commitments and recurring fees
    • Change the “Will it rank?” FAQ answer from “Yes” to something he can commit to (e.g. work done right and reported on honestly)
    • Tidy up the small inconsistencies mentioned in the first section of this audit
    • Address capacity and availability up front
  2. Make Buddy and the studio recognizable

    • A visible byline on every post, linking to About or buddycdelaune.com
    • Implement accurate Organization, Person, and BlogPosting schema
    • Get client reviews for the Google Business and Clutch profiles
    • Add contextual internal links
    • Keep the voice of the blog but change the topics. Do research/social listening to identify the type of questions the ICP has, then write on these topics.
    • Create better, more recognizable images and consider adding extra media formats to existing and future blog posts.
  3. Turn the portfolio into evidence, strengthen conversion pages

    • Create dedicated case-study pages for Martin Construction, Mindful Solutions NOLA, and Davadi. Structure: The decision, The constraints, What was built, What happened. Add CTAs and link out to the live products from here.
    • Consolidate /work and /products into one page. Move the strongest projects to the top, and give the Archive a purpose (or cut it).
    • Test the homepage messaging before rewriting it. A few ways to do that: run a Wynter test with people who match the ICP; read how competitors describe the same offer; do some research into how his buyers actually talk about the problem (forums, LinkedIn, sales calls if he has notes); and put the current page through an AI critique as a fast second opinion.
    • Rewrite and restructure the page around the research findings
    • Optional: create a “how I work” page that explains the philosophy and building principles of the studio. This page can also answer questions on ownership, minimum term, and what happens during the project.
  4. Improve measurement and conversion paths

    • Verify that calculator and contact form events reach GA4
    • Track which inquiries were actually qualified, even in a spreadsheet
    • Improve CTAs across the website
    • Ensure case studies lead naturally towards conversion pages
  5. Technical SEO cleanup

    • Fix the 404 and check the old WordPress URLs redirect
    • Add canonical tags as preventative hygiene
    • Design a branded 404 page
    • Fix the heading hierarchy and make the H1s say what the studio does
    • Refine titles and social metadata

Where the real work starts

Twelve hours gets us this far: a crawl analysis, a backlink autopsy, a structured data check, and a lot of clicking around as a pretend COO with a $50K problem. Would I feel confident recommending a conversation with XenneX for the right project? Yes. Would I expect the website to answer more questions before that? Also yes.

The stack is right and the expertise is real. That’s the easy part to say. The harder part is that most of what I found isn’t an SEO problem. It comes down to what the business wants its website to do. Adding canonical tags won’t fix that. I could turn this into a 20-page audit, but in the end it will come down to the same thing.

The actual next step would be a conversation with the owner.

  • What should the site do a year from now?
  • How many inquiries would change the business?
  • How many hours a week are available?

Anyway, that’s it from me. Hope you enjoyed this read! :)

Xennex.app audit, v1.14Status: shipped

Next release

  • Old WordPress URLs through Screaming Frog list mode
  • Search Console: real queries, and whether Google agrees with the crawl
  • GA4: do the calculator and contact form send events at all
  • DR recheck once the farm links finish decaying

Time log, 11 of 12 hours

Browsing as a client, mobile and desktop1h
Crawls, redirects, DevTools, Lighthouse2h
Backlinks and Archive.org1h
SERPs: brand, local, competitors30m
Structured data1h
Writing, screenshots, rechecking my claims5 to 6h

×Archive.org capture of the earlier XenneX LLC WordPress site

Archive.org capture of the earlier XenneX LLC WordPress site
×A XenneX blog post with a custom illustration of code peeling away from a page

A XenneX blog post with a custom illustration of code peeling away from a page
×Screaming Frog crawl of xennex.app with the crawl depth chart

Screaming Frog crawl of xennex.app with the crawl depth chart
×Structured data validation output for the /products page

Structured data validation output for the /products page
×A social share preview tool showing xennex.app with no preview image

A social share preview tool showing xennex.app with no preview image
×Google results for the query xennex

Google results for the query xennex
×Google local pack for software development company New Orleans

Google local pack for software development company New Orleans
×Ahrefs chart of new and lost referring domains over the past year

Ahrefs chart of new and lost referring domains over the past year
×Ahrefs top anchors report showing templated spam anchor text

Ahrefs top anchors report showing templated spam anchor text
×Redirect chain from xen-nex.com to xennex.app

Redirect chain from xen-nex.com to xennex.app
×Ahrefs keyword list for software development terms with difficulty, volume and traffic potential

Ahrefs keyword list for software development terms with difficulty, volume and traffic potential
Ioana Sima Avatar

Ioana Sima

Product Marketing Consultant

I help SaaS teams get found and understood: SEO, landing pages, campaigns, and honest reporting. I work solo from Bucharest and spend most of my free time in games, either playing them or dressing up as the characters.

Areas of Expertise: Digital Marketing Consultant, Product Marketing Manager