Blog

How can I recover my WordPress site from an old backup?

By David Innes, RealBasics.com | March 10, 2024
“Rust in Peace,” photo by Flickr user Tom Driggers under a Creative Commons license

On the r/Wordpress subreddit someone asked

Help needed. I need to install an old backup
I have a jetbackup file from 2017 that I took from my old site. I was trying to bring it back up. I built [a test server on Amazon.] I can start the restore but I get a lot of errors. I was able to fix a few by fixing old syntax issues. I don’t think this is the best way. What do the experts here suggest?

User sghokie on Reddit

There are all sorts of reasons to restore an old version of WordPress from a backup. Historical, curiosity, nostalgia, recovery after disaster, even legal reasons. The good news is that WordPress core developers historically bent over backwards to preserve compatibility. But over time server, programming language, and general technology advances to a point where you can’t just run a restore script.

Here’s my somewhat edited answer to their specific question but it can be generalized to most older versions that don’t simply restore themselves.

Versions of WordPress from 2017 may not be compatible with modern versions of PHP. If you can dial PHP back to version 5.6 on your existing server then try that first. That version was most common in 2017 and so WordPress and all your plugins (including your backup/restore plugin) should work with that.

Otherwise you might try downloading Local by Flywheel, the desktop server app, from LocalWP.com. That’s quite configurable and, since it runs on your desktop, you can access the file system, access the database (with the Adminer database admin console anyway), run debuggers, etc. You might be able to piece things together that way.

If you’re trying to do a restore with the Jet (Jetpack?) plugin, you might try downloading WordPress 4.7 (released in 2017) and a 2017 version of Jetpack. (Version 4.9 or 5.0 were released in 2017.) Spin those up on your server. Then try your import again.

Then, you’ll want/need to inch your way forward. First, bump your version of PHP forward to the highest mark you can without throwing errors. Then, try updating WordPress core, then theme and plugins, etc.

There’s a very good chance your theme won’t be compatible with newer versions of PHP. Same for some plugins. Others will have simply disappeared. You may find you need to manually install newer versions if you can find them, or move or delete them from the your site’s theme or plugins folders.

Bottom line I’ve managed it for clients in the past. You just have to approach it like an old piece of furniture or art that needs to be restored. If you’re trying to do it yourself and find yourself running out of gas you can always contact us for a phone or Zoom call. We’ve got a lot of experience fixing older or broken websites and we’d love to help with yours.

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

Why the difference between real WordPress vs for-profit “WordPress.com” matters

By David Innes, RealBasics.com | March 2, 2024
Image “Data Thief – Hacker – Cyber Criminal” by Flickr user Blue Coat Photos

Short answer? Real WordPress is free, open-source, created and distributed by a not for profit foundation, and distributed to individual tens of millions of personal web servers around the world.Meanwhile, the for-profit, deceptively named WordPress.com is a social-media-style company like Twitter or Facebook, with terms of service that let the owners freely collect and sell your information.


Do you need to worry if the for-profit “wordpress.com” company starts selling their user’s data to the highest bidders? Not if you use the open-source and real WordPress software that’s freely downloadable from the non-profit WordPress.org.

So… what’s the difference? It ought to be pretty simple.

The real, open-source software is called WordPress and it’s downloadable from a non-profit organization called “WordPress.org.” You download the software and run it on your own account with a hosting company like SiteGround.com, MDDHosting.com, Cloudways.com, or Kinsta.com. (Note: those are examples of hosting companies, I don’t have commercial/affiliate relationship with any of them.)

So what’s confusing? The man who developed a free, open-source content management system later set up a company that offered limited, heavily modified trial versions of his free software on his company’s cloud infrastructure. Since his company has access to and at least partial control over his customers’ websites it’s possible for him to sell their personal information or allow GTP-style AI programs to train on his customers’ content.

Even the folks at Lifehacker confuse the two

As it happens, WordPress [ed – the commercial .com company] and Tumblr are preparing to do just that. As first reported by 404 Media, the parent company for both sites sites, Automattic, has a entered into a deal to sell user data from Tumblr and WordPress to AI companies like Midjourney and OpenAI. The AI companies intend to use the data to train their systems.

Source: LifeHacker: Tumblr and WordPress Are Selling Your Data to AI Companies

This is true only of the for-profit version and I’m sorry (but not surprised) they weren’t more clear. Unlike the for-profit version, if you have a real, legitimate WordPress software runs that runs on your hosting company servers, your data is your data! Obviously if your site is public then anyone can take a look. That’s fine, of course — it’s the whole point of having a website! But if you’ve got private pages or if you limit access only to those you give access to? That’s your version of WordPress, not anyone else’s.

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

Is blogging for SEO worth it?

By David Innes, RealBasics.com | December 19, 2023
"Keyboard" by Flickr user Toshiyuki IMAI
“Keyboard” by Flickr user Toshiyuki IMAI

The short answer is maybe blogging helps random strangers find one of your posts on the internet… but that’s not the best reason for blogging. Blogging instead establishes your authority, credibility, and availability.

The chance of getting freelance work from random search (eg “web developer near me”) is pretty low vs the odds that they find you through a referral. In other words they’re more likely to find you after a former client tells them “I worked with them and they did a great job.” Think about it: what’s the first thing most people do when they get a recommendation. They search for the person or company name, right? And when they find you and your site, your posts help reinforce that recommendation, confirming that you’re who they’re looking for and that you know what you’re doing. (Pro tip: a testimonial is a very good blog post.)

But also, blog posts really can at least fractionally increase the chance you’ll get found from “cold” searches because each post is a single-topic solution to somebody’s specific problem. And search engines want to give specific answers. So, for instance, if you’re a plumber and someone searches for “fix leaking shower fixture,” and you happen to have a post specifically about leaking shower fixtures, search engines will tend to put your answer above someone else’s post about fixing leaky faucets in general.

And finally, if you post somewhat regularly vs your competition, search engines seem to rank you higher than an otherwise similar individual or business who doesn’t blog or who doesn’t blog as often. Regular posting is a direct way to let Google know you’re still in business.

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

Other than sales, what else are business websites good for?

By David Innes (Admin) | October 21, 2023
Sculpture of two surprised gold miners examining a large chunk of gold.
Gold Strike” by Flickr user Tamsin Slater — licensed as Attribution-ShareAlike

Short answer? Everyone knows websites can be important for sales and marketing, sure. But what about recruiting and reputation management?

Early in my career I got a 2nd-hand referral for a surprisingly large B2B company that didn’t have a website. The referral was from a consultant who felt they should have one, even though the owners didn’t think they needed one.

Do you need a website for sales?

Thing is, these particular owners handled 100% of company sales with other CEOs on luxury resort golf courses. I don’t think they even had business cards! (Their assistants and attorneys probably did.) They correctly believed they didn’t need a website for sales.

That’s an extreme case but it points out that websites are important if and only if you need clients who will look you up either in search or to check your suitability after they get a referral or introduction.

For sales? Maybe not. But how about recruiting?

That said, the consultant wanted them to have a website because the company was off the beaten tracks and was having a hard time recruiting executives and high-skill employees. So the consultant felt a recruitment oriented website could help prospective hires get over concerns about relocating to the middle of nowhere.

Again, an extreme case, but the point is that websites aren’t just about direct sales.

If not for sales and recruiting, how about reputation management?

Final point: the first website I was paid to build was for an elementary-school curriculum company. As with almost all curriculum companies, back in the 1990s, there were 20-30 times more negative articles and reviews than positive ones. Without a website anyone searching for the curriculum online saw page after page of negative results. With a website and just a minimum of SEO key phrases (basically the company and product names plus “curriculum” and “education”) they became the top hit. And their pages and blog posts could directly counter the negative publicity, even though they didn’t need it for direct sales.

An extreme case yet again but it illustrates the point that a website can protect a company’s reputation even if it doesn’t need it for sales.

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

Principles for blogging or any other social media posts

By David Innes, RealBasics.com | October 21, 2023
Photo of a 1952 "Town Crier Championship" contestant reading from a decree while a nearby English police officer covers his ears.
Hastings” by Flickr User Leonard Bentley — licensed as Attribution-ShareAlike

The post is about using Instagram stories but it applies to social media posting in general, and blogging in particular. It’s the full text of an excellent article about posting strategy, from Reddit user Remarkable_Celery709. It was posted in the u/smallbusiness subreddit on Reddit. I almost never quote other people’s complete work, but I’m posting it here because it may violate the subreddit’s rule about only posting questions. Oh, I’m also posting the whole thing because it’s also very well written.

Remember, the author is talking about Instagram but it’s equally helpful for any sort of public posting from posting to your own blog to posting on Instagram, Facebook, or even TikTok.

Title: For those who wanna use Instagram stories to promote your business…

In this post, we’ll discuss how to boost engagement in your Instagram stories without divulging your private life, without sticking to the same topics, and without spending all your time on Instagram. These are three common challenges people face with their stories.

Respecting Your Privacy: Many of you may not want to share your personal life on your stories, and that’s perfectly fine. Your privacy matters.

Lack of Story Ideas: Figuring out what to talk about in your stories can be a struggle.

Time Constraints: Spending too much time on Instagram stories without tangible results can feel like a waste of time.

If you relate to any of these problems, you’re in the right place. I’ll share some practical methods to create successful stories without wasting your time.

Do Stories Need Planning?

Contrary to the belief that stories are quick and easy content, they do require some level of planning. While they don’t need extensive visual editing, a little structure is essential. We’ll use the MPR framework.

M – My Objective

Before creating a story, ask yourself: What is my objective for this story? It’s crucial because stories without a clear purpose won’t engage your audience. I, for instance, only post stories with a specific goal in mind. Some examples of objectives include increasing DM messages, generating content ideas, promoting a product or service, redirecting people to an external channel, or understanding your audience’s needs.

P – People’s Objective

The “P” stands for the objective of your audience. Once you know your objective, you need to provide something in return to engage your audience. For instance, if your objective is to find new content ideas, design stories with open-ended questions related to a specific topic. Offer something in return to capture their attention.

For example, if you want to understand people’s content needs, start by discussing common mistakes in stories and ask for their challenges and questions. Providing a glimpse of your expertise in your content encourages people to respond, especially if you schedule your content.

R – Relationship

The “R” refers to the relationship aspect. It’s about making your stories relatable to your audience. To create a strong connection, share an anecdote, a practical example, or a visual representation that resonates with your viewers.

For example, you might share how you recently had a drop in story views and then go on to analyze what went wrong. This relates to your audience because they can identify with similar situations. After providing an in-depth explanation, you can conclude with a call to action, such as asking your audience about their story-related challenges and needs.

In summary, a successful story combines a relational element, a clear personal objective, and an incentive for your audience. It captures people’s interest and leads to meaningful engagement.

MPR In Reverse for Personal Stories

This method can be applied in the reverse order as well, for impromptu stories. For instance, if you unexpectedly meet someone important while walking your dog, rather than simply sharing the story, think about the value it can provide to your audience and yourself.

Consider what results your audience can gain from this story. For you, it might be directing them to a related video, a free training session, or any other action that benefits you.

So, by applying the MPR framework, even unplanned stories can provide value to your followers and you.

Reddit user Remarkable_Celery709, posted in u/smallbusiness

Good stuff.

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

Why it’s a bad idea to use text in background images

By David Innes, RealBasics.com | October 10, 2023
Image with the "world's most famous man" meme.  The text says "I don't always fail at cropping, but when I do..." with an unreadable last line because the photo is badly cropped.

This is an awesome meme (the text at the bottom is intentionally cut off.) It nicely illustrates why including text on background images is a bad idea. Because background images get cropped as the screen changes sizes. On particularly small screens, the background image may also shrink too far to be readable. (This readability issue on small screens is a problem even for normal images with overlaid text.)

Also text in images isn’t accessible to visually impaired people, to screen readers, or to Google and other search engines. (Search engines are by far the largest “visually impaired” site visitors on the planet!)

Bottom line is whenever possible, leave text out of your images and overlay them with readable text instead.

(Note: I’m sorry I can’t find the original author of this meme so I can give them credit. I’ll update if I can find them.)

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

Do I need to setup SMTP to get WordPress to send email?

By David Innes, RealBasics.com | August 20, 2023
Mail boxes in Gåseberg by flickr
Mail boxes in Gåseberg by Flickr user aka CJ

Why do contact forms and password-recovery email messages work fine with some websites and not with others? A lot of it has to do with the way the web server is configured and/or the security settings for the client’s domain email. Most web servers can send simple email messages. Others, especially depending on what email service they’re using, need to jump through more hoops. Sometimes it’s as simple as editing an SPF string in the domain’s DNS record. Other times you have to add and configure your own SMTP plugin like WP Mail SMTP.

Without getting into too many details, here are the….

Things I check before manually setting up SMTP on a client’s site:

  • Can the site send email outside the domain? (e.g. to a generic email address like myexample@gmail.com.)
  • Can the site send email inside the domain (e.g. if the site is myexample.com can people with @myexample.com addresses receive email?
  • Does the host block outbound email? Some hosts, especially shared-hosting that wants to avoid blacklisting, block outbound mail by default.
  • Are all required DNS records correct for the domain? (SPF, obviously, but some email hosts, especially Microsoft 365, require more.)

If outbound email is enabled and all DNS records are set correctly and the system still can’t send mail to @myexample.com addresses, then you’ll probably have to manually configure an SMTP plugin.

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

Should you give a developer access to your hosting account?

By David Innes, RealBasics.com | June 26, 2023
No Pedestrian Access -- photo by Flickr user Joseph Nadler
No Pedestrian Access — photo by Flickr user Joseph Nadler

When you hire a WordPress professional to work on your site it’s pretty common for them to ask for

  • An administrator account for your WordPress website
  • Login access to your web server or hosting-company control panel

It makes sense that they’d need to log into your website as an administrator. If they couldn’t they couldn’t add or remove plugins, make changes to the theme (colors, fonts, menus, widgets, footers), or run fairly important configuration and optimization routines. They also can’t make in-site backups, or, more importantly, restore them. So that makes sense.

But server access too? That can feel a lot like you’re giving them the keys to the kingdom. What’s up with that?

  • Is it safe?
  • Do they really need it?
  • What will they do if you give them access?

Ok, speaking for myself, I don’t need access to the server to if my changes are going to be very minor. But otherwise, yes, if I’m doing serious work on your website I’m going to need to be able to access the server so I can

  • create and/or restore a backup if something goes wrong. (Bonus: Murphy’s Reverse Law says you’re less likely to need to restore a backup if a backup is available and installable.)
  • edit code files like functions.php without risk of “white screening” with a bug or typo. (They can edit existing files through the WordPress theme editor but if they introduce a PHP error the whole site can crash… and then they don’t have access to the editor to undo it.)
  • add files or folders to your (child) theme to override or enhance current site functionality. Example: custom WooCommerce templates, almost any customizations to The Events Calendar, page-builder module overrides
  • Backup, restore, or perform cleanup on the database

You may be able to just give your developer FTP access, though that can be a pain if they also need to access the database.

It’s always best if you can “delegate” access to your account (e.g. what GoDaddy calls it) or make someone a “Collaborator” (e.g. what SiteGround calls it) or otherwise give them tech-only access. Most hosting plans let you do this, especially since most credible hosting companies require 2-factor authentication.

But, yeah, it’s pretty normal to give developers some sort of access to your server.

And yes, once they’re done it’s also perfectly fine for you to revoke their access by deleting their WordPress admin account and removing their collaborator access. If for some reason you needed to give them your own credentials it’s a very good idea to go back in once they’re done and change your passwords.

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

Note to self: fixing “weird” Unicode characters like ‘Â’ and ‘’’ in a WordPress SQL database

By David Innes, RealBasics.com | June 23, 2023
Photo of rusted typewriter keys by Flickr user darkday
Photo “Retired Keyboard” by Flickr user darkday

This post is based in part on a more detailed post from Jeff Starr at Digging Into WordPress. I’m posting it here so I can easily find the recipe I most often need. Definitely visit Jeff’s post for a full explanation.

99.999% of WordPress users are unlikely to need to import from an older archived website database into a new one. This post is for the remaining few (including me!) who run into character mismatches when they do have to do this.

Note that this post is more of a “shorthand” than a detailed explanation. Note also that you can break your website, badly, if:

  • you don’t have at least one full backup plus a database backup and you’ve tested to make sure you can restore your site from the backups you’ve just made, and
  • you already know what you’re doing.

Run these code snippets in your MyPhpAdmin or Adminer database manager.

First this to clean up post titles

UPDATE wp_posts SET post_title = REPLACE(post_title, 'Â', '');
UPDATE wp_posts SET post_title = REPLACE(post_title, '“', '“');
UPDATE wp_posts SET post_title = REPLACE(post_title, '”', '”');
UPDATE wp_posts SET post_title = REPLACE(post_title, '’', '’');
UPDATE wp_posts SET post_title = REPLACE(post_title, '‘', '‘');
UPDATE wp_posts SET post_title = REPLACE(post_title, '—', '–');
UPDATE wp_posts SET post_title = REPLACE(post_title, '–', '—');
UPDATE wp_posts SET post_title = REPLACE(post_title, '•', '-');
UPDATE wp_posts SET post_title = REPLACE(post_title, '…', '...');

Then this to clean up post content

UPDATE wp_posts SET post_content = REPLACE(post_content, 'Â', '');
UPDATE wp_posts SET post_content = REPLACE(post_content, '“', '“');
UPDATE wp_posts SET post_content = REPLACE(post_content, '”', '”');
UPDATE wp_posts SET post_content = REPLACE(post_content, '’', '’');
UPDATE wp_posts SET post_content = REPLACE(post_content, '‘', '‘');
UPDATE wp_posts SET post_content = REPLACE(post_content, '—', '–');
UPDATE wp_posts SET post_content = REPLACE(post_content, '–', '—');
UPDATE wp_posts SET post_content = REPLACE(post_content, '•', '-');
UPDATE wp_posts SET post_content = REPLACE(post_content, '…', '...');

And yes, there are other characters out there. And other columns in other tables you may also need to clean up (comments for instance.) Adjust your scripts accordingly. There are also “more complete” ways to do this that involve editing database, table, and column character codes.

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

What’s the difference between a Post and a Page?

By David Innes, RealBasics.com | June 18, 2023
Screen shot of a page that uses a filter to show a list of only one type of post.
Screenshot of our Portfolio page, which uses a filter to show a list of only one type of post.

In the r/WordPress subreddit user named only_sort_by_new asked a great question about how to use pages and posts (lightly edited)

Help deciding on if something is a Post/Page and how to organize a sauce review site with Categories/Tags?

Currently working on my first site which is suggesting and reviewing sauces. I love trying any type of new sauces, so wanted to start writing some blog posts and reviewing specific sauces.

The issue is, that I am very confused and stuck on how to layout a site like this. Is each type of sauce a Page and then when I write a blog Post mentioning the sauce, I just tag that sauce? I imagine I will make many blog posts that reference a specific sauce… that is why I am thinking that I might need a Page (not a Post) for each sauce/sauce type. And every blog post mentioning that sauce (via Tags) will pop up on that sauce page.

So would the above breakdown above be Pages that use Parent/Child structure? Or are those actually Posts too and I just use Categories in a hierarchical way? Or need to utilize tags for this to work?

Reddit user u/only_sort_by_new

When it comes to the front end of a website neither WordPress nor Google makes much of a distinction between posts and pages.

Instead the best way to look at them is…

  • pages are typically accessed through navigation. So think of menus, “learn more” links, and callout “card” links on main pages.
  • pages are also used for permanent “behind the scenes” pages like quiz results, thank you pages, shopping cart and other checkout pages.
  • posts are more often found through searches, incidental links in text, and especially in lists. (The “blog” page is a list. So are “related posts.”)
  • the biggest difference is that posts are typically organized by categories and tags rather than menus.

While we don’t typically think of e-commerce products as “posts” it can be a good idea to think of posts the way we typically look at products in e-commerce. You browse catalogs and search for products instead of navigating through menus for them. There might be menu items for categories of things, but adding every item in your shop to the navigation menu would be waaay too unwieldy for the average shopper.

Think about posts the same way. Typically you’ll have just a handful of navigable pages, while you might have hundreds of posts.

In the original poster’s particular case it makes more sense (and is probably easier) to create each sauce as a post and use categories and tags to help find them on their site.

They can then choose from a ton of “posts” or “loop” plugins, blocks, modules, and widgets to display the right sauces on more structured pages.

Here’s a simple example would be our own Portfolio page. It’s a permanent page available through the navigation menu, with a few paragraphs of explanations, and then a “posts” module a filter set to choose (query) only posts marked in the “Portfolio” category. We go a step further on our Website Updates, Repairs, And Upgrades page with a different “posts” module with filters that limit results to posts in the Portfolio category and the “rebuilt website” tag.

Bottom line, though, is that pages are meant to be navigated to with menus and buttons; posts are meant to be listed, filtered, searched for, or “mentioned” in in-text links.

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail