Restrictions

Special characters

The following characters are not allowed in page titles:

" # $ * + < > = @ [ ] \ ^ ` { } | ~

The reasons include:

+ is used in web addresses to represent a space (e.g. when you type more than one word into a search engine). Using it in article names would potentially make parts of the system see their name wrong. Each + will be substituted by ' ' (space) respectively '_' (underscore) in the related page URL, see below.

@ also has a special meaning in URLs, as a way of adding a username and password, and would have even more drastic consequences.

[, ], {, }, |, and probably some of the others have special meaning within Wikipedia's syntax, which are processed before the pagename is determined. (e.g. [[{{CURRENTYEAR}}]] points at 2017, not a page called {{CURRENTYEAR}}.

$, \, ", ` (and some others) have special meaning in other bits of the software, and allowing them would create potential security flaws which would take a lot of effort to insure against.

There are some pages not satisfying the restrictions, e.g. w:$. They may give complications.

Some very special characters, like two dots over the n that has been attempted for the page w:Spinal Tap, are not allowed either. They can only be represented using Unicode, whereas the English Wikipedia just uses w:ISO 8859-1 or similar.

The first part of a page name can coincide with a namespace prefix that is not converted. For example, there might be articles in the English Wikipedia about books called Wikipedia: The Big Adventure and Talk: Secrets are Bad (but only without the space after the colon). However, in that case the pages are in the wrong namespace. This may be inconvenient in searching or displaying a list of pages. Also, in the second case there is no link to a Talk page about the book. (As explained above, the second page name is not possible on e.g. the German Wikipedia: see w:de:Talk: Secrets are Bad).

Prefixes referring to other projects or pseudo-namespaces

A page name can not start with a prefix that is in use to refer to another project, including language codes, e.g. "en:" (list), or one of the pseudo-namespaces "Media:" and "Special".

Spaces vs. underscores

In page names, a blank space is equivalent with an underscore. A blank space is displayed in the large font title at the top of the page, the URLs show an underscore. See also below.

Case-sensitivity

All characters of namespace prefixes are case-insensitive. The canonical form, shown in large font as page header, and in URLs generated by the system, is with one capital. Below "page name" refers to the name without the possible namespace prefix.

Case-sensitivity of the first character

The first character of the page name may or may not be case-sensitive, depending on the project. [[Help:page name]] gives on this project: Help:page name. If the first character of the page name is case-sensitive this is a link (to a different page), otherwise it is bold (a self link to this page).

Case where the first character is case-insensitive

The canonical form is with a capital.
A link like [[template]] works like a piped link [[Template|template]]: template; unlike a redirect, the conversion shows up already on the referring page when pointing at it: in the pop-up and in the status bar (if applicable for the browser).

Coding of characters

A page name can not contain e.g. %41, because that is automatically converted to the character A, for which %41 is the code. [[%41]] is rendered as A. Similarly %C3%80 is automatically converted to the character À. [[%C3%80]] is rendered as À. The URL of the page is http://meta.wikipedia.org/wiki/%C3%80. One can argue what is the real name of the page, %C3%80 or À (a user will say the latter), but anyway there can not be distinct pages with these names.