WordPress: Create unique content with Old Post Spinner

WordPress 3.2 ok!


Create a complete unique new post on a random old one and promote it to the top of your blog.

It is really easy to handle and self-explanatory.

Compared to other plugins which do pretty much the same my plugin uses the build in functionality of WordPress’ own “cronjob”. This makes the whole part much more stable and (what is even more important) bypasses workload away from the server.

Every promotion is registered in a log file.


Download directly from WordPress.org repository.


Is there anything I should be aware of? Any limitations?

Yes! This plugin should no be used with permalink structures that include dates.

Please explain me the settings’ values

Old Post Spinner (OPS) checks if a certain amount of time has passed. If so it promotes (or duplicates, depending on the settings) a random post to any position you like.

E.G. take this values:

  • Minimum interval between old post promotions: 2000 minutes
  • Random maximum interval (added to minimum interval): 500 minutes

Now OPS will every 200 0+ X minutes (where X lies somewhere random between 0 and 500) pick up one old post and promote (or duplicate) it to the defined position.

OPS will take into account which posting categories you never want to promote

You can also specify an minimum age for a post to be considered.

What will happen? Let’s take 10 posts ordered by age with No. 1 the as the youngest one. OPS picks the, let’s say, sixth post and give it the current date to promote it to position number one.

If you want a post to be promoted to position 3 OPS will place it, regarding the date, exactly in the middle between number 2 and (the old) number 3, which now will drop to position 4.

What is the difference between duplicating and promoting?

Promoting will move the post to a new position, whereas duplicating will copy a post to the new position, so the latter generates a new post.

What are the best practice values?

They are installed as default values. Minimum interval: 2000 minutes, Random interval: 500 minutes, Post age: 14 days. But maybe you should experiment with your own values. It’s up to you.

What do you mean with spinning?

Spinning means the creation of a new “spinned” content. That will create a new and unique post every time it gets promoted (or duplicated).

How do I spin the title and the content?

That requires a bit of handwork. You can manually add multiple synonym versions of any sentence and any word you want. That is done by using the characters |, { and }. I give you an example:

Hello, my name is {Jack|Jim} and I love {Tennis|Golf}.

Using this spinning instructions sentence will generate this four different result sentences every time your article is promoted:

  • Hello, my name is Jack and I love Tennis.
  • Hello, my name is Jack and I love Golf.
  • Hello, my name is Jim and I love Tennis.
  • Hello, my name is Jim and I love Golf.

So, with a little bit of extra afford you are able to create a complete unique post every time.

Just add as many synonym sentences as you like between the curly brackets ”{“, “}” and separate each synonym sentence by Pipe “|”.

You can nest your sentences as well:

Hello, my name is {Jim|{Handsome|Ugly}Joe}.

Will result in:

  • Hello, my name is Jim.
  • Hello, my name is Handsome Joe.
  • Hello, my name is Ugly Joe.

IMPORTANT: Please post this spinning instruction sentences in the extra Old-Post-Spinner meta box of WordPress (see the screenshot) and NOT into the normal text and content form fields

What will happen if I only want to spin the title or the content?

No problem. If you only fill in spinning instructions on the title, then only the title will be spinned. The content won’t change. Same with the content, if you only want the content to be spinned, than leave the spinning instructions on the title empty.

What date will the promoted posts get?

Posts promoted to first position will get the current date. Posts below first position will be placed right in the middle of the enclosing posts.

Why should I use a category to ignore from promotion?

Some posts are simply not meant to be spinned. Especially if they are date-related. E.g. you should place posts with news into an omitted category.

But how do I hide the category from my blog?

If you don’t want this category to appear in you blog you can use the “AVH Extended Categories” plugin.

How can I recover the original dates?

All original dates are stored as custom fields. The name is “ops_original_pub_date”.

How can I support you?

That is nice of you. You can donate via Paypal.

How can I promote my newly dated posts to twitter now?

I think you should consider to use a service like twitterfeed.com. It will pickup your promoted posts and send status messages to twitter.

Do you have other plugins?

Check out my other WordPress Plugins.

Where do I post my feedback?



2.4.0 (06.07.2011)

  • testing with WordPress 3.2 -> OK
  • small security bugfix

2.3.3 (10.06.2011)

  • testing with WordPress 3.1.3 -> OK
  • removing schedule cron value when deactivating as well

2.3.2 (12.04.2011)

  • small security bugfix

2.3.1 (25.03.2011)

  • bugs fixed on test routine, when entering wrong values

2.3.0 (15.03.2011)

  • using minutes instead of hours

2.2.1 (26.02.2011)

  • testing with WordPress 3.1 -> ok

2.2 (19.02.2011)

  • tested with 3.0.5
  • more FAQs
  • new screenshots
  • more log entries to check for
  • more translations

2.15 (04.12.2010)

  • tested with WordPress 3.02

2.14 (11.08.2010)

  • tested with 3.01
  • new screenshots

2.13 (11.07.2010)

  • Fresher design of meta boxes
  • new wording
  • correcting typo errors

2.12 (11.07.2010)

  • creating a brand new permalink when duplicating
  • fixing a bug where not unique permalinks could get deleted

2.11 (10.07.2010)

  • now detects an existing “Google XML Sitemaps Generator for WordPress”-Plugin and starts creating the sitemap on request

2.10 (09.07.2010)

  • tuning the visual design

2.02 (08.07.2010)

  • small bugfix where on rare occasions (special PHP/server configuration) OPS creates an error

2.01 (07.07.2010)

  • adding more logging messages

2.00 (06.07.2010)

  • Now you can even duplicate a unique post instead of only promoting it

1.21 (05.07.2010)

  • delete spinning instructions as well when removing of plugin

1.20 (25.06.2010)

  • fixed little date bug

1.10 (18.06.2010)

  • first multi language version
  • German added

1.09 (18.06.2010)

  • tested for WordPress 3.0 – ok
  • log folder error message now appears inside admin header

1.08 (17.06.2010)

  • fixed unnecessary warning messages on development systems

1.07 (16.06.2010)

  • moving log folder to wp-content path to face some problems when updating

1.06 (15.06.2010)

  • fixing problems some might have with the creation of log folder

1.05 (12.06.2010)

  • new FAQs
  • checking of implausible values
  • new screenshots

1.04 (08.06.2010)

  • better logview (check for still not existing log file)

1.03 (07.06.2010)

  • small bugfixes

1.02 (06.06.2010)

  • using build in WordPress Cronjob
  • better logfile view

1.01 (05.06.2010)

  • little bugfixes, wording
  • including of deinstalation routine to delete all data
  • implementing a better log file viewer

1.00 (04.06.2010)

  • first Version

52 Gedanken zu „WordPress: Create unique content with Old Post Spinner

  1. Pingback: Wordpress Plugin: Old Post Spinner

  2. Raymond Terry

    I recently installed your plug in and then an update was posted, so I updated it. Now I am getting an error message after the update.
    This is the error message “Warning: implode() [function.implode]: Bad arguments. in /home4/rterryjr/public_html/wp-content/plugins/old-post-spinner/OPS_admin.php on line 131”

    1. Jürgen Schulze

      Hello, Raymond,
      thanks for providing me with this information.
      Actually this is not an error message, as it spells, it is a “warning”. This is in no way dangerous or destructive to the functionality.
      Normally the PHP installation on a productive system should not print out those warnings.
      This Warning will disappear once you select one of your categories as a category to omit and save your settings.
      But anyway I will fix this line of code so that this warning will not appear in the next version. Stay tuned.

  3. Jürgen Schulze Beitragsautor

    Hihi, ja ich weiß, das hast Du gut bemerkt.
    a) ich verlange dafür kein Geld
    b) mache ich das lediglich, damit ich einigen von denen, die sowas verkaufen, das Wasser abgrabe.
    Auf meiner Seite benutze ich das Tool gar nicht… guter Witz, ‘ne?

  4. Markus

    Was passiert mit dem ursprünglichen Artikel ? Bleibt der erhalten ? Wird jedesmal ein neuer Artikel erstellt und “hinzugefügt” ? Oder wird der ursprüngliche Artikel nur immer wieder verändert und wieder gepostet ?

    1. Jürgen Schulze Beitragsautor

      danke für den Hinweis.
      Ich sehe gerade, dass die Bildschirmkopien gar nicht aktuell sind. Dann hätte man nämlich die Einstellung “Duplicate the post?” sehen können.
      Wenn diese aktiviert ist, dann wird der Artikel dupliziert, ansonsten lediglich umgeschrieben und nach oben gestellt (mit einem aktuellen Datum versehen). Das Duplizieren zu aktivieren macht natürlich nur Sinn, wenn man zuvor das “Spinnen” ebenfalls aktiviert, da ja sonst nur eine identisch Kopie dupliziert werden würde.

  5. Jürgen Schulze Beitragsautor

    Kleiner Tipp noch: Beim ersten Mal würde ich vorschlagen eine Sicherheitskopie von WordPress zu machen – einfacher Export genügt.
    Denn wenn man die Einstellungen zu scharf stellt oder sich irrt, kann es schnell passieren, dass das eigene elektronische Tagebuch nicht mehr so aufgeräumt ist wie vorher. Besonders, wenn es sich wirklich um eigene Artikel handelt.
    Aber wenn es nur ein Spam-Tagebuch ist, um ein paar Euro Fuffzig mit “Adsense” zu verdienen macht das ja nichts.

  6. Krabat


    I tested your plugin and was initially very enthusiastic. When I deleted the spun article, after a re-run of 5 days, and subsequently realised what spinning actually means…, I was kind of pissed with myself for not properly understanding the consept.

    In stead of lying awake at nights, I therefore suggest the following to you:

    Old Post Spinner (maybe a new name for this different version is needed) should have the ability to

    • COPY a randomly chosen text
    • and place it at the desired position up front (as now)
    • ERASE the copied text after a desired number of days or never
    • Send email via system with info on which text is copied
    • send email via system with info on which text is deleted
    • have option (as string inside html code) to not delete said text after default number of days
    • Copy text from period only, or by categories/themes

    1. Jürgen Schulze Beitragsautor

      thank for you long comment. I hope you are not pissed any more 🙂
      I don’t think that it is really a good idea copying an identical post, because
      a) it does not bring any benefits to the reader
      b) Google does not like identical, duplicate post
      c) it’s hard to explain to people using the plugin the differences between Duplicate, Promote and Copying
      d) It’s hard to keep track of that

      This plugin already moves an random old post to any top position. I could be able to implement a function to (after x days) give the promoted post the genuine post date back, so that it will disappear into the archive again. This is not a big deal, but is it really useful?

      You don’t have to send mails about which post was promoted. All the information are stored in the log file. Though it wouldn’t be that difficult to implement.

      Also copying text just from one special period would clash with the function to use a minimum age. What will win, the minimum age or the desired period?

      And you already have the ability to exclude certain categories from spinning/promoting. Using only the categories that you want to be spinned/promoted would clash again.

  7. Tom

    Hi, I have a website with business listings, and I want to use Old Post Spinner to bring a random business to the 1st position. No spinning is required. However, when I turn on Old Post Spinner, I see “OPS goes on” in the logs – but nothing else ever occurs. I has been running for 5 days now, and I have even tried to restart OPS.

    In order to speed up the process, to see if something will happen, I have my settings at:

    Minimum Interval: 1 hr
    Random Max: 2 hr
    Post Age: 1 day
    Promote to: #1
    Original Date at Top: No
    Original Date at Btm: No
    Spin Content and Title: Off
    Duplicate the Post: No
    No categories are ignored.

    Any suggestions?

    1. Jürgen Schulze Beitragsautor

      Hello, Tom,
      thanks for your questions. Let’s see if I can help you.
      I just checked one of my blogs (WordPress 3.02) which is running Old Post Spinner. It’s still working perfectly.
      So the error lies on your site, you installation or your settings.
      Please try the followings

      Minimum Interval: 36 hr
      Random Max: 12 hr
      Post Age: 14 day
      Promote to: #1
      Original Date at Top: No
      Original Date at Btm: No
      Spin Content and Title: Off
      Duplicate the Post: No
      No categories are ignored.

      Send me your log files, you should find them at /wp-dontent/ops-logs/. Just zip them all together, than sent to 1manfactory(at)gmail(dot)com

    1. Jürgen Schulze Beitragsautor

      If you think you are troubled with your internal Wp cronjobs than you should try WP-Crontrol plugin.
      There is also a debug function in my plugin. Open “OldPostSpinner.php” and change the line
      define (“OPSDEBUG”, false);
      define (“OPSDEBUG”, true);
      But be careful. Now EVERY time you open a page on you blog an article will be spinned according to you settings.

    1. Jürgen Schulze Beitragsautor

      Hello, Graham,
      I am sorry, this is not possible.
      To achieve that I would have to find out about the mail-to-post mechanism, which I never had a look at.
      Any volunteers?

  8. Tim

    Is there anyway to limit how many times a post is spun? It would be awesome to have an option to spin each post 5 times and that’s it.

  9. Quentin

    Hi is there a way to save the spun article? As i would like to save each spun article. For example i would like to save 50 – 100 of the articles in .txt format.


  10. Jay

    Hi Jurgen,
    I don’t quite understand the difinitions.
    What does is the minimum interval between old post for?
    What does the random max interval for?
    What is the post age for?
    What is promote post to position?
    What is show orig pub date at top of post for?
    What is the other date at post end?


  11. Weight Loss Magazine

    It happened link this:
    The newly spinned post promoted to 1st position.
    The old post is promted ot 2nd positon with same date.
    This is not optimized since reader will see 2 posts closed together with same content (origin and spinned).

    How to keep olp post same date and position.
    Just only the spinned post to be promoted to 1st position.


  12. Dofollow wordpress

    Our webspider noticed that your blog is dofollow. We just launched the first wordpress dofollow search engine and we have also indexed your blog. This will increase the visitors. You have our url on our name on this commnent. We will be very happy if you will help us too a hand in promoting it by adding our url somewhere on your blog.

  13. Marcos

    Hello Jürgen,

    your plugin in works perfect with 3.1 THX
    Is there any way that posts can be posted in minutes in stat of hours`?
    Only there is a function with hour. Will be glad when u can make an update with minutes too.



  14. Mike

    I entered an article with the proper spinning content. However when it posted the post was empty. What have I done wrong?

  15. Heidi

    Thanks for the plugin…i think you should make a video with installation instructions from start to end…it’ll take a load off you shoulders…unless I am missing a link to it somewhere…pls do ASAP!

  16. Heidi

    …this is the error message i keep on getting when setting it up…”Please use a value between 1 and 9999 minutes as random interval.”…i have tried several variations of numbers to no success…

    I actually thought of contacting a programmer to work on this until i saw it on wordpress.org… 🙂

    1. Jürgen Schulze Beitragsautor

      Damn!!!!! I forget to check for 0
      So you can’t use 10, 100, 1000, 2000 and so on.
      Just figures without a zero work.
      I will fix that in the next minutes.
      Thanks for the hint

  17. Kenneth c Young

    Is it true that there is a vulnerability in your Ops Old Post Spinner that hackers can expose?.

    Kenneth c Young

  18. Corrado

    Hi there
    I just installed your plugin, all is fine but…. as soon as it starts… and write the log file I noted that many ping services (80%) did not work and return the following error message:

    Could not be pinged. Error message: “transport error – HTTP status code was not 200”

    How is possible

  19. Thomas B

    If I set min interval 200 and random interval 100, posting occurs every four hours exactly, in stead of varying between 200 and 300 min, as I would have expected.

    Otherwise great plugin 🙂


  20. Philip


    I just tried to test whether the plugin works by creating a single-post (dated 2 days ago) in a brand new blog and setting the following (see below) to see if it would update the post date to today (now). It does’t do anything. Naturally I want to be sure this plugin works before I deploy it on my active blogs.

    Minimum interval between old post promotions: 1 Minutes
    Random maximum interval (added to minimum interval): 1 Minutes
    Post age before considered for promotion: 1 Days

    Any ideas why it’s not working?

    Best regards,

  21. Bibo

    ich habe auf meiner WP 3.2.1 INstallation die Version 2.4.0 von Deinem OPS installiert und mache offenbar irgend was falsch.
    Muss man zusätzlich zu dem spinnbaren Artikel in dem OPS Eingabefeld auch noch einen “echten” Artikel schreiben?

    Ich habe im Setup angegeben, das min Interval soll 10 Minuten mit 2 Minuten Zufall sein und ein Artikel muss mindestens 0 Tage alt sein um gespinnt zu werden. Es soll gepinnt und dubliziert werden und nichts ignoriert werden aber nichts tut sich.

    Was mache ich falsch?

    1. Juergen Schulze Beitragsautor

      WordPress hat keinen wirklich funktionierenden Automatismus, um Befehle auszuführen.
      Damit es also klappt, muss jemand von außen die Seite laden und dann wird geprüft, ob bspw. eine bestimmte Zeit abgelaufen ist.
      Ich empfehle dir, bevor Du mit dem OPS scharf schießt, entweder eine lokale Testumgebung zu nutzen oder eine Gratis-Webseite.
      Denn wenn Du was falsch machst, kannst Du schnell mal eben ein paar hundert Seiten generiert haben, was bei Google nicht gut ankommen dürfte.
      Des weiteren empfehle ich dir, die Zeitangaben so zu wählen, dass pro Tag maximal drei Artikel erzeugt werden, denn mehr lässt die Alarmglocken schrillen.

  22. Rahul

    I am please to see this plugin.

    I have installed it on my Local pc (Window7 + WAMP) and tried to spin older post. But it not seems to be working.

    Minimum interval: 5
    Random maximum interval: 5
    Post age before considered for promotion: 0
    Promote post to position: 1
    Spin content and title? : On
    Duplicate the post? : Yes

    Sample Spun: This is {your|My|his|her} first post. Edit or delete it, then . {This|me|you} is your first submit. {Edit|delete} and start blogging

    Please let me know if I am missing anything.

  23. Rahul

    One more Que:
    I would like to run it manually without waiting for its next scheduled event.
    Which function should i call on button click?

    Thank you.

    1. Juergen Schulze Beitragsautor

      No, you can’t.
      At least not with this plugin because it would mean to implement a real connection to some system cronjob which can be troublesome to program.

  24. chido

    does it only work when you reload the page? because in my blog is that way, if you don’t reload or there are no visits it doesn’t make a post.

    Is that the way it works? I understood that no matter the visitors it checks the time and settings and automatically makes the spin and new post.

  25. Scott Allen

    I love OPS – works perfect for one of my clients who only has about a dozen posts so far and they’re all “evergreen”.

    For me, though, a lot of my posts are time-sensitive and a lot of them are in multiple categories, so just turning off certain categories doesn’t work well.

    What I really want is:

    1. The ability to choose categories to INCLUDE rather than EXCLUDE. No it’s not the same. If a post is in both categories A and B, if I EXCLUDE category B, I don’t get the post (how OPS currently works, as I understand), but if I INCLUDE category A, it should be included, whether it’s in B or not.

    2. The ability to include by tag rather than category. Then I could go through and just add a tag to all those posts I want OPS to recycle. Sure, I could use a category and then use another plugin to hide the category from the navigation, etc., but a tag would just be much better. I could make a tag called “evergreen” or “timeless” or “best of” or “classic”, and it would make sense, as well as give the OPS functionality I want.

Kommentare sind geschlossen.