Speeding up WordPress

My! This is slow.  More will follow!

Benchmarks

Using Google Page Insights,

Page Speed at Time 1

I have two speed benchmarks.

Mobile: 67

Desktop: 85

Page Speed benchmarks from a small WP site

My main page (that is not responsive) using a WP theme written by myself has comparative figures of 91 and 96.

Page Speed  benchmarks from a large Drupal Site (university)

Mobile: 52 & Desktop: 65

Page Speed benchmarks from another university site (CMS unknown)

Mobile: & Desktop: 72 & 74

Tests

Remove unneeded plugins and themes; changed themes

Marginal improvement

Mobile: 68

Desktop: 85

Found a theme with following speeds

Mobile: 79

Desktop: 86

Blog too big? Tidy up and make eBooks?

Blog too big to manage? Does WordPress have plugins to help?

I have almost a thousand posts on this blog and I would dearly love to tidy them up; but this is a horribly big job.  Posts for one year alone come to about 500 printed pages and there is almost a decade of writing on here.

My search for  eBook plugins  for Word press begins

MPL plugin for WordPress

I have just now downloaded and activate my first eBook plugin: MPL.

Over the coming days I will test it and then try others too.

What I hope to do to tidy my blog

Goal 1:  Dead posts

When I spot a post that I really do not want to keep, I would like to delete it.

The post might be important to other people though.  Before I delete it, I will check on the Google statistics on Google Analytics, the analytics through Jetpack, and if it is an old post, the statistics on the original wordpress.com blog that I had and that redirects here.

How do I know if someone links to it?  And does it matter, if the link delivers no traffic?  It would be good to find out though.

My statistics will include

  1. The number of posts considered for deleting
  2. The number retained anyway
  3. Why I retained them

Goal 2: Interesting posts that might maintain a sense of my interests changing over the years

A post may be pretty much dead but it might be a market of my interests over the year.  Nostalgic perhaps, but I would like to complete those.

Maybe, I should simply make one of my eBooks – The first decade.

Indeed, this is the value of writing. I will do this first to give myself an overview of the blog.

Can I download a list of all 1000 posts, with their dates, tags and comments and look for a pattern?

Can I find out their current traffic too?

Task 1:  Get overall statistics for my blog

?? What is missing here?

WordPress to Drupal : First steps

 

I plan to use Drupal to re-organize this large blog: flowingmotion.jojordan.org.  This post lists the beginning steps.  Each step is quite large and if you are completely new to web development, you will need to look up and complete each step as a mini-project.

  1. Make a development environment on my laptop.  Set up WAMP.
  2. Set up Drush so that I download Drupal and its modules more easily.
  3. Set up a clean database in WAMP / PHPMyAdmin.
  4. Download the latest version of Drupal 7 and unpack it into folder in c:/wamp/www/myblog
  5. Go to my browser and install Drupal: “localhost/myblog”
  6. Use the command line to use Drush : “cd c:/wamp/www/myblog”
  7. Use Drush to download and enable the modules for “pretty url”
    1. drush dl token pathauto
    2. drush en -y token pathauto
  8. Chose a theme and use Drush to download/upload it.  I used Stanford’s Open Framework and downloaded it manually to /myblog/sites/all/themes.
  9. Logged in, set the time to UK and set up the date format.
  10. Under Appearance, set the Open Framework to the default
  11. Use Drush to install the modules needed for WordPress_Migrate (see above for the commands): migrate ctools features  media media_youtube migrate_extras
  12.  As of today’s date though this will change, do not download WordPress_migrate with drush. Go to its webpage and install the latest development version
  13. Go to Add Content and select Migrate. Look for the Worpress link
  14. Follow the instructions – all of the them!
  15. I  tried to retained my WordPress urls but that did not work and the aliases are borked too.  As it was not straightforward finding this workflow, I will leave this for now and worry about sorting my comment.

These are the basic steps for importing WordPress content into Drupal. It is not perfect but as this is a one off import, it is satisfactory.

WordPress to Drupal

Here begins my migration from WordPress to Drupal.

Why move from WordPress to Drupal?

I don’t advise anyone to move from WordPress to Drupal unless they have a strong reason.  WordPress is friendly and you will be functional and confident in few months.

Drupal is overly complicated, bloated and very badly documented.

So why move to Drupal?

Drupal is designed for complicated sites.  The Views facility, that is, it’s query function is very powerful.

This blog, Flowingmotion.jojordan.org has grown very big.  I don’t even remember everything i have written.   And I would like to find out.  I would like to delete what is no longer of any use. I would like to organize what is still valuable. And I would like to rewrite what could benefit from rewriting.]

The benefits of migrating from WordPress to Drupal

I intend to download the content of this WordPress blog onto a development site on my laptop and reorganize its content.

I will use a Drupal module to do a rough-and-ready migration.   Then I will start allocating posts to “Books”.   That is, I will set up a “Book” and cross-reference them to existing posts.  Once I have done that, I will be able to make a plan for each Book or collection.

I have also chosen a simple base them to think ahead to a “responsive” theme. I want people to be able to read my “Books” on their mobiles. When I rewrite the posts, I will take the smaller screen estate into account and chunk and structure the posts so that people can follow a complicated idea more easily.

Rebuild eStore on WordPress in half-an-hour

In my current mood, I do not recommend the eStore plugin but if you must, pay your money and do this. I had to rebuild my store. Now I know how, it should take half-an-hour. It took my over 9 hours with back and forth to the vendors. Here’s some tips to help you understand what is involved.

So calm down, read carefully, and work carefully. 30 minutes should be ample especially with some preparation long before you get into trouble. So I will write as if you are building the eStore from the very beginning.

#1 License and commercial details

• Keep two pieces of paper – the email with the download link and the Paypal transaction.

• Keep the email address you used and the Paypal transaction number – they work as your permanent license. You need them to communicate with eStore.

• I have stored them in various places like my email, on the CD where a backup of the plugin is stored, in my diary in case I am away from my desk when it crashes – which it will it seems.

#2 Help and forum

Now sign up to the forum and change your password. Again you don’t want to do this when your shop is collapsing and you are under pressure.

#3 Supercache – not

Then download the plugin and use it. Don’t use Supercache even if your hosting service says to. And even though eStore says things like “if you are using Supercache”. They mean “please never use Supercache”.

If you are in Europe, don’t use Supercache. It stops people changing their details in your cart and shows the details to other customers. Without stopping to worry too much about it, it seems that this breaches Privacy laws horribly.

And don’t delete Supercache if you find you have it running with eStore because it eStore will break you WordPress dashboard.

You must deactivate, if not delete eStore, take down Supercache, and rebuild eStore. Horrible, huh?

#4 Rebuild eStore

Rebuilding eStore is much easier than eStore makes out. This is what you need to know.

Your WordPress site has two parts: the code is loaded up in one part which you can see using FTP. The content of your posts is loaded into a MySQL database which is accessed through phpmyAdmin.

When you back up your WordPress site, only the MySQL database is getting backed up. If you want to restore your database, you still need a skeleton WordPress site to house it. You can always rebuild a Worpress site from scratch and put back in them, and modications and plugins. So remember to back up any themes that you have bought, any child theme you have written, and to list the plugins you use and any licenses that you have like for your spam catcher. This is not stuff to leave till tomorrow. Always do it immediately.

So let’s assume you do have your MySQL backed up, and you do have the modifications to your WordPress theme backed up and notes of what is where on your website.

To rebuild eStore, you also need a good copy of their code. If you bought it recently, you have one. If it is a few months old, get the commercial details together and to their forum to hunt, and I mean hunt, for a link for automatic updates. Use the commercial details to get updated copies of the plugin.

Save the up-to-date plugins somewhere on your C drive (remembering to backup them up on CD later). Now what you are going to do is wipe out the offending plugins and write back the code for the plugins.

Use FTP or Filezilla to look at the WordPress PHP for your website and track to wp-content/plugins. Delege the wp-cart-for-digital-products and any offending caches. You can do that because only the code hangs in those foldders. The details of your shop have been stored in your MySQL database (which is backed up anyway, right?).

Now you can transfer the new plugin from your hard drive to the folder where the old eStore hung out. And all should be good.

The key is to be clear where everything lives and that the details of your shop are in MySQL and the code for the plugin is in what you see in FTP (your theme is also there). The only shop assets you can see in FTP are under wp-content/uploads. If you are selling digital goods, that’s where they are. All the tetchy little details of the shop and who bought what are in the MySQL database with your posts, comments, users etc.

I hope this helps. Rebuilding eStore should take about half-an-hour. It took me 9 hours. It needn’t.

CHECK OUT SIMILAR POSTS

Two Important Tips when using WordPress on a local server like WAMP

How to use WordPress on your laptop

Some basics first.  Beginners use the free, hosted WordPress blogs on www.wordpress.com.  The next step up is to self-host your blog by using free software from www.wordpresss.org at a self-hosting service whom you pay around USD10.00 a month.  The hoster, such as Dreamhost host a lot of WordPress blogs and will set up the basic shell for you within about 10 minutes.

If you want to be a  little bit more ambitious and make or edit your own theme, then you can turn part of your own computer into a self-hosting service.  The first step is to download  WAMP (assuming you use Windows).  WAMP gives you an Apache server, mySQL databases and PHPadmin.

All you do to get everthing running is

  • Download WAMP into a directory c:/wamp (follow the download instructions)
  • Set up passwords for root and IP 127… at PHPadmin activated following WAMPserver in Start/All Programs
  • Use Windows Explorer to go to c:/wamp/apps/PHPadmin and edit your password the config.inc file

$cfg[‘Servers’][$i][‘auth_type’] = ‘config’;
$cfg[‘Servers’][$i][‘user’] = ‘root’;
$cfg[‘Servers’][$i][‘password’] = ‘yourpassword’;

  • Set up  a new database ready to receive your wordpress.
  • Make a new directory under c:/wamp/www and upload an up-to-date version of wordpress from wordpress.org
  • Edit the config-sample.php file following instructions at wordpress.org

Two important tips to using Wordress on Wamp

  1. When you edit the config.inc file for WAMP save it using the Save As command.  Just closing the file updates the text but throuws up an error.  Not sure why but i wasted an evening on this.
  2. When you are working with a fresh installation of WAMP, go into into its menu box and make sure the module – rewrite is on.  If mod_rewrite is not on, you will not be able to use “pretty” permalinks.  Your wordpress will say you are using them but when you try to view the page, you will get an error because wordpress cannot find the page in mySQL even though it is on!

Two time-consuming obstacles that you can avoid!

Break your blogging learning curve into 10 chunks

Wordpress Meetup by David Recordon via FlickrHow to post a blogpost

I have a friend who went from loathing computers to editing blogposts. . .overnight.  I goggled.  That’s not a steep learning curve.  That’s Batman.

So I suggested, he write a ‘new post’ and still thinking that is a huge learning curve for a magazine-themed blog, I’ve put together these steps.  It’s not a complete “button-push” guide (Batman doesn’t need that).  It’s the chunks one needs to get a post together.

Login

1 Login just as you did before(http://websitename/wp-admin and put in your username and password).

Find “add new post”

2 You should be in the Dashboard.  Look top left and you will see “Posts” on the left.  If you go to “Posts”, you get a list of Posts.  If you choose “Add New”, you will see a familiar page.  It’s blank and ready for you to write your masterpiece.

Write your stuff

3 You can continue to write your post in Word and cut & paste.  To save yourself some aggro,  cut and past using the special WordPress rabbit hole.  When you look at your “Add New Post”, you will see two rows of buttoms.  Look for the clipboard with a W on it.

If you can’t see the buttons, check two things. Look just above-right of the buttons and you will see Visual and HTML.  Make sure you on Visual.  (HTML means code – you’ll need that later and that’s why the screen might have come up that way).

Then if you still can’t see the W, click on the very right hand button on the first row. It makes the second row come-and-go.  See why I thought you might need this list.

Now you have “clipboard W”, hit it and a new box called Paste from Word comes up.  Paste (or Cntrl V) and choose Insert at the bottom.  All you are doing here is stripping out any Word-specific formatting that might give you a headache later.

Your masterpiece should be in front of you.

Make your stuff look nice

4  Right now, your post looks like a teenager wrote it.  You can put in some headers by going to the Paragraph button on the left.

Click the little arrow to get the drop-down list and add some Heading 2.   Just put your cursor on the phrase that is a heading, go to the drop-down list, and click on Heading 2.

Or add some words for a heading, put your cursor on any word in the heading, go to the drop-down list, and click on Heading 2.

If you left other words on the same line as a Heading, they are also turned into a heading.  Just go back to the list and hit Paragraph, move the words where they should be, and make the heading-phrase into a heading.

Save Draft

5 Now it is time to save. Accidents do happen.  Top right is a Save Draft button.

Add a category and some tags

6  The Category tells the computer where to put your post.  Highlights is one of 5 posts in the flashing box.  The others go in the boxes on the front-page.  Choose one (side right).  If you chose Highlights, you will need to pick an old Highlighted post later on and change its category to something else.

Tags are a modern index.  If you are writing about soup of the  day, put in soup, specials, butternut, for example.  Later on, when you want all your soup posts, or all your butternut posts, or better still, when a customer wants to know all the things you ever did with butternut, they will search for your tags.  They will put butternut in the search box and the computer will list all the posts about butternut.

If you forget your tags, it is not a disaster. It’s just untidy and we can fix it later.  If you forget Category, the computer will get confused and probably just save your post and not show it to anyone. We can fix it later too (by editing), but you will be confused too for a moment because it will look as if your masterpiece has been gobbled up.

So if something funny happens, check whether you forgot your category.

Add an Excerpt (at the bottom)

7 More writing.  Add a short summary at the bottom of the page in the Excerpt box.  I find the summary come sreadily to mind andis often better than what I wrote about.  Use 2-3 sentences.  They go in the highlight box and in the box on the front page.

Add a picture

8 Now for a bigger job – add a picture. We will do this in two parts.  First, we will look at just adding a picture for the Library.  Then we’ll look at bringing in a new picture.

  1. Put your cursor top-left of your post.  Later, you can experiment putting it elsewhere.  For now, just do it the regular way.
  2. Look just above your buttons at Upload/Insert. The icons that follow are pictures, video, music and ? (you tell me!)
  3. Choose the first icon.  A new box will come up with three choices: From Computer (your box), from URL (from the internet), Media Library.   You’ll use From Computer when you put in your own picture. For now, use Media Library.
  4. We have heaps of pictures on there and you can see that sometimes it is simpler to use your own.  For now, find the picture you want (or can use – perfection comes later).
  5. Click show and you will see a screen that you will use often.    Baffling.
    1. For now you want the Link Url (that’s where the picture is physically sitting right now – on  a big computer in the States).  Highlight it, and copy it ready to paste it just now.  If you forget, you will have to come back here; that’s all.
    2. You want alignment – right will do fine right now.
    3. And you want Medium.   The picture is probably bigger.  You want the computer to fix the size to around 500 x 300.   Any smaller and it looks messy.  Any larger, and it takes over your screen.   The computer will sort out the resizing.  Just pick the best option.
  6. Insert into post and wait a few seconds.  Hey presto, you can see it with your words.   Save Draft (Accidents do happen!)

Add the picture url

9  Remember just now you highlighted and copied the url.  Whiz down your post to the bottom where you see Custom fields.  Paste the url into the box on the right. Make sure the box on the left says “image”.  Update if an update button pops up.

Also make sure that there is no blank space before the  http of your url. I often get a blank trapped there and that causes the picture not to show on the front page.  It doesn’t destruct the picture; it just causes confusion.

Add a title

10  Last job now – add your title.

Keep it short and keep it original. Google uses the title to find your post.  So you can’t say Soup of the Day everyday.  Perhaps start just be giving the soup its full name.  Butternut Soup.  Chicken Soup.  You’ll get more imaginative as you warm up.

Post!

All done.  Post and check. Hit on the blue button, top right, that says Publish.

Wait a bit and then when it says it is done, hit on MuchAdo at the top left and you will go to the Home Page.   You should see your post where you wanted it.  (Remember to re-categorize one of the Highlights if you need to).  Hit on your post and you should see the whole post.

Well done.  More experiments later.  This is a heap of learning even for  Batman. And call me if things get muddled.  Life is too short to be annoyed by computers

Now I’ve written this in Word so I am about to follow my own instructions.

Download resources from WordPress with a download manager

Download Manager

UPDATE:  It turned out that this plugin was difficult to manage as were both “Download Monitors” and “Drain Hole”.  I am now using Downloads Manager (with an s).  It works like a dream but there is one thing I am not sure about. Files are stored within the plug-in directory.  That may be a security hole – I need to check that out.  So if you take this route to get going, back up well!

Old version:

I discovered an excelleChristmas Gift Wrap byL'Amour Olivia via Flickrnt WordPress plugin that allows readers to easily download resources from a WordPress blog.

It’s easy to download and install.  There’s just one trick – to add  “download_page” at the end of the post.  But change the ” ”  to [].  I couldn’t put the square brackets here or the download page would come in the middle of the post.

Signature Manager

Instead, I also downloaded the plugin called FT Signature Manager and I’ve added the link to the download manager in my signature so I don’t have to remember reach time I write a post.

Pdf downloads

And while I was at it, I downloaded a plugin to allow people to convert a post to pdf.   I am not a pdf fan, but pdf is better than the long messy printouts that comes with printing from a browser.

I hope you find the plugins useful.  Any comments and feedback will be useful as I learn to make my blog more functional.

The first document that I added is a 6 stop ‘itinerary for exploring the vistas of appreciative inquiry and positive psychology for people who want to explore the opportunities and challenges of this paradigm.

Step 5: Consolidating my online strategy – moving my content from WordPress.com to self-hosted Dreamhost

Importing WordPress content to self-hosted DreamhostFlow One: Fractal graphic image by L Kaestner via Flickr

Was difficult but I got it sorted eventually.

I began with my content on my old blog: http://flowingmotion.wordpress.com, and  I had already installed the shell of WordPress using a One Click install on Dreamhost.

Export

To move my content from my old blog to my new blog, I went to my old blog (on WordPress.com), chose Admin, scrolled down the left-bar to Tools, and selected export.  WordPress automatically downloaded all my posts, categories, tags, comments and authors to a file on the  hard drive on my laptop.

Import

To upload the content at my new blog on Dreamhost, I went to http://flowingmotion.jojordan.org/wp-admin and logged in. I chose Admin, scrolled down the left-bar to Tools and chose import.

Import Fail!

I followed the instructions and it timed out after 30 seconds.

Roadblock

If I were importing to a blog on my localhost (WordPress on my laptop), I could edit my .htaccess file and set the maximum execution time to 3 minutes.  I can’t do this if I have One Click installed on Dream Host.  I have access to all other files but not that one.

Workaround

Fortunately, someone has already solved this and has written a program to split the WXR (RSS XML) file that I had exported so successfully from my original blog.

WordPress WXR (RSS XML) Splitter

WordPress WXR (RSS XML) Splitter is downloadable as a zip file.   I made a sub-folder in my WordPress themes folder and unzipped the splitter programme there.  Then I ran it and inserted the path and name of the file of blog content that I had downloaded from WordPress.

Advantages of splitting the file of your blog content

My objective was to split the file into smaller files that I could import into my new blog one after the other.

I didn’t want to faff about so I cautiously set the splitter at 40 posts per file.  I suspect more could be crammed in but I went the cautious route of 23 by 40 posts.  Splitter runs fast and made me 23 files neatly labelled from 0 to 22.

I went back to my new blog and tried again (Admin-Tools-Import).  And it all worked perfectly though it took me well over half-an-hour.

Result

So now I have a working theme with all my blogs, categories and tags, on a self-hosted blog at Dreamhost, and I can start tidying up details like RSS feeds, Google Analytics, email subscribe forms, and so on.

UPDATE from Dreamhost

“If I were importing to a blog on my localhost (WordPress on my laptop),
I could edit my .htaccess file and set the maximum execution time to 3
minutes.  I can’t do this if I have One Click installed on Dream Host. I
have access to all other files but not that one.”

You do have access to the .htaccess file. The One-Click installer doesn’t
prevent that, you have access and can change/delete any file in that
directory.

The problem is that the “php_value max_execution_time 180” addition to
the .htaccess file will not change how PHP runs in the DreamHost
environment. It worked on your home computer because you are running PHP
as an Apache module (mod_php). On the DreamHost servers however PHP
processes are run in CGI mode. This means PHP will work independent of
Apache and therefor doesn’t look in the .htaccess file (this file passes
instructions to Apache) for configuration changes. When running PHP in
CGI mode most configuration changes come from the php.ini file which is
owned by the root user and therefor can’t be modified directly by your
user.

Step 4: Consolidating my online strategy – prepping my WordPress shell to import my blog content

Migrating from WordPress.com to self-hosted

My overall goal here is to organize my online assets and my specific goal right now is to move my 2 year old blog from WordPress.com to a self-hosted WordPress blog on Dreamhost.  Though self-hosting costs a monthly fee and takes more maintenance, self-hosting allows me to control the theme, get Google Analytics and use advertisements.

So far, I have completed these steps

  • I bought a domain name, jojordan.org
  • I made a neat frontend for my domain using Posterous and connected it to the domain name that is housed at Dreamhost
  • I set up a sub-domain on Dreamhost flowingmotion.wordpress.om
  • I used Dreamhost’s one One Click install to set up WordPress including an admin account
  • I zipped a theme that I had edited on my local host version of WordPress and tested it on a dummy account

Uploading a theme

Now I am ready to import my own theme to my self-hosted version of WordPress.

I don’t need to login into Dreamhost.  I simply go to my browser and type in the address of my blog:  http://flowingmotion.jojordan.org/wp-admin and login in as admin (not me).

Now I can go to Appearance in left side bar and Add Theme.  I use Upload and Browse to upload the them from my hard drive.  Activate. Check. Done!

Setting up permalinks

Now the last task before I come to get the content here is to match the permalink style on my self-hosted blog to the style here.  If I don’t do that, then the post titles are going to get scribbled and people won’t be able to follow old links and bookmarks to find the posts.  I may as well leave them behind, in other words.

To prep the permalinks, I look at the bottom of the left sidebar, choose Settings/permalinks, and and choose the 2nd option, day and name.  Check they are same as usual.

Ready to import content

Now if I am right, I am ready to import content.  I will come to my hosted blog, go to dashboard and export all the content to my hard drive.  This usually trips up over size and timing.   As can never remember what I wrote, I will write it down this time and make post 5 in this series!

But that will be from the new blog!  See you on the other side!