WebMCP, the End of Clicks, and the Semantic Upgrade Your WordPress Site Actually Needs

AI constantly generates paradoxes — in work, learning, and training. The underlying question never changes: what value can we attribute to knowledge or experience when AI performs just as well, or better?

For this post also, you can find all files, on my GitHub account. See https://github.com/bflaven/ia_usages/tree/main/ia_seo_ia_semantic_breadcrumb_webmcp

On the subject of AI, I lean toward a clear-eyed pessimism. Each day confirms the erosion of the value of work. Productivity gains are so significant that the human effort historically invested in any given task is irrevocably disappearing. SEO is the most obvious example, and now GEO (Generative Engine Optimization) is following the same path. The practical conclusion of this post: hand it all over to AI and move on.

This brings to mind Gramsci’s well-known statement on the human condition:

Il mio stato d’animo sintetizza questi due sentimenti e li supera: sono pessimista con l’intelligenza, ma ottimista per la volontà.

“My state of mind synthesizes these two feelings and transcends them: I am a pessimist with my intellect, but an optimist by will.” — Antonio Gramsci

Personally, I’m left with the pessimism. The will has partially deserted. There is little left to counter the abrasive effects of AI on work.

SEO Is Dead. Long Live GEO.

Take SEO — natural referencing. The shift from search to response is already underway. So what will remain of the audience/advertising model after AI finishes dismantling it? This doesn’t only affect media companies; it applies to the entire digital economy and every platform that lives year after year on digital notoriety.

If audiences collapse and user interactions flow exclusively through chatbots or agents, nothing is left for anyone except AI operators — where competition is frankly unparalleled. The $65 billion raised by Anthropic and a valuation approaching a trillion dollars suggests the scale of the battles underway. But let’s get back to our modest topic: SEO.

Staying in the audience race — whether through SEO or GEO — is now non-negotiable. AI compliance may be the scythe that irrevocably decapitates the audience/advertising model. Follow the logic to its conclusion:

  • Adopting WebMCP to comply with AI risks amplifying zero-click traffic. If every site that perfectly annotates its content ends up feeding an AI that responds instead of the original site, traffic collapses despite the implementation effort.
  • With old-world search engines, there was at least a chance the user would land on your site — to read, to order, to browse. With WebMCP, AI becomes autonomous and executes all or part of those user actions without the user ever leaving the AI environment.

Becoming AI-compliant, in this light, is a bit like feeding a viper in your bosom. The rot sets in. A bitter observation, perhaps exaggerated — fear inspired by AI is a poor advisor, and the worst-case scenario is never a certainty. But the question stands: how do we attract users to our platforms if AI answers on their behalf, drying up the entire click economy?

WebMCP: Google Playing the Dominant Position Game (Again)

WebMCP is Google pulling the same old trick: dominant position, negative externality, and the bill sent to everyone else. The subtext, if you’ve invested heavily in SEO and organic search optimization, reads roughly like this: “Come save my business model — since you can’t save yours — by making your site compliant with a new WebMCP protocol, which is really just a more advanced JSON structure.”

A reminder on negative externalities: they occur when the cost of a transformation is imposed on the community without the initiating party bearing that cost. AI implementation is riddled with them:

  • Environmental cost: AI is energy-intensive and extractive. Its deployment accelerates environmental destruction. Neither the main instigators nor the main users appear to care — just look at SpaceX and Anthropic’s market valuations. The markets strain at a gnat and swallow a camel.
  • Labor market cost: The combination of AI and automation will precipitate mass unemployment at unprecedented levels. Whether this destruction will be offset by new job creation remains, to put it charitably, an open question.

We, as users, absorb all these negative externalities to stay competitive in the audience race — to the great benefit of an oligarchy of operators. Google’s strategy is transparent enough: shift from a results-engine model to an answer-engine powered by Gemini.

In short: from SERP (results) to chatbot (answers). That’s the whole story.

The Philosophical Aside (Skip If You’re Impatient)

The other thought that came to me while writing this post: declaring that AI makes everyone look like a fool and an incompetent is a dead end. The worst thing about this transformation is denying it. Some people confuse ends and means and see AI purely as a technological evolution, when it is in fact a source of unparalleled transformations.

The paradox: I’m inexorably absorbing all aspects of my digital product work — design, creation, execution — with the methodical help of AI. Does this diminish the value of my job or enhance my skills beyond what I could have imagined? I haven’t decided yet.

By establishing an abundance of cognitive capacity for everyone, doesn’t AI impoverish the overall thinking of each individual by eradicating scarcity — and therefore uniqueness? Consider artists. Look at speculation surrounding painters like Rothko, Basquiat, Warhol, Pollock. The moment death is announced, speculation runs rampant: the market knows no new works will be produced, so scarcity drives prices skyward. The Saatchi brothers built their fortune on exactly this mechanism — buying up entire outputs to control supply and dictate price.

This speculative mechanism is at the heart of the AI market: the destruction of human uniqueness, the appropriation of human creative value, and the resale of those capabilities — at exorbitant prices — to the very individuals who generated them in the first place.

Without verging too far into conspiracy theory (though I’m aware this is a fine line): the ongoing dumbing-down of individuals through entertainment, combined with the massive destruction of critical thinking via AI, seems to aim at something. As a Product Owner, I now create increasingly sophisticated proofs of concept — but I would be incapable of producing them without AI, and I find myself making fewer and fewer independent decisions. That’s my main concern.

On a positive note: with AI, mistakes become less costly. The anomaly is that errors and hesitations are now more valuable than results themselves — they are proof that we’re still thinking, at least a little. In the age of AI and Claude Code, the error represents rarity and therefore value, while rational accuracy is within reach of any fool. Remember Alex Karp’s quote from the previous post.

Enough. Let’s get back to something practical.

Tags Enrichment Pipeline for Thematic and Category Taxonomies

For those who manage a website and its data, the need is straightforward. Everything gathered below formed the matrix from which I built my prompts for Claude Code.

1. Pipeline Objective

Through a Python pipeline, order WordPress post tags from taxonomies (e.g., taxonomy=post_tag, taxonomy=category) to build an extended breadcrumb — enriched for each tag with Wikidata information and named entity specification using Spacy. The final output is then handled through a WordPress plugin.

2. WordPress Plugin Objective

The plugin must be able to simulate the breadcrumb, translation, enrichment, and slug before validating any change to a tag from taxonomy=post_tag or taxonomy=category in production. This matters because it’s an automatically generated element that may require editorial approval.

Since the breadcrumb is an ad hoc creation, changes can be stored in an additional MySQL table linked to the plugin. Preserve original elements at all times.

Proposed UX: A mapping view — original elements in the left column, modified elements in the right column — with all necessary fields to perform the optimized change. This allows generating the breadcrumb, translation, enrichment, and slug before pushing to production.

3. Rules for the Enriched Breadcrumb

1. Primary Group — Category Tags (taxonomy=category)

  • Sub-category level: e.g., Home › AI

2. Secondary Group — Thematic Tags (taxonomy=post_tag)

  • The thematic tag is editorially attached to a category: e.g., Home › AI › Claude Code
  • Note: the thematic tag is attached to a section tag.

3. Impact on URLs and Breadcrumb

Renaming URLs using the label and slug requires a redirection table.

URL: https://flaven.fr/category/ux-experience-utilisateur/ (NOK)
URL: https://flaven.fr/category/ux-user-experience/ (OK)
Breadcrumb: Home › UX

Everything is designed to generate a coherent breadcrumb. See the articulation of taxonomy=category and taxonomy=post_tag.

WordPress Plugin Behavior

The plugin should allow, when creating tags in taxonomy=post_tag and taxonomy=category, the following manual operations:

  • Assign a wikidata_id
  • Assign one of the 18 named entities from Spacy
  • Simulate the breadcrumb before validation and publication (the breadcrumb must be clickable)
Home › Agile › Claude Code (NOK)
Home › AI › Claude Code (OK)
  • Add a descriptive text — either manually written or pulled from Wikidata — to the frontend category page once tag identification is unambiguous, improving SEO performance.
# taxonomy=category
URL: https://flaven.fr/category/agile/
Breadcrumb: Home › Agile
URL: https://flaven.fr/category/ux-experience-utilisateur/
Breadcrumb: Home › UX
URL: https://flaven.fr/category/tutoriaux/
Breadcrumb: Home › Tutoriaux
etc...

# taxonomy=post_tag
URL: https://flaven.fr/tag/ai/
Breadcrumb: Home › Développement › AI
URL: https://flaven.fr/tag/wordpress/
Breadcrumb: Home › WordPress
URL: https://flaven.fr/tag/python/
Breadcrumb: Home › Technologie › python
URL: https://flaven.fr/tag/php/
Breadcrumb: Home › WordPress › PHP
etc...

User Story

As an editorial manager,
I want a WordPress plugin to transform my site's taxonomy (tags and categories)
from a flat structure (SEO-optimized) to a hierarchical and enriched structure (GEO-optimized).

In order to:
- Manage tags and categories intelligently:
  - Detect named entities.
  - Enrich them via Wikidata.
  - Generate an optimized breadcrumb trail.
  - (Optional) Translate from a pivot language to the publication language.

- Process existing tags in bulk (catch-up).
- Manually correct tags after the catch-up.
- Integrate new tags as they are created (anticipation).

Quick Must-Have Workflow Steps

  • STEP 1: List the Categories and Tags taxonomies (taxonomy=category and taxonomy=post_tag) of posts in French, with option to translate to English. Indicate ID and the number of content items attached to each.
  • STEP 2: Extract named entities from these taxonomies using Spacy.
  • STEP 3: Search Wikidata using the tag label to enrich it.

Extra Info for the Plugin

  1. Back up the original tags and categories table before any operation.
  2. Named entity dropdown — one example per type:
    # Named entities from Spacy
    PERSON:      People, including fictional.
    NORP:        Nationalities or religious or political groups.
    FAC:         Buildings, airports, highways, bridges, etc.
    ORG:         Companies, agencies, institutions, etc.
    GPE:         Countries, cities, states.
    LOC:         Non-GPE locations, mountain ranges, bodies of water.
    PRODUCT:     Objects, vehicles, foods, etc. (Not services.)
    EVENT:       Named hurricanes, battles, wars, sports events, etc.
    WORK_OF_ART: Titles of books, songs, etc.
    LAW:         Named documents made into laws.
    LANGUAGE:    Any named language.
    DATE:        Absolute or relative dates or periods.
    TIME:        Times smaller than a day.
    PERCENT:     Percentage, including "%".
    MONEY:       Monetary values, including unit.
    QUANTITY:    Measurements, as of weight or distance.
    ORDINAL:     "first", "second", etc.
    CARDINAL:    Numerals that do not fall under another type.
    

Technical Environment for the Pipeline

- Conda: `tags_treatment`, Python 3.9.13
- No Python 3.10+ syntax (no `match/case`, no `X | Y` for types)
- CSV separator: semicolon (`;`)
- Source CSV encoding: `utf-8-sig` (BOM handling)
- JSON encoding: `utf-8`
- Logs: standard `logging` module, never `print()` in pipeline scripts
- Dependencies: `pyyaml`, `requests`, `sentence-transformers`, `scikit-learn`,
  `spacy`, `streamlit`, `pandas`

Pipeline Working Commands

# step_1 — list tags/categories
python source/pipeline/001_step_1_list_tags_categories_wp.py \
  --limit 30 \
  --taxonomy post_tag \
  --no-dry-run

python source/pipeline/001_step_1_list_tags_categories_wp.py \
  --limit 30 \
  --taxonomy category \
  --no-dry-run

python source/pipeline/001_step_1_list_tags_categories_wp.py \
  --limit 103 \
  --taxonomy category \
  --no-dry-run

# step_2 — Spacy NER
python source/pipeline/002_step_2_spacy_ner.py \
  --limit 30 \
  --taxonomy post_tag \
  --no-dry-run

python source/pipeline/002_step_2_spacy_ner.py \
  --limit 2495 \
  --taxonomy post_tag \
  --no-dry-run

# step_3 — Wikidata enrichment (use --limit carefully)
python source/pipeline/003_step_3_wikidata_enrich.py \
  --limit 30 \
  --taxonomy post_tag \
  --no-dry-run

python source/pipeline/003_step_3_wikidata_enrich.py \
  --limit 2495 \
  --taxonomy post_tag \
  --no-dry-run

# step_4 — breadcrumb proposal
python source/pipeline/004_step_4_breadcrumb_proposal.py \
  --limit 30 \
  --taxonomy post_tag \
  --no-dry-run

python source/pipeline/004_step_4_breadcrumb_proposal.py \
  --limit 100 \
  --taxonomy post_tag \
  --no-dry-run

python source/pipeline/004_step_4_breadcrumb_proposal.py \
  --limit 2495 \
  --taxonomy post_tag \
  --no-dry-run
# Environment setup
cd /Users/brunoflaven/Documents/01_work/blog_articles/_ia_seo_ia_semantic_breadcrumb

# Conda
conda create --name tags_treatment python=3.9.13
conda info --envs
source activate tags_treatment
conda deactivate

# Docker (WordPress)
cd /Users/brunoflaven/Documents/01_work/blog_articles/_ia_seo_ia_semantic_breadcrumb/wp_docker

# Start / Stop
# docker compose down
# docker compose up -d

# Check
# WordPress:   http://localhost:8080
# phpMyAdmin:  http://localhost:8081

Production Category Taxonomy

The real category taxonomy set up for this website. It was a game-changer for SEO and required the full pipeline to migrate.

/* PRODUCTION */
3438,    // AI & Machine Learning
3439,    // APIs & Integration
3437,    // Business & Case Studies
3440,    // Cloud & Infrastructure
3441,    // Data & Analytics
3436,    // Digital Storytelling & Webdocs
3454,    // Journalism & Writing
3453,    // Miscellaneous / Other
3442,    // Mobile & Devices
3443,    // Multimedia & Video
3444,    // Programming & Databases
3445,    // SEO & Web Marketing
3446,    // Social Media & Community
3447,    // Technology & Trends
3448,    // Tools & Productivity
3449,    // Tutorials & How-to
3450,    // UX & Product Design
3451,    // Web Design & Front-end
3435,    // Web Development
3452,    // WordPress & CMS

Deleting the old category taxonomy required intervention in .htaccess since URLs were disappearing.

# BEGIN Breadcrumb Migration Redirect

Redirect 301 /category/2-saas-gestion-dun-projet/ /category/3wdoc-tutorials/
Redirect 301 /category/5-gestion-des-textes/ /category/3wdoc-tutorials/
Redirect 301 /category/7-gestion-des-videos/ /category/3wdoc-tutorials/
Redirect 301 /category/3-saas-gestion-dune-sequence/ /category/3wdoc-tutorials/
Redirect 301 /category/6-gestion-de-laudio/ /category/3wdoc-tutorials/
Redirect 301 /category/8-gestion-des-boutons-et-des-actions/ /category/3wdoc-tutorials/
Redirect 301 /category/8-saas-gestion-des-effets/ /category/3wdoc-tutorials/
Redirect 301 /category/9-saas-gestion-des-evenements/ /category/3wdoc-tutorials/
Redirect 301 /category/4-gestion-des-images/ /category/3wdoc-tutorials/
Redirect 301 /category/4-saas-gestion-des-images/ /category/3wdoc-tutorials/
Redirect 301 /category/91-saas-gestion-des-medias-13/ /category/3wdoc-tutorials/
Redirect 301 /category/6-saas-gestion-des-sons/ /category/3wdoc-tutorials/
Redirect 301 /category/5-saas-gestion-des-videos/ /category/3wdoc-tutorials/
Redirect 301 /category/92-saas-gestion-du-style/ /category/3wdoc-tutorials/
Redirect 301 /category/3-configuration-dune-sequence/ /category/3wdoc-tutorials/
Redirect 301 /category/nos-derniers-wdoc/ /category/3wdoc-tutorials/
Redirect 301 /category/1-saas-mon-compte/ /category/3wdoc-tutorials/
Redirect 301 /category/1-mon-compte-sur-3wdoc/ /category/3wdoc-tutorials/

# END Breadcrumb Migration Redirect

Karpathy-Inspired Claude Code Guidelines

Common-sense advice — the kind you’d give to a talented student, or to an animal with superhuman strength. A few simple rules for managing AI, including Claude Code.

  1. Think Before Coding
  2. Simplicity First
  3. Surgical Changes
  4. Goal-Driven Execution

Install — Option A: Claude Code Plugin (recommended)

From within Claude Code, add the marketplace first:

/plugin marketplace add forrestchang/andrej-karpathy-skills

Then install the plugin:

/plugin install andrej-karpathy-skills@karpathy-skills

This installs the guidelines as a Claude Code plugin, making the skill available across all your projects.

More on WebMCP

WebMCP is an open-source JavaScript library that allows any website to integrate with the Model Context Protocol. It provides a small blue widget in the bottom right corner of your page that allows users to connect to and interact with your webpage via LLM or agent.

See: https://webmcp.dev/

What Is WebMCP in a Nutshell

  • Not yet a W3C standard — a proposed specification rapidly gaining adoption (similar trajectory to Schema.org in 2011)
  • Layer on top of HTML — annotates existing form elements and page interactions with machine-readable metadata
  • JavaScript API — exposes named “tools” that AI agents can reliably discover and call
  • Goal: an AI agent arrives on the page → understands which actions are possible → executes them without approximation
  • Think of it as an OpenAPI specification for browser interactions, not for REST endpoints

Keep an eye on it — given Google’s influence, this could become a de facto standard.

Claude’s Assessment (Honest Summary)

  1. Not a standard — the analysis is correct. Proposed specification, no W3C/WHATWG backing, no confirmed Google commitment. Real risk of being a dead end like dozens of micro-specs before it. Betting on it today is a speculative bet, not a solid SEO investment.
  2. Read-only site = almost no short-term benefit. WebMCP shines on interactions: forms, search, subscriptions, agentic navigation. A blog with static content consumed passively gets little from it. The real lever remains Schema.org Article/BlogPosting + llms.txt + clean semantic markup. WebMCP plugin = over-engineering for most current use cases.
  3. Yes, largely Google’s defensive narrative. Google AI Overviews are a direct response to Perplexity and ChatGPT, which cannibalize clicks. WebMCP fits this pivot: “the agent uses web pages” → Google stays in the loop. Risk for the ecosystem: if agents respond without clicks, organic traffic collapses for everyone — WebMCP or not. The real question isn’t “how to adapt to the agent” but “will the traffic-ad model still hold up in three years?”

Verdict: real but premature interest. Better to invest in llms.txt + per-agent robots.txt directives + a clear AI licensing policy first.

WebMCP Resources