It should be very easy fix for VB to implement.
Imagine you are viewing
/showthread.php?topic=3333
at present. Instead of returning links to
/showthread.php?topic=3333&goto=next
and to
/showthread.php?topic=3333&goto=previous
vBulletin should simply return links pointing to
/showthread.php?topic=4444
and to
/showthread.php?topic=2222
.
Imagine topic 4444 is the very next topic from 3333 and is indexed as
/showthread.php?topic=3333&goto=next
.
The problem comes if topic 3333 and/or topic 4444 is/are posted to and they are no longer adjacent threads in the forum thread listings.
From that point on, clicking a link in the SERPs pointing to
/showthread.php?topic=3333&goto=next
may well take you to topic 8888, which will not contain the content you were expecting to see.
The fact that the content at these non-canonical URLs keeps changing and is often a duplicate of URLs already indexed, must be a major negative indexing factor for every vBulletin site.
With the URLs for every piece of content constantly changing, it is quite possible that many of the pages within the site are not indexed at all, while others are indexed under multiple URLs... many of which no longer point to the same content.
This is a very serious design flaw in vBulletin and I am beyond amazed that it hasn't been fixed many years ago.
Actually, I see the parameters are nowadays called
&view=old
and
&view=new
. Whatever, this still causes the same indexing problems. Additionally, there's an extension that can perform a 302 redirect to the correct URL. This is even more dangerous.