I just moved a tiny brochure site into Joomla and lived to write about it. Four pages, one contact form, a list of services, and a blog that was really two posts from last spring. The owner wants to add content without touching HTML, maybe post news weekly, and get better search love than a folder of files can bring. With Joomla 1.0 stable and 1.5 RC getting buzz in forums, this felt like the right weekend to try a small, real move. Here is what worked, what bit me, and what I will repeat on the next one.
Start with the content model, not the template
The sweet promise of a CMS turns into a mess if you do not map content up front. Joomla wants a structure. Sections, Categories, then Articles. For a small site this feels like overkill, but it pays back the first time you add a fifth page without touching the menu markup.
I began with a quick inventory. Every URL, every title, every meta tag from the old site. Then I drew the shape. One Section called Site. A few Categories for Services, About, News, and Contact. Each page became an Article. That gave me clean menu items backed by content that can grow. I skipped the old Frontpage trick and built a Home menu item that shows a static Article with a small news module on the side. Simple beats clever here.
Menus do the heavy lifting in Joomla. They decide what shows up and where. A Menu Item can point to a single Article, a Category blog, a list, or a component. That means your navigation is a content plan. If you have more than one way to reach a page, watch out for duplicates. Pick one primary Menu Item for each Article to avoid two URLs for the same content. That matters for search and for your sanity.
Next, modules. Think of modules as small boxes that sit around your main content. Contact info, a mini news list, a search box, a call to action. Keep modules few and focused. The small site moved with just four modules. Main menu, a text box with phone and email, a latest news box that shows three headlines, and a footer menu for the legal bits. Less chrome makes the content faster to read and easier to manage.
One more thing before design. Content editing. I installed JCE as the editor so the client can paste from Word without spraying font tags. Set formats in the editor, lock down font size buttons, and teach short paragraphs. That is the best polish you can give a site that wants to be read.
Templates and module positions without tears
Templates are the candy aisle. Many choices, bright previews, and a sugar crash later. For this site I went with a clean two column template with clear module positions. Before installing anything, check positions with the template preview trick and a quick read through index.php of the template. You want a left or right column, a top area for a menu if needed, and a footer. Fancy sliders are fine for a bigger project but they slow down small sites and burn trust fast.
Typography beats features. A readable body font at 13 or 14, a strong H2 for page titles, and plenty of white space made this site feel new without heavy graphics. Keep widths fluid or at least not too fixed. Old monitors, new laptops, and that wide screen in the office all exist at the same time right now.
Joomla 1.5 brings template overrides and the new MVC approach, which is great, but the small site I moved runs on 1.0 for the moment because the server has PHP 4 and the client needs stable today. On 1.0 you cannot override output, so pick a template that already prints clean HTML. Test Internet Explorer six early. Better to fix float quirks now than learn about a broken menu from a client email later.
A tip on images. Use a single sprite or just a couple of small images. Do not let the editor insert width and height inline unless you know the template will respect it. Compress everything. A small site with ten requests loads fast and feels snappy. A small site with thirty requests feels sloppy.
Install Google Analytics by pasting the tracker into the template before the body end. That way it is on every page. No plugin needed, less trouble during upgrades. Put the favicon in place so the browser tab and bookmarks look right. It is a tiny detail that makes the site feel finished.
URLs, redirects, and search that does not fight you
The old site had static URLs that Google already knows. Breaking those would hurt. First step was to rename Joomla htaccess file and turn on core SEF. That gave me human readable links without query strings. For extra control I used sh404SEF which handles page titles, meta, and 301 redirects in a friendly screen. OpenSEF can do this too, but sh404SEF felt lighter for this project.
Then I mapped every old URL to its new home. I added 301 redirects for each one in the SEF tool. If you are not using an SEF extension you can use the Rewrite section in htaccess. Keep it simple. One old URL to one new URL. Do not chain redirects. Pick a single base URL with or without www and stick to it in configuration. Use the same setting in sh404SEF so you do not create duplicates.
Meta stuff does not write content for you, but it helps. Set a short global site description in Joomla configuration. Then write a custom page title and a short description for the main pages. Skip keyword stuffing. Write for people first. Use clean headings with the words you want to rank for once or twice. Make each page about one thing.
Next I built a sitemap with Xmap and submitted it to Google Webmaster Tools and Yahoo Site Explorer. Now the crawl will match the new structure fast. I also created a custom 404 page inside Joomla that has a search field and links to top pages. When someone lands wrong, they get a way out that does not feel like a dead end.
Spam is real. If you plan to accept comments, pick a comment extension with moderation and captcha. If you do not need logins, turn off user registration. Lock down the contact form to send only to known addresses and test mail sending, because some shared hosts throttle or block mail unless it uses SMTP.
When Joomla fits and when it does not
This small move reminded me where Joomla shines. It is great when you want clear sections, more than one kind of page, a team that adds content, and the option to grow into things like a catalog or a simple community. If all you need is a straightforward blog, WordPress gets you there faster and with fewer moving parts. If you need custom content types with fields and deep workflows, Drupal is worth a look. For a five page flyer that will never change, flat HTML still wins. Pick the tool that matches the shape of your site, not the logo that is trending in forums today.
Practical checklist for a calm Joomla migration
- Inventory every URL, title, and meta from the old site before you touch Joomla.
- Pick your version: 1.0 for stable on PHP 4, or test 1.5 RC if your host has PHP 5 and you can live with some rough edges.
- Draw the content map: Sections, Categories, Articles. Keep it simple but clear.
- Choose a clean template with the positions you need. Test in Internet Explorer six and Firefox.
- Install essential extensions: JCE editor, sh404SEF or your SEF tool of choice, Xmap, and a backup tool like JoomlaPack.
- Set Global Config: turn on SEF, set the base URL, set cache to on, and enable gzip compression if the host plays nice.
- Rename htaccess and confirm mod rewrite works before you build menus.
- Build menus first, then place modules. Avoid duplicate menu paths to the same article.
- Define page titles and descriptions for key pages while you enter content. Avoid boilerplate.
- Compress images and keep them sized for the template. No giant headers.
- Paste the Analytics code into the template once. Verify tracking on day one.
- Configure email and send test messages from the contact form under real load.
- Turn off registration if you do not need it. Reduce the attack surface.
- Set file permissions to 755 for folders and 644 for files. Avoid 777 on shared hosting.
- Create 301 redirects for every old URL. Test them with a header checker.
- Submit the sitemap to Google and Yahoo. Fix any crawl errors that show up.
- Check the favicon, error page, and print view. Small touches matter.
- Set timezone and site name in configuration so dates and titles look right.
- Make a full backup with JoomlaPack before cutover. Keep a copy off the server.
- Flip the DNS or switch the docroot during a quiet hour. Keep the old site handy for a day in case you missed a redirect.
Small sites deserve grown up tools, and Joomla can be that tool when you set the structure first, keep design lean, and treat URLs like assets.
Small site today, real CMS tomorrow.