
Creating a Discernible Name for Icon Links
A common issue I come across when auditing sites with Lighthouse is the "Links do not have a discernible name" error where links don't contain text.
Articles
Search Engine Optimisation (SEO) is the practice of improving how a website is crawled, understood, indexed, and ranked by search engines. It now sits alongside Generative Engine Optimisation (GEO), where the same underlying signals also help AI‑mediated search experiences understand, trust, and surface content.
Below you will find a subset of articles from my blog specifically about Search Engine Optimisation and ‑ related ‑ technical SEO for JavaScript applications. This is an area I have worked with for many years, and it has been a regular subject in my writing. There are forty‑six articles collected together for you below.

A common issue I come across when auditing sites with Lighthouse is the "Links do not have a discernible name" error where links don't contain text.

When you set up a custom domain in Netlify, the default `netlify.com` subdomain still returns your app, which can lead to duplicate content. It is an easy fix.

urllist.txt from sitemap.xmlUsing PHP it is quick and easy to automatically generate your urllist.txt sitemap from your sitemap.xml file (for example, using gatsby‑plugin‑sitemap).

Compare 301 and 307 redirects clearly, including permanence, browser behaviour, SEO impact, cache handling, temporary moves, and when each status code fits.

Check rendered HTML for JavaScript pages by comparing source and DOM output across metadata, headings, links, schema, content, hydration, and crawlability.

How client‑side rendering can affect search visibility, and what to check around content, links, metadata, routing, loading states, and fallbacks.

JavaScript rendering and SEO checks for pages that rely on client‑side behaviour, including content, links, metadata, fallbacks, and rendered output.

SEO risks in WordPress theme and plugin work, including metadata, headings, archives, canonicals, redirects, schema, pagination, and generated markup.

Technical SEO checks for CMS templates, including headings, metadata, canonicals, links, pagination, structured data, crawlable content, and editor output.

Optimise HTML markup for SEO and accessibility with semantic elements, heading structure, alt text, clean code, anchor text, and crawler‑friendly structure.