Better SEO automatically remove short words from URL

Adding this snippet to the functions.php of your wordpress theme will automatically remove short words from the URL. This will remove words no larger then three characters long eg: in, and, but, is, etc...

I added an updated version of this snippet that uses stop words from a customizable list. This works better for most situations rather then arbitrarily removing words with three letters or less. Enjoy!

( example screenshot )

add_filter('sanitize_title', 'remove_short_words');

function remove_short_words($slug) {
    if (!is_admin()) return $slug;
    $slug = explode('-', $slug);
    foreach ($slug as $k => $word) {
        if (strlen($word) < 3) {
    return implode('-', $slug);

Comments  Leave a Reply

  1. Boost Your WordPress SEO with Short URLs - WPMU.org September 6, 2013 at 5:50 pm

    […] to Kevin Chard for these awesome […]

  2. Well the idea is that if you remove words like “The, and, but, is, it,” etc, since they don’t have any real SEO value. However the above snippet was updated to remove only a list of words rather then all words with 3 characters or less.


  3. Peerland Fire Alarm August 5, 2011 at 12:11 pm

    I am a newbie in SEO field recently I was told to collect some new information and guess what,I gave them your idea and they really liked it.So in other words your advice save me.Thanks man!Really  nice one.People please try this.

    1. You should take a look at this snippet. This is an updated version of the snippet above.

  4. Alexandre M. Cajaty July 14, 2011 at 5:09 pm

    Congratulations for the post!

    I adapted your code with a list of negative words separated by commas.

    Hug!****add_filter(‘sanitize_title’, ‘remove_short_words’);function remove_short_words($slug) {    if (!is_admin()) return $slug;    $slug = explode(‘-‘, $slug);    foreach ($slug as $k => $word) { //keywords false $keys_false = ‘a,ao,aos,as,ate,da,de,do,das,dos,dum,duma,e,em,es,na,no,nas,nos,num,numa,o,os,que,um,uma’; $keys = explode(‘,’, $keys_false); foreach ($keys as $l => $wordfalse) { if ($word==$wordfalse) { unset($slug[$k]); } }    }    return implode(‘-‘, $slug);}

    1. Great snippet Alexandre. Email me so I can  set you up as an author for the snippet.

  5. Trieu Quang Khanh June 24, 2011 at 3:29 am

    this is bad for vietnamese

    1. This is true Trieu Quang Khan, I’m going to publish an updated version that will let users define words that will get removed from the slug. 

      1. Trieuquangkhanh July 19, 2011 at 7:12 am


  6. Does it exclude 3 letter words? The write up implies it does by including the words but and and, but the screenshot shows seo still there in the URL? Presume it is the condition in line 6 that needs changing. Could removing 3 letter words be too drastic as it could remove words required for the URL to make sense? who, cup, bar, win, end, seo(!) etc.. (which could then have a negative rather than positive effect on seo?)

    1. This is true, one modification I could do to this snippet would be to create a list of words that it should remove. This way it would not remove words that may be important to the SEO of the site.

  7. Do you think this is important for SEO? Why?


    1. The more words you have in the URL Google will weight what could be important words less. Since the if, and, the, is, are, etc are not as important as other words this script will remove them.

Add a Comment

We're glad you have chosen to leave a comment. Please keep in mind that all comments are moderated according to our privacy policy, and all links are nofollow. Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.

WordPress Launch Checklist

The Ultimate WordPress Launch Checklist

We've compiled all the essential checklist items for your next WordPress website launch into one handy ebook.
Yes, Send Me the Free eBook!