MediaWiki Administrator's Handbook/Print Version

MediaWiki Administrator's Handbook

The current, editable version of this book is available in Wikibooks, the open-content textbooks collection, at

Permission is granted to copy, distribute, and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike 3.0 License.


So you've become an administrator on a MediaWiki project, or you just want to know what the differences are between an administrator and a normal MediaWiki user? This Wikibook is intended to help with the job and try to explain the special functions available to an administrator. It also covers some of the things you need to avoid when trying to do your job.

This book is not a policy manual, although links to existing policies on several Wikimedia projects have been provided for reference purposes. This book is about How-to admin in the general sense and is appropriate to any project using the MediaWiki software.

An important point to note here is that while most Wikimedia sister projects use the term administrator or admin to mean a person who has been granted "Sysop" privileges with the MediaWiki software, most MediaWiki documentation usually uses the term Moderator instead. This Wikibook is not dealing with any of the software configuration issues that are associated with low-level operating system commands and configuration files directly associated with the use of the MediaWiki software. Most MediaWiki documentation calls these individuals administrators, but with Wikimedia sister projects these individuals are usually called developers instead, as the MediaWiki software developers also do the low-level software configuration for Wikimedia projects. Instead, the term administrator is going to apply to the project moderators and following Wikimedia sister project conventions and hierarchies.

The specific permissions granted to an administrator on a MediaWiki project can differ. This book covers the full set of permissions that might be granted but on the particular project you are interested in you may find that some functions listed here are unavailable.

See the MediaWiki Developer's Handbook for a book on how to "hack" Mediawiki to customize the software, add an extension, or contribute to Mediawiki development.

Page Deletion

Sometimes it is necessary to hide a page rather than just fix it or redirect it elsewhere. Although this function is described as "deletion" it doesn't physically remove it from the underlying database. Instead the page is marked as delete and is hidden from view for normal users (that is, those without administrator privileges).

Once you have become an administrator one of the first things you will notice is a brand-new "delete" tab at the top of most pages in addition to the normal ones. This will take you to a deletion prompt.

Once there, fill in the explanation and click "Delete page". Some versions of MediaWiki have a "Yes, I really want to delete this" checkbox, so tick that before clicking delete otherwise it will not work.

What should be deleted depends on the project's inclusion rules, but generally:

Deleting specific revisionsEdit

If you wish to delete only some revisions of a page - for example someone's private contact details or a copyright violation -this can be done using the "revision deletion" functionality from the page history display. Select the revision you wish to delete then click the show / hide selected revisions button. You will be given the option of hiding the content of the revision, the account name that made the revision or the edit summary. One or more options can be selected. Enter a reason for hiding the revision then click apply to selected revision to complete the action.

Hidden revisions remain visible to other administrators. In some cases the revision may need to be hidden from administrators as well. This is achieved using the suppression function (called oversight in earlier versions of MediaWiki). On all Wikimedia projects the suppression function is only available to Oversighters and Stewards.

Restoring some or all deleted revisionsEdit

Once a page has been deleted it is invisible to normal users, but admins visiting that same "no such article" page will also see a line at the top saying "View or restore ## deleted edits?". This line also appears on the revision history page if the page still exists but has had some past revisions deleted.

Regardless of its location, clicking on the link will display the revision history. MediaWiki builds from before February 16, 2006 will show the last revision before deletion above the revision history. Each of these can be viewed on its own by choosing the appropriate date and time entry. MediaWiki builds from after February 16, 2006 will display the raw wiki source for the page (with a button below which can render it as it appeared), while those before this date will show the rendered page. Regardless of what version you are using the diff view function is currently not supported for deleted pages.

If you want to restore all deleted revisions merely click "Restore!", but if you want to exclude specific revisions you will need to check the boxes of every revision other than those ones before clicking Restore, at the moment there is no "restore all but selected" option. For pages that have had a lot of edits this can be a laborious process.

Revision restoration does not have to happen all at once however, and even multiple admins can simultaneously restore edits of the same page (although they will encounter some errors if they both select a matching revision).

Merging page historiesEdit

Sometimes when merging pages it is desirable to merge their edit histories together rather than simply using redirects. In this case you will need to delete the page in question, move one of the source pages over top of it, delete the page again, move the next over top, etc. etc. etc. Once completed simply restore all the revisions by clicking the history tab and going through the procedure described above.

Depending on the version of MediaWiki running the newest revision may become the current revision, so you may need to revert to an earlier revision where all the source pages had already been merged.

A step-by-step explanation is found in Edit History.

Mass page deletionEdit

The mass deletion function (also known as nuke) can be used to remove a large number of pages quickly and easily. It is useful when combating page creation vandalism. The mass deletion function is accessed from Special:Nuke. Three options to filter the pages to be deleted are available:

  • All users or by username or IP address
  • All pages or by page name (using a pattern)
  • Maximum number of pages

Selecting go will bring up a list of pages based on your selection criteria. By default all pages are "checked" and will be deleted. Enter a reason in the description field then select delete selected to complete the mass deletion. Be careful with this function as there is no mass undelete!

Local PoliciesEdit

Page Protection

Sometimes it is necessary to protect a page against vandalism or other unwanted edits.

First of all visit the page in question and click the protect tab. You will be presented with one of two boxes, depending on the version of MediaWiki your wiki is running. Both methods are presented below. For the record, Wikicities is currently running MediaWiki 1.4 while Wikimedia projects are running 1.5.

Page Protection in MediaWiki 1.4 and earlierEdit

The protection screen in MediaWiki 1.4 and earlier (some very early 1.5 builds also have this style)

At this screen simply check "Confirm protection". If you only want to prevent people moving the page check that box (by default the page will be protected from both). In this version of MediaWiki you cannot choose to protect solely against page moves while leaving editing access open.

Page Protection in MediaWiki 1.5 and laterEdit

The protection screen in MediaWiki 1.5 and later

By default the left and right options both move to the same place when you change the left-hand one. If you check "Unlock move permissions" each may be adjusted independently. You can for example decide to allow only sysops to edit the page, but for non-sysops--the "(default)" category--to move the page if they choose to do so. In most cases you will want to protect against both, which is why this is the default. Some wikis also have a "new users" option (not shown).

If the page has been protected in the past, a "Protection log" will be displayed beneath the prompt.

Unprotecting in MediaWiki 1.4 and earlierEdit

The unprotection screen in MediaWiki 1.4 and earlier (also some early 1.5 builds)

Simply give a reason and tick "Confirm unprotection", then click "Confirm". When using MediaWiki 1.4 this results in all protection restrictions being removed from the page.

Unprotecting in MediaWiki 1.5 and laterEdit

For this just see above and set the access type you're re-enabling to "(default)". You can also subjectively turn the two different permissions on and off at will.

If the page has been protected in the past, a "Protection log" will be displayed beneath the prompt.

Things to noteEdit

Note that the talk page of the page you are protecting will NOT be protected along with its sibling, and vice versa. If this is necessary you will need to do it separately.

User Block


User blocking is perhaps one of the most heavy-handed things you can do as an administrator, and the one that can cause the most damage. An administrator must therefore be cautious in using this power. Often a user will spend quite a bit of time building up a reputation under a particular user name, and by blocking that user they will not be able to edit from their account. Blocked users can still edit their user talk page (and user talk sub-pages?) unless these pages are protected and the user doesn't have sysop or higher privileges.

It is also possible to block IP addresses from being able to edit text. This does not stop a registered user on that IP address from being able to log in, but only stops anonymous users from using the edit functions. If there is a problem where a registered user is unable to access the Wiki due to an anonymous IP block, then the user must unblock that IP and reblock with anonymous users only checked.

Performing the BlockEdit

The actual process of performing the block is rather straight forward. You can either go directly to Special:Block and get the page, or you can use your administrator's tools on the sidebar and then clicking on the Block User link. This is only visible when you are viewing either a user page or a user talk page.


All this does is simply fill in the name of the user account or IP address so you don't have to worry about misspellings or getting the wrong IP address.



Working with the Navigation Side BarEdit

One of the more esoteric features of MediaWiki software that is under the control of an administrator is the maintenance of the navigation side bar that appears (usually) to the left of the content on all MediaWiki pages.

Accessing the Side Bar TemplateEdit

The main sidebar template is kept in the collection of standard MediaWiki messages that may be edited by or protected from ordinary users just like any other template. These pages are always protected from editing, however, unless you have administrator rights.

The typical page for this in the MediaWiki software is found at MediaWiki:Sidebar, and can be found on all MediaWiki projects.

Default SettingsEdit

The default sidebar information for most MediaWiki installations is as follows:

* navigation 
** mainpage|main 
** portal-url|portal 
** ict-url|ict 
** currentevents-url|currentevents 
** recentchanges-url|recentchanges 
** randompage-url|randompage 
** helppage|help 
** sitesupport-url|sitesupport

Explaining featuresEdit

There are two sorts of links that can be added through this interface:

  • Predefined project variables
  • Direct project links

Both of these have advantages and disadvantages which will be explained below.

Predefined Project VariablesEdit

The default setup of the navigation bar is only the predefined variables, so a common misconception is that this is the only sort of item that can appear on the navigation bar. Indeed prior to MediaWiki 1.5 this was the only way that you could make changes to the navigation bar, so it is common for people to still use this approach.

The values for these project variables must be changed from the list of System messages directly. For example from the default example above regarding the current events link, currentevents-url can be changed at MediaWiki:Currentevents-url and currentevents at MediaWiki:Currentevents. Note that if you want to change the page links or even the text of the navigation bar for this one item, you don't even need to edit the navigation bar itself directly but simply need to edit the variable link instead.

An additional description is available if you edit MediaWiki:Monobook.js that is related to each project variable that appears as a "hint text" for each project variable.


  • Displays hint text (not available for direct project links)
  • Standard translations are available for default multi-lingual configurations which include these variables


  • Additional step of trying to hunt down variable pages if you want to make changes
  • Often the actual content in the variable has absolutely nothing to do with the name of the variable. For example, portal-url may in fact be a link to a self-referential parody group of pages or to the main project discussion pages.
  • Adding additional variables requires developer access/root access to the computer that is hosting the content.

Direct Project LinksEdit

This is a more recent feature for adding in the navigation bar, but is much easier to work with. Specific syntax issues will be addressed in the next major section.


  • No need to create variables or edit outside of the main side bar template
  • Context of the content is obvious
  • Can be performed by somebody with sysop privileges
  • Less likely to mess up whole project (such as might happen if MediaWiki:Monobook.js is edited with the wrong syntax)


  • Lack of hint text (is it really that important?) Note that even this may be fixed in a later version of MediaWiki software.

Sidebar SyntaxEdit

It is important to note that either naming convention can be used to help rearrange the order of the links on the sidebar, and both may be used simultaneously. You are not restricted to sticking to one naming convention.

MediaWiki software uses the unordered list syntax for keeping track of items in the sidebar. Major sections are delimited by a single asterisk (*) and individual links by two asterisks (**). Additional levels may be added depending on the nature of the link, but only affect indentation of links on the sidebar and should be used very sparingly.

Following the asterisk, the link is added by using the format of URL (or page link) followed by the public description of that link. There is no need to use the [[ or ]] brackets to form these links as the MediaWiki software will do this automatically.

Here is an example of a modified sidebar from the default:

* navigation 
** mainpage|mainpage 
** portal-url|portal 
** currentevents-url|currentevents 
** helppage|help 
** sitesupport-url|sitesupport
** Project:Village Pump|Village Pump

* tools
** recentchanges-url|recentchanges 
** randompage-url|randompage 

Note here that Recent Changes and the Random Page links have been moved to a completely separate section. As an example, a link to the main project discussion page has been added.

Other text or even images can be added to this sidebar, but you should be careful as it is used on every project page and has a major draw on server resources as a result. This is something that should be kept very simple and neat as a guideline.

  • Note: Keep in mind that these changes will be very visible to all participants of the project, and that experimentation with this feature is likely to confuse new users to the project. On larger projects with many users, you should try to get a general feel for what changes need to be made from the users rather than arbitrarily make changes on a whim.


Special:Import is a feature designed to accompany Special:Export. Importing allows manual or automated copying of a page from a remote project into another project. This is not necessarily available on all wikis.

If the feature is disabled on a particular wiki the page will instead say "No transwiki import sources have been defined and direct history uploads are disabled." If it is available, however, importing will have one of two appearances:

Importing from transwiki import sourcesEdit

The Special:Import interface seen on Wikimedia projects.

This is the interface used on Wikimedia projects (other than those that still have it disabled entirely). For this interface, choose the one-letter code that represents the project to import from (w = Wikipedia, b = Wikibooks, etc.); the ones listed will depend on what projects have been added as import sources. Projects that do not have their codes on this list cannot be imported from. Next, enter the page name. Only one page can be imported at a time using this interface. Talk pages are not automatically included and must be imported separately. Unchecking "Copy all history versions for this page" will result in only the current revision being carried across (similar to Special:Export's "Include only the current revision, not the full history" feature). "Transfer pages into namespace:" allows you to choose a namespace; for a page that needs cleanup, using the Transwiki namespace, if there is one, is probably a good idea.

In the case of Wikimedia projects, the projects from which imports can be made must be specifically requested from bugzilla. The following Wikimedia wikis have automated importing enabled.

Importing from XMLEdit

The Special:Import interface seen outside Wikimedia projects.

Used on many wikis, this interface is less automated but more powerful. Pages must first be obtained from the source wiki's Special:Export. This variant of the interface does not feature a "Copy all history versions for this page" checkbox; this must instead be done with Special:Export's "Include only the current revision, not the full history" checkbox. Use "Browse..." to select the saved XML file and then click "Upload File" to begin the upload. The time this takes will vary depending on the size of the XML, how busy the server is, and your Internet connection speed. If all goes well it will say "Import succeeded!", and if not the error message will indicate what went wrong.

Unlike the Wikimedia version pages cannot be directed into a new namespace from this interface, however it can be manually changed with a text editor; for example if there is a "News:" namespace on the target wiki, changing the <title> entry "Foo" to "News:Foo" will automatically direct it into the "News:" namespace.

General NotesEdit

  • pages in the File: namespace can be imported, but the images attached to them can't (although if it is a Wikimedia project and they are on Wikimedia Commons they will automatically be sourced from there).
  • pages are automatically attributed to users with the same username. Note that if a user has been renamed with Special:Renameuser and an edit under their old username is subsequently imported it will be attributed to the old username, not their new one.
  • If you import to a page name that already exists the most recent revision of the now merged history will be the one displayed, so be sure to check the pages to make sure a wanted revision hasn't been replaced.
  • when importing from an import source the action is logged on Special:Log/import (both where the XML came from, and how many revisions were imported) and the action shows up on Special:Recentchanges. XML imports are also logged, but only in MediaWiki 1.9.x. With earlier builds means the page won't show up on Special:Recentchanges unless it is more recently edited than some of the wiki's current content. Note that neither method logs the page on Special:Newpages unless its oldest revision is newer than some of the wiki's own content.
  • Sometimes the Special:Log/import logging will fail to register an imported page. Additionally, some projects maintain manual transwiki logs (usually in a Transwiki: namespace).
  • when using Special:Export, always check the very bottom of the XML. If the last line isn't </mediawiki>, don't use it.
  • if you import XML of a page that has already been imported there will be duplicate revisions in the history. This may or may not apply to the transwiki import sources method.
  • by default, the XML importing version of the interface limits filesizes to around 1.4 megabytes. This limit can be changed by the server admin (or you in php.ini in maxuploadsize=).


Block prevents the user of a certain account or IP address from editing for a determined period of time.


When to blockEdit

Blocking policy varies from project to project, but it generally applies to the following categories of user:

  • Persistent vandals
  • Spammers
  • Trolls
  • Open or anonymous proxies
  • Threats or harassment
  • Persistently adding copyright violations
  • Inappropriate user names


  • Expiry sets a time after which the block is automatically lifted by the MediaWiki software. The dropbox offers several frequently-used time periods, such as "24 hours", "1 week", and "1 month". (Please see note below about block lengths.)
  • Block anonymous users only allows users from a blocked IP address to edit using a registered account, only restricting the edits of anonymous users. (This option is not available when blocking a registered username.)
  • Prevent account creation prevents the creation of new accounts from a blocked IP
  • Automatically block the last IP address used by this user, and any subsequent addresses they try to edit from blocks any IP used by this account


In order to unblock an account (to allow editing or increase the period of the block) go to Special:Ipblocklist where the option is available.

Length of blockEdit

The priority must be to minimise damage to the wiki. However when there is time or on review afterwards some or all of the following may be helpful in looking at the length of the block.

  1. User contributions. Bear in mind that if a page is deleted it will not be in the contributions. (This is often the case with spam bot type pages.)
  2. Block log history. This may give guidance on previous blocks.
  3. WHOIS data
  4. User talk page on Wikipedia. Given the level of traffic on WP compared to other Wiki's this may have useful history of both editing patterns and warnings.
  5. Block log on Wikipedia. Again this may give guidance on level of nuisance and block period.
  6. Check out the spam database on DNS Stuff. If one or more of the lines are red this is an indication of a lack of security of the IP and the likelihood spam may originate from it.
  7. Ask around! It's always worth it.

Conflicting block lengthsEdit

If a particular user or IP is blocked more than once simultaneously, the MediaWiki software will honor the block that expires the soonest. (This may or may not be the shortest block.) In this case, the sysops who placed the blocks should contact each other and decide which length is most appropriate under the circumstances.

Indefinite blocksEdit

The "indefinite" option in the Expiry field allows a sysop to block a particular user or IP without specifying an expiration. This block is effectively permanent, but it can be lifted at any time by any sysop. Indefinite blocks should be used sparingly on IP addresses because IPs tend to shift from user to user over time.

Custom block lengthsEdit

The "other" option in the Expiry field allows a sysop to define either a custom block length or a precise date and time when the user or IP will be able to edit again. Custom values must be entered in the GNU date input format.

Range blocksEdit

The MediaWiki software allows sysops to block entire ranges of IP addresses. Using CIDR notation, enter an IP range between /16 and /31 (inclusive; MediaWiki does not support blocking larger ranges). If you are unfamiliar with CIDR and binary arithmetic, then you should not block ranges.

A properly-applied range block will remove editing privileges from all persons who connect from an IP in the affected range. As a result, it may unintentionally block valued contributors, so it may be worthwhile to consult a checkuser before applying a range block.

Range blocks are a drastic measure, and should only be used for brief periods as a last resort. Poorly-applied range blocks can shut out entire nations!


Edit History

Edit HistoryEdit

See also: Meta: Help:Moving a page: Fixing cut and paste moves
See also: Wikipedia:How to fix cut-and-paste moves
See also: Help:Moving a page: Fixing cut and paste moves
WARNINGundoing this procedure is extremely tedious. Please read above links carefully and be sure you actually want to do this – it can get very messy and complicated.

Note that you can only merge or split edit histories – you cannot copy them (without the Duplicator extension), i.e., cannot create two duplicate copies of the same edit history.

Edit histories should generally be merged if pages in the main namespace copy contents from pages in the main namespace of a sister Wikimedia project in order to comply with the GFDL license. For similar reasons if a page in the main namespace is split into several pages such as from becoming big or due to reorganization it is generally a good idea to split the edit history among the new pages.

Some Wikimedia projects may include additional namespaces in which edit histories should be merged or split up.

Old methodEdit

Historically, to merge the edit history of two or more pages or to split up the edit history of single page into two or more separate pages you will need to use the Delete and Undelete tools. Follow these instructions to do so. Suppose you wish to merge "Foo" and "Bar" (and maybe "Bar 2") to "Foo".

  1. open the page you wish to merge the edit histories into and click the edit link – you will keep this open for a while. ("Foo" → Edit)
  2. open a window for each page whose edit history you plan to merge with step 1. ("Bar", "Bar 2")
  3. click on the move link of each page you opened in step 2. ("Bar" → Move)
  4. enter into the "To new title" field box for each page, the page name from step 1 and confirm deletion of the existing page. (Move "Bar" to "Foo"; confirm delete "Foo")
  5. close all windows open in step 2 and open a copy of the page in step 1 in a new window. (Close "Bar", "Bar 2", open a new "Foo")
  6. click on the history link and then the view or restore link. ("Foo" → History → View/Restore)
  7. confirm you wish to restore edit histories. (Confirm restore "Foo" History)
  8. go back to the page and click the edit link. ("Foo" → Edit)
  9. copy and paste the contents of the edit box in step 1 into the edit box in previous step. (Copy and paste from old "Foo" to merged "Foo")
  10. enter "restored current version" into the summary box and click save page to restore back the current version. (Save!)

Using Special:MergeHistoryEdit

A faster method is to simply make use of MediaWiki's history-merging tool. Simply enter the source and destination page in the tool, and then choose the number of revisions you want to history-merge. This method is recommended as it's far less tedious with less risk of getting tangled with deletion and undeletion.


Protect prevents changes to a page by users below a certain user level.

  • Default: anyone can edit
  • Autoconfirmed: No IP editing, no editing by the newest accounts
  • Sysop: only editable by administrators

Pagemove permissions are "locked" by default to match the edit permissions, but can be unlocked to allow editing without allowing pagemoves, or in theory vice-versa (though there's rarely any reason to set it that way). This is often done to project namespace pages which should be editable by anyone, but should not be moved around.

Protecting the main page does not automatically protect the talk page.

What should be protected depends on the project, but generally:

  • Project and help namespace pages should generally be protected against pagemoves.
  • Policy pages may be protected
  • Widely used templates
  • Frequent vandal or spam targets (the different projects have vastly different rules governing when this should be done)
  • User namespace pages, on request of the user.
  • For a more general discussion, see Protected pages considered harmful (on meta).

Local PoliciesEdit


Rollback quickly reverts all consecutive edits by the most recent contributor to a particular page. The edit summary is automatically set to read "Reverted edit of A, changed back to last version by B", and the edit is marked as "minor".

The rollback tool should only be used to revert blatant vandalism. It should not be used to revert good-faith edits, to resolve content disputes, or to enforce a particular version of an article.

The rollback tool may remove constructive edits, and it may also leave earlier vandalism intact. As a result, after using the rollback tool, sysops should always check recent revisions and ensure that all disruptive edits have been reverted and all constructive edits restored.

Finally, after using the rollback tool, sysops should leave a note on the appropriate User talk: page and explain why rollback was used. Many "vandals" are simply new users who are unfamiliar with the ways of the wiki; by gently correcting them, a good sysop may lead them to contribute positively.

If you are an administrator you can use bot rollback, which will treat rollbacks as bot edits so they don't flood recent changes, good if a vandal bot comes and vandalizes lots of pages. To use this, you need to go to the user's Special:Contributions page and put &bot=1 at the end of the url, like this, You can then click the rollback buttons on the user's contribution page so that the rollbacks don't flood recent changes.

Special pages

Special pages are available to all Wikimedia users from a link on the sidebar. Administrators can access some special pages not available to non-administrators:

Editing in the MediaWiki Namespace

Editing pages in the MediaWiki namespace is one of the more complicated and serious abilities of an administrator, and must be undertaken with extreme caution because it can change the appearance of the entire website.


Sysops, more commonly known on various projects as administrators or custodians are users that have access to restricted software tools used for maintenance. These tools are not available to all editors because the tools can be used to create a rather more serious level of disruption than the generally-available editing tools. It's important that a track record of good-faith editing be established first before granting adminship.

The different Wikimedia projects have different ways of vetting users who request the tools. On most projects this is done through an election process, but new projects (which do not have any bureaucrats, who have use of the "makesysop" tool) need to make the requests on Meta, and at least some projects (such as en.Wikiversity) use a mentoring system rather than open elections.

Getting to know how the tools work is fairly easy, as for the most part they're quite intuitive thanks to our thoughtful developers and years of trial and error. Knowing how and when they should be used is a different issue, since there are a lot of things that should not be done, and each wikimedia project will have different policies and guidelines regarding their use.

The golden rule is simple: never use an administrative tool unless you are sure it's the right thing to do. If in doubt, just leave it to a more experienced administrator, or just ask for advice.

Being a Project Leader

The process that made you an administrator on the MediaWiki project that you are working on has made you one of the most visible members of that community. Either you are starting out a brand new project, or you have been elected from your peers to take a larger role in moderating discussion.

Becoming an AdministratorEdit

Starting a Completely New ProjectEdit

If you have decided to take the path of starting a completely new project from scratch, as the founding member you are usually given administrator rights to get things going right away, and often even more. This founding user is by definition the older person on the project.

Other sections of this book will deal with how to get a project to grow, especially just simply trying to get something started at all, but it is important to remember the implications of your position as the founder of a project. Generally your opinion is going to be strongly considered, and you have available to you the ability to take drastic steps in controlling the community... particularly if you also have direct access to the physical computer equipment that is running the project.

Keep in mind that most people will have a sort of reverence toward the founder, even if the founder decides to go into semi-retirement and leave the main organization of the community to other people. This is deserved in part because any on-line community only gets to where it is at because of the efforts of this founder. It takes quite a bit of effort to get something going in the first place, and with enough different websites around the world nobody is simply going to get to a website simply because it exists. This is in particular where the leadership principles come into place on a social level.

Often what is needed is simply a model example for what you as a founder want the project to look like. In the initial stages, you need to demonstrate leadership both by showing examples, and gently trying to remind people when inappropriate content is being added. How permissive or how abrasive you are toward new users is going to have a huge effect on the growth and popularity of the project, regardless of the merits of what you do or the quality of the content.

It is also important to realize that you can't be pleasing to everybody on every point. The most successful leaders will always have detractors and possibly out right enemies. The successful leader will know when they are being abusive and need to pull back, and when perhaps they have gone too far and created too many enemies that should be their friends. Unfortunately, the only real way to learn how to do that is simply experience and getting opportunities to practice leadership ideas.

Being Chosen by Your PeersEdit

There are several ways that you can become an administrator, but most likely you have been chosen by being an outstanding contributor to the project. Often this selection is made through some sort of formal nomination process where other members of the community also have a chance to support your nomination in a sort of election. The exact process is something that is specific to the project you are working on, but you should take the nomination as a sign of recognition that you have already done an outstanding job.

In this situation, you are going to need to learn the policies and procedures of the project in a little more depth. This is not exactly an easy situation, and it is surprising how many policies that you didn't realize existed prior to becoming an administrator, even if you were a very active user previously.

Moderate, Don't DominateEdit

One aspect of becoming an administrator is that you are now a part of the group that is enforcing policies. If you have been vocal in the past, you need to tone down some of the arguments from the style you have used in the past, understanding that you need to help moderate the tone of the discussions you are involved with.

As a general philosophy, it would be wise to not immediately implement drastic changes to the project, especially in areas that require the extra privileges that come from being an administrator. Seek input from the other people involved in the project before you make any major changes, and implement community decisions even if it goes against your own personal opinion.

Also, don't hesitate to admit that you might be wrong occasionally. You will be making mistakes along the way as an administrator, especially if you are new to doing this sort of task. Discover the different ways you can communicate to the other users in your community, including Water Cooler type pages, e-mail, user talk pages, article discussion pages, project e-mail lists, phone numbers and instant message accounts.

Innovation and Project DevelopmentEdit

One aspect of project leadership also takes on the social responsibility of project innovation and development. It is likely that there was always some task you felt wasn't being adequately dealt with in some manner before you became an administrator, and now you have the opportunity to try and fix things in a way you couldn't before.

Innovation might also take many forms. You can start new sections of your project, or try to fill in holes that weren't covered before. In addition, if you were elected to become an administrator it is likely that you have a small group of supporters already who are interested in what you are doing, and it is possible to help motivate those supporters to work together and get some things accomplished as well.

Recent Changes Patrol

The Recent Changes Patrol consists of examining recent edits to the wiki for test edits, blanking of pages, vandalism, and other negative changes. Each wiki has a Special:Recentchanges page; most wikis have a link to "Recent changes" at the left. Any user can use this page and help revert vandalism. However, only sysops can block users and delete bad pages. Thus it is important for sysops to sometimes inspect recent changes and stop persistent spammers and vandals.

Every recent edit appears in Recent Changes. Thus, if a page is edited twice, both the top edit and previous edit appear. Thus, it is not possible to hide an edit by making another edit.

Some wikis let users mark edits in recent changes as patrolled edit. The idea is to mark every edit that does not harm the wiki. Some wikis let any user mark patrolled edits, but at Wikimedia, the wikis restrict it to sysops. On some Wikimedia sites, like Wikipedia, this feature is disabled.

Type of bad editsEdit

  • Creation of new speedy deletion candidates. Many wikis have a deletion policy, such as Wikibooks deletion policy. Sysops are in position to delete obvious junk pages that some users create.
  • Creation of pages with bad names. Many Wikimedia wikis have naming conventions, such as Wikibooks naming policy. A sysop can move the page to a better name (if the page is not useless), then delete the redirect. For example, a page titled with ALL UPPERCASE LETTERS is probably bad.
  • Spam. Some users like to add WikiSpam to wikis, adding lots of links to their own web sites so that their search-engine rankings increase. This tactic is more effective on more popular wikis, and Wikimedia hosts most of the largest and most popular wikis. Thus Wikimedia wikis are favorite targets of Spam. A common tactic of Spammers is to use CSS to hide spam so that readers do not see it, but search engines do. However, such spam becomes obvious when editing a page or viewing a diff.
  • Blanking. Bots or vandals that delete chunks of pages, apparently at random.


To do:
MediaWiki Administrator's Handbook

Type of usersEdit

There are generally five kinds of users that make edits.

  • Frequent contributors make the most edits. Often, these users are most recognisable by users who patrol the recent changes. Thus, it is least likely that any user will check these edits. A user that does try to check edits is likely to only pick a few edits at random, and not examine the others.
  • Blue-shirt contributors have names that appear in blue, meaning that they have user pages. A user is more likely to check red-shirt contributors than these.
  • Red-shirt contributors have names that appear in red, because they have no user page. Many of these contributors are new users with good intentions. However, vandals and sockpuppets who want to hide their IP address or use the page-move feature often become "anonymous redshirts". [1]
  • IP addresses edit the wiki without creating an account. These users like to fix errors in pages. However, spammers tend not to create accounts. Thus users tend to check these edits most carefully and often. IP addresses cause so much trouble that sysops block them more often than other users. [2]
  • Brand new contributors are people who have their account creation very close to often a large number of contributions. These deserve some special attention because even when they are not doing vandalism, they are not likely to be familiar with policies on the project or do quite a bit of experimentation. Be extra careful with these people as they are more likely to become the regular contributors of the future and are the source of new help for the project. Still, watch carefully for vandalism from these editors or for sockpuppeting, especially if they create a user page as one of their first edits.

Mass reversionsEdit

Some users are so bad that sysops block the user, then revert all edits made by that user without checking them.


Spam and Spammers

On wikimedia wikis, spamming is the addition of unwelcome commercial links and/or language, either added to already existing pages, or added as an entire page.

The various projects have vast differences in what is defined as spamming, and what to do about it.


The most common way to protect your wiki from spam is to use ConfirmEdit extension. Extension:ConfirmEdit offers several variants of capchas:


SimpleCaptcha is the default captcha in ConfirmEdit. This captcha prompts user to solve a simple math question to prove that they are not spam bots:


SimpleCaptcha can be easily bypassed by simple script, so it is recommended to use more complex capchas.


FancyCaptcha is a traditional graphic captcha, that prompts user to type letters that appear in the picture:


To create captcha's images you will need to run a python script. But you will not need python on your web-server to use this captcha, you may create images on your desktop, for example, and just copy them to your wiki web-server.


MathCaptcha is another captcha mechanism for ConfirmEdit. To run it you will require TeX support within your MediaWiki.

ConfirmEdit NotesEdit

Note that ConfirmEdit is quite sensitive to version mismatch. The last version of ConfirmEdit should work well with the last version of MediaWiki. If you want to use ConfirmEdit with a legacy version of MediaWiki, you might spend a lot of time looking for a matching version of ConfirmEdit in the SVN repository. Some version matches are mentioned on the extension home page but not all of them.


ReCAPTCHA is a captcha extension for Mediawiki. It offers strong visual and audio capchas.

Using AbusefiltersEdit

MediaWiki's abuse filter extension can also be very useful in stopping spammers, in fact, it can outdo the other methods described above if configured properly while being less intrusive to the user. The main challenge is to determine how strict you want to be - you can be too strict but have virtually no spam - or you can be lenient and make do with some spam.

This site (en.wikibooks) mainly combats spam with the help of an abuse filter which blocks users with less than two posts from posting external links. This filter is particularly effective as spambots are focused on including external links and the abuse filter takes care of them, while the threshold is deliberately set low so that genuine users aren't affected.

If you use this method, expect false positives from time to time. You may wish to include a page where users can do that, in Wikibooks this page is used.

How to Handle Copyright Violations

Copyright Violations -- usually referred to as "Copyvios" for short -- occur when copyrighted text or files are added to a wikimedia project. How this is dealt with depends on the type of material that was copied.

Copyright compatibilityEdit

Wikimedia projects are copyrighted using the GFDL. Some other copyrights are compatible with the GFDL for images and other files.

Copyrights that restrict the use of materials for any purpose are incompatible with the GFDL, and so including them in a GFDL document results in a violation of the material's copyright.

Image copyrightsEdit

All images uploaded to wikimedia projects must have their copyright status announced using one of the provided templates.

Public Domain, GFDL, and most Creative Commons licences are permitted.

"Fair Use" images are permitted on some projects, but not others.

Text copyrightsEdit

These can be harder to ferret out.

Text that is copied and pasted from other websites is the most common problem. In many cases the user who contributed the material will add a link to the source website. Most users are not familiar with how the copyright laws apply, so they should be dealt with kindly (but firmly).

Text from printed materials is less common, but much harder to catch.

Text copied from other wikimedia projects can be very difficult to catch.

Countervandalism IRC Bots

This page documents two bots used extensively by countervandalism channels.

Bot overviewEdit

Computer was the original recent changes filtering bot written as a mIRC script, developed by White Cat. It was replaced by pgkbot in 2005.

pgkbot is a python bot developed by pgk. It is designed for use in one channel, and includes a number of customization options such as plugin support, complex event routers, individual lists, individual user name and article title watchlists, detection of page move vandalism, and IP address categories (like open proxies). However, configuration is difficult and it is relatively resource-intensive.

SWBot is a C# bot developed by Tangotango and Az1568. It is designed for use in networked or multiwiki channels. Features include dynamic loading and unloading of wikis and channels, a central configuration file and database, global lists, auto-broadcast of global changes to all other SWBot instances, and detection of page blanking and replacement using automated MediaWiki summaries. However, per-channel event configuration is not possible.

CVNbot is a unified centralized bot written in Perl by Pathoschild. It is currently in development and not actively used. The bot is intended to facilitate channel network administration and provide edit monitoring, without extraneous features.


Common bots: ErosionBot-1, MiszaBot, TheDJBot, ClueBot(RC).


Using commandsEdit

Commands are issued to the bot by appending their name or "computer" to the beginning of the line. If you append the name, the command will only be recognized by the bot named. If you append "computer", all bots present will recognize the command. For example, if you want to add a user to pgkbot's blacklist, you would say pgkbot bl add username. Alternately, you could add the user to the blacklist of every bot in the channel. This is recommended, as it synchronises the backup bots. To do this, you would say computer bl add username.

Which commands a user can issue depends on which list they are in.

Level Users List of commands
Information Any user intelligence commands; help.
Operation Voiced users watchlist; intelligence; help, status, quiet, speak.
Restricted Channel operators all commands.

Lists of usersEdit

The bots maintain several lists of users, which can be reported, formatted, and treated differently from each other.

  • Admins: this is a list of admins on the project. The relevant command is computer al add|del username.
  • Whitelist: this is the list of trusted users. The relevant command is computer wl add|del username.
  • Greylist: this is a temporary blacklist which the bot automatically populates with users that have recently been reverted, or matched one of the bnu list expression. Entries can be removed from the list, but cannot be added manually.
  • Blacklist: this is a list of suspicious users. All edits by blacklisted users are reported. The relevant command is computer bl add|del username.
  • Bots: this is a list of bots on the project. The relevant command is computer bot add|del user.

Reference tableEdit

This table is a quick overview of commands. For additional help, address the following command to pgkbot on IRC: pgkbot help <command>. There are two optional flags which can be used with most commands. These can be used by appending them to the end of the command (expiry must be stated before the reason, if both are used).

  • "r=value" provides a reason. This is useful for other users, who may not know why something has been added to the list without.
  • "x=value" provides an expiry time in hours. After the specified number of hours, the command will be automatically undone.

Note that the symbols "[|]" are used in the table; these symbols should not be used with the bot (for example, use "pgk add blah" and not "pgk [add] blah"). Multiple possible actions are denoted as [option 1|option 2]; only one can be used at a time. Values are designated as <value>; all strings accept regex.

Restricted bot commandsEdit
Command Usage Description
aclo computer aclo [add|del] IRC_name Add or remove users who can give restricted bot commands.
config (set) computer config <option> <newvalue> Modifies the configuration values. See in-depth documentation below.
config (list) computer config list List current settings
config (get) computer config [getadmins|getbots] Retrieve the list of admins or bots direct from the wiki being monitored
config (read) computer config [readmsgs|readcmds] Reread some configuration files.
dest (set) computer dest [add|del] #<channel name> grey Configure the events to report to the channel.
dest (swap) computer dest swap #<channel name> #<second channel name> Switch the events reported between two channels, useful for changing to preset settings.
reader computer reader reset Reset the connection to the recent changes channel (if the bot stops reporting).
Bot- and channel-related commandsEdit
Command Usage Description
help computer help <command> Provides detailed help on a command. If a command is not specified, it will provide a link to this page.
status computer status Provides basic status information about the bot, such as whether it is reporting and connected to the RC feed.
stats computer stats Miscellaneous channel statistics.
quiet computer quiet Stop reporting event to the channel.
speak computer speak Report events to the channel.
acl computer acl [add|del|show] <IRC_name> A list of trusted IRC users. These users can issue operation commands to the bot.
Watchlist commandsEdit
Command Usage Description
bl computer bl [add|del|show] <IP or username> A list of distrusted or vandal users.
wl computer wl [add|del|show] <username> A list of trusted users.
gl computer gl [del|show] <username> A list of possible distrusted or vandal users.
al computer al [add|del|show] <username> A list of administrators.
bot computer bot [add|del|show] <username> A list of bots.
bnu computer bnu [add|del|show] <string> Report all new usernames containing the string.
bna computer bna [add|del|show] <string> Report all new articles created containing the string.
cvp computer cvp [add|del|show] <string> Report all edits to a given article.
cnvp computer cnvp [add|del|show] <article name> A list of articles to be ignored.
cvi computer cvi [add|del|show] <image name>.<extension> Report all uploads to a particular image name.
wheels computer wheels [add|del|show] <string> Report pages renamed to a title containing the string.
Intelligence commandsEdit
Command Usage Description
intel computer intel <IP or username> Queries information about an IP or username.
aintel computer aintel <article name> Queries information about an article.
iintel computer iintel <image name>.<extension> Queries information about an image.



These settings affect the way the bot filters the raw recent changes to the reported events. They are viewed with the command computer config list and modified with the command computer config <option> <new value>.

option Description
editbig Possible nonsense (big addition of content)
editblank Possible blanking (big removal of content)
newbig Possible copyright violations (big new article size)
newsmall Possible vandalism or substubs (small new article size)
option Description
blockconflict The number of simultaneous blocks to a single user to report.
glonrollback The number of minutes to add a user to the greylist if their edits are rolled back by an administrator.
flagnewuser The number of hours to add new users to the greylist.
glonbnu The number of minutes to add new users that match a string on the bnu list.
option Description
pseudonym Alternate name a bot should respond to as well as its name. This should be "computer" in Countervandalism network channels.
startupquiet Don't report events on startup (toggle, "yes" or "no")
bnubnasame Synchronise the Bad new username and Bad new article name lists.

Event report togglesEdit

These options toggle which events are reported to the channel. They are accessed with the command computer dest list and computer dest [add|del] #<channel name> <event>. The events are listed below. Each event will only be reported to a channel once, irrespective of fitting into several of these categories.

"Actions" in the tables below refer to all visible changes to the database, including edits, page moves, and deletions.

Event Description
-admin Don't report actions by administrators.
-white Don't report actions by whitelisted users.
-bot Don't report actions by bots.
black Report all actions by blacklisted users.
grey Report all actions by greylisted users.
newuser Report the creation of all new users.
ip Report all edits by anonymous users.
iptmp Report all edits of templates by non logged in users
ipcat Report all edits of categories by non logged in user
Strings and regexEdit
Event Description
wwuser Report new usernames matching an entry in the bnu list.
wheeler Report page moves to titles matching an entry in the wheel list.
bna Report creates of articles which match an entry in the bna list.
cvp Report edits to pages on the cvp list.
cvi Report uploads of images on the cvi list.
Event Description
block Report blocks.
unblock Report unblocks.
delete Report page deletions.
move Report page moves.
protect Report non userspace page protections/unprotections.
upload Report file uploads.
Event Description
bigremove Report possible blanking (removal of content exceeding config bigremove).
bigedit Report possible gibberish (addition of content exceeding config bigedit).
bignew Report possible copyright violation (creation of a page whose size exceeds config bignew).
tinynew Report possible nonsense (creation of a page whose size is smaller than config tinynew).
Bot commandsEdit
Event Description
cmdsq Listen for commands in this channel, but don't respond unless addressed by nickname rather than "computer".
cmds listen for commands in this channel, and respond.



  • Python: The bot requires the python environment to run, which is freely available from the download page. It is recommended that you install for all users to C:\Python with all options enabled.
  • Twisted: Also required is the Twisted python library, available from the official website.
  • Note - Pgkbot can only work with Python version 2.4 or 2.5 and will not work with older versions.


  1. Download the latest public version of pgkbot (1.7) from
  2. Unzip it to C:\pgkbot.


There are a few text files that need to be edited before use.

Field Value Notes
server This is the IRC server the bot will connect to.
port 6667 The server port to connect to; this value should be fine.
nick botnick Change this to the nickname of the bot you want to use. Do not use "pgkbot" or "computer".
password password The password to use when identifying. Comment out this line if not using Nickserv
owner yournick Change to your nickname. This gives you full access to the interface.
Field Value Notes
server This is the IRC server the bot will connect to to get the RC feed.
port 6667 The server port to connect to; this value should be fine.
nick yournick Change to your nickname. This gives you full access to the interface.
Field Value Notes
controlchannel #pgktesting The channel the bot will report to.
rcsourcechannel #en.wikipedia The channel with the raw RC feed (see IRC channels).

Run the botEdit

  1. Open a DOS prompt.
  2. Navigate to the directory pgkbot is installed in.
  3. Type in c:\python24\python.exe en.
  4. pgkbot will be silent upon connecting. Be sure to make it speak and route some events (see above).


Common bots: SWBot* (except SWBot2), SWMTBot*, TheDJBot(3-5).

Comparison with pgkbotEdit

SWMTBot is a port of pgkbot to C#, specially made to suit the needs of the Small Wiki Monitoring Team and other users who monitor a large number of feeds in one channel. Most commands have been kept identical to their pgkbot equivalents except where necessary; messages have also been kept as close to pgkbot's as possible.

Features new to SWMTBot Features in pgkbot but not in SWMTBot
  • Hot-pluggable wikis (load/unload on demand)
  • Supports simultaneous monitoring of a very large number of wikis with minimal resource usage
  • One small configuration file containing information for all wikis
  • One SQLite database, using minimal resources, for all wikis
  • Global blacklists/whitelists/greylists
  • Global username/article title watchlists (supports regular expressions)
  • Global edit summary watchlist (flags potentially vandalistic edit summaries; supports regular expressions)
  • Auto-broadcast of all global lists to other SWMTBots
  • Catches page blankings/replacements (using the new autosummaries)
  • Plugins
  • A choice of database backends
  • Telnet interface
  • Complex destination/event routers
  • Individual blacklists/whitelists
  • Individual username/article title watchlists
  • Wheeler detection
  • IP categories
  • Command renaming



All global lists are automatically synchronized across all SWMTBots; per-wiki lists are not. There is a global article watchlist for all wikis, and one for each one; you can add/delete/show items on the global list by leaving out the "p=" parameter (see the command lists below for more information).

Global lists Per-wiki lists
  • Bad new usernames (BNU)
  • Bad new article titles (BNA)
  • Bad edit summaries (BES)
  • User whitelist (WL)
  • User blacklist (BL)
  • User greylist (GL)
  • Global article watchlist (CVP)
  • Lists of admins (AL)
  • Lists of bots (BOTS)
  • Article watchlists (CVP)


Global commands
Command Description Example
quit Quits the bot SWMTBot quit
restart Restarts the bot SWMTBot restart
list Returns a list of all currently monitored wikis SWMTBot list
load [interwiki] Loads a wiki for monitoring SWMTBot load en.wikipedia en:
SWMTBot load meta.wikimedia
reload Downloads new messages from the wiki; use if any of the log entry messages in the MediaWiki: namespace on that wiki have changed SWMTBot reload fr.wikipedia
batchreload Performs reload for all currently loaded wikis. Extremely resource-intensive and thoroughly not recommended SWMTBot batchreload
drop Stops monitoring a wiki SWMTBot drop als.wikipedia
purge Removes from the database all users and watchlisted items pertaining to a particular wiki SWMTBot purge als.wikipedia
msgs Re-loads messages from the Console.msgs file; necessary only when the file has changed SWMTBot msgs
bleep Finds out which bot monitors a particular project. You can issue this command to any networked bot to receive the same results SWMTBot bleep commons.wikimedia
count Finds out how many wikis each bot monitors, and each bot's version. You can issue this command to any networked bot to receive the same results SWMTBot count
List commands
Command Description Example
bl add/del/show username [x=duration] [r=reason] Adds, deletes, or shows an item on the global blacklist. Set x=0 to make indefinite SWMTBot bl add Tangotango x=0 r=Bad vandal (Adds Tangotango to the global blacklist indefinitely)
SWMTBot bl del Tangotango (Removes Tangotango from the global blacklist)
gl del username Deletes a user from the greylist. Use this if you want to whitelist a user, but they are on the greylist. Remove them from gl and add to wl. SWMTBot gl del Mike.lifeguard (removes Mike.lifeguard from the greylist)
wl add/del/show username [x=duration] [r=reason] Adds, deletes, or shows an item on the whitelist. Set x=0 to make indefinite (See above; wl has the same syntax as bl)
cvp add/del/show article name [] [x=duration] [r=reason] Adds, deletes, or shows an article on the watchlist. Leave out p= to monitor articles with the same name on all wikis; set x=0 to make indefinite SWMTBot cvp add United States p=en.wikipedia x=0 (Adds "United States" to the en.wikipedia watchlist)
SWMTBot cvp add Main Page x=0 (Adds all pages named "Main Page" on all wikis to the watchlist)
al add/del/show username [x=duration] [r=reason] Adds, deletes, or shows an item on the admin list on a particular wiki. Set x=0 to make indefinite SWMTBot al add Tangotango p=ga.wikipedia (Adds Tangotango to the admin list on ga.wikipedia)
bots add/del/show username [x=duration] [r=reason] Adds, deletes, or shows an item on the flagged-bot list on a particular wiki. Set x=0 to make indefinite (See above; bots has the same syntax as al)
bnu add/del/show regex [x=duration] [r=reason] Adds, deletes, or shows an item on the global bad new username list. Set x=0 to make indefinite SWMTBot bnu add Tangot.*?ngo x=128 r=vandal meme (Adds Tangot.*?ngo as a bad new username)
bna add/del/show regex [x=duration] [r=reason] Adds, deletes, or shows an item on the global bad new article title list. Set x=0 to make indefinite SWMTBot bna add index\.php r=vandal meme (Matches "index.php" as a bad new page title)
bes add/del/show regex [x=duration] [r=reason] Adds, deletes, or shows an item on the global bad edit summary list. Set x=0 to make indefinite SWMTBot bes add !{3,} r=Too many exclamation marks (Makes SWMTBot flag any edit summary with 3 or more exclamation marks)
config getadmins Downloads a list of admins from the specified project and automatically adds it to the SWMTBot database SWMTBot config getadmins en.wikipedia
config getbots Downloads a list of flagged bots from the specified project and automatically adds it to the SWMTBot database SWMTBot config getbots da.wiktionary
batchgetusers Performs getadmins and getbots for all currently loaded wikis SWMTBot batchgetusers


SWMTBot is tested and actively developed to work on Mac OS X, Linux (Debian), and Windows. The software is licensed under the MIT License.


See m:CVN/CVNbot.

See alsoEdit


  • #countervandalism for bots in channels operated by the countervandalism network
  • pgkbot
    • pgk— For comments, suggestions, and troubleshooting the bot script.

Asking for help

When uncertain about whether and how to use a tool, there are various venues both within and associated with each project where assistance can be found.

By project (with a link to the project admin list):

Wikimedia projects


Pages to watch

These are pages administrators may wish to add to their watchlist or check frequently on individual Wikimedia projects.

In generalEdit

The administrators are the only contributors allowed to modify the MediaWiki and the protected pages (like Main Page). Consequently they should have a look on them to avoid any discouraging project immobilism.


  • Bulletin Board - Wikibooks news, such as policy changes or new features.
  • Reading Room - where people needing help or general discussions with administrators happen.
  • Candidates for Speedy Deletion - frequently needs checked for pages that should be deleted, kept or changed to Requests for Deletion.
  • Requests For Deletion - pages people think should be deleted, frequently needs checked to see if pages should be kept or deleted.






Combating spam

Spam on Wikimedia projectsEdit

Wiki spam is often thought of in it's more blatant form. Unwanted links with keywords such as eBay! or Cialis!, but that blatant form is actually comparatively rare on wikimedia projects. If you're interested in learning about combating spam on your own MediaWiki installation (which often takes this more blatant form), refer to the earlier section: MediaWiki Administrator's Handbook/Spam and Spammers

On Wikimedia projects "spam" is instead defined as the behaviour or pushing links inappropriately, and this can take far more subtle forms. For example it is entirely possible that the domain could be spammed (though the domain itself is not spammy). Domain owners will often be outraged (understandably so) that their reputation has been damaged by someone else spamming the domain.

Adding external links to an article or user page for promotional purposes is disruptive, and is considered to be spam. Although the specific links may be allowed under some circumstances, repeatedly adding links will in most cases result in all of them being removed. It is the behaviour in placing the links rather than the content of the site that may cause concerns.

As Wikimedia projects use nofollow-tags adding a link to one of them doesn't alter the search engine ranking.

Detecting spamEdit

Spam can take one of the many forms possible, like

  1. A username that clearly looks promotional or refers to that of a company and its edits are done just for that (often this happens on the user's main page)
  2. Text in a language that is not the main language used by the project
  3. Inserting gibberish into many pages
  4. Creating multiple pages with the same or relatable content.

One-wiki spamEdit

The first step is to delete all the page(s) which were created by the spammer. If there are a lot of pages, use Special:Nuke to delete it all at once. If it's all inside existing pages, revert that user's edits manually.

The next step is to block the user. Usually that block will be indefinite. You may revoke email access, but be careful of revoking talk page access as it prevents users in good faith who may have mistakenly spammed (though do it if there's evidence of talk page spamming). Keep autoblock on; spammers generally try other ways to continue spamming. If multiple accounts are spamming, set the block to affect logged-on users as well.

Cross-wiki spamEdit

Cross-wiki spam means that a certain link has been added to multiple projects, normally by a single user, a set of SPAs, or an IP range. In this case the URL might be blocked (blacklisted) on a global level, meaning that it can't be added to any Wikimedia project. Global IP blocks may be placed to augment the blacklisting, for example, when malicious spammers rapidly switch domains, or abuse lag time on the blacklist.

Combating spamEdit

Method 1: Revert and remove the spamEdit

Method 2: Block the user(s)Edit

When one or more users or IPs are adding spam links, they can simply be blocked.

For cross-wiki spam, global accounts may be locked where possible, and short global IP blocks can be considered in severe cases. Blacklisting is the main method of combating cross-wiki spam.

Method 3: Page protectionEdit

When one or several pages are targeted by a spammer, they can be semi-protected to stop anonymous and new users from editing, or full-protected if established accounts are involved. However, blocking is preferable unless the spammer is making new accounts to spam the wiki, since page protection affects legitimate users as well as the spammer. If a clearly bad page (like obvious spam titles) is being repeatedly created, create-protecting the page could be a better idea, but do not do this if only the content is spam.

Method 4: Blacklist the domain(s)Edit

Local blacklistEdit

Each Wikimedia project has a local blacklist and a local whitelist, for example en:MediaWiki:Spam-blacklist and en:MediaWiki:Spam-whitelist. The former can be used to disallow linking to certain domains on a certain project only. The latter is a means to be able to link to domains on the global blacklist, or to exclude certain documents on a server, while all other documents on that server can not be linked to.

Addition and removal of links can most often be discussed on the local talk page. Before blacklisting all other measured should be explored such as blocking the user or IP or protecting the page. However where this is not sufficient local blacklists should be used whenever possible to manage blocking of external links; the global blacklist should only be used for widespread cross-wiki link placement, where other local options are not effective. The list may also be used for sites that simply are not suitable for whatever reason if there is consensus.

Global blacklistEdit

There is a global blacklist on Meta. This is a list of domains that have been placed excessively, or which are deemed completely unhelpful to any project, and are therefore blocked on all Wikimedia projects, i.e. you can't link to one of the listed entries from any Wikimedia project. For a domain to be globally blacklisted it generally has to be excessively linked on multiple projects. If it's only added to a single project generally the link should be blacklisted locally (some exceptions exist).

Addition and removal of links can be discussed on m:Talk:Spam blacklist.


Some links are generally blacklisted on meta, even if the abuse has only been to one project, or when the link has not been used abusively yet:

  1. URL-shorteners/redirect sites (like e.g. tinyurl) as these can be used to circumvent blacklisting of other domains, and it is totally unnecessary to use these (as one can link to the original document directly).
  2. Sites which drop viruses, Trojan horses, etc. etc. on the users computer, in other words, links which, when clicked on, are a threat to the computer the user is on. Blacklisting of these sites is generally temporarily, until the problem has been resolved.

Helping outEdit

If you're interested in helping out by fighting and removing unwanted external links, please see m:Spam blacklist/help. To get started, you may wish to join #wikimedia-external-links or contact one of the following users: