01 What You Need Before You Start ▼
You don't need to be a tech person. Just a computer, an internet connection, and about an hour. Here's what you'll set up:
- Domain name — your web address, like
yourname.com. About $10–$15/year. We use Namecheap. - Free hosting — the service that puts your site online. We use Netlify (free).
- Email forwarding — so emails to
you@yourname.comland in your regular Gmail. We use ImprovMX (free). - Google Workspace (optional upgrade) — a real Gmail mailbox at your domain. $7/month.
- Cloudflare (optional) — speed boost and extra security. Free.
- Calendly — online booking calendar. Free plan available.
- Stripe — accept credit card payments. Free to set up; 2.9% + 30¢ per charge.
02 Buy Your Domain Name ▼
- Go to namecheap.com. Search for your desired name (like
yourname). - Pick .com if available — it's the most recognized. Add to cart.
- At checkout: keep Domain Privacy ON (it's free and hides your home address). Skip all add-ons.
- Create your Namecheap account and pay.
03 Get Free Hosting With Netlify ▼
First Upload
- Go to netlify.com. Click Sign up and create an account.
- Find the big "Drag and drop your site folder here" box.
- Drag your entire site folder (the one containing
index.html) onto it. - Wait ~30 seconds. Your site is live at a random
.netlify.appaddress.
Updating Your Site
- Go to app.netlify.com → click your site → click the Deploys tab.
- Drag your entire updated folder onto the drop zone at the bottom.
- Wait for it to say Published. Open an incognito window to see the latest version.
index.html. If your site references videos, images, or extra pages, those files must be uploaded too or they'll be missing on the live site.
04 Free Email Forwarding ImprovMX ▼
ImprovMX
FreeEmails to you@yourname.com forward to your regular Gmail. Up to 25 aliases free.
Part 1 — Add Your Domain to Netlify DNS
- Go to app.netlify.com and sign in.
- Click DNS in the left sidebar.
- Click Add or register domain → type your domain → click Verify → Add domain.
- Netlify creates your DNS zone. Leave this tab open.
Part 2 — Add Email Records in Netlify DNS
- On the DNS page, click Add new record.
Type: MX — Name: @ — Value:mx1.improvmx.com— Priority: 10 → Save. - Click Add new record again.
Type: MX — Name: @ — Value:mx2.improvmx.com— Priority: 20 → Save. - Click Add new record one more time.
Type: TXT — Name: @ — Value:v=spf1 include:spf.improvmx.com ~all→ Save.
| Type | Name | Priority | Value |
|---|---|---|---|
| MX | @ | 10 | mx1.improvmx.com |
| MX | @ | 20 | mx2.improvmx.com |
| TXT | @ | — | v=spf1 include:spf.improvmx.com ~all |
Part 3 — Point Namecheap to Netlify
- Go to namecheap.com → sign in → Domain List → find your domain → click Manage.
- Click the Domain tab. Under Nameservers, select Custom DNS.
- Enter all 4 nameservers from Netlify's DNS page (shown under "Name servers" at the bottom of that page):
dns1.p09.nsone.net dns2.p09.nsone.net dns3.p09.nsone.net dns4.p09.nsone.net
Click the green checkmark to save. (Your numbers may differ — use exactly what Netlify shows you.)
Part 4 — Set Up ImprovMX Forwarding
- Go to improvmx.com → click Get started for free.
- Enter your domain → click Create a free account → sign up with your email.
- Inside your dashboard, find your domain and click Add an alias.
- Alias:
@(receives all addresses at your domain) — Forwards to: your Gmail address. Click Save.
Part 5 — Verify in ImprovMX
- Go to improvmx.com → your domain → click DNS Settings.
- Confirm both MX records show green checkmarks.
- Confirm the SPF record shows green.
- If anything still shows red, click Check Again and wait a few minutes.
Part 6 — Test It
- Send an email to any address at your domain (like
coach@yourdomain.com). - It should arrive in your Gmail inbox.
- If it doesn't arrive right away, wait — DNS propagation can take up to 24 hours.
Make Replies Look Professional
Forwarded emails land in your Gmail, but replies go from your personal address. Fix it with a signature:
- In Gmail: gear icon → See all settings → General tab → Signature → Create new.
- Build a signature with your name, business name, and domain email. Set it as default for new emails and replies.
- Click Save Changes.
05 Google Workspace Optional · $7/mo ▼
Google Workspace
$7 per user / monthReal Gmail at your domain, plus Drive, Docs, Calendar, and Meet. Skip this if ImprovMX forwarding works for you.
Go to Google Workspace →- Go to workspace.google.com → Get started.
- Enter your business name → "Just you" → your country → Next.
- Click Yes, I have a domain I can use → enter your domain.
- Choose your email username (like
hellooryourname) → set a password → finish signing up. - At the Verify your domain screen, copy the TXT record Google gives you.
- In Netlify DNS → Add new record → Type: TXT — Name: blank — Value: paste Google's code → Save.
- Back in Google → click Verify. If it fails, wait 10 minutes and try again.
- Add each of Google's MX records to Netlify DNS (Google will list them for you).
- Update your SPF TXT record to:
v=spf1 include:_spf.google.com ~all - Wait an hour → sign in at mail.google.com with your new address.
06 Cloudflare Speed & Safety Optional · Free ▼
Cloudflare
FreeMakes your site load faster and blocks bad traffic. Netlify is already secure — this is an extra layer. Most people skip it until they need it.
Go to Cloudflare →- Sign up at cloudflare.com → Add a Site → type your domain → pick the Free plan.
- Cloudflare scans your domain. Verify your MX, TXT, A, and CNAME records are all there — add any that are missing.
- Copy the 2 Cloudflare nameservers it gives you (like
kim.ns.cloudflare.com). - In Namecheap → Domain List → Manage → Nameservers → Custom DNS → replace your Netlify nameservers with the 2 Cloudflare ones → save.
- Back in Cloudflare → click Done, check nameservers. Takes up to 24 hours.
07 Booking Calendar Calendly · Free ▼
Calendly
Free plan availableLets people pick a meeting time without back-and-forth emails. You get a booking link to share anywhere.
Go to Calendly →- Go to calendly.com → Sign up free with your Google account (so it can read your calendar and prevent double-bookings).
- Pick a username — this becomes your booking link:
calendly.com/yourusername. - Set your available hours (e.g., Mon–Fri, 9 AM – 5 PM).
- Click Create event type → One-on-One → name it (e.g., "30 Minute Chat") → set the duration → save.
- Copy your booking link and paste it into your site's contact button.
08 Online Payments Stripe · 2.9% + 30¢ ▼
Stripe
Free to set up · 2.9% + 30¢ per chargeSend a customer a payment link by email. They click, pay with a credit card, and the money hits your bank in 2–7 days.
Go to Stripe →- Sign up at stripe.com. You'll need your name, address, and bank account info.
- Once approved: Payments → Payment Links → New.
- Set a price and name (e.g., "Website Deposit — $500") → Create link.
- Send the link to your customer. When they pay, the money goes to your bank.
09 PayPal, Venmo & Zelle ▼
PayPal.me
- Go to paypal.com/paypalme → Create your PayPal.Me link → choose a username.
- In
index.html, findpaypal.com/paypalme/YOURUSERNAMEand replaceYOURUSERNAMEwith yours. Save and re-upload to Netlify.
Venmo
- Open the Venmo app → menu → tap your profile name → find your
@handle. - Your Venmo link is:
venmo.com/u/your-handle-without-the-@ - In
index.html, findvenmo.com/u/and replace the handle. Save and re-upload.
Zelle
No link to share — clients open their own bank app and send money to your phone number or email. Open your bank app, find the Zelle tab, and enroll your number or email. That's it. Display your Zelle number on your site so clients know where to send.
10 Wire Up Your Contact Form Netlify Forms · Free ▼
Your HTML is already coded. You just need to activate it in Netlify and turn on email notifications.
Step 1 — Enable form detection
- In app.netlify.com, click your site → Forms in the left sidebar.
- Click Enable form detection.
- Go to Deploys → drag your entire site folder to redeploy. Wait for Published.
- Go back to Forms — you should now see a form named contact.
Step 2 — Set up email notifications
- Project configuration → Notifications → Emails and webhooks.
- Scroll to Form submission notifications (NOT Deploy notifications — that costs $20/month).
- Click Add notification → Email notification → Event: New form submission → Form: contact → enter your email → Save.
Step 3 — Test it
- Open your live site in a private/incognito window. Fill out the contact form and submit.
- You should land on the thank-you page and receive an email within 60 seconds.
- Check Netlify → Forms → contact to confirm the submission is stored there too.
11 Connect Your Domain to Your Site ▼
Right now Netlify gave you a long random address. Let's swap it for your real domain.
- In app.netlify.com, click your site → Domain settings → Add custom domain.
- Type your domain → Verify → Add domain.
- Choose Use Netlify DNS → copy the 4 nameservers Netlify gives you.
- In Namecheap → Domain List → Manage → Nameservers → Custom DNS.
- Paste the 4 Netlify nameservers → click the green checkmark to save.
- Wait 5–60 minutes. Once Netlify shows green, enable HTTPS (free padlock in the browser).
If Namecheap Asks for DNS First
- In Namecheap: Domains → Free DNS → enter your domain → Request Free DNS.
- Get your 4 Netlify nameservers from Netlify's DNS page.
- Back in Namecheap: Dashboard → Domain List → select your domain → click the Verify Contacts dropdown → Manage.
- Scroll to the Nameservers section (grey box) → dropdown → Custom DNS → paste your 4 Netlify nameservers → save.
12 Go Live — Final Checklist ▼
- Open a private/incognito browser window. Type your domain and hit Enter — confirm it loads.
- Send yourself a test email to
you@yourdomain.com— confirm it arrives in Gmail. - Click your Calendly link — confirm people can book a time.
- Test your Stripe payment link with a small amount (you can refund yourself).
- Send the link to a friend and ask them to check it on their phone.
13 Claim Your Google Properties ▼
A. Verify Your Site in Google Search Console — tells Google your site exists
Search Console lets you confirm you own the site and then submit your sitemap. There are two verification methods — use whichever fits your setup.
Method 1 — URL Prefix (recommended if the HTML meta tag is already in your site)
- Go to search.google.com/search-console → Add property.
- On the left side, choose URL prefix and enter your full URL including https — e.g.
https://www.privettwebdesigns.com/. Click Continue. - Google will try to auto-verify. If it can't, choose HTML tag from the verification method list.
- Copy the
<meta name="google-site-verification" ...>tag Google gives you. - Open your
index.htmlin a text editor and paste the meta tag inside the<head>section (anywhere above</head>). - Upload and deploy your site to Netlify so the tag is live at your domain.
- Return to Search Console and click Verify. You should see a green "Ownership verified" message within seconds.
google-site-verification tag was already added to your site previously, Search Console may auto-verify the moment you submit the URL. Just click Verify.Method 2 — Domain Property (requires DNS access)
The Domain property covers all subdomains and protocols in one property. It requires adding a TXT record in your DNS settings.
- In Search Console → Add property → choose Domain → type your domain without https — e.g.
privettwebdesigns.com. - Copy the TXT record value Google gives you (it looks like
google-site-verification=XXXXXXXXXXXXXXXX). - Log in to Netlify → your site → Domain management → DNS settings → Add new record.
Type: TXT — Name: @ — Value: paste the code → Save. - Back in Search Console, click Verify. DNS changes can take up to 24 hours — if it fails right away, wait an hour and try again.
B. Submit Your Sitemap & Get Indexed — gets your pages into Google search results
After verifying, you need to tell Google what pages exist on your site. This is done with a sitemap.xml file and the URL Inspection tool.
Step 1 — Confirm sitemap.xml and robots.txt are deployed
Your site root folder should have two files:
- sitemap.xml — lists all your page URLs with priority and update frequency
- robots.txt — tells crawlers what they're allowed to access and points to your sitemap
Test that they're live: visit https://yourdomain.com/sitemap.xml and https://yourdomain.com/robots.txt in your browser. If you see the file contents, they're deployed correctly.
Step 2 — Submit your sitemap
- In Search Console, select your verified property from the top-left dropdown.
- In the left sidebar, click Sitemaps.
- In the "Add a new sitemap" box, type
sitemap.xml(just the filename — the domain is implied). Click Submit. - The status will show "Pending" briefly, then switch to "Success" within a few hours. It will display how many URLs Google discovered.
Step 3 — Request indexing for your homepage
- In Search Console, click URL Inspection in the left sidebar.
- Type your full homepage URL — e.g.
https://www.privettwebdesigns.com/— and press Enter. - If it says "URL is not on Google," click Request Indexing.
- Repeat for any other important pages (about, services, contact, etc.).
Step 4 — Check if you're indexed
Open Google and search: site:yourdomain.com
If results appear, Google has indexed your site. Zero results means not yet indexed — normal for a new site. Check back in a week or two.
C. Set Up Google Analytics GA4 — tracks your site visitors
Google Analytics 4 shows you how many people visit, which pages they view, how they found you, what device they used, and more.
Step 1 — Create your GA4 account and property
- Go to analytics.google.com and sign in with your Google account.
- Click Start measuring (or Admin → Create → Account if you already have a GA account).
- Name your Account — e.g. Privett Web Designs. Click Next.
- Name your Property — e.g. privettwebdesigns.com. Set your time zone and currency. Click Next.
- Fill in business details (industry, size). Click Next.
- Choose a business objective (e.g. Get more leads). Click Create and accept the terms.
Step 2 — Create a web data stream
- After creating the property, GA4 prompts you to add a data stream. Choose Web.
- Enter your website URL — e.g.
https://www.privettwebdesigns.com— and give the stream a name. - Click Create stream.
- GA4 shows your Measurement ID — it looks like
G-XXXXXXXXXX. Copy it.
Step 3 — Add the tracking tag to your site
- On the stream page, click View tag instructions. GA4 gives you a snippet that looks like this:
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
</script>
- Replace both instances of
G-XXXXXXXXXXwith your actual Measurement ID. - Open your
index.htmland paste the full snippet at the very top of the<head>section — before anything else inside the head tag. - Save the file.
Step 4 — Deploy and verify it's working
- Upload and deploy your updated site to Netlify.
- Open your website at its live https:// URL in a browser (not a local file).
- Wait about 30 seconds, then go to GA4 → Reports → Realtime.
- You should see 1 active user (yourself). That confirms the tag is firing correctly.
D. Google Business Profile — puts you on Google Maps (optional)
- Go to business.google.com.
- Search your business name → claim it → verify by postcard or phone.
14 If Something Goes Wrong ▼
My site won't load at my domain
- Wait 1 hour — DNS changes are slow.
- Open a private browser window and try again (regular browsers cache the old version).
- In Netlify, confirm your domain shows a green checkmark.
Contact form submits but I never get an email
- Check Netlify → Forms. If your test submission shows up there, the form works — you just don't have email notifications set up yet. Follow Step 10.
- If a $20/month dialog appears, click Cancel — you're in the wrong section (Deploy notifications, not Form submission notifications).
- Check your spam folder. Mark it "Not spam" and future ones go to inbox.
- If the submission isn't in Forms at all, redeploy your site — Netlify needs to re-scan it after you add the form attributes.
"Page Not Found" after submitting the form
- Make sure
thank-you.htmlis in the folder you uploaded to Netlify. - Make sure the form has
data-netlify="true"andaction="/thank-you.html". - Re-upload the entire folder including
thank-you.html.
Video, image, or file missing from the live site
- Re-upload the entire folder — not just
index.html. - Check that the filename in your HTML matches exactly (capitalization matters on Netlify).
- Open the site in a private window — your browser may be showing a cached old version.
Email isn't forwarding
- Wait 30 minutes after saving the MX records.
- In ImprovMX, click the verify icon — all records should show green.
- Make sure the records are in Netlify DNS, not Namecheap. (Namecheap is just the registrar.)
- Cancel any Namecheap "Private Email" trial if you accidentally set it up.
I added records as "nameservers" by mistake
- In Namecheap's nameserver box, the only entries should be the 4 Netlify nameservers (like
dns1.p03.nsone.net). Delete anything else from that box. - MX records and TXT records go inside Netlify's DNS records section, not in Namecheap's nameserver field.
I can't sign in to an account
- Click Forgot password and reset it.
- Check your notes for the email and password you used when you signed up.
Sitemap shows "Couldn't fetch" in Search Console
- This means Google tried to download your
sitemap.xmlbut the file wasn't live on your domain yet. - Deploy your full site folder to Netlify first, then visit
https://yourdomain.com/sitemap.xmlin your browser to confirm it loads. - In Search Console → Sitemaps, delete the existing entry and resubmit it after deploying.
- The
sitemap.xmlfile must be in the root of your uploaded folder — not inside a subfolder.
GA4 shows "No data received from your website yet"
- This message appears right after you create a new GA4 property — it's normal and goes away once data arrives.
- Make sure you deployed your site after adding the GA tag. The tag does nothing if the deploy didn't happen.
- Visit your site at its live https:// URL (not a file on your computer). Then go to GA4 → Reports → Realtime — this updates in real time and shows immediately whether the tag is firing.
- If Realtime still shows 0, view the page source on your live site (Ctrl+U in Chrome) and search for
G-. If your Measurement ID doesn't appear in the source, the deploy didn't include the updated file.
Search Console shows "NOT VERIFIED" on my domain property
- There are two property types in Search Console — Domain and URL Prefix. They verify separately and independently.
- If you verified via the HTML meta tag method, that verifies only the URL Prefix property (e.g.
https://www.privettwebdesigns.com/). The Domain property entry is separate and requires a DNS TXT record. - You don't need both. A verified URL Prefix property is fully functional for sitemaps, indexing requests, and all Search Console features. You can ignore or delete the unverified Domain entry.
My site isn't showing up in Google search results
- New sites can take anywhere from a few days to 8+ weeks to appear in results. This is completely normal — it doesn't mean anything is broken.
- Test your status: search
site:yourdomain.comin Google. Results appearing means you're indexed. Zero results means Google hasn't crawled you yet. - Speed it up: submit your sitemap in Search Console, then use the URL Inspection tool to request indexing for your homepage and any key pages.
- Make sure your
robots.txtfile saysAllow: /— if it accidentally saysDisallow: /it blocks all crawlers from the entire site.
GA tag is in my HTML file but the live site still isn't receiving data
- First confirm the deploy completed — check Netlify's deploy log for a success message with a recent timestamp.
- Open your live site in Chrome → right-click → View Page Source (or Ctrl+U) → search for
G-. If your Measurement ID appears in the source, the tag is live on the server. If it's missing, the file that was deployed didn't include the updated tag. - Test in an Incognito window — browser extensions (especially ad blockers) can silently block GA. If Realtime shows data from the Incognito visit, it's a local browser extension conflict, not a site problem.
- Hard-refresh the page with Ctrl+Shift+R (Windows) or Cmd+Shift+R (Mac) to bypass any cached version your browser is serving.
I'm just stuck
Send Jeremy a message and he'll get on a call to walk you through it.