|Using Twitter from an SEO Perspective|
Preface: I joined Twitter on 2008-07-24 after a few nudges from @GregBoser via IM. Since then I've performed a barrage of testing, have written more than a handful of articles and even have my own Twitter Application (in dev). I've built that app based on my use of Twitter from an SEO Perspective. I'd like to share some of the things that I've learned this past year on Twitter.
Twitter rides on the SMS (Short Message Service) platform. The published maximum character count is 160 with the first 20 characters reserved for @Username which is 15 characters and there are 5 reserved characters. That leaves you with a total of 140 visible characters.
I'm going to approach these tips under the assumption that you are familiar with the Twitter Basics. You've already signed up, have designed your Twitter Profile and uploaded a Custom Avatar and have begun the process of becoming a Twit.
First let's briefly discuss the <title>s for Twitter Updates. These vary in length depending on the Name of the Twit and the first few words/characters of the Tweet. My research, based on a small results set, shows a range of 48-61 characters and that includes one space and an ellipsis (...) as a truncation indicator.
The Twitter <title> has a default construct of
Twitter / Profile Name: Snippet from first line of Tweet .... Out of the box, there are 10 characters reserved for Twitter / and then you have the character count for your Twitter Profile Name (not Username) plus the colon. Next comes the remaining character count which is filled with the first words/characters of your Tweet which resides at /username/status/1234567890.
Note: Tweet Statuses are <title>ed with your Name, not your Twitter Username. So if you have a different Username, please remember that your Tweets are being titled with your profile Name instead.
Due to the above process, I strongly suggest that you Front Load your Tweets and Retweets. This maximizes use of the <title> Element at the /username/status/ level which I refer to as PermaTweets. This is where all of your Twitter Updates are archived and available for the world to see if you are not in Protected status. If you're Protected, only those you allow to Follow you can view your Updates through normal channels.
There are many misconceptions about URIs on Twitter. Ask anyone who Follows me and they will tell you that I've done more experimenting with URI Constructs than anyone else. I do believe that statement is true too. In addition to my Twitter App, I also have a personal URI Shortener that is built using .NET and .htaccess. These tips that I'm sharing have been tested rigorously for the past 12 months. I've also read the SMS Protocols umpteen times for verification of findings, etc.
Twitter state that URIs exceeding 30 characters will be converted. Yes and no. Certain URI constructs bypass the conversion routines. All URIs will visually truncate at character 30. That means if you have a URI that is 31 characters, Twitter will truncate to character 27, add ... (ellipses) and place character 31 outside the visual. The href is still intact, the visual is truncated. I've seen Twits cut and paste the truncated visual URIs not realizing there was more to it. There really is nothing you can do in that instance other than remind your Followers that truncated URIs need to be reformatted when repurposing.
A URI construct of http://example.com/keyword will not convert on Twitter. Single word, concatenated words, slash separated words will not convert. One of my test URIs is constructed like so...
The above does not convert. It visually truncates at character position 30 but the href is intact. Using the example.com domain, the visual truncation would look like this...
Words separated by underscores are prime candidates for conversion. That underscore triggers the conversion mechanism most of the time from my observations. I won't use them and don't recommend their use in URI constructs. Hyphens are recommended in the first 30 characters. Once you pass the 30 character mark, hyphens in the construct may trigger conversion. It is all relative to where the line break may occur. To avoid this altogether, don't use hyphens (after character 30) if your shortened URIs exceed 30 characters. With my personal URI Shortener, I have 13 characters available for use. We also follow case protocol. That means I can use PascalCasing, camelCasing, whatever case I wish, each one is a unique URI.
Twitter's default URI Shortener is [bit.ly...] which leaves you with 16 characters available for use. They also provide a custom name option which I strongly suggest. Keep your URI Shorts to 30 characters or less and always use the custom name option for maximum keyword saturation. You have 140 characters to work with, use every single byte of that Tweet to get your message across. Set up an account and make use of the analytical features available too.
Lately I've been using custom named URI Shorts in sentence constructs e.g.
|Microsoft has integrated its http://example.com/Dynamics-CRM software with Twitter. |
250 Character SuperTweet
You can post up to 255 characters to Twitter. But, only 250 of those characters are visible. The last 5 characters are reserved. So, I refer to it as the 250 Character SuperTweet. I discovered the process of SuperTweeting while doing various testing with JS on and off.
To post up to 250 characters to Twitter using the web interface...
The best way to do this is to begin constructing your Tweet. Keep an eye on the character counter at top right. Once it passes the 0 left mark it will begin a negative count. When you reach -110, you've hit the 250 character position, stop there or lose everything from character 247 forward due to truncation.
Using FF and the Dev Toolbar...
Ctrl+A (to select the up to 250 characters you just constructed), Ctrl+X, Turn Off JS, Reload Page, Ctrl + V, Send
You'll immediately receive this message from Twitter...
|Oops! Your update was over 140 characters. We sent the short version to your friends (they can view the entire update on the web). |
Note the phrase short version. Twitter support both short and long version SMS. The long version is up to 250 characters. Ooh-Rah! You didn't know that did you? ;)
But, don't get too excited! You'd be surprised at how many Twits don't know there are more characters beyond the ellipses they may see in their Timelines. I know some who don't realize the date and time stamps are linked to what I refer to as PermaTweets (/username/status/1234567890). I've been fortunate in that most of my Followers know the routine. I may at times mark my Tweets with a #T250 Hash Tag in the visible 140 to let people know the Tweet is >140.
Note: Only the first 140 characters of the SuperTweet are indexed via [Search.Twitter.com...] which means you need to make sure your most important content is first (Front Loaded).
I've got so much more to share but if I get too winded with this first post, ya'll are going to bail on me. I think the above is a good start for this topic, yes? :)
[edited by: engine at 11:24 am (utc) on July 14, 2009]
[edit reason] sidescroll [/edit]
Good post as usual mate. Starts raising questions though. (which is good)
The Supertweet doesn't sound like it will get MORE noticed than a normal tweet from the way you describe it.
I also use my own URL shortener. It gives you much more control I think.
You haven't given out much on how this helps SEO, so here's one: your Twitter name can act as an seo keyword, especially on your brand name. It gives you another result in the SERPS. And can push down those pesky local results too.
Great Post P1R! Looking forward to follow up.
I love the keywords in the shortner URL idea
Already RT'd it ;)
|The SuperTweet doesn't sound like it will get MORE noticed than a normal Tweet from the way you describe it. |
It could if promoted properly. What I do with Tweets that I want to Retweet that are close to or over the 140 visual display is RT the PermaTweet which is usually something like /username/status/1234567890 and then append my comment to the backend of the Tweet. That PermaTweet is the source of the discussion. If Twits would use that link when referencing a worthy Status Update they could create a short story while juicing the original Tweet (the PermaTweet).
^ Note: If there are no underscores in the Twitter Username, the /username/status/1234567890 will not convert. It will visually truncate, but won't go through the bit.ly automated conversion process.
|I also use my own URL shortener. It gives you much more control I think. |
I highly recommend that anyone serious about Social Media Marketing have their own URI Shortener. Preferably a branded one. I have an interesting combination with mine as I was able to trim off a couple of chars and make up a new name from the companion domain. ;)
|You haven't given out much on how this helps SEO. |
Well, I don't want to start showing specific examples of how it might help SEO. I can think of quite a few right off the top of my head. The keyword anchor text from the URI Short and, the surrounding textual content all being associated with the destination content (via 301). Instead of using randomly generated letters and numbers, use a custom naming approach to URI Shorts.
http://example.com/URI-Shorts or http://example.com/URI/Shorts
If you utilize your own shortener, the possibilities are almost limitless. If you have a short domain that maintains and/or extends your own brand, that would be the ultimate scenario. Keep in mind that visual truncation occurs at character 30. Your shortened domain will utilize non www. You'll have exactly 16 characters (for domain name and TLD) to work with using a Base 36 construct. 14 of the 30 are reserved for the http:// (7) and /123456 (7).
^ That would be the default maximum of 30 character constructs. You can always exceed the 30 character mark keeping in mind visual truncation for some. When viewing Tweets via Twitter Search, the entire URI shows without truncation. So, not everyone sees a truncated version.
Give all of the above careful consideration before you decide to start creating your own Custom Named URI Shorts. Be sure to use a 301 and follow case protocol meaning that URIs are case sensitive.
|Your Twitter name can act as an seo keyword, especially on your brand name. It gives you another result in the SERPS. And can push down those pesky local results too. |
<title id="page_title">Name (Username) on Twitter</title>
^ The default title syntax for Twitter at the moment. There are two strategies here. One, your Name and Username are the same. One is concatenated (FirstLast), the other is not (First Last). Two, your Name and Username are different. I use this particular format and it allows me to target both my real name and my online nic. Doublemint either way. :)
Keep in mind that the 160 characters entered as your Bio becomes the META Description for your Twitter Profile. In addition to the <title> above, you've got the META. These two elements across the entire Twitter platform are of utmost importance. Think of it from a micro SEO level with everything being Front Loaded for maximum visibility.
|Great Post P1R! Looking forward to follow up. I love the keywords in the shortener URL idea. |
Thank you. The keywords in the URI are a given. When you use Twitter Search, they light up like a Christmas Tree. Those 1a2b3c URIs don't do jack from a marketing perspective. In fact, I've read quite a few articles that indicate the jumbled randomly generated URIs may be a cause of concern for some. I've clicked a few shortened jumbled links myself in the past that led to less than savory content. Fortunately my system tasered me and prevented me from going any further. :)
Hi P1R, thanks for the great post.
I have noticed Twitter.com ranking really well recently in Google. Sometimes, I would search for "widget" on Google and would see the twitter.com/widget page show up in top 3. So other than the bio, a keyword rich username might also be good to have. You are also allowed to have a link in the profile, so always link back to your site to at least get the traffic.
Thanks for compiling your wisdom here, P1R. There are times when a good, old-fashioned, long post works better than 140-character bursts! Great stuff!
And finally a post comes out of P1R's endless testing (ignore the following tweets: testing purposes...)
Heeh, no, I've been following the progress of P1R and optimizing tweets for awhile, and I think I may have been one of the first to grasp the supertweet..
Due to P1R's tests, I thought to myself one day, why am I using tinyurl or bitly, when I'd rather have a URI rewriting service based off my domain name, and keep the branding..
After further nudges from him and some research, I found a solution that has worked out well..and here is where part of the SEO comes into play..
[example12345.com...] has 27 characters (same as my acutal domain) and I have a URI rewrite that allows me to shrink my currently longest URI of 99 characters and shrink it down to 28 characters (within the 30 character conversion) and my brand name is kept in tact..so the URI looks like [example12345.com...]
See what I did, I posted a branded URI without the www because I have a 301 rewrite rule in .htaccess that converts non-www to www, then I have a php plugin the converts the shortened branded URI to the actual URI...
To reiterate what P1R said, I "front load" my tweets with my branded URI short, which is visible and add the message afterwards..and keep an eye on the character count..usually I will break a line up when 75 characters are left, to further mitigate a second branded URI drop in the same tweet..
Again thanks for the time and research P1R, as it helped my blog go in a new direction, and actually bring more visitors to the site because others are looking to make your own short url and keep the branding to yourself, particularly since Twitter has grown so much..
Thanks, a nice overview to some of the basics :)
Does a multitude of 301 redirects from your branded domain name cause any problems in the SEs? What signal does this put out?
I tested the Super tweet methodology but it failed for me - Followed the instructions and the tweet sent but no error message appeared
I must agree to all your points. And am glad that youre finding it useful. Unfortunately Iím seeing more people jumping out of the bandwagon more than who opts in. Probably because Iím in the marketing/seo space. Your perspective is completely justified. Much appreciated.
[edited by: coopster at 1:40 pm (utc) on July 15, 2009]
[edit reason] no domains please TOS [webmasterworld.com] [/edit]
I was searching about a good post having good explanation of Twitter effectiveness. You have done that.
As beginner to SEO field, this looks very hard to take full advantage of Twitter. Your post have many nice ideas.
Incywincy, I've not seen any issues with the 301 from the search engines, but keep in mind most of the social sites nofollow the links, BUT again its about seeing my brand name in the link and not tinyurl or bitly..and P1R's tests of how to best optimise a tweet to contain a branded URI without converstion is a good way for exposure..
I'd like to thank everyone for your kind words. :)
I'm going to focus on one thing at a time moving forward. I think it will be a little easier to digest, including myself.
A Retweet is when you take a Tweet, append it with RT @Username (Retweet) and send it back into the Twitter Timeline. Some will comment on the RT, others will just RT as is. The Retweet is the biggest ego stroke on Twitter.
The common format for many Twits is to take the original Tweet and add RT @Username to the front of it. You end up with a Tweet that may look like this...
|RT @Username Content of Tweet (up to 140 visible characters) |
I've maintained brevity in the above example. We're working with 140 visible characters. Twitter utilize those characters in various HTML elements such as the <title> and META Description. When I construct a Tweet, I look at it like writing a 140 character META Description keeping in mind that the first few words are of extreme importance from an SEO perspective. I've always practiced and preached the use of IPW (Inverted Pyramid Writing) and Twitter is the perfect environment for sharpening one's skills in this area.
Knowing how Twitter utilize this data allows you to look at things a little differently. If we take the common RT format where the RT @Username is at the beginning of the Retweet, we end up with a page <title> that looks like this...
<title>Twitter / Username: RT @Username Content of Tweet ...</title>
|Twitter <title> Observations |
The <title>s for Twitter Updates vary in length depending on the Name of the Twit and the first few words/characters of the Tweet. My research, based on a small results set, shows a range of 48-61 characters and that includes one space and an ellipsis (...) as a truncation indicator.
The Twitter <title> has a default construct of...
Twitter / Profile Name: Snippet from first line of Tweet ...
- Out of the box, there are 10 characters reserved for Twitter /
- Then you have the character count for your Twitter Profile Name (not Username) plus the colon
- Next comes the remaining character count which is filled with the first words/characters of your Tweet which resides at /username/status/1234567890
Tweet Statuses are <title>ed with your Name, not your Twitter Username. So if you have a different Username, please remember that your Tweets are being titled with your profile Name instead.
When I first started tracking RT's for my research, I noticed those page <title>s were diluted with RT @Username references which are not optimal from an SEO perspective. I've seen some take the RT process to extremes where there is very little Tweet content and mostly @Username plugs. I don't agree with that practice at all. My philosophy is to give credit to the original source and the person that "I" saw Tweet it. But, I do it a different way. I backload the Tweet with the RT and SRC references.
I'll take the original Tweet, Front Load it with the primary content and include the RT @Username SRC @Username or BY @Username at the end of that. I may even include a CC @Username or RE @Username. I'm being a little creative in my approach to all this and at times, it does confuse a few Twits in the process. If you see one of my Retweets, it may look like this...
|@pageoneresults Can Microsoft's Bing Take on Google? [URI Short] RT @BrentCsutoras / Excellent piece on Bing vs Google. Can't compete with G - yet. |
The above is an actual example from a recent Retweet. I've kept the primary content of the Retweet Front Loaded. I've given credit to the original Twit with the RT @BrentCsutoras and then I've added a forward slash / with my comments afterward. When I'm adding that comment to the Retweet, I'm actually thinking like an SEO and planning my use of keywords and the placement of those. I'm thinking 140 character META Description using IPW.
Ya, a bit outside the norm but believe me, it makes the most out of the little that you have to work with.
Great stuff. I'm gunna be all over Supertweeting. ^_^ (And I've always front loaded..so good to know my instincts were correct). :)
[edited by: GrendelKhan_TSU at 5:17 pm (utc) on July 15, 2009]
|BUT again its about seeing my brand name in the link and not tinyurl or bitly. |
I wanted to comment on this one. I've forgotten all about mentioning the domain name branding aspects. It only works for those that have domains that are 30 characters or less from a visual standpoint. If the URI is constructed properly, at least a portion of the branded URI will remain visible and the rest will be truncated visually and when clicked resolves, the href is still intact.
If you don't want to deal with the maintenance of URI Shorts, you could always create a Twitter Landing Page and use that as the link in your Twitter Profile. I have mine linked to my Personal Twitter TOS at the moment. A savvy Twitter user might link to a customized Twitter Landing Page and list out all of their important content for visitors to see. At the same time, use one persistent URI Short that leads to that landing page and presents visitors with your latest content. Your own Twitter News page and one persistent URI. That should get major traction across Twitter streams. :)
issue/problem with shortners that came up after reading your stuff:
- don't want to build my own (well I do..just don't have time now...so that goes on the backburner, unless someone lays it out step-by-step)...and since Matt Cutts himself said shortners are fine as as they are 301.. I can live with the brand issue for now (most twitter types are used to ignoring bit ly part anyway)
- Custom title for shorter? Great! BUUUUT the issue is aggregate publishers (not readers), like seesmic, or hellotxt etc. If one needs to publish to multiple networks from multiple ids (which many do)... its a problem. Bit ly et al is well integrated with SNS publishing client tools, so one can shorten from within client tool interface (ie: you don't have to actually go to bit ly). But it doesn't allow for custom titles. Tough call on that. Wait for the tools to allow for custom titles as well...or go back to window switching copy-paste for every id and every SNS. UGH.
Just the sheer volume of back-and-forth would make it a horrible inefficiency.
or maybe that's just me. heh. :p
|A savvy Twitter user might link to a customized Twitter Landing Page and list out all of their important content for visitors to see |
cool idea. I assume you'd recommend that all the listed content would be the permatweet links?
|Just the sheer volume of back-and-forth would make it a horrible inefficiency. |
You are 100% correct. That is why you need the proper tool(s) to manage your Twitter Timelines. I have my own so I've got a bit of an edge. Everything I've outlined in this post is designed into the app to some degree. It is unfinished at the moment and I don't wish to promote it until after [Wave.Google.com...] is released. I believe that will be a third party app killer for some.
The lack of the bit.ly custom name option in apps is an oversight I think. That one feature alone is the primary reason I use bit.ly along with the fact that Twitter made bit.ly the default shortener months ago. It takes a whole 30 seconds to jump over to bit.ly via the browser and construct the custom named URI Short. The problem is exactly what you describe. And, most Twits are too lazy to take that extra 30 seconds and add some umph to their Tweet. ;)
One of the things you could do is build your own app for Twitter. It's not that difficult and there are currently over 14,000 of them registered with Twitter. Most are not named. Recently Twitter changed the labeling of the "from name" in Tweets and they now have "from web" or "from API". Previously they were both combined under "from web". When you see that "from API", that person is using the Twitter API via an application in some form or fashion. When you see the "from web", that person is using the web interface which has been improved a bit over the past few months.
|I assume you'd recommend that all the listed content would be the permatweet links? |
Only if that is what you want to juice. Usually the PermaTweets contain links to expanded content. I'd link to the final destination content in all instances and keep the visitor as close to that content as possible.
You could always include a Twitter Stream on that page, they make it easy for you to do. :)
[edited by: pageoneresults at 5:43 pm (utc) on July 15, 2009]
Great so far, PageOneResults! I enjoyed this article post a lot.
Great stuff P1R!
This is why WebmasterWorld is still the best place to discover new SEO stuff.
One functionality that many overlook when Tweeting is the in reply to or threading of Tweets. When you are using the web based interface or an application and click the reply function, that Tweet now becomes threaded or joined with the original that you are replying to. When you reply to a Tweet, the underlying function looks like this...
The reply function in most apps will include the @Username at the beginning of the reply. Most think it is the @Username that invokes the in reply to which is not the case. Once you click that reply to function, you can place the @Username wherever you wish within the replying Tweet. In fact, I make it a practice of making sure my @Username mentions are NOT at the beginning of a Tweet. If they are, only those Following that @Username are going to see the conversation. If you place the @Username anywhere else but the beginning, now all of your Followers can see. Ooh-Rah!
Take a gander at your Timelines and look at how many in reply to are missing. That's because some will just start a Tweet prefacing it with @Username in response to another Tweet. I call those orphan Tweets. If they are using the web and doing this, they end up associating their reply with the persons last Tweet. It could be something totally unrelated and it really disrupts the flow.
Okay, so what do Retweets have to do with this? Well, I think the RT function should work just like the reply function. If I RT someone else's Tweet, I'm going to use the reply function to begin the threading. Unfortunately a large percentage of people haven't caught on to this so subsequent RT threading is borken! Get with the program you Twits!
Bottom Line: If you wish to keep a group of Tweets joined (threaded), make sure to use the Reply function so the threading is kept intact as the Tweets and Retweets propagate through the network.
And remember, as long as that reply to function is invoked, the Tweet is threaded behind the scenes. You can place your @Username mentions wherever you want. If you place them at the very beginning of your Tweet, only those who Follow that @Username will see. The rest of your Followers will be oblivious to the conversation, unless they view your Timeline directly.
What's this got to do with SEO?
Think of it from the threaded perspective. When Twits Retweet using the current methods, each RT is an orphan. If you use the reply function when Retweeting, each RT now becomes threaded with the original Tweet, a threaded trail points to the original Tweet (the PermaTweet - in_reply_to_status_id=1234567890) through all the other RTs that are threaded. Think of them as IBLs (Inbound Links). :)
Ugh. BIT.ly updated their UI... now it takes an extra step to make a rename with custom link. grrrr.
2009-07-21 Addendum: It appears that my personal Twitter application is unique in that I am able to thread Tweets no matter what the circumstance may be. We've been doing some testing this morning and from what we can see, none of the apps tested so far will thread a Tweet unless the @ mention is at the beginning. That's a bummer and an oversight if you ask me.
It's also an oversight on my part for not testing other application features, I haven't used other Twitter apps for quite some time. I just assumed which of course led me to the above addendum and the following message...
Attention Twitter Application Developers
First one to market with the features in place to allow proper threading of all @ Replies and RTs no matter where the @ mention is will set a new benchmark.
I'm not sure why this functionality was overlooked and if you review my logic above, I think you'll see the benefit of making sure Tweets are threaded no matter where the @ mention is. And, that the RT function is just like the Reply function. I'd want to thread all Replies and all Retweets.
Wouldn't you agree that would be a wise decision? From an SEO Perspective? :)
I think tweettree can do it. I'm looking at mine now and I see threaded conversations where tweets don't start with a @.
This is an interesting discussion. Thanks P1R.