Another Canonical URL Demon Slain

I’ve been tearing through Joomla’s duplicate URL chaos because I’m fed up watching good sites—mine included—suffocate under unindexed pages, poisoned SERPs, and limp fixes that choke on query strings or beg for cash. My first article lit the fuse; now my canonical URL plugin’s a juggernaut, sitting at 99% as of March 24, 2025. It’s conquered com_contact, com_content, com_finder, com_newsfeeds, com_users, com_weblinks, even com_k2—but the latest demon I’ve slain is com_tags. Digging through Google Search Console, I found a swarm of /tags/3-style URLs clogging the works. Raw IDs instead of aliases? That’s a problem begging to be crushed, and I’ve done it.

IDs to Aliases, Chaos to Clarity

This isn’t about me forcing rules—it’s about making Joomla’s components speak true. My latest com_tags fixer class grabs those ugly /tags/3 URLs, pulls the tag’s real alias—like /tags/joomla—from Joomla’s own RouteHelper and TagModel, and sets it as the canonical. No more ID-riddled doppelgängers confusing Google; if Search Console flags it, I fix it. Across com_content for articles, com_users for profiles, all the way to com_finder for search, every core component’s locked down—plus a com_k2 trick I swiped from another dev. This plugin doesn’t guess; it knows, and com_tags is the latest proof.

https://www.richeyweb.com/content-tags/4 - have a look at the source, at the canonical URL.  it's not /content-tags/4 - it's /content-tags/system (the canonical that Google chose, according to the Search Console).

I've had such success with this new plugin, I've deployed it on several of my own sites to get real-world data and testing from the only critics that matter - the search engines.

Poison Meets Its Match

SERP poisoning—where some fool twists good-url into good-url?junkparameter—gets no traction now. With com_tags, a /tags/joomla?randomcrap won’t steal the spotlight; the plugin enforces the clean alias every time. It’s doing the same across com_content, com_contact, the whole core lineup—live tests on my sites show it’s airtight. That 1% left? Minor wrinkles from real-world runs. But this is a wall—bad links, bot flubs, and Search Console gremlins don’t stand a chance anymore.

Not Just a Search Console Annoyance

Google spells out the consequences of having duplicate content, and the importance of providing canonical URLs in the document.

https://developers.google.com/search/docs/crawling-indexing/canonicalization

If you have too many, it might fall under their spam policy.

https://developers.google.com/search/docs/essentials/spam-policies

Free, Open, One Step From Glory

Still free, still no gatekeepers—I’m not here to shake anyone down. At 99%, it’s got every Joomla core component in its grip, plus com_k2, and it’s running live on my sites, proving its chops. Site owners shouldn’t need a subscription to kill SEO chaos, and they don’t. It’s open too—write a fixer class like my com_tags one, drop it in, and you’re fighting with me. I saw /tags/3 in Search Console and turned it into /tags/joomla because that’s what this is about: real problems, real fixes, for us all.

The Last Canonical URL Mile

That 1%? It’s polish—edge cases from live testing, maybe a nod to third-party stuff like VirtueMart if the community bites. But this is my Bad Wolf moment: com_tags IDs are history, canonical chaos is flatlining, and Joomla’s URLs are damn near bulletproof from com_content to com_weblinks. SERPs are cleaner, site owners can breathe, and I’m not stopping until it’s 100%—forever. This fight’s personal, and I’ve all but won it—for me, for you, for Joomla.