As part of our regular SEO round-up when developing a major new release, I'm happy to run through the latest SEO changes we've made for IP.Board 3.4.
Friendly URL Changes
After much research and discussion with other SEO focused forum owners, I decided to revamp the FURL structure when handling additional page parameters.
The existing format uses the following structure:
board.com/topic/123-title/page__foo__bar
This is then parsed as foo=bar when converted to a normal query string.
The problem with this is that it confuses search engines because it looks like another page rather than just a variant of a single page. We have a canonical tag which helps to reduce confusion but it's still not perfect from an SEO perspective.
With that in mind, the new format is:
board.com/topic/123-title/?foo=bar
Now humans and search engines can quickly see that these are additional parameters of a single page. The canonical tag now backs this up and there is absolutely no confusion!
New page parameters
Another item that often came up when discussing URL structures and best practises was the current pagination method which is:
board.com/topic/123-title/page__st__30
This is then parsed as st=30 when converted to a normal query string. This tells IP.Board to start from the 30th post in that topic, which is page two if we have 30 posts per page.
This was less than optimal because some search engines had trouble understanding this was an additional page of the same topic.
I've made this more explicit by making use of a special page parameter:
board.com/topic/123-title/page-2 board.com/topic/123-title/page-2?foo=bar
The eagle eyed will notice that there no additional slash after page-2. This means that search engines (and humans!) will identify the root page, a page with parameters and a page of a topic:
board.com/topic/123-title/ board.com/topic/123-title/?foo=bar board.com/topic/123-title/page-2 board.com/topic/123-title/page-2?foo=bar
In this case 'board.com/topic/123-title/' is the root page.
Of course, IP.Board will happily 301 redirect visitors using the old st=x method or the old page__x method.
Unread Topics
In IP.Board 3.3, there was a special 'unread' folder added to topic links on the board index. This was often confusing as it seemed like yet another page from the root topic. In 3.4 we're using:
board.com/topic/123-title/?view=getnewpost
This explicitly states that it is simply another way of viewing that single topic.
Statuses
In IP.Board 3.3, each status update from a member was given a new page, like so:
board.com/statuses/id/12345
During Google's Panda update, websites with 'thin' content could be penalised. It could be determined that these status update pages are very thin and a moderately busy board could generated thousands of them.
In IP.Board 3.4, we use the new FURL format:
board.com/status/user/1-matt/?status_id=12345
As you'd expect:
board.com/status/user/1-matt/
This URL shows all of the user's status updates.
Multiple SEO Titles
I've improved the SEO URL builder to allow for multiple 'seoTitles'. Right now, IP.Board 3.3 is limited to just one, so you can only create FURLs like so:
board.com/topic/123-#{title}/
Multiple titles will allow you to create complex titles like so:
board.com/#{title-1}/123-#{title-2}/
In addition to the bundled inclusion of the old IP.SEO, this wraps up most of the big SEO changes coming in 3.4. I'm confident that the new pagination and new FURL structures will clarify your site's structure to search engines making it easier to spider and associate content without being penalised for thin content.
Of course we're always open to well-constructed feedback on SEO improvements. Everything you see in this blog entry was implemented from feedback. Please start a topic in our feedback forums if you have SEO suggestions not directly related to the content of this blog entry.