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 censortive word, censortive word, or censortive word; I don’t need to worry about my site being shut down. Equally, if I want to write about censortive word, censortive word or the censortive word, 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 censortive word.

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 Responses to Censortive Anti-Censorship WordPress Plugin

  1. 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.

  2. Pingback: Damn The Censors! | A China Blog on Suzhou Expat Life | The Humanaught

  3. Pingback: A WP plugin to get around censorship | Lost Laowai China Blog

  4. 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.)


  5. 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.

  6. Pingback: My First WordPress Plugin | Dao By Design Blog

  7. 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!

  8. Pingback: China Now Weblog

  9. Pingback: How Censortive are you? : 广州帮 | Guangzhou Bang

  10. 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…

  11. 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?

  12. Pingback: Global Voices Online » China: WordPress plugin subverts keyword filters

  13. Pingback: Saarbrigger Gedankewies » Blog Archiv » Mal anders betrachtet

  14. Pingback: SEO Blog » Blog Archive » Anti censorship plugin

  15. Pingback: Digital Caribbean » Blog Archive » links for 2007-07-31

  16. 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?

  17. 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.

  18. 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?

  19. 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.

  20. 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?

  21. Pingback: Positive Liberty » Occasional Notes: Adversarial Edition

  22. 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!

  23. Pingback: The China Expat » There's another way to get around the Great Fire Wall of China

  24. Pingback: Feed 及其他 - 刀枪Blue

  25. ….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?

  26. 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.

  27. Pingback: Troubles in China’s Wild West | Lost Laowai China Blog

  28. maybe I’m missing something or not looking far enough but I can’t locate the wp-plugins on the new WordPress format.

  29. 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).

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

  31. @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.

  32. Pingback: A bloody nice WP plugin | Bring on the Night

  33. Pingback: Mutant Palm » Blog Archive » Chinese Fonts for the Censortive Plugin

  34. 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

  35. 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.


  36. 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.

  37. Pingback: Chinese block darn near everything ahead of Tiananmen Anniversary | A China Blog on Suzhou Expat Life

  38. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Wordpress

  39. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Lunch Time Laugh

  40. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Mac Bargains

  41. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Technology you can trust here...

  42. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Providing Value First

  43. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | dunyaMeri

  44. Pingback: Why the Chinese Government Hates WordPress — Technology Liberation Front

  45. Pingback: If They Build a 15’ Wall, Bring a 20’ Ladder [anti-censorware] « The SiliconANGLE

  46. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Fulldigi

  47. Pingback: Mchiche.Com | Upgrade Your Mind ! » Typography 20 Best Wordpress Plugins pour améliorer la lisibilité

  48. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability « AnaConda 4 Photoshop Blog

  49. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability « Blogoholics Anonymous

  50. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Internet Marketing Tips and Strategy To Make Money Online

  51. Pingback: Wordpress Typography Plugins | techlogs - online resource

  52. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability | Web Developer

  53. Pingback: 20 test | yokozona

  54. 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 «

  55. Pingback: 20 Best Wordpress Typography Plugins To Enhance Readability « qeqnes | Designing. jQuery, Ajax, PHP, MySQL and Templates

  56. 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

  57. Pingback: You, sir/madam, are sick. « Fangirlisms

  58. Pingback: out-smarting censorship 101 | Mireille Raad

  59. 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?

  60. 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.

  61. 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!!

Leave a Reply

Your email address will not be published. Required fields are marked *

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>