Snitz Forum SEO. I have done extensive work to my installation of snitz forums to improve the ranking of the forum pages in the search engines. I figured that since relatively little work has been done in this area, I’d take everyone through a very high level of what I’ve done. You’ll need a significant level of knowledge of the code base, since there is not one single plugin.
Snitz Forum SEO
I’ve recently been working on integrating the new version of snitz (not yet live on my site) and I’ve focused on optimizing it for better placement of it’s pages in the search engines. I’ve decided to write a post about some of the things I’ve modified. I know that SEO is a very subjective topic, and some of the methods I’ve used may or may not have an effect. Snitz forum is done in Classic ASP 3.0 (Classic Active Server Pages) and has a twin .net version in beta. All of these Snitz 2000 forum seo tips are custom coded, and were implemented on the Classic ASP version of Snitz.
I’ve done the modifications on the following assumptions:
To fully optimize your Snitz forum SEO work, all pages should have H1, Meta Tags, Title Tags, and H2 that match (relatively close) and that are specific to the content on that page. Duplicate content, both from other sites, and within your own site, is looked negatively upon by search engines So based on these assumptions, and on the assumptions of some other aspects of SEO, Ive made the following edits, additions, or adjustments to the new version of my forum.
- Any additional pages I’ve added with any mod I’ve installed, I’ve added the custom Title and Meta tag to. This is done at around line 1500 in inc_func_common.asp by just adding another “case” to the select case function.
- If you have full server access (usually you don’t on shared hosting) you should use the ISAPI dll to have your server create search engine friendly URLs. (masks the normal query string url with a url that is based on your page’s title.)
- Since you probably don’t have access on your server to use ISAPI DLL, you can some simple coding, but you’d have to have post_info.asp write a page for every topic, which would result in thousands of files on your host. Add a “url” field to the database tables for “xxxx_topics” Then, in post_info.asp, have it use objFSO.createfile (id use copyfile command on a template) and have it write a page matching the title, and replace(title,” “,”-”) as the filename of the new page. Then, anytime a page is referenced anywhere, you’ll need to call a function that takes the id of the post, looks up the corresponding URL (from the column you added to the table), and inserts it.
- If you don’t have the coding skills or the capacity on your fileserver to do this, just make sure that your dynamic URLs are as clean as possible and that they are in order (the same order) everywhere you find them. Make the unique parameter the FIRST one in the querystring so that the crawler reads it first. For example, on the default snitz installation, member profiles have the ID parameter as the second parameter in the querystring. (where “mode” is the first) You have to get ID moved before mode in all instances of the link.
- BOTH Google sitemaps and a regular forum sitemap are a MUST. You can set up your post_info.asp to write a new Google sitemap file every time a new post is submitted. You can also set up an automatic ping to Google webmaster tools to let them know that your sitemap has been update with new content. In addition to the Google sitemap, you should have a forum sitemap, which is a regular page that lists all of your forum pages. I have one for all of my forum pages OTHER than forum.asp, and topic.asp, then I have a separate sitemap, linked to the main forum sitemap for EACH forum. In each of these, I list links to every topic, AND every topic page if greater than 1. This ensures that engine crawlers get a good deep crawl view. NOTE: for engines to do a deep crawl, you will ALREADY need to have a decent number of external sites linking to you. This tells the engines that your site must be fairly popular, and that they should deep crawl, since the pages should be of good quality for their indexes. NOTE: below there is an item about duplicate content. Read that, and apply its principles to this item as well.
- Duplicate content. You want to make sure that your engine results aren’t diluted with duplicate content. You basically want all of your “power” focused on forum index pages, and the actual topic pages themselves. Based on that, you need to make EXTENSIVE use of the rel=”nofollow” tag for all links to duplicate content. Beside duplicate content, you can use nofollow to ask the crawler not to waste time on non-content links. This will allow it to focus what energy it decides to spend on your site, on the most important pages which as I stated earlier, are default.asp, forum.asp, and topic.asp. I can’t remember EVERY one that I did, but here is the main list that you need to nofollow to:
- active.asp (if you’ve added that mod)
- unanswered.asp (if you’ve added that mod)
- printer friendly versions
- Category collapse/expand links on default.asp, as well as links to view just one category. (the content is the same as in default.asp, and it is useless to send the crawlers there)
- ALL links to post.asp (to post new topic or a reply.) This is because if it is a reply, post.asp lists the original topic and all replies so far, and Ive noticed that Yahoo especially, likes to index THIS instead of the main topic. This may be because of the sheer number of links on the topic page to reply. Adding nofollow should prevent this.
- the forgot password page
- IF your member profiles are not viewable to guests, use nofollow on those too. If you don’t the engines will crawl them, and see a “you must be logged in to view” page for EVERY member. This is not good.
- This is also a must. If a page, such as default.asp has multiple links to the same page, nofollow all but one. default.asp example is for each forum, there is the text link to the forum, PLUS, the link on the folder image to the left. I use nofollow on the folder link. This will give the text link more power or juice, or “relevance” which is a good thing. You’ll have to scour your forum for these situations. There are quite a few, but I can’t remember them all off the top of my head.
- …you get the picture now. Use nofollow on any and all links that wouldn’t be useful in the search engines, and that you don’t want your crawler wasting time on.
- This will be more of a personal preference, and a preference of your users. You can make your member profiles public, and have them index-able for search. I don’t publish any contact info on the profile when being viewed publicly. You can just use an if statement where if not mlev = greater than 1, don’t show … If you decide to do this, there are a few things that you can do to SEO the member profiles. They need H1 and H2 tags that are unique, so add the member name to it. You can also do this in inc_func_common.asp by editing the pop_profile.asp case.
- On topic.asp, I use h1, h2, and h3 tags all with the title of the topic as the text. I use h1 at the top, h2 goes under all of the usual header stuff, and h3 goes under the topic and replies. This ensures that the crawler gets the idea of what your page is about. Also, you should consider making it a rule that your users post meaningful topic titles, and reserve the right to adjust them. This seems invasive, but in the long run, it helps users. With relevant titles, more users find the topic.
- If you have a home page that is different from your forum’s default.asp page, use a syndication mod. You’ll see that on my forum, my actual forum is located in the “/forum” sub folder, and i have a separate homepage. I use a syndication mod (which I’ve posted in the “MODs with code” forum at snits) to ensure that my newest topics are viewable by more users, AND so that they get crawled quickly by search engines.
- Use the RSS mod, and offer other sites to syndicate your content. This can provide invaluable back link power, and can give you credibility in your niche’s community. It also helps bring you more traffic.
- Use title tags in your links. for example, any link going to your default.asp page, use title=”forum-title-here” in the a tag. This also helps engine crawlers get the idea of what that page is about. [Note, this technique's usefulness is debated, but I always use the rule; it can't hurt to have it there.]
- On topic.asp, I’ve also integrated the “bold” or “italic” text power technique. Basically, you can bold or italicize a piece of text that matches your page’s title in order to stress to the engines what the page is about. All things being equal, you’d get preference in the engines if you did this, over a competitor that didn’t. I did it in the header as follows: This billiards forum topic is titled “last pocket 8 ball.” You can send to a friend , or create a printer friendly version. The page’s title is in bold, thus stressing the subject of the page’s content, and i’ve done it in a sentence that doesn’t look strange to real users, since there are useful links to the printer friendly version page, and the send to friend page.
- You must add the GOOGIESPELL mod to all posting or reply text areas, and encourage your users to make use of it. Also make it a rule that if there are misspellings and poorly composed topics and replies, that moderators have the right to correct them, or ban multiple offenders. Search engines consider your site or page less credible if there are spelling and grammar mistakes throughout the content. Ensuring that everything is correct can make a huge difference.
- Never allow your users to post content from other sites, unless they are quoting small portions of text. Engines will see your site as “duplicate” and will give preference to the site which had that particular content first.
- Ensure that your categories and forums are organized in to logical sub-divisions of your forum’s main topic. Use siloing (visit Bruce Clay’s SEO site for more info on this) to show engines how to treat your content.
- Add code to your inc_common.asp file to insert the page number into the title and meta tags for topics that have pagination due to many replies. Otherwise, the separate pages will all have the same title and meta tags, which is typically a no-no. See below for the code snippet.
Snitz Forum SEO
That is all that I can think of at the moment, but I know there was more that I’ve done. If anyone has done other things to improve their Snitz forum SEO, please drop me a message.
Snitz Forum SEO Code
Here is the code for item 16.
Case "topic.asp" SEO_pagination = request.querystring("whichpage") SEO_pagination = trim(SEO_pagination) if SEO_pagination = "" or isnull(SEO_pagination) then '---no pagination exists else if cLng(SEO_pagination) > 1 then TITLE_pagination = " - Page " & SEO_pagination '--any page greater than the 1st else TITLE_pagination = "" '--first page end if end if strTempTopic = cLng(request.querystring("TOPIC_ID")) if strTempTopic <> 0 then strsql = "SELECT FORUM_ID, T_SUBJECT FROM " & strActivePrefix & "TOPICS WHERE TOPIC_ID=" & strTempTopic set ttopics = my_conn.execute(strsql) if ttopics.bof or ttopics.eof then GetNewTitle = strForumTitle set ttopics = nothing else if mLev = 4 then ForumChkSkipAllowed = 1 elseif mLev = 3 then if chkForumModerator(ttopics("FORUM_ID"), ChkString(strDBNTUserName, "decode")) = "1" then ForumChkSkipAllowed = 1 else ForumChkSkipAllowed = 0 end if else ForumChkSkipAllowed = 0 end if intShowTopicTitle = 1 if strPrivateForums = "1" and ForumChkSkipAllowed = 0 then if not(chkForumAccess(ttopics("FORUM_ID"),MemberID,false)) then intShowTopicTitle = 0 end if end if if intShowTopicTitle = 1 then strTempTopicTitle = " - " & chkString(ttopics("T_SUBJECT"),"display") set ttopics = nothing strNewTitle = strForumTitle & strTempTopicTitle & TITLE_pagination end if else GetNewTitle = strForumTitle end if