Censortive Anti-Censorship WordPress Plugin

Tired of Internet censorship? Is your site being blocked for having “sensitive” words? Then Censortive is for you. Use this plugin to replace those pesky words with their graphic equivalent, making them invisible to censorship robots.

Censortive uses text-to-image technology to convert user-defined ‘sensitive’ words into an image file that blends right into the flow of text. By changing the text into an image file, you effectively negate the censorship robots from being able to ‘see’ the offending words. Your readers, however, will be able to follow what you’re saying without a hitch.

Download – Latest Version v1.0


In some countries Internet censorship is at an unjustified level, with a host of Big Brother technologies working to block one of our basic human rights: freedom of speech. The most common way for them to do this is by using bots to scan the text from a site attempting to be viewed. If words deemed inappropriate are found, the viewer is left with an error screen.

However, by converting the words into small (near-identical to the original text) graphic files, the robots have no idea what is being said and happily let it all pass through.

To further increase security, rather than have the sensitive words saved in the post and filtered directly, users simply use a codeword, which when scanned by the plugin, is replaced by the text2graphic image of the intended word.


  • Unzip this compressed file to a temporary directory.
  • Edit ‘/censortive/codewords.dat’ in a plain text editor (not Word). Look at the example words on how to add your own. Be sure to maintain the same format (codeword=realword,). Note the comma at the end of each line, including the last line. Save the file.
  • Upload the ‘censortive’ folder to your ‘/wp-content/plugins/’ directory – making sure to copy the entire folder, and not just the files, maintaining the folder’s directory structure.
  • Activate the plugin through the ‘Plugins’ menu in WordPress.
  • Navigate to your WordPress Options menu and select the new ‘Censortive’ option. Adjust the settings to suit your blog’s style.


This is an example of the plugin at work, for which we’ve used this Wikipedia entry. So now when I speak about [*dem*], [*TAM*], or [*FLG*]; I don’t need to worry about my site being shut down. Equally, if I want to write about [*hr*], [*tib*] or the [*dl*], I can do so with impunity. I can also set up words that I wish to use both freely and covertly. Such as when speaking about China, or [*China*].

Frequently Asked Questions

How do I mark words in my posts to be converted?

Simply enclose the codeword (as defined in ‘codeword.dat‘) in [* and *]. So if my codeword was ‘monkey’, I would input [*monkey*] in my post. Upon viewing, [*monkey*] would be replaced with a text-image of whatever it is equal (=) to in the ‘codeword.dat‘ file.

Can I use special characters, such as for other languages?

For characters with accents or tonal marks, it will largely depend on the font file you’re using and if it supports the characters. For completely different characters, such as Chinese characters or Arabic writing, the answers are more varied. We’ll be working on further functionality in this area in future releases, but currently it’s not supported.

So, where do I get fonts then?

We’ve included one font, a Sans-Serif font in the Libertine family – which is an open source font initiative (download more). We don’t distribute a large selection of fonts with the plugin, as they can be quite bulky, and vary greatly from blog to blog.

To make sure your text-to-images are most closely matched to your blog’s content, just find out what TrueType font your posts are set to display at, and then search your computer for those .TTF files. Once found, simply upload the file to the wp-content/plugins/censortive/fonts/ directory and change the Font File setting in the Censortive options.

Known Bugs

  • The bold thing. This is the largest thing standing in the way of total/seamless integration into the body text. Currently, when looking at the text-to-image words/phrases, it is immediately evident which have been changed. From a censorship standpoint, this isn’t a big issue, as the phrases are still graphic files, and not actual words. However, it doesn’t look as pretty as we’d like.


Please leave questions in the comments section below, or e-mail us at the contact address above. This plugin is in ‘beta’ testing, so we do appreciate any feedback or comments you may have.

Terms & Disclaimer

This plugin is released under the GNU GPL and is 100% free. However, you are welcome to show your appreciation for the work we’ve put into this plugin by buy us a coffee.

Censortive is only a tool for the furtherance of free speech, and it is not foolproof. We cannot be held liable if something you say with the use of this plugin gets you in trouble with “Big Brother”. Please use it at your own risk.

Additionally, though we can not begin to imagine how, if the plugin pooches your server/blog/computer/toilet, we’re not going to take responsibility for that either.


Thanks is owed to Stewart Ulm, of Moderate Design, for creating the original text2image script used in this plugin.

73 thoughts on Censortive Anti-Censorship WordPress Plugin

  1. What about accessibility? The union-for-people-with-screen-readers will be after you! 😉

  2. Hey Alex, I’ve added an alt=”censortive word” attribute to the created image. That’s about as accessible as I can make it. Any alternative suggestions are welcome.

  3. Pingback: Damn The Censors! | A China Blog on Suzhou Expat Life | The Humanaught
  4. Pingback: A WP plugin to get around censorship | Lost Laowai China Blog
  5. Hey Alex, I’ve added an alt=”censortive word” attribute to the created image. That’s about as accessible as I can make it. Any alternative suggestions are welcome.

    One possibility would be to use ascii numbers. Unless the GFW interprets the ascii numbers into letters you should be set. Here is a sample (hopefully it shows up okay.)


  6. Hey Shaun, not a bad idea, though I think it’s a bit too risky, as it’s hard to say how/when the censorship robots see things. If they parse the HTML before censoring, it would negate the whole purpose of the plugin, as the text would then be seen clear as day.

    I think for the small percentage of people who run into this problem on sites using this plugin, the “censortive word” thing should be enough to clue them into what’s going on.

  7. Pingback: My First WordPress Plugin | Dao By Design Blog
  8. Wow, this is a totally dreamy plug-in. Just installed it.

    I’ve been living in fear of getting blocked since setting up my blog about a year ago.

    Thanks so much for taking the time to make this plug-in!

  9. Pingback: China Now Weblog
  10. Pingback: How Censortive are you? : 广州帮 | Guangzhou Bang
  11. Tested, works fine.

    Question – I would like for this plugin to automatically replace all existing sensitive words in all posts without having to mark them. Can you quickly adjust the plugin to meet that requirement?

    The challenge would obviously be how to do this fast, as your preg_match_all for the pattern significantly reduces execution time.

    Let me know what you think…

  12. Hi fiLi, I’m not entirely sure what you mean. You mean, you want a predefined list of words to be replaced with the codeword tags, so as to be compatible with the plugin? Or you wish for the plugin to work by searching the post for specific words (unmarked) and then change them?

  13. Pingback: Global Voices Online » China: WordPress plugin subverts keyword filters
  14. Pingback: Saarbrigger Gedankewies » Blog Archiv » Mal anders betrachtet
  15. Pingback: SEO Blog » Blog Archive » Anti censorship plugin
  16. Pingback: Digital Caribbean » Blog Archive » links for 2007-07-31
  17. Ryan – yeah, the second option. I don’t want to tag the words, I just want all the sensitive words replaced automatically by the plugin without me having to worry about anything. Just like smileys…

    You think you can pull that off for me?

  18. Hey fiLi, I’ve added it to the wishlist for v2 to have an option to choose between codewords or just search and replace.

    It’s not difficult to do, but the obvious downside to the second method is that the words are still in your database and will be in the PHP-based URL that passes the variables. All of these allow for the possibility to cause blocking. I’ve been blocked from my MySQL database because of a bad keyword in it.

  19. An excellent and useful idea! But having the same “alt” text for every substituted word is a dead giveaway to filters that the post uses Censortive to hide words. Is that really a good idea?

  20. Good point Gary. Any suggestions on how to maintain the plugin’s integrity while also allowing for accessibility? The ALT tag was added in regards to Comment #2’s concerns.

  21. Any luck with the Chinese text? I open up my codeword.dat just now and what was once Chinese is now cyber-Sindarin. Does that mean the problem is with MySQL?

  22. Pingback: Positive Liberty » Occasional Notes: Adversarial Edition
  23. I backup fili’s idea. I had the same thought, but he/she was just faster than me. Anyway, can’t tell how this could be done best, so I’ll leave it to the eggheads and grab a nice cup of coffee while I wait for it to be done.

    Bloody nice work Ryan!

  24. Pingback: The China Expat » There's another way to get around the Great Fire Wall of China
  25. Pingback: Feed 及其他 - 刀枪Blue
  26. ….I lived in China, and it seems all my US-hosted websites are blocked. In fact, many people with innocent websites are blocked here in China. It is affected our communication and business…does this prevent an already blocked site?

  27. Hi Patrick, there are two reasons you site could be blocked.

    A) It’s on an IP address that has been “hard” blocked. Ask your hosting company to change your hosting’s IP (they should be able to do this without too much trouble), and see if that helps. This block could have come from you or from anyone else that shares that IP – big hosting companies split their server space among 10s, 100s or 1000s of customers – if anyone one of those customers on the same IP as you is being blocked, it’ll cause your site to be blocked.

    B) Your site’s content is the cause. As best I can figure, this “soft” blocking is done at the ISP level. When the user in a country that blocks sites access the “offending” site, the text of the page is first run through a filter. If a certain percentage of words are a match, the site is blocked. This block is where this plugin is effective. Though there is no released list of “hot” words, people in each country can guess which words might be causing them troubles and then use this plugin to substitute those words with images (unreadable by the ISP filter).

    For your situation, I think you’re in the first boat – for whatever reason. See if your host can change your IP and see if that helps. If you’re in the second situation, I’m afraid this plugin wont be of much use, as it’s only for WordPress users.

  28. Pingback: Troubles in China’s Wild West | Lost Laowai China Blog
  29. maybe I’m missing something or not looking far enough but I can’t locate the wp-plugins on the new WordPress format.

  30. Just for posterity, as I’ve already cleared this up with you in e-mail Flotsam, but the plugin will only work with self-hosted versions of WordPress – WordPress.com doesn’t allow plugins (to the best of my knowledge).

  31. Does an already blocked site, stay blocked forever? Has anyone had experience with the bots returning once the offending words removed?

  32. @Sean: Generally no, but it depends “how” it was blocked. If it was just an automatic block brought on by keywords being picked-up and deemed sensitive, then if the words are removed, the block will eventually remove itself.

    For a better understanding of how blocking works (in China at least), check out: Great Firewall of China: Explained.

  33. Pingback: A bloody nice WP plugin | Bring on the Night
  34. Pingback: Mutant Palm » Blog Archive » Chinese Fonts for the Censortive Plugin
  35. Hi ryan,
    This is a great plugin, thank you for the all the hard work.
    I was just wondering if I could convert the entire post to image. Or parts of the post(like for example in the post has an image, then I am sure we would face problems converting an “image into an image”)
    So that way instead of entering keywords all the time, I know that this entire post has tons of keywords which could get banned anywhere. So all I do is just convert the entire post or a part of it, to text.
    Thank you

  36. what a brilliant idea! but if it’s compatible with WP 2.7, please update wordpress.org plugins page– it only says compatible up to 2.3.

    also, as qwan suggested, can you not convert the whole post into one big image, or every letter on the blog to individual images? that would simplify things for the blogger, because then they would not have to deal with code-words. might also improve help trip up phrase or contextual scanners.

    also, could you make the alt words just random nonsense words, like ‘potato’, ‘ear’, ‘bicycle’? so scanners would not see “censortive” or any other recognizable word at all.


  37. Excellent work, I was on the verge of doing this exact thing myself (something far above my php-ing head) when I found your plugin.

    I’m with fiLi– I would love to not have to mark sensitive words. Is it possible to first change the word in the database TO the codeword and then replace the codeword with the image of the realword? The original sensitive word is gone, leaving only the codeword for bots to find.

  38. Pingback: Chinese block darn near everything ahead of Tiananmen Anniversary | A China Blog on Suzhou Expat Life
  39. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Wordpress
  40. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Lunch Time Laugh
  41. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Mac Bargains
  42. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Technology you can trust here...
  43. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Providing Value First
  44. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | dunyaMeri
  45. Pingback: Why the Chinese Government Hates WordPress — Technology Liberation Front
  46. Pingback: If They Build a 15’ Wall, Bring a 20’ Ladder [anti-censorware] « The SiliconANGLE
  47. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Fulldigi
  48. Pingback: Mchiche.Com | Upgrade Your Mind ! » Typography 20 Best Wordpress Plugins pour améliorer la lisibilité
  49. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability « AnaConda 4 Photoshop Blog
  50. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability « Blogoholics Anonymous
  51. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Internet Marketing Tips and Strategy To Make Money Online
  52. Pingback: Wordpress Typography Plugins | techlogs - online resource
  53. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Web Developer
  54. Pingback: 20 test | yokozona
  55. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability Read more: 20 Best Wordpress Typography Plugins To Enhance Readability | Wordpress http://www.hongkiat.com/blog/20-best-wordpress-typography-plugins-to-enhance-readability/#ixzz0dzLIdd5e «
  56. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability « qeqnes | Designing. jQuery, Ajax, PHP, MySQL and Templates
  57. I am glad I found your site on bing. Thanks for the sensible critique. Me and my wife were just preparing to do some research about this. I am very happy to see such reliable information being shared freely out there.
    Best Regards,
    Fergal from Philadelphia city

  58. Pingback: You, sir/madam, are sick. « Fangirlisms
  59. Pingback: out-smarting censorship 101 | Mireille Raad
  60. Any updates to this plugin? I could use something like this one. I found TextImage (?) but it hasn’t been updated since 2009. This plugin is even older since last update was way back 2007. Redactor does not appear to convert text to images. Suggestions? :)

    • Hi Marky, I’ve not updated the plugin, but was not aware that it was broken. You’re right though, an update it long overdue, I’ll take a look soon and see what I can punch up. Any suggestions for improvement?

  61. Fantastic idea … would love it, but in your Example, I can’t read the graphics well. I guess the plugin does need an update :)

  62. Hi Ryan, Excellent Work i appreciate your plugin and hard work, The Things are listed below which you should update or make some changes in this plugin to make it out standing,

    1. make a list of stop words also which Search engines Hate to listed,

    In which all slugs and titles rewriten or the stops words removed by the plugin

    Example : to be nice for women day
    After Rewritten or stop words removes
    Example : Nice On women day.

    Something like this ?

    2: The Censortive words in description should be Change by it self via plugin, with synonyms of it, or the way you take it by giving it a distorted picture will be alright,

    3: Make it compatible with newer versions of wordpress

    4: You And your plugin will look outstanding surely :)

    Thank you


    • Hi Jazi, thanks for the suggestions. I think I’ll be putting together a long-needed update for the plugin soon, so I’ll definitely consider these when I do.

  63. Great idea for a plugin, Ryan!

    How’s the update going?

    I hope you get to tinker with the ALT tag value, as well as implement what fiLi first requested, at least, if not also what qwan proposed!!

    BTW, it would be awesome if qwan’s “reverse-OCR” option could be realized! I’d certainly pay for it outright!!

Say something...

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>