Web design

WordPress for beginners

WordPress is a content management system: instead of coding every page, you write the content in a dashboard and WordPress turns it into a page. To start you need three things, a domain, hosting and about half an hour; the rest of the road is a set of choices, and this lesson puts them in order.

  • Lesson 8 of 12
  • Beginner
  • Free, no signup

From empty hosting to your first backup

  1. Install

    The host installer does it in two minutes. The real time goes on the five settings after it.

    1
  2. Theme

    A reversible decision: the theme changes, the content stays. First month on the default.

    2
  3. The plugins you need

    Write a list of jobs, not of products: backup, security, SEO, speed, forms.

    3
  4. First content

    Post or page, a short Latin slug, and the structure on paper before the editor opens.

    4
  5. Backup

    Not the last step but the one that makes the rest reversible. Restore it once.

    5

These five steps get the site up; they do not keep it fast or secure. Speed and security each have a path of their own.

Last checked: Facts and tool names in this lesson are re-checked against their sources on this date.

What is WordPress, and why are there two of them?

WordPress is software that runs on a host, keeps your content in a database and rebuilds a page every time somebody opens it. What it does for you is simple: it separates writing, editing and publishing from code. What it does not do is decide for you what the site should contain.

The first snag is the name. Two things share it, and most beginner tutorials walk past that. The WordPress.com support page says it in one sentence: both run the same WordPress software, and the main difference is hosting.

  • WordPress.org: you download the software for free and install it on your own hosting. You buy the hosting and the domain separately, you can install any theme or plugin, and maintenance is yours.
  • WordPress.com: a hosted service that runs the same software for you. There is less to break and less in your hands; installing the plugin you want depends on the plan.

This lesson is about the first one, because for a business in Iran that is usually the answer that works: you buy the domain and hosting with your own card and you can reach a local payment gateway. Paid WordPress.com plans want a card that works outside Iran, and that single line settles the choice for most readers of this page.

Put one misunderstanding aside now: WordPress is not a drag and drop site builder. A page builder plugin can make it feel like one, but that is not what it is, which is why it sits apart from the services compared in the next lesson in this path.

Two WordPresses, one piece of software

WordPress.com

  • Hosting is part of the service; you buy none separately
  • Updates and security are theirs
  • Installing the plugin you want depends on the plan
  • A paid plan needs a card that works outside Iran

WordPress.org

  • The software is free; you buy hosting and a domain separately
  • Updates, backups and security are yours
  • Any theme or plugin can be installed
  • Fits an Iranian card and a local payment gateway

Neither is wrong. For most readers of this page the choice is settled by payment and a local gateway, not by features.

Installing: the five steps that actually matter

Tutorials that walk through a manual WordPress install line by line are close to useless for a beginner today. Almost every shared host has an installer that does the same job in two minutes: site name, admin username, password, done. If you have no hosting yet, our piece on what to look for in WordPress hosting goes deeper than this page can.

What actually takes time is five settings after the install. Get them right on day one and they cost nothing; skip them and each becomes a day of work later.

  • Permalinks: set them to the post name. The WordPress default builds addresses with a question mark and a number. More importantly, do not change this setting later, because it also changes the address of every existing post and breaks every link pointing at them.
  • HTTPS: turn it on. Most hosts issue a free certificate, and this post explains what it does.
  • Site title and tagline: write them. The WordPress default tagline is a stock English sentence that sits on sites for years.
  • Timezone and language: set them to yours, or the publish time on your posts will not match your clock.
  • The sample post and page: delete them. A site still carrying a Hello World post tells a visitor that nobody is home.

After those five, log in and open the front page. The site looks bad, and that is entirely correct; there is no theme and no content yet.

How do you pick a theme, and where must you not edit it?

A theme is the presentation layer and it is separate from the content. That separation is the single most useful property of WordPress: you swap the theme and the posts stay where they are. So choosing a theme is a reversible decision and does not deserve weeks of thought.

Our position for someone just starting is plain: spend the first month on the default theme that ships with WordPress. The reason is not taste. Multipurpose themes sold with forty ready made demos usually drag several of their own required plugins along, so on day one you buy a maintenance debt for things you do not yet know you need. When you do get to buying, we wrote the four questions to ask before buying a theme separately.

Know one distinction, because guides blur it. Block themes are edited with the same editor you write content in, and the header and footer are blocks too. Classic themes get their appearance from settings screens and code. Neither is wrong; the buttons simply live elsewhere, and if you follow a tutorial written for the other kind you will hunt for a menu that does not exist.

And one rule whose cost shows up later: never edit the theme files directly. Anything you write into them is erased by that theme's next update. The right way is a child theme. WordPress own documentation defines it exactly so: a child theme is an extension of a parent theme that lets you modify an existing theme without directly editing that theme's code. Building one is a folder and a file, and that single half hour saves your changes from the next update.

Plugins: fewer, but maintained

A plugin is a small program that adds a capability to WordPress, and because installing one is a single click, sites fill up with them over time. The common advice to install fewer plugins is correct but hands you the wrong measure. The right question is not how many. It is: when this plugin breaks, who fixes it?

Before installing anything, its page in the WordPress plugin directory shows three numbers that take ten seconds to read and change the decision: active installations, the date of the last update, and the highest WordPress version it has been tested up to. The Yoast plugin page, which is one we run on this site ourselves, shows all three next to each other so you can see where on the page they live. A plugin that has not been updated for two years is not necessarily broken, but it means that if it trips over the next WordPress release you are waiting for somebody who may not come back.

The jobs almost every serious site reaches are few: backups, security, SEO, caching and speed, a contact form, and WooCommerce if it is a shop. Notice those are jobs, not product names. On this site we use All-in-One WP Migration, Solid Security, Yoast and FlyingPress for the first four respectively, and our own theme code builds the contact form; that is our choice, not a best of list. If a shop is on your roadmap, our piece on WooCommerce says from how many products it starts to hurt.

Know one temptation as well: a few lines of code in a child theme instead of a plugin. Sometimes that is right and sometimes it is the most expensive decision available. The rule we hold ourselves to is that we write our own code only where we can still maintain it next year; everywhere else a maintained plugin beats an orphaned snippet.

And if your host has WP-CLI, that same list with the four columns the fast path below needs is one command:

wp plugin list --fields=name,status,version,update --format=csv

Before you install a plugin, look at this

Plugin review sheetTen seconds

Read on the plugin page

  • The date of the last update
  • The number of active installations
  • The highest WordPress version it is tested up to
  • The author's latest replies in the support section

Do not decide on these

  • The total plugin count of the site, on its own
  • The stars, when the number of ratings is small
  • That a language model suggested the name
  • That it came with the theme, so it must be needed

None of these signals is conclusive. A plugin untouched for two years may be perfectly fine; there is simply nobody behind it.

Your first content: a post or a page?

WordPress has two main content types and choosing between them follows one simple rule. A post has a date, sits in categories, appears in archives and feeds, and is ordered by time; a blog article is a post. A page has no date and is standing content: about, contact, services, terms. When in doubt, ask whether someone will still be reading this next year.

The block editor treats every piece of content as a block: paragraph, image, list, table, button. Three things are enough to start. Enter creates the next block, the plus sign lets you pick the block you want, and the side panel shows the settings of whichever block is selected. You learn the rest while working.

Three things beginners usually skip, and which are painful to come back to:

  • The slug, the last part of the address. WordPress builds it from your title, and a non Latin title produces a long encoded address. Write a short slug in Latin letters, right at the start, because changing it after publishing means breaking links.
  • Categories and tags. Categories are the structure of the site and stay few and meaningful; tags are description. A site with seventy tags, each holding one post, also has seventy near empty pages.
  • The featured image, used in listings and when the page is shared. Leave it out and the space does not stay empty; the theme puts something of its own there, usually not what you wanted.

And one habit that beats any trick: write the structure of the page on paper before you open the editor. Writing straight into the editor with no map is exactly what produces pages that go nowhere.

Backups and updates: without these two, the rest is pointless

Take one sentence seriously: a backup you have never restored is not a backup. A zip file that has been produced every night for months and never opened is, until the day you need it, only a feeling of safety. WordPress own documentation gives the reason in a line: your database holds every post, every comment and every link on the site.

Here is a detail from our own server that tutorials do not carry. On this machine every PHP request is killed after 180 seconds. That number is not exotic; nearly every shared host has a ceiling like it. What it means for you is this: a plugin that tries to compress the whole site inside one request will hit the ceiling on a large site and stop halfway. Sometimes it reports an error and sometimes it says nothing at all. So after your first backup, do two things: look at the size of the resulting file and check it against the real size of the site, and restore it once onto a test site. That single restore is the difference between a backup and a folder.

Updates have two halves. WordPress installs its own minor and security releases by itself, and you should leave that on. Themes and plugins are yours, and that is exactly where sites fall behind. The order we hold to is simple: back up, then update, then open two or three important pages with your own eyes. If something broke you find out then, rather than two weeks later from a customer.

And if you ever change hosts, that job has its own route and doing half of it is dangerous; we wrote the WordPress migration guide separately.

Where is WordPress the wrong choice?

WordPress was built for content, and the further a project moves from content the worse it fits. This is not usually said by people selling WordPress.

Places where we do not reach for it either: software whose core is complex business logic with content as a shell around it, anything that must update in the moment such as a live board or a chat, the backend of a mobile app, and any project whose data model does not fit posts and pages and has to be defined from scratch. You can bend WordPress into those shapes with code and plugins, but the result is both more expensive and more fragile than a program written for the job from the start.

There is one border case that comes up often: shops. WooCommerce works well up to a point, and past it the maintenance becomes a job of its own. We put that border in the WooCommerce piece, and it depends on product count and pricing complexity rather than on taste.

And in the other direction: if what you want is a five page site and you do not want to maintain anything at all, WordPress may be more than you need. That comparison is the next lesson.

WordPress or something else?

Is the core of what you are building content, or logic?

If it is content

WordPress is the right shape

  • A brochure site, a blog, a portfolio, services
  • Pages that get edited regularly
  • Content that has to be findable in search
If it is logic

Do not reach for WordPress

  • Anything that must update in the moment
  • The backend of a mobile app
  • A data model that does not fit posts and pages

The border is not always clean. A shop sits right on this line, and the answer depends on product count and pricing complexity.

The fast path, with AI

Everyone has heard the advice to install fewer plugins and almost nobody has a method for it. This is the method: instead of thinking about each plugin one by one, you hand the whole list to a model once so it sorts them into four groups, then you check only the claims the model has no right to know. The work is mechanical, so a fast cheap model is enough; our current pick is in the AI section of this site.

  1. Get the real list. With the command shown above if your host has WP-CLI, otherwise from the Plugins screen in the dashboard, with the same four columns: name, status, version, pending update.
  2. Write in two lines what the site does and which jobs must never stop. That is the only thing the model does not know about your site, and without it any sorting it does is a guess.
  3. Run the recipe below. The output is a table, not a recommendation.
  4. For every plugin left in the needed group, open its page in the WordPress directory and read the three numbers yourself: last update, active installs, tested up to. The model does not know these three, and if it writes them it invented them.
  5. Back up, then delete one at a time, and after each deletion test exactly what the last column of the table told you to. Deactivating is not enough; the files stay and still need updating.

Copy-ready recipe

Role: technical manager of a WordPress site. Task: triage the plugin list.

My site: {one sentence on what the site does}
Jobs that must never stop: {contact form / shop / newsletter / bookings}

Plugin list (name, status, version, pending update):
{paste the output of step one here}

Put each plugin in exactly one of these four groups and write one sentence of reasoning for each:
1. Needed: without it one of the jobs above stops.
2. Replaceable: the same job is done by a built-in WordPress feature or a few lines in a child theme.
3. Duplicate: it does the job of another plugin in this same list.
4. Unknown to me.

Rules:
- You do not know the active installation count, the date of the last update or the highest tested version. Never guess. Write instead: check on wordpress.org.
- If you do not recognise a plugin name, put it in group four. Do not guess what it does.
- Do not suggest any new plugin. Only this list.
- If two plugins may conflict, say in the reasoning column which two and why.

Output: a table with four columns. Name, group, reasoning, and exactly what I should test on the site before deleting it.

Before you trust the output: The model has not seen your site. A plugin it confidently calls unnecessary may be the one running your payments, and that is exactly why steps four and five are not optional. Read the three numbers the model has no right to know yourself, and delete nothing before a backup you have actually restored once. Delete one at a time, not in a batch; remove ten together and if the site breaks you will not know which one it was.

AI in this kind of work

Working with WordPress, AI genuinely buys you time in three places: reading an error whose meaning you do not know, sorting the plugin list, and writing a small snippet for a child theme. Three places not to lean on it: picking plugins by name, anything that touches the database directly, and any claim about whether a plugin is maintained today.

Tools that actually help

  • Claude Good at reading a PHP error and explaining a child theme snippet line by line. Iran is on neither of Anthropic two supported-countries lists; we read that on Anthropic own page.
  • Gemini Enough for sorting a plugin list and for basic WordPress questions, and it handles Persian well. Google own page says the Gemini web app runs in over 230 countries and territories, and Iran is not on that list.
  • ChatGPT The most common choice and acceptable for these jobs. We have no entry for it in our AI section yet, so we make no claim here about its access or pricing.

Where it backfires

Two failures repeat here and both happen quietly. First, the model names a plugin with total confidence that is abandoned, renamed, or was pulled from the directory altogether, because the WordPress directory moves faster than any training set. It does not know the active installation count, the date of the last update or the tested up to version, and those are exactly the three things that make the decision and are printed on every plugin page in the directory. Second, the snippet it hands you for functions.php works today and is erased by the theme's next update, because the model does not know you are editing the parent theme rather than a child theme. One non technical warning belongs here too: the wp-config.php file holds your database password, so pasting it into any chat window is handing that password to another company. If you want help with an error, send the error text, not the config file. For how each tool can be paid for from Iran, see the buying guide.

Sources: WordPress.com: WordPress.com vs WordPress.org WordPress: Child Themes WordPress plugin directory: the Yoast SEO listing Anthropic: supported countries Google: where Gemini Apps are available

Where this advice stops

This lesson gives you a site that works, not one that is fast or secure. Speed and security are jobs of their own and we have only gone as far as sane defaults here. The more important boundary is elsewhere: if the core of what you are building is business logic rather than content, WordPress is the wrong shape and no number of plugins fixes that. And this lesson does not claim WordPress is the right choice for you; that question is the next lesson.

From our own work

We accept the fewer plugins rule too, just not with the measure everyone quotes. On the day this lesson was checked, this very site had 24 active plugins, 15 of which are code we wrote ourselves and 9 of which came from outside. For those 15, when something breaks we fix it the same afternoon; for those 9 we wait for somebody else. So the count is not the point, the ratio is: every plugin is a maintenance commitment that you either accept yourself or hand to someone. One more thing we learned on this same server and do not see in tutorials: every PHP request is killed after 180 seconds. A plugin trying to compress the whole site in one request hits that ceiling on a large site, sometimes with no message at all, and you find out on the day you need the file.

Real follow-up questions

Is WordPress free?

The software is free and always has been. What costs money is everything around it: hosting, a domain, and a paid theme or plugin if you end up needing one. There is no site with no cost at all; the cost simply sits somewhere else.

Do I need to know how to code to use WordPress?

For setting up and running an ordinary site, no. For anything that falls slightly outside the settings screens, a little HTML and CSS carries you, and those are the first two lessons of this same path. You find the border quickly: the point where a small change needs a whole new plugin is usually the point where a few lines of code would have been simpler.

Does WordPress make a site slow?

Not by itself. What makes a site slow is usually a heavy theme plus twenty plugins each adding files to every page, on hosting that cannot carry it. And the route is not guesswork: measure first, see which files load, then remove. If you do not have time for that, site speed work is one of the things we do as a service.