Updated October 5, 2026 · practical launch

How to publish a website on Google: domain, GitHub, and sitemap

Generating a page with AI is only half the job. Here is the correct launch sequence: save the code, choose hosting, connect a domain and HTTPS, align canonicals, robots.txt, and sitemap, then add the site to Search Console and check indexing.

Updated October 5, 2026Difficulty: beginner17 min read
Author's illustration for the topic: How to publish a site on Google: domain, GitHub, and sitemap
Illustration created with AI · Vibe Coding

What this case is about and the final result

"Vibe Coding" didn't start as a large media project, but as a website for a Ukrainian Telegram community. Its main task is simple: to answer practical queries about AI development, provide verified materials in Ukrainian, and help interested people join the chat.

A traditional team of a designer, developer, SEO specialist, and server administrator was not needed for the launch. AI helped prepare the structure, texts, HTML, and CSS, but decisions regarding page assignments, fact-checking, domain, security, and publication remained with the human.

Minimum prerequisites

A clear site topic, an AI tool or code editor, a GitHub account, a publishing platform, and access to manage your own domain.

Result

An HTTPS site with a custom domain, change history, correct canonical addresses, robots.txt, sitemap, Search Console, and measurable useful actions.

The main lesson: don't ask AI in one sentence to "create an SEO site." First, define who needs it, what task a person is solving on each page, and what action they should take after reading.

Step 1. Structure first, then design

One long landing page can present a project, but it poorly addresses different user intents. A person looking for a definition of vibe coding needs a different answer than someone trying to protect an API key or create a site with Lovable.

Therefore, the content was divided into separate, full-fledged materials: an explanation of the term, a practical comparison of AI programming tools,creating a site with AI, key security, AI code verification, and a page for the Ukrainian Telegram community. Each page received its own title, description, H1, canonical, and a clear URL.

Before generating a page, it is useful to give the AI such a prompt:

Prompt for structureSite goal: [one specific sentence]. Audience: [who these people are and what they already know]. Main action: [application, purchase, message, or joining the community]. Suggest a structure, not a design: 1. Which separate pages are truly needed. 2. Which user intent each page addresses. 3. What proof or practical result it should provide. 4. What natural next step to suggest to the reader. Do not create duplicates or pages just for the sake of keywords.

Only after this is it worth asking for a design. In our case, it had to be dark, professional, mobile-friendly, and calm enough for long reading. AI prepared the foundation, but padding, contrast, menus, and mobile behavior had to be checked and fixed separately.

Step 2. Separate GitHub and hosting

AI can quickly change many files. If the result becomes worse, it is hard to understand exactly what broke without version history. GitHub solves this problem: every completed change is saved as a separate commit, and you can review the difference between versions before publishing.

GitHub is not necessarily hosting. A repository can store code, while a site can run on Sites, Vercel, Netlify, Cloudflare Pages, or another platform. For a simple static HTML, you can use GitHub Pages. Officially, it can publish files from a selected branch or via GitHub Actions; the latter is needed when the site needs to be built before publishing.

ScenarioWhat to chooseWhy
HTML, CSS, and JS without a build stepGitHub Pages from a branchSimplest publishing from root or folder /docs.
React, Astro, or another generatorGitHub Actions or a build platformFirst a build is performed, then the ready static folder is published.
API, database, server logicHosting with a server environmentGitHub Pages serves static files, not a backend.
  1. Create a repository. For an open educational site, it can be public. For a commercial project or code with configuration, choose private.
  2. Save your first working version. This is your point of return before the AI starts its next series of edits.
  3. Make one logical commit per task. For example: "add mobile menu" or "connect analytics", rather than "site update".
  4. Review the diff. Make sure the agent didn't delete meta tags, analytics, Search Console verification, or important text.
  5. Do not save secrets. API keys, passwords, and tokens should not enter the repository, even for a few minutes.
A private repository does not make the site private. GitHub warns that a Pages site can be public even when its source repository is private. Do not publish secrets, personal data, or service files in the build folder.

An open "Vibe Coding" repository also links the site's brand to a real GitHub profile and can contain useful templates. However, a repository shouldn't be created just for the sake of a link: it should provide people with files, examples, or a clear change history.

Step 3. Custom domain, DNS, and HTTPS

A free platform address is fine for testing. For a long-term project, a custom domain is easier to remember, share, and move between platforms. In this case, we use vibe-coding.com.ua.

The publishing platform shows which DNS records need to be added at your domain registrar. For a root domain, these are often A records; for a subdomain, it is often www — CNAME. You cannot copy values from someone else's guide: they depend on the specific platform and can change.

  • The main address opens via https:// without browser warnings.
  • http:// redirects to HTTPS.
  • The option with www does not show another or outdated site.
  • On all pages, the canonical tag points to the chosen primary domain version.
  • The certificate covers the required address variants.

DNS updates are not instantaneous. During our setup, different address variants showed conflicting results for a while, so we checked not just the main one, but also HTTP, HTTPS, and www. This is important for both people and Google: the search engine should not see several different versions of the same site.

If using GitHub Pages, first add the domain in the Pages settings, and only then change the DNS. GitHub recommends verifying the domain separately with a TXT record: this reduces the risk that a different account might hijack the address after the repository is disconnected. Do not use a wildcard record. *.example.com without real need.

Step 4. How to add a site to Google

Publishing a site does not mean instant appearance in search. There are three separate stages: the site is available to people; Google finds and crawls the URL; after evaluation, the page may be indexed. Search Console helps with discovery and diagnostics, but it does not buy a place in the results.

  1. Choose one primary address. For example, https://example.com/page. This is the one that should be in the canonical, sitemap, and internal links; other versions should redirect.
  2. Create robots.txt. It should not accidentally block necessary pages. Add the full sitemap address.
  3. Create sitemap.xml. Add absolute canonical addresses only for those pages that truly need to appear in search. Update lastmod only after a substantial change in content.
  4. Add the resource to Search Console. A Domain property covers HTTP, HTTPS, and all subdomains and is verified via DNS. A URL-prefix property covers only the exact prefix and supports more verification methods.
  5. Submit the sitemap once. Search Console will show whether Google was able to read the file. There is no need to resubmit an unchanged sitemap every day.
  6. Check the most important URLs. URL Inspection shows availability, indexing, and the canonical selected by Google. For several new or significantly updated pages, you can click "Request indexing".

Minimum robots.txt for an open information site:

robots.txtUser-agent: * Allow: / Sitemap: https://example.com/sitemap.xml

Minimum sitemap entry for one page:

sitemap.xml<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://example.com/page</loc> <lastmod>2026-10-05</lastmod> </url> </urlset>

And on the page itself in <head>:

canonical<link rel="canonical" href="https://example.com/page">
Sitemap does not guarantee indexing. Google calls it a hint. High-quality unique material, internal links, page availability, and time still remain important.

Google indicates a realistic range from a few days to a few weeks. A scanning request does not guarantee indexing, and clicking it again for the same URL does not speed up the process. If a page has not appeared, first check technical availability, canonical, uniqueness, and internal links, rather than creating a duplicate.

Step 5. Check the published version

A local file and a live site can behave differently. Check the public address after deployment, preferably in a private browser window and on a phone.

TestExpected resultWhat to fix
Main URLStatus 200, the page opens without loginRoutes, hosting rules, or public access
HTTP and extra variantsPermanent redirect to a single HTTPS addressRedirects and DNS
CanonicalMatches the final URL after redirectsTag in <head>
/robots.txtOpens and does not block important pagesRules Disallow
/sitemap.xmlValid XML with canonical addressesSitemap generator or manual file
PhoneNo horizontal overflow; menus and buttons are clickableResponsive styles, tables, and code blocks

For a quick technical check, you can perform curl -I https://example.com/page. Look for the final status in the response 200; it's normal to see it for the old address 301 or 308 and the header location with the correct new URL. This doesn't replace viewing the page in a browser, but it quickly finds unnecessary redirects.

Step 6. Measure useful actions, not just views

For "Vibe Coding," viewing an article is not the end goal. It is important to understand whether a person moves to Telegram after reading. Therefore, GA4 is connected to all pages, and clicking the chat link sends a separate event telegram_click.

MetricWhat it responds withWhere to look
Impressions and queriesWhich words Google shows the site forSearch Console
Clicks and CTRWhether the headline convinces you to open the pageSearch Console
Landing pageWhat material the visitor sees firstGA4
Referral sourceGoogle, Telegram, GitHub, or another siteGA4
telegram_clickWhich pages actually lead people to the chatGA4, events

Search Console and GA4 do not show exactly the same numbers: they are different systems with different collection methods. Ad blockers may also prevent GA4 from recording some visits. Therefore, decisions should be made based on trends over several weeks, rather than a single test opening.

For external publications, add UTM parameters to the link to the site. This allows you to distinguish a transition from a specific post from a regular direct visit. For Telegram, it is worth using separate invite links per source if you need to count actual joins rather than just clicks.

What most often breaks in this process

  • Everything is placed on a single page. It is difficult for the reader to find a precise answer, and for Google to determine the topic of each block.
  • The AI receives too general a prompt. The result looks impressive but lacks a specific audience, verification, and a call to action.
  • No Git history. After an unsuccessful edit, you have to restore the site manually.
  • The domain is partially configured. The main address works, but www or HTTP leads to an error or an old page.
  • The sitemap contains incorrect addresses. Relative URLs, duplicates, or non-canonical domain versions create confusion.
  • Analytics only counts views. The owner doesn't know which pages bring leads, purchases, or community joins.
  • Dozens of weak AI texts are published. This does not build trust and does not replace personal experience, verified examples, and clear authorship.

What can be done for free, and what you will have to pay for

GitHub, Google Search Console, and basic GA4 usage are available for free. A simple site can also be created and published on a free plan of an AI builder or hosting, if its limits are sufficient.

A custom domain is usually paid annually. Paid features may include advanced AI tool capabilities, increased limits, teamwork, databases, or special hosting. For a first informational site, there is no sense in buying everything at once: first check if the site provides a useful result and if visitors are coming.

Final launch checklist

  • Each page solves a specific user task.
  • The site is easily readable on mobile and has no horizontal scrolling.
  • The code is saved in GitHub, and important changes have clear commits.
  • The repository contains no API keys, passwords, or private data.
  • The main domain, HTTPS, HTTP, and www work in harmony.
  • Pages have unique titles, descriptions, H1s, and canonicals.
  • robots.txt is available and links to an up-to-date sitemap.
  • Search Console is verified, and the sitemap is accepted without errors.
  • Analytics tracks not just views, but the main useful action.
  • The button or form has been tested by a regular user, not just the owner.

Frequently asked questions

Can you publish a website and add it to Google for free?

Yes. GitHub, Search Console, and basic GA4 are available for free, and free hosting can be found for a simple static site. The main predictable expense is a custom domain.

Does a sitemap guarantee appearance in Google?

No. It helps Google find canonical URLs, but does not guarantee crawling, indexing, or a high position.

How long to wait for indexing after a request?

Google indicates a range from a few days to a few weeks. Repeated requests for the same URL do not speed up crawling, and the request itself does not guarantee indexing.

Why use GitHub if the site is already live?

To have a history, compare AI edits, and quickly revert to a working version. The repository and hosting can be different services.

What to read next

Creating a website with AI

A practical roadmap from task and structure to a responsive page and pre-publication checklist.

API key security

How not to leak secrets into the browser, repository, or screenshot during product launch.

Verified primary sources

Launching your own site and stuck?

Bring a link, screenshot, or the exact error text to the chat without passwords or private data. We can only take projects with specific tasks for public review with the author's permission.

Submit a project for review on Telegram ↗

Was this helpful? Pass it on

Send it to someone with a similar task.

Share in Telegram ↗

Read via RSS · Weekly newsletter in Ukrainian

Discussion

Share your opinion or ask about the material. Your nickname and comment text will be visible to everyone.

Loading comments...

Free email newsletter in Ukrainian

Learn to use AI: website, automation, or creative project

Each email contains one practical task, a tool to perform it, and a step-by-step instruction in Ukrainian. Learn how to build a website, automate routine, or use AI in creative work. Free, no more than one email per week.

After applying, confirm your address via email.

Telegram chat ↗