seo
Technical notes on web development, DevOps, and AI integration.
19 articles
- 18:03frontend
When Ratings Are Off, Hiding the Badge Is Not Enough
Switching the rating flag off is not enough while card badges and aggregateRating markup still ship. My notes on sweeping every surface clean.
TL;DR: Switching off ratings hid the detail page section but cards and JSON-LD still showed the old score from cached property data. That mismatch between what users see and what crawlers read risks spam penalties. Now the rating_enabled flag gates both the UI badge and the structured data so everything disappears together.
#react#seo#feature-flags - 17:46frontend
Taking 242 Client Names Out of an Image
242 client names used to live inside one image. Now they are indexed text, readable by screen readers, with a total computed from the data.
TL;DR: Client names were locked in a JPEG, invisible to screen readers and Google. The fix moved 242 names into a typed TypeScript module grouped by sector and rendered them as real searchable HTML with Next.js. The image stays for visual proof under WCAG's logo exception, while live text keeps the list accessible, indexed, and always in sync.
#nextjs#seo#accessibility - 01:46seo
Placeholder Text is a Violated Contract
Replacing [PLACEHOLDER] with verifiable facts, and why generic filler sits close to Google's scaled content spam signal.
TL;DR: Generic filler text on placeholder company cards isn't a fix; Google flags scaled content abuse, and hollow copy signals spam. Real research produced verifiable facts like sectors, cities, and founding years, applied consistently across both locale files. Type validation only checks strings, not quality, so content deserves first-class treatment.
#seo#content-strategy#nextjs - 13:30frontend
The Three Metadata Layers Behind a Clean Next.js SEO Audit
Canonical, hreflang, metadataBase, and JSON-LD LocalBusiness: the three layers that made sixteen bilingual Next.js routes pass an SEO audit.
TL;DR: Sixteen bilingual Next.js routes passed a full SEO audit thanks to one metadata commit. Three layers did the work: a shared helper generating canonical and hreflang tags, metadataBase in the root layout, and JSON-LD marking up the business and website. Centralizing everything keeps URLs consistent, so new routes stay audit-proof instead of relying on Google to guess.
#nextjs#seo#i18n - 03:04seo
9,200 Articles in the Sitemap, Google Only Indexes the Homepage
An audit of a news site with 9,200 articles in its sitemap and almost nothing indexed: crawl demand, internal linking, and the fixes that actually matter.
TL;DR: An audit of a news site with 9,200 articles in its sitemap found only about 44 that ever earned a Google impression, dropping to zero for the most recent publish months. Every technical check came back clean, so the problem is crawl demand: publishing volume far outpacing authority signals, plus an archive cut off from internal links. The fixes are editorial: lower the volume, build contextual links into old content, trim the news sitemap, and earn external validation.
#seo#google-search-console#crawl-budget - 02:33seo
Sitemap "Couldn't Fetch" in GSC: Diagnose Before Panicking
A red "Couldn't fetch" status in GSC does not mean your sitemap is 404. Here is the server-side diagnosis order.
TL;DR: Google Search Console showed a sitemap "Couldn't fetch" error, but server checks proved all 147 URLs returned HTTP 200 and Cloudflare blocked nothing. Per Google's docs, the message only means the last fetch attempt failed, often due to timeouts or a crowded crawl queue. The fix is patience: don't resubmit, wait a few days, then recheck.
#seo#search-console#cloudflare - 23:46seo
Best AI Assistant 2026: The Right Choice & Agent Runtime Trends
A per-need comparison of ChatGPT, Claude, Gemini, and Perplexity, plus where consumer assistants meet self-hosted agent runtimes: OpenClaw, Hermes Agent, and Agent Zero.
TL;DR: The best AI assistant in 2026 is no longer about the smartest chatbot but about persistence and autonomy. Pair a strong brain like ChatGPT or Claude with a self-hosted agent runtime such as OpenClaw, Hermes Agent, or Agent Zero for memory and autonomous execution. Go hybrid: match tools to your workflow instead of chasing one all-in-one winner.
#seo#ai#agent-runtime - 18:32backend
Site Head and Footer Snippets Without a Redeploy
Snippet changes used to mean an edit, a commit, and a deploy wait. A whitelisted settings endpoint turns that into one PUT request.
#nextjs#fastapi#seo - 12:39frontend
Fallback Icons Wobbled My Sidebar: Image Dimensions and CLS
Adding fallback icons for categories without one made the sidebar jump. Explicit width/height on images, and og:image dimensions, keep CLS under control.
#nextjs#cls#og-image