Solving PayPal & Ko-fi Integration While Hosting on GitHub with Custom Domain and Setting Up SEO — A Complete Guide


Introduction:
Launching my personal website ayushhardeniya.site came with several exciting tasks and equally frustrating roadblocks. From integrating Ko-fi for support payments, configuring PayPal for Indian users, hosting on GitHub Pages using a custom domain, to getting indexed properly by Google Search - I faced real issues, dug into each, and here’s a human-first, complete technical + non-technical guide to help you avoid the same potholes.
🌐 Step 1: Hosting GitHub Repository on Custom Domain
Problem:
I had an existing GitHub Page live at ayushHardeniya.github.io
but wanted my site to show up at https://ayushhardeniya.site
.
Solution:
Bought domain from a registrar (mine was BigRock).
Went to GitHub Repo > Settings > Pages.
Added
ayushhardeniya.site
in the Custom domain section.Created a
CNAME
file in the root of my repo with this line:
ayushhardeniya.site
- In domain DNS settings:
- Added A records pointing to GitHub IPs:
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
- Added a CNAME record pointing to
ayushhardeniya.site
- Waited until Enforce HTTPS became available.
📌 SEO Tip: Google loves HTTPS. Be sure to enable “Enforce HTTPS” in GitHub Pages once available. It might take some hours.
📮 Step 2: Setting Up Zoho Mail for Custom Email
Problem:
Needed to use custom email IDs like connect@ayushhardeniya.site
.
Solution:
Signed up on Zoho.
Added TXT record to verify domain.
Set MX records as given by Zoho.
Created user mailboxes.
💡 Now I have working professional email addresses under my own domain.
☕ Step 3: Integrating Ko-fi Button & PayPal Payments
Problem:
Ko-fi kept showing errors:
"You cannot currently receive payments on your PayPal account..."
Detailed Fix:
🧩 Fixing PayPal Setup
Went to PayPal Business Setup.
Filled the form under Account Settings > Business Info:
Business Type: Individual
PAN: <My PAN Number>
Purpose Code: P0805 (Personal use/Design/IT Services)
Industry Type: Services
CC Statement Name: PAYPAL*AYUSH
Matched PayPal name EXACTLY with PAN.
Revisited KYC page: https://www.paypal.com/in/webapps/mpp/kyc
Used desktop browser - mobile submissions were buggy.
Cleared cache, logged out and in again.
📞 Optional but helpful: Contact PayPal support if stuck in loop.
🔄 Connecting with Ko-fi
Back to Ko-fi Settings
Clicked “Check if you're ready to go”
Finally showed: ✅ Connected
📄 Step 4: Setting Up Contact Form with Google Sheets Integration
Problem:
My site had a contact form, but it failed to submit or redirected with an error.
Solution:
Replaced it with a working Google Sheet-based form using formsubmit.co
or [Google Apps Script]. Here's a sample:
<form action="https://formsubmit.co/your-email@example.com" method="POST">
<input type="text" name="First Name" required>
<input type="text" name="Last Name" required>
<input type="email" name="Email" required>
<textarea name="Message"></textarea>
<button type="submit">Submit</button>
</form>
✅ Simple. No backend. Automatically sends to mail or Google Sheet if configured.
📈 Step 5: Pushing to Google Search Console for SEO
1. Domain Verification
Go to Google Search Console.
Add new property > Choose domain method.
Added TXT record in DNS:
TXT @ google-site-verification=xxxxxxxxxxx
- Verified successfully.
2. Sitemap Setup
- Added sitemap URL:
https://ayushhardeniya.site/sitemap.xml
✅ Suggestion- You can generate one using XML Sitemap Generator and add it to your repo.
🔍 Step 6: Optimizing SEO (Meta Tags + Schema + OG)
Page Title:
<title>Ayush Hardeniya - Developer, Creator & Explorer</title>
Meta Description:
<meta name="description" content="Explore the world of Ayush Hardeniya - a passionate developer, reader, and creator sharing blogs, gallery, values, and more." />
Meta Open Graph:
<meta property="og:title" content="Ayush Hardeniya - Official Website">
<meta property="og:description" content="My journey as a developer, reader, explorer & more">
<meta property="og:image" content="https://ayushhardeniya.site/preview.png">
Canonical URL:
<link rel="canonical" href="https://ayushhardeniya.site/" />
Schema.org JSON-LD:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Ayush Hardeniya",
"url": "https://ayushhardeniya.site",
"sameAs": [
"https://github.com/AyushHardeniya",
"https://twitter.com/ayushhardeniya"
],
"image": "https://ayushhardeniya.site/profile.png",
"jobTitle": "Developer & Creator"
}
</script>
🧾 Final Thoughts
This blog is a real reflection of what I have faced and sorted accordingly and even a student/freelancer/early-stage creator faces when integrating modern tools together. From DNS misconfigurations to payment integration and SEO indexing - this guide covers it all, from my own experiences.
If you’re going through the same, just follow the steps - or hit me up on Twitter or my contact page.
Author: Ayush Hardeniya
🌐 Website: https://ayushhardeniya.site
☕️ Buy Me A Coffee: https://ko-fi.com/ayushhardeniya
If you liked this blog or found it helpful, do consider sharing it. ❤️
Subscribe to my newsletter
Read articles from Ayush Hardeniya directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Ayush Hardeniya
Ayush Hardeniya
Hey, I'm Ayush Hardeniya (aka Ayush Sharma) 👋 An engineering student who treats every coding challenge like a 🎮 new level to conquer. Through daily reflections, real-world problems, and code breakdowns, I document my journey --- not just to grow, but to help others grow with me. Because honestly... I don’t code, I play it. 🔥