I was recently doing a little friendly consulting for a friend of mine who runs a membership based adult-site.
Basically he was converting well but not getting alot of traffic, so we took some time to look over his sites layout and went over some basic SEO best-practices.
One of the things that he really needed to improve on was the layouts of his images. I mean, with a site like this, images are way more prevalent than content…his design is hugely image intensive, and there are literally hundreds of individual preview galleries that could potentially act as great landing pages for each individual sub-niche…
I was advising him that he should be working on keyword rich, unique captions and alt-tags for his images, and his complaint was that there are so many images that it would be a huge pain in the ass to go through and create captions/ALTs for each one. So, we decided that the best thing to do in this case would be to create a simple function that dynamically builds unique captions and ALT text for him.
Basically, what we did was build 10 different sets of four-to-five arrays containing various keywords that we could randomly choose from in building a complete string. We then set the function to dynamically choose one of the array sets, so that each caption/ALT didn’t have the exact same format.
In building each array set, we started with a sentence structure he wanted to use, and then expanded each word out into it’s own array.
Example: (I normally keep this blog PG13, so please excuse the dirty words, but I’m using an example relevant to the adult industry)
ARRAY1. Sentence structure:
“Download <model_name>’s private sex video”
array1a = [download,check out,view,see,get,look at]
array2b = [private,personal,intimate]
array3c = [sex,solo,masturbation,jerk-off,porn]
array4d = [video,film,clip,download,stream,flick,vid,picture]
ARRAY2. Sentence structure:
“<model_name> has tons of hot videos”
array2a = [has,uploads,provides,creates,films,makes]
array2b = [tons of, lots of, many of, hundreds of, a lot of, loads of]
array2c = [hot, sexy, steamy, erotic, raunchy, amazing, mind-blowing]
array4d = [videos,films,clips,downloads,streams,flicks,vids,pictures]
ARRAY3…etc..ARRAY4….etc…..all the way to TEN different sets of arrays.
The above is just an example….in a real production usage, I would recommend no less than 10-15 words PER array.
Then, for each caption and each alt, the webpage calls the function which randomly chooses one of the 10 array sets and uses it to build a dynamic string.
Once you’ve randomly selected one of the 10 array sets to use, you’d build the dynamic string like this:
dynamic_string = array1a[rand(array1a.length)]." ".model_name."'s ".array1b[rand(array1b.length)]." ".array1c[rand(array1c.length)]." ".array1d[rand(array1d.length)];
So, this function might return the following: “download Jenny’s intimate sex video” OR “checkout Suzie’s private porn clip” OR etc, etc etc
Using this simple and well-documented technique, the site owner was able to create keyword rich, dynamic captions/ALTs for every single picture in his hundreds of preview galleries. He was able to keep his image-rich site design and still put lots of great content into it without making it look like keyword spam, and all without going through the back-breaking effort of manually writing content.
Two closing notes fore you all to think about:
1)You can use your favorite keyword/synonym tools and even search query logs to build massive lists of your relevant keywords. Then you just need to take some time to scan through them and group and sort them into relevant sets.
2)This technique is very useful for anchor text as well

Would you use this on a page of thumbnails, and generate new (random) alt tags on each page load? That seems best to me, but how does this play with the seo-izing of the page? Do changing alts/captions screw with anything?
Nice! I used a similar method with a real estate site but with less variety.
Maintaining constant tags for a given property was an issue though, we resolved this by using the modulus of the record’s ID to determine the variation index.
Good post. I don’t doubt that adding text to images is a must for SEO, but I’d appreciate if you could some day revisit the site and offer some vague indication of the degree of success you found with this technique.
Regarding the constant tags, could you not use web server cache with a really long TTL?
This works magic! I’ve done something very similar before for a client, I created a table in his database, which allowed the client to add and remove keywords, which were then randomly assigned to images on his website.
Great results!
Wouldn’t it be better to keep the same alt text each time? It looks like the alt text changes on each page load.
This is genius! Could be a great way to game Google Image Search as well… I will have to do some testing (back to the lab).
can i applicated in blogger?
Would it matter to the Search engines that these tags changed everytime they visited it? Or would you save them into a db?
Either way would it matter? I am interested to know