Let's start right away with the main script code:

#!/usr/bin/perl

# which-forum.pl script
# (c) 2010 Alexandr A Alexeev, http://site/

use strict;

# commented lines - for rigor
# if the task is to collect engine statistics, leave it as is
# if you make a list of forums - uncomment

my $data ;
$data .= $_while (<> ) ;

# check how much was Powered by phpBB without a link in the footer
print "phpbb \n"
if ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?phpbb\.com\/?"[^>]*>phpBB/i or
# $data =~ /viewforum\.php\?[^""]*f=\d+/i or
$data =~ /phpBB\-SEO/i or
$data =~ /) ;
print "ipb \n"
if ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?invision(?:board|power)\.com\/?[^"]*"[^>]*> [^<]*IP\.Board/i or
$data =~ /]+href="[^"]*http:\/\/(?:www\.)?invisionboard\.com\/?"[^>]*>Invision Power Board/i or
$data =~ /

/i or
$data =~ /index\.php\?[^""]*showforum=\d+/i) ;
print "vbulletin \n"
if ($data =~ /Powered by:?[^<]+vBulletin[^<]+(?:Version)?/i or
$data =~ /) ;
print "smf \n"
if ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?simplemachines\.org\/?"[^>]*>Powered by SMF/i or
$data =~ /index\.php\?[^""]*board=\d+\.0/i) ;
print "punbb \n"
if ($data =~ /]+href="[^"]*http:\/\/(?:(?:www\.)?punbb\.org|punbb\.informer\.com)\/?"[^>]*> PunBB/i) ; #or
# $data =~ /viewforum\.php\?[^""]*id=\d+/i);
print "fluxbb \n"
# if($data =~ /viewtopic\.php\?id=\d+/i or
if ( $data =~ /]+href="http:\/\/(?:www\.)fluxbb\.org\/?"[^>]*>FluxBB/i) ;
print "exbb \n"
if ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?exbb\.org\/?"[^>]*>ExBB/i) ; # or
# $data =~ /forums\.php\?[^""]*forum=\d+/i);
print "yabb \n"
if ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?yabbforum\.com\/?"[^>]*>YaBB/i or
$data =~ /YaBB\.pl\?[^""]*num=\d+/i ) ;
print "dleforum \n"
if ($data =~ /\(Powered By DLE Forum\)<\/title>/i or
$data =~ /]+href="[^"]+(?:http:\/\/(?:www\.)?dle\-files\.ru|act=copyright)[^"]*">DLE Forum<\/a>/i) ;
print "ikonboard \n"
if ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?ikonboard\.com\/?[^"]*"[^>]*>Ikonboard/i or
$data =~ /\n"
if ($data =~ /\n"
# if($data =~ /forums\.php\?fid=\d+/i or
# $data =~ /topic\.php\?fid=\d+/i or
if ($data =~ /]+href="http:\/\/(?:www\.)?flashbb\.net\/?"[^>]*>FlashBB/i) ;
print "stokesit \n"
# if($data =~ /forum\.php\?f=\d+/i or
if ($data =~ /]+href="http:\/\/(?:www\.)?stokesit\.com\.au\/?"[^>]*>[^\/]*Stokes IT/i) ;
print "podium \n"
# if($data =~ /topic\.php\?t=\d+/i or
if ($data =~ /]+href=[""]?http:\/\/(?:www\.)?sopebox\.com\/?[""]?[^>]*>Podium/i) ;
print "usebb \n"
# if($data =~ /forum\.php\?id=\d+/i or
if ($data =~ /]+href="http:\/\/(?:www\.)?usebb\.net\/?"[^>]*>UseBB/i) ;
print "wrforum \n"
# if($data =~ /index\.php\?fid=\d+/i or
if ($data =~ /]+href="http:\/\/(?:www\.)?wr\-script\.ru\/?"[^>]*>WR\-Forum/i) ;
print "yetanotherforumnet \n"
if ($data =~ /Yet Another Forum\.net/i or
$data =~ /default\.aspx\?g=posts&t=\d+/i) ;

You will find this and other scripts mentioned in the post in this archive.

Script which-forum.pl examines the HTML page code to see if it contains signatures of the forum engine. We used a similar technique when defining WordPress and Joomla, but there are a couple of differences. Firstly, the script itself does not load the page code, but reads it from stdin or a file passed as an argument. This allows you to download the page once, for example, using wget, and then run it through several analyzers, if we have more than one. Secondly, in this script the presence of a signature is 100% a sign of the engine. Last time, the presence of a signature only added weight to the corresponding engine and the engine with the greatest weight “won”. I decided that in this case, such an approach would only unnecessarily complicate the code.

To test the script, I did some research. I compiled a list of several thousand forums and ran each of them through my script, thereby determining the percentage of program responses and the popularity of various engines.

To get the list of forums, I used my Google parser. Queries like this were sent to the search engine

site:forum.*.ru
site:talk.*.ru
site:board.*.ru
site:smf.*.ru
site:phpbb.*.ru
....

and so on. Full code you will find the query generator in the file gen-forumsearch-urls.pl. In addition to zone.ru, .su .ua .kz and .by were also used. Last time, it was difficult to conduct such a study, since WordPress and Joomla sites do not have such signatures in the URL. Catalogs like cmsmagazine.ru/catalogue/ do not provide a sufficient sample size. What is 600 Drupal sites?

I must admit, the results of the experiment disappointed me. Of the 12,590 sites studied, the engine was successfully identified on only 7,083, that is, only in 56% of cases. Maybe I didn't take into account some engine? Was it really true that half of the forums had Bitrix installed? Or should I have spent more time searching for signatures? In general, additional research is required here.

Among the 56% of successfully identified engines, the most popular, as expected, were IPB (31%), phpBB (26.6%) and vBulletin (26.5%)

They are followed with a large lag by SMF (5.8%) and DLEForum (5.3%). My favorite punBB was only in 6th place (1.64%). I wouldn’t recommend putting much faith in these numbers (they say that every third forum on the RuNet runs on IPB), but certain conclusions can, of course, be drawn.

For example, if you intend to make a site on a forum engine and plan to modify the forum, say, pay users $0.01 for each message with automatic withdrawal of funds once a week, then you should choose one of the three most popular engines. The more popular the forum, the greater the chances of finding a programmer who is well versed in it.

If no significant changes are expected in the engine, then it may make sense to choose a less popular engine, for example SMF or punBB. This will reduce the number hacker attacks to your forum and the amount of spam automatically sent on it.

Scripts for searching/identifying forums can also be found in more than one practical use. The first thing that came to my mind was to sort the identified forums by TIC and post on the first hundred posts with links to one of my sites. However, hundreds of forum dofollow links did not affect the TCI in any way (2 updates have passed), so it is better not to waste time here, unless you are not interested in transitions.

It is clear that the mentioned use of scripts is far from the only one. I think you can easily figure out how else you can use them.

What engines do successful forums use? What servers do they run on? In what encoding are messages written by users stored? Will encrypted HTTPS replace good old HTTP?

The study uses statistics from the “Rating of Runet, Uanet and Bynet forums”. This rating contains over 400 of the largest Russian-language (more than 1 million messages), Ukrainian-language (more than 50 thousand messages) and Belarusian-language (more than 2 thousand messages) forums.


As can be seen from the diagram, paid engines Invision Power Board (now IPS Community Suite) and vBulletin are competing for first place. At the same time, the leader, albeit by a small margin, is still IPB.

In 3rd place, with a slight lag, is the free phpBB, distributed under the GNU GPL license. In addition to it, SMF (Simple Machines Forum) is also quite popular - the successor of YaBB SE, which in turn traces its history back to YaBB on Perl. This engine is also free, but unlike phpBB it has a BSD license.

Of particular note is the paid XenForo, the first public release of the beta version of which took place in October 2010, and the first stable version was released on March 8, 2011. Despite the paid nature and strong competition, it managed to get into the top five most popular engines. Moreover, some forums abandoned the previously used software and switched to XenForo. The largest of these is BMW Club, containing over 27 million posts. Previously, he worked on the paid vBulletin.

Interestingly, some large projects use forum services - mainly forums free hosting uCoz.

The use of old engines, such as IkonBoard 2 (Ru.Board Computer Forum) or YaBB 1 (Absolute Games Forums Central), is due to the great age of these forums, as well as, apparently, the conservatism of administrators and (or) users who do not want to switch to modern software. In addition, these forums are largely modified and no longer resemble the original IkonBoard and YaBB.


As you can see from the table, more than 2/3 of all the largest forums use nginx. True, this percentage includes not only forums running on pure nginx, but also using it as a front-end to another server (usually Apache). Such a high popularity of nginx on large forums is due to its stable operation on high-load projects.

Only about 16% of forums run pure Apache.

IIS (Internet Information Services) from Microsoft is even less common. Less than 2% of forums use it. The largest of them is the SQL.ru forum, containing more than 19 million messages.

A significant part of the forums listed under “Other or undefined” are sites that use services to protect against DDoS attacks - CloudFlare, Qrator, DDoS-GUARD.


Among encodings, unsurprisingly, UTF-8 is the leader. The surprising thing is that Windows-1251 almost keeps up with it. But this is nothing unusual, if you remember that the statistics take into account the largest forums. And the largest ones are, as a rule, quite old forums, created back in the days of dial-up, when every byte counted. It is worth recalling that Cyrillic characters take up 2 bytes in UTF-8, whereas in Windows-1251 and KOI8-R - 1 byte each.

What’s even more interesting is that there are still forums using the KOI8-R encoding. Among the largest are Farit.ru (more than 8 million messages), HiTV portal Conference (more than 2 million messages) and Kuking Culinary Forum (more than 1 million messages).


In recent years, there has been a gradual transition of websites to the secure HTTPS (Hypertext Transport Protocol Secure) protocol. Its main advantage is the encryption of all transmitted traffic.

Previously, HTTPS was only used for certain parts of some sites where secure data transfer was actually required (for example, online banking). But over time, regular websites began to switch to HTTPS. Among the largest are Google, Yandex, Wikipedia, Facebook, VKontakte, Odnoklassniki.

This trend also affected the forums. Thus, today more than 10% of the largest forums use the HTTPS protocol, and their number is constantly growing. This may be partly due to Google's more favorable attitude toward such sites (“Google ranks sites with HTTPS higher in SERPs”).

However, for now, about 90% continue to work on the HTTP protocol.


As a bonus, statistics on PHP versions, installed on the servers of the largest forums. Surprisingly, more than 1% of forums continue to use PHP 4! The most popular version remains PHP 5.3, and the new PHP 7 is installed only on 2 forums.

This conservatism can be explained by the fact that large forums, as a rule, operate on dedicated servers. And administrators are usually hesitant to update software unless absolutely necessary.

Conclusion

To summarize, we can highlight the following trends observed among the largest forums on Runet, Uanet and Bynet over the past few years:
  • the most popular engines remain paid IPB and vBulletin;
  • transition of some forums to the new commercial engine XenForo;
  • use of the nginx server, as well as services for protection against DDoS attacks;
  • slow transition to UTF-8 encoding while maintaining a serious position in Windows-1251;
  • The vast majority of forums still use the HTTP protocol, but there is a gradual transition to HTTPS.

Everyone knows that I simply cannot live without Joomla, but, in my opinion, good forum in the components there is no. That's why I work with forum engines. One of the new ones that I just recently started using is Let's Get Started new category SMF, I hope, with useful material. We start small, and as beginners it’s very useful.

First steps in search engine optimization Simple Machines Forum: remove copyright and external links

Let me make a reservation right away that I only work with smf 2 and this article will relate specifically to this version of the free forum engine.

And so, regular readers know how much I don’t like to put “10” external links to the official websites of engines, including forum ones. That is why, first of all, we remove the copyright and as many as 4, attention 4 external links of the form " SMF 2.0.2 | Simple Machines | SMF © 2011 | XHTML"! To do this, connect to the site via FTP forum/Themes/ name of your theme/ and edit the file index.template.php. Naturally, at the very bottom there is a code (about line 330) that displays external links that we don’t like so much. Therefore we delete: "

  • ", theme_copyright(), "
  • " And "
  • ", $txt["xhtml"], "
  • ". It’s all so simple and easy. In the coming publications, expect new materials on promoting and optimizing forums on SMF/

    In case anyone doesn't know, Simple Machines Forum - SMF for short - is, as stated on the official website, a free, professional-grade package that will allow you to organize your own online community in a few minutes. on this engine, you can look here. I myself set up my own forum on it (by the way, go to FreeForum.biz).

    It doesn't matter how much or little spam appears on your forum. The important thing is that you spend your valuable time on moderation. Setting up a plugin that will do all the work for you takes a few minutes, and it will save you, in total, days and months, which will add up to the minutes you would have spent erasing messages and deleting users.

    I will note that I tried to fight spammers on my own - I blocked access via IP and even subnets. It really worked, it filtered out a lot of garbage, but nevertheless, once every one or two days someone made it through. And it took quite a lot of time to replenish the database of banned IPs. I thought I should be more convenient way, and he really was found!

    1. Installation and configuration of Stop Spammer

    In two weeks of operation, this plugin blocked 2202 fake users. Each of them would leave at least one message. The spammers show no signs of slowing down and I would spend time cleaning up my forum every day.

    Instead, every few days I go to the user management page and see something like this:

    I move on to the “Awaiting approval” section (these are the spammers found who are deprived of the opportunity to leave messages until they are approved accounts administrator). I check the “Select all” checkbox and delete them with one click:

    That's it, all spam accounts go into oblivion. Let's return to our list of users:

    It can be seen that the list has thinned out noticeably, but who are the rest? We select everyone and send them for verification with one button:

    One “red” one appears, we immediately delete it. If you have free time, you can do others. If you don’t have time, then don’t do anything with new users - most of them will “blush” during subsequent checks. If you have time, you can go to their profiles and look - if there is a link in the signature, they will immediately be banned, these are fake accounts of spammers who will never leave a single useful message.

    I told you how to use this magical plugin, now I will tell you how to install it.

    Download two files: language_full.zip (this is language pack to translate the plugin) and StopSpammer_v2_3_9.zip (the number may be different, as versions are updated). Unpack the contents of the StopSpammer_v2_3_9.zip archive into some folder. Unpack the language_full.zip archive into the same folder and agree to replace the files. Now pack our folder into a zip archive.

    In the admin panel, proceed to install packages. Opposite the “Download package” inscription there is a button for selecting a file on your computer. Select our new archive (where we replaced the language file), upload it to the forum and activate the package.

    That's it!

    Additional configuration of the plugin occurs in the admin panel: go to

    Users → Registration → Settings

    You can leave the default values ​​there. There is also a field “Your API key”. Without this key, you will not be able to report new spammers (but the plugin will work and filter known spammers). If you want to receive own API key, go to www.stopforumspam.com to register, and then enter the key here. If you have not received the key yet, leave the field blank. Then the default key will be used.

    2. Installation and configuration of Anti-Spam Links

    Adherents of the SEO religion (you can read more about my attitude towards SEO-nists in another) have a firm conviction that by increasing the number of links to their site, they “promote” it (for some reason, the idea of ​​​​creating interesting and high-quality content does not appeal to anyone doesn't come to mind). He would be a sucker, but there would be ways to extract money from him. So, some “citizens” provide services for “running” sites through forums. They create a large number of accounts on different forums and insert backlinks there in signatures and other available fields. Despite the fact that even “SEO experimenters” have already experimentally proven that these links are of zero use, some warn that for this you can get a ban from search engines, Yandex, for example, simply ignores links on ALL forums and sites where anyone can leave links. Google also has similar algorithms - ignoring links in comments, etc. But the law is not written for suckers... Therefore, we, the owners of the forums, have to reckon with the facts that “cool SEO optimizers” order a “run” of their shitty creations for a thousand rubles.

    The plugin will filter out a lot Stop Spammer. But we can help him! You can take the very interest of posting links on your forum out from under spammers. This is exactly what you need Anti-Spam Links. This plugin (specific numbers can be changed in the settings) does the following:

    • those who, for example, have less than five messages, cannot leave links at all
    • those who, for example, have less than 15 messages, cannot leave active links, http:// is removed from links, and in general these links become nubolinks (newbielink)
    • those with, for example, less than 50 posts can leave active links, but all links are given a nofollow attribute.
    • Well, those who have more than 50 posts can insert the most common active links, which transfer the weight of the site to the page being linked to.

    Believe me, would-be SEOs are very careful about the form in which their link ends up on the site. They'll quickly lose interest in your forum if they can't easily post their shitty links to their shitty sites there.

    Yes, by the way, the above rules also work in fields such as signatures.

    To install this plugin, go to its official page. Download the anti_spam_links_v1.0.1.zip archive (the number may be different). Again in the forum admin, go to install packages (as you did with the previous package) and install it. There is no language file for this package, so there is no need to unpack the archive or do anything with it.

    To configure the plugin, go to the section

    Configuration → Setting up mods… → Setting up modifications

    If you wish, specify how many messages the user must have to upgrade his capabilities.

    Conclusion

    These two plugins will make your life, the forum owner, VERY much easier and will save a lot of time. However, from time to time spammers break through and, at least once a week, you need to “thin out” users and delete spam messages. Therefore, do not abandon your web resources!