Sweet Home (Page, that is)

web-search-greyWhat should be the on front page of your website?

If your focus is your blog, then make the blog the front page. If, however, you’re not posting regularly and frequently, go for a “static” front page. It doesn’t make much of a difference, SEO-wise, but when people visit your site and see an 6 month old post as the first thing on the home page, they will probably just bounce off — unless you have incredibly compelling content.

People get all wrapped up in Search Engine Optimization. How can I get to be #1 on Google? (Hint: You can’t.)  How do I “own” a keyword across the internet?

Focusing on SEO is the wrong place to start.  Good content is the basis of a good website. Focus on what it takes to attract an audience and use SEO to reinforce that.

Call The Grammar Cop

1 Comment

badgeIt’s a harsh and judgmental world out there.  When you’re making your presence known on the web, people have little to judge you by other than the quality of your writing.  Punctuation counts. Spelling counts. Using the right word (not just a correctly spelled one) counts.  Remember, the Grammar Cops are out there waiting to pounce.

Rules of posting:

  1. Spell check.
  2. Check your punctuation.
  3. Check that you used the right words.
  4. Look for missing words.
  5. It’s vs. its; they’re vs. there vs. their.  Pay attention to that.
  6. When in doubt, check a style guide like Strunk & White, the AP Style Guide, or the Chicago Manual of Style.

You will be judged.

Wordfence: Block Bad Logins

There are dozens of computers trying to login to this site over the course of a day. It’s not an important site, not a site that’s chock full of credit card information, and not a site that matters to anyone but me. (Yes, I put out my lower lip while typing that last one.) Nonetheless, the login attempts continue.

The attempts are coming from bots… computers that are infected with malware that puts them under the direction of various command and control servers. They scan, look for WordPress sites, and try to login. If they succeed, they let someone upstream know, and then push malware onto the system.

I have blogged about this before. I’m using WordFence as one of the defense layers for this system. It locks out anyone who tries to login with incorrect information. The login settings are:


lick to enlarge

Converting a Drupal site to WordPress


I recently converted this site from Drupal 7 to WordPress. Here’s how.

1. Move data from Drupal’s database into a WordPress database.

Liran Tal has posted a PHP script on Github that does the heavy lifting. Read the instructions carefully. I probably should have read them a couple more times.

wp-drupal-logos2. Validate the data conversion

Almost all of the content of the Drupal site was converted into the page type on the WordPress site. I used a bit of SQL to switch them to posts, then hand fixed the 5 or 6 that really should have been pages.

The SQL is

update wp_posts set post_type='post' where post_type='page';

3. Get the images and other media

This part involved several steps.

First, I copied all media files from “/sites/default/files” on the Drupal site into “/wp-content/uploads/” on the WordPress site.

Second, I ran a script to go through all posts and replace all occurrences of “/sites/default/files” with “/wp-content/uploads/”. Searchreplacedb2.php is handy script for search/replace tasks like this. When this was done, the posts displayed images, but the media library was empty, at least according to the media button on the WordPress dashboard.

Third, I used a WordPress plugin, Add To Server, to tell WordPress about all those files I dropped into the uploads folder. Here’s a handy “how to” on that.

Update 1:  I installed the Simple 301 Redirect plugin to handle any changes I missed and to deal with all the links that Google already had it its index.  I redirect “/sites/default/files/*” to “/wp-content/uploads/*” and added a few more redirections handle a few cases where I changed the names of posts and pages.

4. Housekeeping

I set the theme to TwentyFourteen just to get things going. I had to create the main navigation menu using the menu editor, set a home page and a blog page, and do the other usual stuff that comes with creating a WordPress site.

One of the frustrations is that Drupal’s editor (CKeditor) handles character sets differently that WordPress’ editor, TinyMCE. The symptom of this is that the page looks OK when viewing normally, but is truncated in when viewing.* Typically, there’s an invisible character that TinyMCE abhors. My short term solution is to flip the editor into HTML mode, copy, and paste it into a text editor. I then do a search on the first character that TinyMCE doesn’t like and replace it with a blank. Copy and paste back into TinyMCE, click Preview, and see if it fixes it. If not, find the next place and continue.

The long run solution is to make a list of all of the characters, some invsible, some not, and write a bit of SQL to convert each into its proper relacement.

Update 2: I hosed something in the database.  I’m not sure what. When I did the conversion again, I didn’t have this problem.  Moral:  Be prepared to do things two or there times until  you get it right.

5. Theming

I wanted a minimal theme that would get a responsive result with the least effort. I’ve been using underscores (_s) for a long time and wanted to use bootsrap for responsiveness. Luckily, Themekraft developed a started theme called _tk_master, that mashes together (in a very appropriate fashion) bootstrap and underscores.

6. To Do

So, about six hours after starting, I have a working website with a reasonably readable theme. There’s still a lot to do.

  • Build a visual gallery of developed sites.
  • Change the footer to three column footer.
  • Working with IrisB to develop a non-grayscale color pallette.

Call via VOIP and save your minutes

If you’re like me (and, really, who isn’t?), you push the limits of your mobile minutes every month. Wouldn’t it be nice to be able to get around that?  Google can be your friend.

If you use Google Voice, you can make and receive calls for free through your WiFi only devices (e.g., iPad, Kindle Fire) using the Google Hangout app. On an iPhone, calling from the Google Voice app makes a call through your carrier, using minutes, but making a call through the Hangout app uses VOIP, so it’s just data (and therefore, minute free).

If your computer has a microphone and speaker, you can make and receive calls directly from the computer when you have hangouts enabled.  Yeah, you can do multiple-party video calls in Hangouts, but sometimes all you need is POTS*.

*Plain Old Telephone Service

8 Simple Tips for WordPress SEO

Eight simple SEO tips:

(1) Use a good SEO Plugin like http://wordpress.org/plugins/wordpress-seo/

(2) When dropping images onto a page, make sure you use alt and title tags and make them actually useful information.

(3) Post and page titles should contain the really relevant keywords.

(4) Use permalinks so the page title is reflected in the URL.

(5) If your page is organized in a hierarchy of ideas, use H2 for the first main idea, H3 for the details of that idea, etc.  Keywords are important here, too.

(6) Make your content relevant and try to keep pages/posts centered around just a couple of ideas

(7) Check your snippet and override if necessary. Use the Yoast plugin for this.

(8) Cross link the pages on your site and use the linked text to provide additional keywords. Never use “click here” as the link.  

Use me or use WIX? Should you Do IT Yourself?


Should you — a small business or understaffed non-profit — be building your own website? There are certainly a lot of do it yourself choices. There’s a discussion taking place on a LinkedIn group for WordPress developers on the topic “How do you compete with DIY drag and drop web builder sites?”.  Here’s what I had to say on that discussion.  

I have a couple of points to discuss with potential clients:

  1. Should you be working on your business or building a website?
  2. Are you trained in writing compelling sales and marketing copy? Do you know what a call to action is and when to use it?
  3. How long do you think it will take you to build a site on WIX (or whatever)? Really? Think more like 12-18 hours, because it’s iterative. Where are you going to find the time and what’s your time worth?

Does this make sense to you?   

Book Review: WordPress 3.7 Complete

WordPress 3.7 Complete link to publisher siteWordPress 3.7 Complete
Authors: Karol Krol, Aaron Hodge Silver
Packt Publishing: http://bit.ly/1iLUPME

WordPress 3.7 Complete offers, well, a complete explanation of WordPress. The first chapters, directed at WordPress users, is a patient but not “for dummies” walk through what you need to know if you own a WordPress site.

Chapters 1 through 5 are a great introduction to users of WordPress. If you’re a professional WordPress developer, buy your clients a copy of this book and do their training only after they’ve read those chapters.

There is one unfortunate aspect to this book. Almost as soon as it was published, WordPress 3.8 was released. All of the information is still current and directly applicable; the book has lost no value with the update. The only real affect is that some of the illustrations of the WordPress dashboard are no longer what the site’s owner will see. The value is still there. There are also enough links to the WordPress Codex and other the publisher’s own site that the content should be current through the life of 3.8.

The book starts off where we all start off: Terminology and “What is WordPress,” and what’s the deal with WordPress.com and WordPress.org? As it gets more into the creation of your first site, I like that it starts with content and worries about theming later. I see way too may people picking a theme then worrying about content. The step by step instructions for posting content will get the most technophobic user posting content fairly quickly.

Differentiating pages and posts waits until Chapter 4, as do menus, headers, and other customization options provided in most themes. This chapter also includes the media library and image galleries. It would be nice if this chapter also included discussion of the video shortcodes; users often seem confused about embedding YouTube and other video content.

Chapter 6 talks about choosing and installing themes and offers some good advice about choosing safe themes and the purpose of themes. “The trick of choosing a theme for your site is to understand its purpose and make your decision …. on the thing you need the theme for…” Excellent advice!

Chapter 7 gets into theme development. It’s a high level view that occasionally swoops down into code. This isn’t the book I’d recommend for serious theme developers, but it offers a good overview for people who want more insight into how WordPress works and why hiring a developer to create a custom theme is not inexpensive. The development focuses on building themes from scratch. I’d have preferred a discussion that talked a bit more about building from starter themes like Underscores (http://underscores.me) or one of the standard WP themes like TwentyTwelve. Nonetheless, by the end of the chapter, the reader (who may have glazed over at all the code) has a pretty good idea about the division of work and why things in WordPress work the way they do.

Chapters 8 is a catchall, talking about using WordPress as a podcasting platform, RSS feeds, and offline site tools. I’m not sure why that last bit is in this chapter; it seems to me that it might have fit better earlier when adding content was the topic.

Chapter 9 follows in the path of Chapter 7, getting back to areas of interest to developers. This chapter deals with developing plugins and widgets. It’s a decent overview but the widget development section lacks a discussion of what I think are two essential areas for widgeteers: Managing and storing options “the WordPress way” and providing a clean uninstall for your widget.

Chapter 10 is back to operational considerations: Running a multi-user site and multisite. I think the multi-user discussion is something that more readers will find valuable; the authors delve into questions of process and user management. These are critical areas for multi-user sites and need to be considered sooner rather than later in the development of the site.

Chapters 11 and 12 talk about my bread and butter, “Creating a non-blog website.” WordPress may have started off as a blogging platform. It’s evolving into a fully featured content management system (CMS) that can present any content on the web. The chapters also covers e-commerce, community sites, membership sites, etc. These topics are worth mention but a probably deserving of their own books. Custom post types make their appearances here. I think they might have fit better in Chapter 7 or 9.

In summary: A good book for those just getting into WordPress as users or those wondering about becoming site-builders and developers. An excellent training source for those handed a working site and told “OK, it’s yours. Start adding your content.”

Full Disclosure: I received a free epub copy of the book in exchange for writing this review. The publisher did not review or approve its contents.