Start by mapping your site structure and content on paper before touching WordPress. Decide on your pages, navigation hierarchy, and key conversion paths. This prevents you from rebuilding three times because you skipped planning. Install WordPress on your hosting (most Canadian hosts like SiteGround or HostPapa offer one-click installers). Pick a minimal starter theme like Underscores, GeneratePress, or Kadence as your foundation. Avoid bloated multipurpose themes with 400 features you'll never use. Create a child theme immediately so updates don't wipe your work. Build your homepage template first. Use WordPress's block editor (Gutenberg) for content if you want speed, or code custom page templates in PHP if you need precise control. For most business sites, a hybrid approach works: custom header.php and footer.php files, then block patterns for flexible page content. Keep your CSS organized in the child theme's style.css or use a build tool if you know Sass. Optimize as you build, not after launch. Compress images to under 200 KB before uploading (use TinyPNG or ImageOptim). Lazy-load images below the fold. Install a caching plugin like WP Rocket or LiteSpeed Cache early so you can test real-world speed. Aim for under 3-second mobile load times from the start. Test on actual mobile devices, not just Chrome's responsive mode. Safari on iPhone renders differently, and 60% of Canadian traffic is mobile. Check your contact forms, navigation dropdowns, and any JavaScript interactions. At Ottawa SEO, we code custom themes for clients who need unique layouts that convert, but we use GeneratePress or Kadence for speed-to-market projects where the structure is standard. The framework matters less than your content hierarchy and page speed. If you're not comfortable with PHP, page builders like Bricks or Oxygen give you more control than Elementor without the bloat, but they have a learning curve. Budget 40–80 hours for a proper custom site if you're doing it yourself for the first time.