Within a content management system like Joomla! it is a common problem that one content can be addressed via multiple links. For example directly from the menu, by a category, a tag or with its dynamic URL. In general it must not become a problem, but there are cases that can be bad for your website's ranking and user experience.

This article shows some examples, the impact and a solution for handling it with a canonical plugin.

Endless URLs for one content

Within Joomla! you can reach the content with its alias (the SEF URL) or with its dynamic link. A dynamic URL looks like this index.php?view=article&catid=2&id=2. Any SEF URLs is internally interpreted with these parameters. But for humans, the SEF link (like /news/2-news-on-my-topic.html) is much more convenient. And it is the link you would like to see in search engine results.

Besides that you may have noticed strange URLs, that may look like this /news/2-news-on-my-topic-and-some-more-text.html. This is possible because Joomla! resolves any URL that starts with an existing item ID correctly.

Note
Since Joomla! 3.8. IDs from articles are no longer necessary - you may use modern routing and remove IDs from URLs. That is recommended for new websites, but if you have an existing site with good rankings, it would change all your URLs. That means: old links listed in search engines will result in an HTTP 404 error, you have to add redirects for those links and search engines have to reindex all pages.

The possibility to generate weird URLs may lead to some problems:

User experience

Users see the content, but maybe modules and/or style are missing. In the following example, search and image on the right are missing:

Joomla blog article

Page URL: /news/2-news-on-my-topic.html

Joomla article missing modules

Page URL: /component/content/article/2
or
/index.php?option=com_content&view=article&id=2

Reputation

Harmful links placed by anyone somewhere in the web may lead to your website like /news/2-free-porn.html. Arbitrary suffixes are possible and as they do not result in an error (like 404), search engines might index these links.

SEO

Several URLs for one content might cause duplicate content problems.

Do you have arbitrary links pointing to your website?
Find out if your website already has problems with arbitrary links, with tools like Google Analytics or the search console.

Handling arbitrary links

So what can you do about it?
One solution is to use canonical URLs on your Joomla! website, so search enginges get the information which URL should be added to their index. A canonical URL (also called canonical link or canonical tag) is a meta tag within the code. It points to one main page if several pages have similar content or can be reached via several URLs. So all copies of one content point to the original page that you wish to be indexed by search engines.

But if you use the native SEF system plugin from Joomla! the canonical will always be the URL itself - even dynamic URLs. The plugin Aimy Canonical tries to detect the intended correct SEF URL to set this one as a canonical tag (for a growing set of Joomla! components).

Page and Canonical URLs with SEF plugin
Page: /news/2-news-on-my-topic.html
Canonical: /news/2-news-on-my-topic.html

Page: /component/content/article/2
Canonical: /component/content/article/2

Page: /index.php?option=com_content&view=article&id=2
Canonical: /index.php?option=com_content&view=article&id=2

Page and Canonical URLs with Aimy Canonical
Page: /news/2-news-on-my-topic.html
Canonical: /news/2-news-on-my-topic.html

Page: /component/content/article/2
Canonical: /news/2-news-on-my-topic.html

Page: /index.php?option=com_content&view=article&id=2
Canonical: /news/2-news-on-my-topic.html

In combination with the feature Redirect on path mismatch you solve this issue not only for the index of search engines, but for your visitors as well. They will be redirected to the intended URLs with all modules and/or styles active.

Redirect on path mismatch

Entered Page URL: /component/content/article/2
Redirected to : /news/2-news-on-my-topic.html

Please note that Aimy Canonical is a plugin for setting canonicals. In combination with its redirect feature it helps to handle the problem of strange URLs but it is no plugin for routing. It will not solve all problems found in Joomla!'s routing system. But for a lot of common cases, it helps to add clean URLs to a search engine's index, leads users to the intended page and reduces the risk of being a victim of harmful link attacks.